073f3e74-0f6a-484b-9199-a379c502677a
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 |
|---|---|---|---|---|
| 30182 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 93691 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 93692 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 93693 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 93694 | capability.graph | complete | 1 / 3 | 1 week ago |
| 93695 | detector.run | complete | 1 / 3 | 1 week ago |
| 93696 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1286881] OpenAI Codex v0.77.0 (research preview)
[codex:1286881] --------
[codex:1286881] workdir: /tmp/codex-multi-dlgnmloa
[codex:1286881] model: gpt-5.2-codex
[codex:1286881] provider: openai
[codex:1286881] approval: never
[codex:1286881] sandbox: read-only
[codex:1286881] reasoning effort: xhigh
[codex:1286881] reasoning summaries: auto
[codex:1286881] session id: 019b5b41-643d-7b31-a9fc-893df9b89141
[codex:1286881] --------
[codex:1286881] user
[codex:1286881] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1286881] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1286881] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1286881]
[codex:1286881] Scope rules:
[codex:1286881] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1286881] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1286881]
[codex:1286881] Output MUST be valid JSON matching the provided schema.
[codex:1286881] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1286881] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1286881]
[codex:1286881] Output constraints (IMPORTANT):
[codex:1286881] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1286881] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1286881] mcp startup: no servers
[codex:1286881]
[codex:1286881] thinking
[codex:1286881] **Checking skill triggers and reading bundles**
[codex:1286881] exec
[codex:1286881] /bin/bash -lc ls in /tmp/codex-multi-dlgnmloa succeeded in 5ms:
[codex:1286881] AUDIT_BUNDLE.txt
[codex:1286881] codex-output-schema.json
[codex:1286881] contracts
[codex:1286881]
[codex:1286881] thinking
[codex:1286881] **Reading bundle contents**
[codex:1286881] exec
[codex:1286881] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-dlgnmloa succeeded in 5ms:
[codex:1286881] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1286881]
[codex:1286881] ================================================================================
[codex:1286881] FILE: contracts/contracts/external/circle/IRedemption.sol
[codex:1286881] ================================================================================
[codex:1286881] /**
[codex:1286881] * Copyright 2024 Circle Internet Financial, LTD. All rights reserved.
[codex:1286881] *
[codex:1286881] * SPDX-License-Identifier: Apache-2.0
[codex:1286881] *
[codex:1286881] * Licensed under the Apache License, Version 2.0 (the "License");
[codex:1286881] * you may not use this file except in compliance with the License.
[codex:1286881] * You may obtain a copy of the License at
[codex:1286881] *
[codex:1286881] * http://www.apache.org/licenses/LICENSE-2.0
[codex:1286881] *
[codex:1286881] * Unless required by applicable law or agreed to in writing, software
[codex:1286881] * distributed under the License is distributed on an "AS IS" BASIS,
[codex:1286881] * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:1286881] * See the License for the specific language governing permissions and
[codex:1286881]
[codex:1286881] thinking
[codex:1286881] **Investigating contract bundle thoroughly**
[codex:1286881] exec
[codex:1286881] /bin/bash -lc "rg -n \"delegatecall|upgrade|proxy|call\\(|transfer\\(|safeTransfer\\(|approve\\(|permit|signature|ecrecover|nonces|oracle|price|reentr|swap|mint|burn\" AUDIT_BUNDLE.txt" in /tmp/codex-multi-dlgnmloa succeeded in 7ms:
[codex:1286881] 83: * @notice The recipient of the redemption swap: where the asset gets transferred to.
[codex:1286881] 626: function transfer(address to, uint256 amount) external returns (bool);
[codex:1286881] 654: function approve(address spender, uint256 amount) external returns (bool);
[codex:1286881] 735: * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
[codex:1286881] 752: function safeTransfer(IERC20 token, address to, uint256 value) internal {
[codex:1286881] 827: let success := call(gas(), token, 0, add(data, 0x20), mload(data), 0, 0x20)
[codex:1286881] 856: success := call(gas(), token, 0, add(data, 0x20), mload(data), 0, 0x20)
[codex:1286881] 1011: // To delete an element from the _values array in O(1), we swap the element to delete with the last one in
[codex:1286881] 1012: // the array, and then remove the last element (sometimes called as 'swap and pop').
[codex:1286881] 1654: IERC20(token).safeTransfer(to, amount);
[codex:1286881] 1705: /// Expected number of decimals for USDC (used to detect token upgrades)
[codex:1286881] 1708: /// Expected number of decimals for BUIDL (used to detect token upgrades)
[codex:1286881] 1835: IERC20(usdcTokenAddress).transfer(msg.sender, requestedWithdrawAmount);
[codex:1286881] 1895: IERC20(buidlTokenAddress).approve(
[codex:1286881] 1914: * @dev Protects against token upgrades that alter decimals
[codex:1286881]
[codex:1286881] thinking
[codex:1286881] **Checking for all contracts in bundle**
[codex:1286881] exec
[codex:1286881] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-dlgnmloa succeeded in 6ms:
[codex:1286881] 4:FILE: contracts/contracts/external/circle/IRedemption.sol
[codex:1286881] 56:FILE: contracts/contracts/external/circle/ISettlement.sol
[codex:1286881] 101:FILE: contracts/contracts/external/openzeppelin/contracts/access/AccessControl.sol
[codex:1286881] 361:FILE: contracts/contracts/external/openzeppelin/contracts/access/AccessControlEnumerable.sol
[codex:1286881] 456:FILE: contracts/contracts/external/openzeppelin/contracts/access/IAccessControl.sol
[codex:1286881] 560:FILE: contracts/contracts/external/openzeppelin/contracts/access/IAccessControlEnumerable.sol
[codex:1286881] 598:FILE: contracts/contracts/external/openzeppelin/contracts/token/IERC20.sol
[codex:1286881] 687:FILE: contracts/contracts/external/openzeppelin/contracts/token/IERC20Metadata.sol
[codex:1286881] 719:FILE: contracts/contracts/external/openzeppelin/contracts/token/SafeERC20.sol
[codex:1286881] 865:FILE: contracts/contracts/external/openzeppelin/contracts/utils/Context.sol
[codex:1286881] 893:FILE: contracts/contracts/external/openzeppelin/contracts/utils/ERC165.sol
[codex:1286881] 932:FILE: contracts/contracts/external/openzeppelin/contracts/utils/EnumerableSet.sol
[codex:1286881] 1339:FILE: contracts/contracts/external/openzeppelin/contracts/utils/IERC165.sol
[codex:1286881] 1368:FILE: contracts/contracts/external/openzeppelin/contracts/utils/Strings.sol
[codex:1286881] 1443:FILE: contracts/contracts/interfaces/IBUIDLRedeemer.sol
[codex:1286881] 1453:FILE: contracts/contracts/xManager/interfaces/IPauseManager.sol
[codex:1286881] 1480:FILE: contracts/contracts/xManager/interfaces/ITokenSource.sol
[codex:1286881] 1531:FILE: contracts/contracts/xManager/tokenManagers/PauseManagerClient.sol
[codex:1286881] 1607:FILE: contracts/contracts/xManager/tokenManagers/tokenSources/BaseTokenSource.sol
[codex:1286881] 1659:FILE: contracts/contracts/xManager/tokenManagers/tokenSources/BuidlUSDCSource.sol
[codex:1286881]
[codex:1286881] thinking
[codex:1286881] **Inspecting first-party contracts**
[codex:1286881] exec
[codex:1286881] /bin/bash -lc "sed -n '1420,1710p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-dlgnmloa succeeded in 5ms:
[codex:1286881] }
[codex:1286881]
[codex:1286881] /**
[codex:1286881] * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
[codex:1286881] */
[codex:1286881] function toHexString(uint256 value, uint256 length)
[codex:1286881] internal
[codex:1286881] pure
[codex:1286881] returns (string memory)
[codex:1286881] {
[codex:1286881] bytes memory buffer = new bytes(2 * length + 2);
[codex:1286881] buffer[0] = "0";
[codex:1286881] buffer[1] = "x";
[codex:1286881] for (uint256 i = 2 * length + 1; i > 1; --i) {
[codex:1286881] buffer[i] = _HEX_SYMBOLS[value & 0xf];
[codex:1286881] value >>= 4;
[codex:1286881] }
[codex:1286881] require(value == 0, "Strings: hex length insufficient");
[codex:1286881] return string(buffer);
[codex:1286881] }
[codex:1286881]
[codex:1286881]
[codex:1286881] thinking
[codex:1286881] **Analyzing contract vulnerabilities and patterns**
[codex:1286881]
[codex:1286881] I'll audit the first-party contracts focusing on unchecked return values, reentrancy risks, external calls, and access control, especially in token transfers and approvals. I’m carefully assessing potential issues around SafeERC20 usage, reentrancy through external redeemer calls, and approval patterns that might cause subtle bugs or attacks. Let’s explore the nuances of each function’s security posture and the implications of token standards like USDC and BUIDL here!
[codex:1286881] thinking
[codex:1286881] **Evaluating role permissions and token handling risks**
[codex:1286881]
[codex:1286881] I’m examining the separation of permissions between roles and the use of unchecked ERC20 return values, especially around token retrieval and withdrawal. There’s a subtle risk if retriever role can drain core tokens unintentionally, plus potential transaction failures or DoS from approval patterns and minimum redemption thresholds. I want to understand how these interplay with intended design and identify any exploitable scenarios or configuration footguns.
[codex:1286881] exec
[codex:1286881] /bin/bash -lc "sed -n '1659,1940p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-dlgnmloa succeeded in 6ms:
[codex:1286881] FILE: contracts/contracts/xManager/tokenManagers/tokenSources/BuidlUSDCSource.sol
[codex:1286881] ================================================================================
[codex:1286881] // SPDX-License-Identifier: BUSL-1.1
[codex:1286881] /*
[codex:1286881] ▄▄█████████▄
[codex:1286881] ╓██▀└ ,╓▄▄▄, '▀██▄
[codex:1286881] ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
[codex:1286881] ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
[codex:1286881] ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
[codex:1286881] ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
[codex:1286881] ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
[codex:1286881] ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
[codex:1286881] ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
[codex:1286881] ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
[codex:1286881] ╙▀▀██████R⌐
[codex:1286881] */
[codex:1286881]
[codex:1286881] pragma solidity 0.8.16;
[codex:1286881]
[codex:1286881] import "contracts/interfaces/IBUIDLRedeemer.sol";
[codex:1286881]
[codex:1286881] thinking
[codex:1286881] **Analyzing external call risks and approval handling**
[codex:1286881]
[codex:1286881] I'm considering potential vulnerabilities around the use of an external redeemer contract, focusing on how allowance and approvals are managed, possible leftover allowances, and the safety of external token calls in constructors, while planning to provide file-specific line references by checking actual source files for accurate numbering.
[codex:1286881] exec
[codex:1286881] /bin/bash -lc "nl -ba contracts/contracts/xManager/tokenManagers/tokenSources/BuidlUSDCSource.sol | sed -n '120,260p'" in /tmp/codex-multi-dlgnmloa succeeded in 6ms:
[codex:1286881] 120 address _buidlTokenAddress,
[codex:1286881] 121 uint256 _minBUIDLRedeemAmount,
[codex:1286881] 122 address _buidlRedeemer,
[codex:1286881] 123 address _pauseManager
[codex:1286881] 124 ) PauseManagerClient(_pauseManager) {
[codex:1286881] 125 _grantRole(DEFAULT_ADMIN_ROLE, _defaultAdmin);
[codex:1286881] 126
[codex:1286881] 127 if (_usdcTokenAddress == address(0)) revert ZeroAddressNotAllowed();
[codex:1286881] 128 if (_buidlTokenAddress == address(0)) revert ZeroAddressNotAllowed();
[codex:1286881] 129 if (_buidlRedeemer == address(0)) revert ZeroAddressNotAllowed();
[codex:1286881] 130
[codex:1286881] 131 usdcTokenAddress = _usdcTokenAddress;
[codex:1286881] 132 buidlTokenAddress = _buidlTokenAddress;
[codex:1286881] 133 minBUIDLRedeemAmount = _minBUIDLRedeemAmount;
[codex:1286881] 134 buidlRedeemer = IRedemption(_buidlRedeemer);
[codex:1286881] 135
[codex:1286881] 136 usdcDecimalsExpected = IERC20Metadata(_usdcTokenAddress).decimals();
[codex:1286881] 137 buidlDecimalsExpected = IERC20Metadata(_buidlTokenAddress).decimals();
[codex:1286881] 138 }
[codex:1286881] 139
[codex:1286881]
[codex:1286881] thinking
[codex:1286881] **Summarizing audit findings for token transfers**
[codex:1286881]
[codex:1286881] I'm gathering the key audit points about unchecked ERC20 transfer and approve return values, mainly in USDC transfer and BUIDL approve methods, and classifying them as low severity "other" issues. I'll combine these into a single JSON finding with detailed evidence and recommendations, mindful that no reentrancy or access control flaws appear. I’m also making sure the entire audit bundle was fully reviewed before finalizing the report.
[codex:1286881] codex
[codex:1286881] {"no_findings":false,"summary":"One low-severity issue found: unchecked ERC20 return values in BuidlUSDCSource during transfers/approvals could allow silent failures with non-standard tokens.","findings":[{"severity":"low","category":"other","title":"Unchecked ERC20 return values in withdrawal/redemption flow","exploit_scenario":"If the USDC or BUIDL token implementation returns false instead of reverting on failure (or requires a zero-allowance reset), `withdrawToken` and `_redeemBUIDL` can succeed and emit events even though the transfer/approval failed. This can lead to silent under-withdrawals or redemption failures without reverting, breaking accounting/operational assumptions for off-chain processes.","recommendation":"Use SafeERC20 for `transfer` and `approve` (e.g., `safeTransfer` and `safeApprove`/`safeIncreaseAllowance`), or explicitly require the returned boolean to be true. Consider resetting allowance to zero before setting a new value if the token is known to require it.","evidence":"`withdrawToken` uses `IERC20(usdcTokenAddress).transfer(...)` without checking the return value, and `_redeemBUIDL` calls `IERC20(buidlTokenAddress).approve(...)` directly without SafeERC20 or return-value checks.","locations":["contracts/contracts/xManager/tokenManagers/tokenSources/BuidlUSDCSource.sol:175","contracts/contracts/xManager/tokenManagers/tokenSources/BuidlUSDCSource.sol:235"]}]}
[codex:1286881] tokens used
[codex:1286881] 32,281
[codex:1286881] {"no_findings":false,"summary":"One low-severity issue found: unchecked ERC20 return values in BuidlUSDCSource during transfers/approvals could allow silent failures with non-standard tokens.","findings":[{"severity":"low","category":"other","title":"Unchecked ERC20 return values in withdrawal/redemption flow","exploit_scenario":"If the USDC or BUIDL token implementation returns false instead of reverting on failure (or requires a zero-allowance reset), `withdrawToken` and `_redeemBUIDL` can succeed and emit events even though the transfer/approval failed. This can lead to silent under-withdrawals or redemption failures without reverting, breaking accounting/operational assumptions for off-chain processes.","recommendation":"Use SafeERC20 for `transfer` and `approve` (e.g., `safeTransfer` and `safeApprove`/`safeIncreaseAllowance`), or explicitly require the returned boolean to be true. Consider resetting allowance to zero before setting a new value if the token is known to require it.","evidence":"`withdrawToken` uses `IERC20(usdcTokenAddress).transfer(...)` without checking the return value, and `_redeemBUIDL` calls `IERC20(buidlTokenAddress).approve(...)` directly without SafeERC20 or return-value checks.","locations":["contracts/contracts/xManager/tokenManagers/tokenSources/BuidlUSDCSource.sol:175","contracts/contracts/xManager/tokenManagers/tokenSources/BuidlUSDCSource.sol:235"]}]}
{
"codex": {
"ran_at": "2025-12-26T15:25:39.798413+00:00",
"returncode": 0
},
"summary": "One low-severity issue found: unchecked ERC20 return values in BuidlUSDCSource during transfers/approvals could allow silent failures with non-standard tokens.",
"raw_final": {
"summary": "One low-severity issue found: unchecked ERC20 return values in BuidlUSDCSource during transfers/approvals could allow silent failures with non-standard tokens.",
"findings": [
{
"title": "Unchecked ERC20 return values in withdrawal/redemption flow",
"category": "other",
"evidence": "`withdrawToken` uses `IERC20(usdcTokenAddress).transfer(...)` without checking the return value, and `_redeemBUIDL` calls `IERC20(buidlTokenAddress).approve(...)` directly without SafeERC20 or return-value checks.",
"severity": "low",
"locations": [
"contracts/contracts/xManager/tokenManagers/tokenSources/BuidlUSDCSource.sol:175",
"contracts/contracts/xManager/tokenManagers/tokenSources/BuidlUSDCSource.sol:235"
],
"recommendation": "Use SafeERC20 for `transfer` and `approve` (e.g., `safeTransfer` and `safeApprove`/`safeIncreaseAllowance`), or explicitly require the returned boolean to be true. Consider resetting allowance to zero before setting a new value if the token is known to require it.",
"exploit_scenario": "If the USDC or BUIDL token implementation returns false instead of reverting on failure (or requires a zero-allowance reset), `withdrawToken` and `_redeemBUIDL` can succeed and emit events even though the transfer/approval failed. This can lead to silent under-withdrawals or redemption failures without reverting, breaking accounting/operational assumptions for off-chain processes."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x0010 0000000b: JUMPI 0000000c: PUSH1 0x00 0000000e: DUP1 0000000f: REVERT 00000010: JUMPDEST 00000011: POP 00000012: PUSH1 0x04 00000014: CALLDATASIZE 00000015: LT 00000016: PUSH2 0x0142 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x91d14854 00000026: GT 00000027: PUSH2 0x00b8 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xae326465 00000031: GT 00000032: PUSH2 0x007c 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xae326465 0000003c: EQ 0000003d: PUSH2 0x0313 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xc3118459 00000047: EQ 00000048: PUSH2 0x033a 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xca15c873 00000052: EQ 00000053: PUSH2 0x0373 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xd547741f 0000005d: EQ 0000005e: PUSH2 0x0386 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0xdd04b978 00000068: EQ 00000069: PUSH2 0x0399 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0xe3667f5e 00000073: EQ 00000074: PUSH2 0x03ac 00000077: JUMPI 00000078: PUSH1 0x00 0000007a: DUP1 0000007b: REVERT 0000007c: JUMPDEST 0000007d: DUP1 0000007e: PUSH4 0x91d14854 00000083: EQ 00000084: PUSH2 0x02ab 00000087: JUMPI 00000088: DUP1 00000089: PUSH4 0x9e281a98 0000008e: EQ 0000008f: PUSH2 0x02be 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0xa217fddf 00000099: EQ 0000009a: PUSH2 0x02d1 0000009d: JUMPI 0000009e: DUP1 0000009f: PUSH4 0xa25db8ce 000000a4: EQ 000000a5: PUSH2 0x02d9 000000a8: JUMPI 000000a9: DUP1 000000aa: PUSH4 0xabd13afe 000000af: EQ 000000b0: PUSH2 0x02ec 000000b3: JUMPI 000000b4: PUSH1 0x00 000000b6: DUP1 000000b7: REVERT 000000b8: JUMPDEST 000000b9: DUP1 000000ba: PUSH4 0x7136fc3f 000000bf: GT 000000c0: PUSH2 0x010a 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0x7136fc3f 000000ca: EQ 000000cb: PUSH2 0x0207 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0x77b53ece 000000d5: EQ 000000d6: PUSH2 0x0210 000000d9: JUMPI 000000da: DUP1 000000db: PUSH4 0x786e79b3 000000e0: EQ 000000e1: PUSH2 0x0237 000000e4: JUMPI 000000e5: DUP1 000000e6: PUSH4 0x7b0e1c57 000000eb: EQ 000000ec: PUSH2 0x025e 000000ef: JUMPI 000000f0: DUP1 000000f1: PUSH4 0x85f438c1 000000f6: EQ 000000f7: PUSH2 0x0271 000000fa: JUMPI 000000fb: DUP1 000000fc: PUSH4 0x9010d07c 00000101: EQ 00000102: PUSH2 0x0298 00000105: JUMPI 00000106: PUSH1 0x00 00000108: DUP1 00000109: REVERT 0000010a: JUMPDEST 0000010b: DUP1 0000010c: PUSH4 0x01ffc9a7 00000111: EQ 00000112: PUSH2 0x0147 00000115: JUMPI 00000116: DUP1 00000117: PUSH4 0x248a9ca3 0000011c: EQ 0000011d: PUSH2 0x016f 00000120: JUMPI 00000121: DUP1 00000122: PUSH4 0x2f2ff15d 00000127: EQ 00000128: PUSH2 0x01a0 0000012b: JUMPI 0000012c: DUP1 0000012d: PUSH4 0x36568abe 00000132: EQ 00000133: PUSH2 0x01b5 00000136: JUMPI 00000137: DUP1 00000138: PUSH4 0x5469dbf7 0000013d: EQ 0000013e: PUSH2 0x01c8 00000141: JUMPI 00000142: JUMPDEST 00000143: PUSH1 0x00 00000145: DUP1 00000146: REVERT 00000147: JUMPDEST 00000148: PUSH2 0x015a 0000014b: PUSH2 0x0155 0000014e: CALLDATASIZE 0000014f: PUSH1 0x04 00000151: PUSH2 0x1766 00000154: JUMP 00000155: JUMPDEST 00000156: PUSH2 0x03d3 00000159: JUMP 0000015a: JUMPDEST 0000015b: PUSH1 0x40 0000015d: MLOAD 0000015e: SWAP1 0000015f: ISZERO 00000160: ISZERO 00000161: DUP2 00000162: MSTORE 00000163: PUSH1 0x20 00000165: ADD 00000166: JUMPDEST 00000167: PUSH1 0x40 00000169: MLOAD 0000016a: DUP1 0000016b: SWAP2 0000016c: SUB 0000016d: SWAP1 0000016e: RETURN 0000016f: JUMPDEST 00000170: PUSH2 0x0192 00000173: PUSH2 0x017d 00000176: CALLDATASIZE 00000177: PUSH1 0x04 00000179: PUSH2 0x1790 0000017c: JUMP 0000017d: JUMPDEST 0000017e: PUSH1 0x00 00000180: SWAP1 00000181: DUP2 00000182: MSTORE 00000183: PUSH1 0x20 00000185: DUP2 00000186: SWAP1 00000187: MSTORE 00000188: PUSH1 0x40 0000018a: SWAP1 0000018b: KECCAK256 0000018c: PUSH1 0x01 0000018e: ADD 0000018f: SLOAD 00000190: SWAP1 00000191: JUMP 00000192: JUMPDEST 00000193: PUSH1 0x40 00000195: MLOAD 00000196: SWAP1 00000197: DUP2 00000198: MSTORE 00000199: PUSH1 0x20 0000019b: ADD 0000019c: PUSH2 0x0166 0000019f: JUMP 000001a0: JUMPDEST 000001a1: PUSH2 0x01b3 000001a4: PUSH2 0x01ae 000001a7: CALLDATASIZE 000001a8: PUSH1 0x04 000001aa: PUSH2 0x17c1 000001ad: JUMP 000001ae: JUMPDEST 000001af: PUSH2 0x03fe 000001b2: JUMP 000001b3: JUMPDEST 000001b4: STOP 000001b5: JUMPDEST 000001b6: PUSH2 0x01b3 000001b9: PUSH2 0x01c3 000001bc: CALLDATASIZE 000001bd: PUSH1 0x04 000001bf: PUSH2 0x17c1 000001c2: JUMP 000001c3: JUMPDEST 000001c4: PUSH2 0x0429 000001c7: JUMP 000001c8: JUMPDEST 000001c9: PUSH2 0x01ef 000001cc: PUSH32 0x0000000000000000000000007712c34205737192402172409a8f7ccef8aa2aec 000001ed: DUP2 000001ee: JUMP 000001ef: JUMPDEST 000001f0: PUSH1 0x40 000001f2: MLOAD 000001f3: PUSH1 0x01 000001f5: PUSH1 0x01 000001f7: PUSH1 0xa0 000001f9: SHL 000001fa: SUB 000001fb: SWAP1 000001fc: SWAP2 000001fd: AND 000001fe: DUP2 000001ff: MSTORE 00000200: PUSH1 0x20 00000202: ADD 00000203: PUSH2 0x0166 00000206: JUMP 00000207: JUMPDEST 00000208: PUSH2 0x0192 0000020b: PUSH1 0x02 0000020d: SLOAD 0000020e: DUP2 0000020f: JUMP 00000210: JUMPDEST 00000211: PUSH2 0x01ef 00000214: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00000235: DUP2 00000236: JUMP 00000237: JUMPDEST 00000238: PUSH2 0x01ef 0000023b: PUSH32 0x00000000000000000000000031d3f59ad4aac0eee2247c65ebe8bf6e9e470a53 0000025c: DUP2 0000025d: JUMP 0000025e: JUMPDEST 0000025f: PUSH2 0x01b3 00000262: PUSH2 0x026c 00000265: CALLDATASIZE 00000266: PUSH1 0x04 00000268: PUSH2 0x17f1 0000026b: JUMP 0000026c: JUMPDEST 0000026d: PUSH2 0x04ac 00000270: JUMP 00000271: JUMPDEST 00000272: PUSH2 0x0192 00000275: PUSH32 0x10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4 00000296: DUP2 00000297: JUMP 00000298: JUMPDEST 00000299: PUSH2 0x01ef 0000029c: PUSH2 0x02a6 0000029f: CALLDATASIZE 000002a0: PUSH1 0x04 000002a2: PUSH2 0x1832 000002a5: JUMP 000002a6: JUMPDEST 000002a7: PUSH2 0x04f1 000002aa: JUMP 000002ab: JUMPDEST 000002ac: PUSH2 0x015a 000002af: PUSH2 0x02b9 000002b2: CALLDATASIZE 000002b3: PUSH1 0x04 000002b5: PUSH2 0x17c1 000002b8: JUMP 000002b9: JUMPDEST 000002ba: PUSH2 0x0510 000002bd: JUMP 000002be: JUMPDEST 000002bf: PUSH2 0x01b3 000002c2: PUSH2 0x02cc 000002c5: CALLDATASIZE 000002c6: PUSH1 0x04 000002c8: PUSH2 0x1854 000002cb: JUMP 000002cc: JUMPDEST 000002cd: PUSH2 0x0539 000002d0: JUMP 000002d1: JUMPDEST 000002d2: PUSH2 0x0192 000002d5: PUSH1 0x00 000002d7: DUP2 000002d8: JUMP 000002d9: JUMPDEST 000002da: PUSH2 0x0192 000002dd: PUSH2 0x02e7 000002e0: CALLDATASIZE 000002e1: PUSH1 0x04 000002e3: PUSH2 0x1880 000002e6: JUMP 000002e7: JUMPDEST 000002e8: PUSH2 0x08a4 000002eb: JUMP 000002ec: JUMPDEST 000002ed: PUSH2 0x01ef 000002f0: PUSH32 0x000000000000000000000000e28afec27c50096b4e98cd5546eae8414b5e7542 00000311: DUP2 00000312: JUMP 00000313: JUMPDEST 00000314: PUSH2 0x0192 00000317: PUSH32 0x810861052c688b70ad1b3f52e987e54e66428abb7c8a0114bd0da1e97be5a16f 00000338: DUP2 00000339: JUMP 0000033a: JUMPDEST 0000033b: PUSH2 0x0361 0000033e: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000006 0000035f: DUP2 00000360: JUMP 00000361: JUMPDEST 00000362: PUSH1 0x40 00000364: MLOAD 00000365: PUSH1 0xff 00000367: SWAP1 00000368: SWAP2 00000369: AND 0000036a: DUP2 0000036b: MSTORE 0000036c: PUSH1 0x20 0000036e: ADD 0000036f: PUSH2 0x0166 00000372: JUMP 00000373: JUMPDEST 00000374: PUSH2 0x0192 00000377: PUSH2 0x0381 0000037a: CALLDATASIZE 0000037b: PUSH1 0x04 0000037d: PUSH2 0x1790 00000380: JUMP 00000381: JUMPDEST 00000382: PUSH2 0x0bc7 00000385: JUMP 00000386: JUMPDEST 00000387: PUSH2 0x01b3 0000038a: PUSH2 0x0394 0000038d: CALLDATASIZE 0000038e: PUSH1 0x04 00000390: PUSH2 0x17c1 00000393: JUMP 00000394: JUMPDEST 00000395: PUSH2 0x0bde 00000398: JUMP 00000399: JUMPDEST 0000039a: PUSH2 0x01b3 0000039d: PUSH2 0x03a7 000003a0: CALLDATASIZE 000003a1: PUSH1 0x04 000003a3: PUSH2 0x1790 000003a6: JUMP 000003a7: JUMPDEST 000003a8: PUSH2 0x0c04 000003ab: JUMP 000003ac: JUMPDEST 000003ad: PUSH2 0x0361 000003b0: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000006 000003d1: DUP2 000003d2: JUMP 000003d3: JUMPDEST 000003d4: PUSH1 0x00 000003d6: PUSH1 0x01 000003d8: PUSH1 0x01 000003da: PUSH1 0xe0 000003dc: SHL 000003dd: SUB 000003de: NOT 000003df: DUP3 000003e0: AND 000003e1: PUSH4 0x5a05180f 000003e6: PUSH1 0xe0 000003e8: SHL 000003e9: EQ 000003ea: DUP1 000003eb: PUSH2 0x03f8 000003ee: JUMPI 000003ef: POP 000003f0: PUSH2 0x03f8 000003f3: DUP3 000003f4: PUSH2 0x0ceb 000003f7: JUMP 000003f8: JUMPDEST 000003f9: SWAP3 000003fa: SWAP2 000003fb: POP 000003fc: POP 000003fd: JUMP 000003fe: JUMPDEST 000003ff: PUSH1 0x00 00000401: DUP3 00000402: DUP2 00000403: MSTORE 00000404: PUSH1 0x20 00000406: DUP2 00000407: SWAP1 00000408: MSTORE 00000409: PUSH1 0x40 0000040b: SWAP1 0000040c: KECCAK256 0000040d: PUSH1 0x01 0000040f: ADD 00000410: SLOAD 00000411: PUSH2 0x041a 00000414: DUP2 00000415: CALLER 00000416: PUSH2 0x0d20 00000419: JUMP 0000041a: JUMPDEST 0000041b: PUSH2 0x0424 0000041e: DUP4 0000041f: DUP4 00000420: PUSH2 0x0d84 00000423: JUMP 00000424: JUMPDEST 00000425: POP 00000426: POP 00000427: POP 00000428: JUMP 00000429: JUMPDEST 0000042a: PUSH1 0x01 0000042c: PUSH1 0x01 0000042e: PUSH1 0xa0 00000430: SHL 00000431: SUB 00000432: DUP2 00000433: AND 00000434: CALLER 00000435: EQ 00000436: PUSH2 0x049e 00000439: JUMPI 0000043a: PUSH1 0x40 0000043c: MLOAD 0000043d: PUSH3 0x461bcd 00000441: PUSH1 0xe5 00000443: SHL 00000444: DUP2 00000445: MSTORE 00000446: PUSH1 0x20 00000448: PUSH1 0x04 0000044a: DUP3 0000044b: ADD 0000044c: MSTORE 0000044d: PUSH1 0x2f 0000044f: PUSH1 0x24 00000451: DUP3 00000452: ADD 00000453: MSTORE 00000454: PUSH32 0x416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365 00000475: PUSH1 0x44 00000477: DUP3 00000478: ADD 00000479: MSTORE 0000047a: PUSH15 0x103937b632b9903337b91039b2b633 0000048a: PUSH1 0x89 0000048c: SHL 0000048d: PUSH1 0x64 0000048f: DUP3 00000490: ADD 00000491: MSTORE 00000492: PUSH1 0x84 00000494: ADD 00000495: JUMPDEST 00000496: PUSH1 0x40 00000498: MLOAD 00000499: DUP1 0000049a: SWAP2 0000049b: SUB 0000049c: SWAP1 0000049d: REVERT 0000049e: JUMPDEST 0000049f: PUSH2 0x04a8 000004a2: DUP3 000004a3: DUP3 000004a4: PUSH2 0x0da6 000004a7: JUMP 000004a8: JUMPDEST 000004a9: POP 000004aa: POP 000004ab: JUMP 000004ac: JUMPDEST 000004ad: PUSH32 0x810861052c688b70ad1b3f52e987e54e66428abb7c8a0114bd0da1e97be5a16f 000004ce: PUSH2 0x04d7 000004d1: DUP2 000004d2: CALLER 000004d3: PUSH2 0x0d20 000004d6: JUMP 000004d7: JUMPDEST 000004d8: PUSH2 0x04eb 000004db: PUSH1 0x01 000004dd: PUSH1 0x01 000004df: PUSH1 0xa0 000004e1: SHL 000004e2: SUB 000004e3: DUP6 000004e4: AND 000004e5: DUP5 000004e6: DUP5 000004e7: PUSH2 0x0dc8 000004ea: JUMP 000004eb: JUMPDEST 000004ec: POP 000004ed: POP 000004ee: POP 000004ef: POP 000004f0: JUMP 000004f1: JUMPDEST 000004f2: PUSH1 0x00 000004f4: DUP3 000004f5: DUP2 000004f6: MSTORE 000004f7: PUSH1 0x01 000004f9: PUSH1 0x20 000004fb: MSTORE 000004fc: PUSH1 0x40 000004fe: DUP2 000004ff: KECCAK256 00000500: PUSH2 0x0509 00000503: SWAP1 00000504: DUP4 00000505: PUSH2 0x0e1a 00000508: JUMP 00000509: JUMPDEST 0000050a: SWAP4 0000050b: SWAP3 0000050c: POP 0000050d: POP 0000050e: POP 0000050f: JUMP 00000510: JUMPDEST 00000511: PUSH1 0x00 00000513: SWAP2 00000514: DUP3 00000515: MSTORE 00000516: PUSH1 0x20 00000518: DUP3 00000519: DUP2 0000051a: MSTORE 0000051b: PUSH1 0x40 0000051d: DUP1 0000051e: DUP5 0000051f: KECCAK256 00000520: PUSH1 0x01 00000522: PUSH1 0x01 00000524: PUSH1 0xa0 00000526: SHL 00000527: SUB 00000528: SWAP4 00000529: SWAP1 0000052a: SWAP4 0000052b: AND 0000052c: DUP5 0000052d: MSTORE 0000052e: SWAP2 0000052f: SWAP1 00000530: MSTORE 00000531: SWAP1 00000532: KECCAK256 00000533: SLOAD 00000534: PUSH1 0xff 00000536: AND 00000537: SWAP1 00000538: JUMP 00000539: JUMPDEST 0000053a: PUSH32 0x10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4 0000055b: PUSH2 0x0564 0000055e: DUP2 0000055f: CALLER 00000560: PUSH2 0x0d20 00000563: JUMP 00000564: JUMPDEST 00000565: PUSH1 0x40 00000567: MLOAD 00000568: PUSH4 0x02d1c057 0000056d: PUSH1 0xe2 0000056f: SHL 00000570: DUP2 00000571: MSTORE 00000572: ADDRESS 00000573: PUSH1 0x04 00000575: DUP3 00000576: ADD 00000577: MSTORE 00000578: PUSH32 0x000000000000000000000000e28afec27c50096b4e98cd5546eae8414b5e7542 00000599: PUSH1 0x01 0000059b: PUSH1 0x01 0000059d: PUSH1 0xa0 0000059f: SHL 000005a0: SUB 000005a1: AND 000005a2: SWAP1 000005a3: PUSH4 0x0b47015c 000005a8: SWAP1 000005a9: PUSH1 0x24 000005ab: ADD 000005ac: PUSH1 0x20 000005ae: PUSH1 0x40 000005b0: MLOAD 000005b1: DUP1 000005b2: DUP4 000005b3: SUB 000005b4: DUP2 000005b5: DUP7 000005b6: GAS 000005b7: STATICCALL 000005b8: ISZERO 000005b9: DUP1 000005ba: ISZERO 000005bb: PUSH2 0x05c8 000005be: JUMPI 000005bf: RETURNDATASIZE 000005c0: PUSH1 0x00 000005c2: DUP1 000005c3: RETURNDATACOPY 000005c4: RETURNDATASIZE 000005c5: PUSH1 0x00 000005c7: REVERT 000005c8: JUMPDEST 000005c9: POP 000005ca: POP 000005cb: POP 000005cc: POP 000005cd: PUSH1 0x40 000005cf: MLOAD 000005d0: RETURNDATASIZE 000005d1: PUSH1 0x1f 000005d3: NOT 000005d4: PUSH1 0x1f 000005d6: DUP3 000005d7: ADD 000005d8: AND 000005d9: DUP3 000005da: ADD 000005db: DUP1 000005dc: PUSH1 0x40 000005de: MSTORE 000005df: POP 000005e0: DUP2 000005e1: ADD 000005e2: SWAP1 000005e3: PUSH2 0x05ec 000005e6: SWAP2 000005e7: SWAP1 000005e8: PUSH2 0x189d 000005eb: JUMP 000005ec: JUMPDEST 000005ed: ISZERO 000005ee: PUSH2 0x060c 000005f1: JUMPI 000005f2: PUSH1 0x40 000005f4: MLOAD 000005f5: PUSH4 0x05ecc78d 000005fa: PUSH1 0xe1 000005fc: SHL 000005fd: DUP2 000005fe: MSTORE 000005ff: ADDRESS 00000600: PUSH1 0x04 00000602: DUP3 00000603: ADD 00000604: MSTORE 00000605: PUSH1 0x24 00000607: ADD 00000608: PUSH2 0x0495 0000060b: JUMP 0000060c: JUMPDEST 0000060d: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 0000062e: PUSH1 0x01 00000630: PUSH1 0x01 00000632: PUSH1 0xa0 00000634: SHL 00000635: SUB 00000636: AND 00000637: DUP4 00000638: PUSH1 0x01 0000063a: PUSH1 0x01 0000063c: PUSH1 0xa0 0000063e: SHL 0000063f: SUB 00000640: AND 00000641: EQ 00000642: PUSH2 0x065e 00000645: JUMPI 00000646: PUSH1 0x40 00000648: MLOAD 00000649: PUSH4 0xcdc5702f 0000064e: PUSH1 0xe0 00000650: SHL 00000651: DUP2 00000652: MSTORE 00000653: PUSH1 0x04 00000655: ADD 00000656: PUSH1 0x40 00000658: MLOAD 00000659: DUP1 0000065a: SWAP2 0000065b: SUB 0000065c: SWAP1 0000065d: REVERT 0000065e: JUMPDEST 0000065f: PUSH2 0x0666 00000662: PUSH2 0x0e26 00000665: JUMP 00000666: JUMPDEST 00000667: PUSH1 0x40 00000669: MLOAD 0000066a: PUSH4 0x70a08231 0000066f: PUSH1 0xe0 00000671: SHL 00000672: DUP2 00000673: MSTORE 00000674: ADDRESS 00000675: PUSH1 0x04 00000677: DUP3 00000678: ADD 00000679: MSTORE 0000067a: PUSH1 0x00 0000067c: SWAP1 0000067d: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 0000069e: PUSH1 0x01 000006a0: PUSH1 0x01 000006a2: PUSH1 0xa0 000006a4: SHL 000006a5: SUB 000006a6: AND 000006a7: SWAP1 000006a8: PUSH4 0x70a08231 000006ad: SWAP1 000006ae: PUSH1 0x24 000006b0: ADD 000006b1: PUSH1 0x20 000006b3: PUSH1 0x40 000006b5: MLOAD 000006b6: DUP1 000006b7: DUP4 000006b8: SUB 000006b9: DUP2 000006ba: DUP7 000006bb: GAS 000006bc: STATICCALL 000006bd: ISZERO 000006be: DUP1 000006bf: ISZERO 000006c0: PUSH2 0x06cd 000006c3: JUMPI 000006c4: RETURNDATASIZE 000006c5: PUSH1 0x00 000006c7: DUP1 000006c8: RETURNDATACOPY 000006c9: RETURNDATASIZE 000006ca: PUSH1 0x00 000006cc: REVERT 000006cd: JUMPDEST 000006ce: POP 000006cf: POP 000006d0: POP 000006d1: POP 000006d2: PUSH1 0x40 000006d4: MLOAD 000006d5: RETURNDATASIZE 000006d6: PUSH1 0x1f 000006d8: NOT 000006d9: PUSH1 0x1f 000006db: DUP3 000006dc: ADD 000006dd: AND 000006de: DUP3 000006df: ADD 000006e0: DUP1 000006e1: PUSH1 0x40 000006e3: MSTORE 000006e4: POP 000006e5: DUP2 000006e6: ADD 000006e7: SWAP1 000006e8: PUSH2 0x06f1 000006eb: SWAP2 000006ec: SWAP1 000006ed: PUSH2 0x18bf 000006f0: JUMP 000006f1: JUMPDEST 000006f2: SWAP1 000006f3: POP 000006f4: DUP1 000006f5: DUP4 000006f6: GT 000006f7: PUSH2 0x0743 000006fa: JUMPI 000006fb: PUSH32 0x4c7d87f41ddb1b12d3cbedc93adf86f93feb5c016f2af44a5af11bee7f23ac30 0000071c: DUP4 0000071d: PUSH2 0x0726 00000720: DUP2 00000721: DUP5 00000722: PUSH2 0x18ee 00000725: JUMP 00000726: JUMPDEST 00000727: PUSH1 0x40 00000729: DUP1 0000072a: MLOAD 0000072b: SWAP3 0000072c: DUP4 0000072d: MSTORE 0000072e: PUSH1 0x20 00000730: DUP4 00000731: ADD 00000732: SWAP2 00000733: SWAP1 00000734: SWAP2 00000735: MSTORE 00000736: ADD 00000737: PUSH1 0x40 00000739: MLOAD 0000073a: DUP1 0000073b: SWAP2 0000073c: SUB 0000073d: SWAP1 0000073e: LOG1 0000073f: PUSH2 0x07ca 00000742: JUMP 00000743: JUMPDEST 00000744: PUSH1 0x02 00000746: SLOAD 00000747: PUSH2 0x0750 0000074a: DUP3 0000074b: DUP6 0000074c: PUSH2 0x18ee 0000074f: JUMP 00000750: JUMPDEST 00000751: LT 00000752: PUSH2 0x076c 00000755: JUMPI 00000756: PUSH2 0x0767 00000759: PUSH2 0x0762 0000075c: DUP3 0000075d: DUP6 0000075e: PUSH2 0x18ee 00000761: JUMP 00000762: JUMPDEST 00000763: PUSH2 0x1018 00000766: JUMP 00000767: JUMPDEST 00000768: PUSH2 0x07ca 0000076b: JUMP 0000076c: JUMPDEST 0000076d: PUSH2 0x0777 00000770: PUSH1 0x02 00000772: SLOAD 00000773: PUSH2 0x1018 00000776: JUMP 00000777: JUMPDEST 00000778: PUSH1 0x02 0000077a: SLOAD 0000077b: PUSH32 0x48ba121928fc012f6ec7e92aa6c026080ad4b1b465504d00c9d691aedbf5d2cc 0000079c: SWAP1 0000079d: DUP5 0000079e: PUSH2 0x07a7 000007a1: DUP3 000007a2: DUP6 000007a3: PUSH2 0x1901 000007a6: JUMP 000007a7: JUMPDEST 000007a8: PUSH2 0x07b1 000007ab: SWAP2 000007ac: SWAP1 000007ad: PUSH2 0x18ee 000007b0: JUMP 000007b1: JUMPDEST 000007b2: PUSH1 0x40 000007b4: DUP1 000007b5: MLOAD 000007b6: SWAP3 000007b7: DUP4 000007b8: MSTORE 000007b9: PUSH1 0x20 000007bb: DUP4 000007bc: ADD 000007bd: SWAP2 000007be: SWAP1 000007bf: SWAP2 000007c0: MSTORE 000007c1: ADD 000007c2: PUSH1 0x40 000007c4: MLOAD 000007c5: DUP1 000007c6: SWAP2 000007c7: SUB 000007c8: SWAP1 000007c9: LOG1 000007ca: JUMPDEST 000007cb: PUSH1 0x40 000007cd: MLOAD 000007ce: PUSH4 0xa9059cbb 000007d3: PUSH1 0xe0 000007d5: SHL 000007d6: DUP2 000007d7: MSTORE 000007d8: CALLER 000007d9: PUSH1 0x04 000007db: DUP3 000007dc: ADD 000007dd: MSTORE 000007de: PUSH1 0x24 000007e0: DUP2 000007e1: ADD 000007e2: DUP5 000007e3: SWAP1 000007e4: MSTORE 000007e5: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00000806: PUSH1 0x01 00000808: PUSH1 0x01 0000080a: PUSH1 0xa0 0000080c: SHL 0000080d: SUB 0000080e: AND 0000080f: SWAP1 00000810: PUSH4 0xa9059cbb 00000815: SWAP1 00000816: PUSH1 0x44 00000818: ADD 00000819: PUSH1 0x20 0000081b: PUSH1 0x40 0000081d: MLOAD 0000081e: DUP1 0000081f: DUP4 00000820: SUB 00000821: DUP2 00000822: PUSH1 0x00 00000824: DUP8 00000825: GAS 00000826: CALL 00000827: ISZERO 00000828: DUP1 00000829: ISZERO 0000082a: PUSH2 0x0837 0000082d: JUMPI 0000082e: RETURNDATASIZE 0000082f: PUSH1 0x00 00000831: DUP1 00000832: RETURNDATACOPY 00000833: RETURNDATASIZE 00000834: PUSH1 0x00 00000836: REVERT 00000837: JUMPDEST 00000838: POP 00000839: POP 0000083a: POP 0000083b: POP 0000083c: PUSH1 0x40 0000083e: MLOAD 0000083f: RETURNDATASIZE 00000840: PUSH1 0x1f 00000842: NOT 00000843: PUSH1 0x1f 00000845: DUP3 00000846: ADD 00000847: AND 00000848: DUP3 00000849: ADD 0000084a: DUP1 0000084b: PUSH1 0x40 0000084d: MSTORE 0000084e: POP 0000084f: DUP2 00000850: ADD 00000851: SWAP1 00000852: PUSH2 0x085b 00000855: SWAP2 00000856: SWAP1 00000857: PUSH2 0x189d 0000085a: JUMP 0000085b: JUMPDEST 0000085c: POP 0000085d: PUSH1 0x40 0000085f: MLOAD 00000860: DUP4 00000861: DUP2 00000862: MSTORE 00000863: PUSH1 0x01 00000865: PUSH1 0x01 00000867: PUSH1 0xa0 00000869: SHL 0000086a: SUB 0000086b: DUP6 0000086c: AND 0000086d: SWAP1 0000086e: ADDRESS 0000086f: SWAP1 00000870: CALLER 00000871: SWAP1 00000872: PUSH32 0xedf7bea45e16025d7f82902171a24376f5f3a2c06d9d8c2be4d41bbc7292f74a 00000893: SWAP1 00000894: PUSH1 0x20 00000896: ADD 00000897: PUSH1 0x40 00000899: MLOAD 0000089a: DUP1 0000089b: SWAP2 0000089c: SUB 0000089d: SWAP1 0000089e: LOG4 0000089f: POP 000008a0: POP 000008a1: POP 000008a2: POP 000008a3: JUMP 000008a4: JUMPDEST 000008a5: PUSH1 0x00 000008a7: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 000008c8: PUSH1 0x01 000008ca: PUSH1 0x01 000008cc: PUSH1 0xa0 000008ce: SHL 000008cf: SUB 000008d0: AND 000008d1: DUP3 000008d2: PUSH1 0x01 000008d4: PUSH1 0x01 000008d6: PUSH1 0xa0 000008d8: SHL 000008d9: SUB 000008da: AND 000008db: EQ 000008dc: PUSH2 0x08f8 000008df: JUMPI 000008e0: PUSH1 0x40 000008e2: MLOAD 000008e3: PUSH4 0xcdc5702f 000008e8: PUSH1 0xe0 000008ea: SHL 000008eb: DUP2 000008ec: MSTORE 000008ed: PUSH1 0x04 000008ef: ADD 000008f0: PUSH1 0x40 000008f2: MLOAD 000008f3: DUP1 000008f4: SWAP2 000008f5: SUB 000008f6: SWAP1 000008f7: REVERT 000008f8: JUMPDEST 000008f9: PUSH1 0x40 000008fb: MLOAD 000008fc: PUSH4 0x02d1c057 00000901: PUSH1 0xe2 00000903: SHL 00000904: DUP2 00000905: MSTORE 00000906: ADDRESS 00000907: PUSH1 0x04 00000909: DUP3 0000090a: ADD 0000090b: MSTORE 0000090c: PUSH32 0x000000000000000000000000e28afec27c50096b4e98cd5546eae8414b5e7542 0000092d: PUSH1 0x01 0000092f: PUSH1 0x01 00000931: PUSH1 0xa0 00000933: SHL 00000934: SUB 00000935: AND 00000936: SWAP1 00000937: PUSH4 0x0b47015c 0000093c: SWAP1 0000093d: PUSH1 0x24 0000093f: ADD 00000940: PUSH1 0x20 00000942: PUSH1 0x40 00000944: MLOAD 00000945: DUP1 00000946: DUP4 00000947: SUB 00000948: DUP2 00000949: DUP7 0000094a: GAS 0000094b: STATICCALL 0000094c: ISZERO 0000094d: DUP1 0000094e: ISZERO 0000094f: PUSH2 0x095c 00000952: JUMPI 00000953: RETURNDATASIZE 00000954: PUSH1 0x00 00000956: DUP1 00000957: RETURNDATACOPY 00000958: RETURNDATASIZE 00000959: PUSH1 0x00 0000095b: REVERT 0000095c: JUMPDEST 0000095d: POP 0000095e: POP 0000095f: POP 00000960: POP 00000961: PUSH1 0x40 00000963: MLOAD 00000964: RETURNDATASIZE 00000965: PUSH1 0x1f 00000967: NOT 00000968: PUSH1 0x1f 0000096a: DUP3 0000096b: ADD 0000096c: AND 0000096d: DUP3 0000096e: ADD 0000096f: DUP1 00000970: PUSH1 0x40 00000972: MSTORE 00000973: POP 00000974: DUP2 00000975: ADD 00000976: SWAP1 00000977: PUSH2 0x0980 0000097a: SWAP2 0000097b: SWAP1 0000097c: PUSH2 0x189d 0000097f: JUMP 00000980: JUMPDEST 00000981: ISZERO 00000982: PUSH2 0x098d 00000985: JUMPI 00000986: POP 00000987: PUSH1 0x00 00000989: SWAP2 0000098a: SWAP1 0000098b: POP 0000098c: JUMP 0000098d: JUMPDEST 0000098e: PUSH1 0x40 00000990: MLOAD 00000991: PUSH4 0x70a08231 00000996: PUSH1 0xe0 00000998: SHL 00000999: DUP2 0000099a: MSTORE 0000099b: ADDRESS 0000099c: PUSH1 0x04 0000099e: DUP3 0000099f: ADD 000009a0: MSTORE 000009a1: PUSH1 0x00 000009a3: SWAP1 000009a4: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 000009c5: PUSH1 0x01 000009c7: PUSH1 0x01 000009c9: PUSH1 0xa0 000009cb: SHL 000009cc: SUB 000009cd: AND 000009ce: SWAP1 000009cf: PUSH4 0x70a08231 000009d4: SWAP1 000009d5: PUSH1 0x24 000009d7: ADD 000009d8: PUSH1 0x20 000009da: PUSH1 0x40 000009dc: MLOAD 000009dd: DUP1 000009de: DUP4 000009df: SUB 000009e0: DUP2 000009e1: DUP7 000009e2: GAS 000009e3: STATICCALL 000009e4: ISZERO 000009e5: DUP1 000009e6: ISZERO 000009e7: PUSH2 0x09f4 000009ea: JUMPI 000009eb: RETURNDATASIZE 000009ec: PUSH1 0x00 000009ee: DUP1 000009ef: RETURNDATACOPY 000009f0: RETURNDATASIZE 000009f1: PUSH1 0x00 000009f3: REVERT 000009f4: JUMPDEST 000009f5: POP 000009f6: POP 000009f7: POP 000009f8: POP 000009f9: PUSH1 0x40 000009fb: MLOAD 000009fc: RETURNDATASIZE 000009fd: PUSH1 0x1f 000009ff: NOT 00000a00: PUSH1 0x1f 00000a02: DUP3 00000a03: ADD 00000a04: AND 00000a05: DUP3 00000a06: ADD 00000a07: DUP1 00000a08: PUSH1 0x40 00000a0a: MSTORE 00000a0b: POP 00000a0c: DUP2 00000a0d: ADD 00000a0e: SWAP1 00000a0f: PUSH2 0x0a18 00000a12: SWAP2 00000a13: SWAP1 00000a14: PUSH2 0x18bf 00000a17: JUMP 00000a18: JUMPDEST 00000a19: PUSH1 0x40 00000a1b: MLOAD 00000a1c: PUSH4 0x70a08231 00000a21: PUSH1 0xe0 00000a23: SHL 00000a24: DUP2 00000a25: MSTORE 00000a26: ADDRESS 00000a27: PUSH1 0x04 00000a29: DUP3 00000a2a: ADD 00000a2b: MSTORE 00000a2c: SWAP1 00000a2d: SWAP2 00000a2e: POP 00000a2f: PUSH1 0x00 00000a31: SWAP1 00000a32: PUSH1 0x01 00000a34: PUSH1 0x01 00000a36: PUSH1 0xa0 00000a38: SHL 00000a39: SUB 00000a3a: PUSH32 0x0000000000000000000000007712c34205737192402172409a8f7ccef8aa2aec 00000a5b: AND 00000a5c: SWAP1 00000a5d: PUSH4 0x70a08231 00000a62: SWAP1 00000a63: PUSH1 0x24 00000a65: ADD 00000a66: PUSH1 0x20 00000a68: PUSH1 0x40 00000a6a: MLOAD 00000a6b: DUP1 00000a6c: DUP4 00000a6d: SUB 00000a6e: DUP2 00000a6f: DUP7 00000a70: GAS 00000a71: STATICCALL 00000a72: ISZERO 00000a73: DUP1 00000a74: ISZERO 00000a75: PUSH2 0x0a82 00000a78: JUMPI 00000a79: RETURNDATASIZE 00000a7a: PUSH1 0x00 00000a7c: DUP1 00000a7d: RETURNDATACOPY 00000a7e: RETURNDATASIZE 00000a7f: PUSH1 0x00 00000a81: REVERT 00000a82: JUMPDEST 00000a83: POP 00000a84: POP 00000a85: POP 00000a86: POP 00000a87: PUSH1 0x40 00000a89: MLOAD 00000a8a: RETURNDATASIZE 00000a8b: PUSH1 0x1f 00000a8d: NOT 00000a8e: PUSH1 0x1f 00000a90: DUP3 00000a91: ADD 00000a92: AND 00000a93: DUP3 00000a94: ADD 00000a95: DUP1 00000a96: PUSH1 0x40 00000a98: MSTORE 00000a99: POP 00000a9a: DUP2 00000a9b: ADD 00000a9c: SWAP1 00000a9d: PUSH2 0x0aa6 00000aa0: SWAP2 00000aa1: SWAP1 00000aa2: PUSH2 0x18bf 00000aa5: JUMP 00000aa6: JUMPDEST 00000aa7: SWAP1 00000aa8: POP 00000aa9: PUSH1 0x02 00000aab: SLOAD 00000aac: DUP2 00000aad: LT 00000aae: ISZERO 00000aaf: PUSH2 0x0ab9 00000ab2: JUMPI 00000ab3: POP 00000ab4: SWAP3 00000ab5: SWAP2 00000ab6: POP 00000ab7: POP 00000ab8: JUMP 00000ab9: JUMPDEST 00000aba: PUSH1 0x00 00000abc: PUSH32 0x00000000000000000000000031d3f59ad4aac0eee2247c65ebe8bf6e9e470a53 00000add: PUSH1 0x01 00000adf: PUSH1 0x01 00000ae1: PUSH1 0xa0 00000ae3: SHL 00000ae4: SUB 00000ae5: AND 00000ae6: PUSH4 0x51160630 00000aeb: PUSH1 0x40 00000aed: MLOAD 00000aee: DUP2 00000aef: PUSH4 0xffffffff 00000af4: AND 00000af5: PUSH1 0xe0 00000af7: SHL 00000af8: DUP2 00000af9: MSTORE 00000afa: PUSH1 0x04 00000afc: ADD 00000afd: PUSH1 0x20 00000aff: PUSH1 0x40 00000b01: MLOAD 00000b02: DUP1 00000b03: DUP4 00000b04: SUB 00000b05: DUP2 00000b06: DUP7 00000b07: GAS 00000b08: STATICCALL 00000b09: ISZERO 00000b0a: DUP1 00000b0b: ISZERO 00000b0c: PUSH2 0x0b19 00000b0f: JUMPI 00000b10: RETURNDATASIZE 00000b11: PUSH1 0x00 00000b13: DUP1 00000b14: RETURNDATACOPY 00000b15: RETURNDATASIZE 00000b16: PUSH1 0x00 00000b18: REVERT 00000b19: JUMPDEST 00000b1a: POP 00000b1b: POP 00000b1c: POP 00000b1d: POP 00000b1e: PUSH1 0x40 00000b20: MLOAD 00000b21: RETURNDATASIZE 00000b22: PUSH1 0x1f 00000b24: NOT 00000b25: PUSH1 0x1f 00000b27: DUP3 00000b28: ADD 00000b29: AND 00000b2a: DUP3 00000b2b: ADD 00000b2c: DUP1 00000b2d: PUSH1 0x40 00000b2f: MSTORE 00000b30: POP 00000b31: DUP2 00000b32: ADD 00000b33: SWAP1 00000b34: PUSH2 0x0b3d 00000b37: SWAP2 00000b38: SWAP1 00000b39: PUSH2 0x1914 00000b3c: JUMP 00000b3d: JUMPDEST 00000b3e: PUSH1 0x01 00000b40: PUSH1 0x01 00000b42: PUSH1 0xa0 00000b44: SHL 00000b45: SUB 00000b46: AND 00000b47: PUSH4 0x74375359 00000b4c: PUSH1 0x40 00000b4e: MLOAD 00000b4f: DUP2 00000b50: PUSH4 0xffffffff 00000b55: AND 00000b56: PUSH1 0xe0 00000b58: SHL 00000b59: DUP2 00000b5a: MSTORE 00000b5b: PUSH1 0x04 00000b5d: ADD 00000b5e: PUSH1 0x20 00000b60: PUSH1 0x40 00000b62: MLOAD 00000b63: DUP1 00000b64: DUP4 00000b65: SUB 00000b66: DUP2 00000b67: DUP7 00000b68: GAS 00000b69: STATICCALL 00000b6a: ISZERO 00000b6b: DUP1 00000b6c: ISZERO 00000b6d: PUSH2 0x0b7a 00000b70: JUMPI 00000b71: RETURNDATASIZE 00000b72: PUSH1 0x00 00000b74: DUP1 00000b75: RETURNDATACOPY 00000b76: RETURNDATASIZE 00000b77: PUSH1 0x00 00000b79: REVERT 00000b7a: JUMPDEST 00000b7b: POP 00000b7c: POP 00000b7d: POP 00000b7e: POP 00000b7f: PUSH1 0x40 00000b81: MLOAD 00000b82: RETURNDATASIZE 00000b83: PUSH1 0x1f 00000b85: NOT 00000b86: PUSH1 0x1f 00000b88: DUP3 00000b89: ADD 00000b8a: AND 00000b8b: DUP3 00000b8c: ADD 00000b8d: DUP1 00000b8e: PUSH1 0x40 00000b90: MSTORE 00000b91: POP 00000b92: DUP2 00000b93: ADD 00000b94: SWAP1 00000b95: PUSH2 0x0b9e 00000b98: SWAP2 00000b99: SWAP1 00000b9a: PUSH2 0x18bf 00000b9d: JUMP 00000b9e: JUMPDEST 00000b9f: SWAP1 00000ba0: POP 00000ba1: PUSH1 0x00 00000ba3: DUP2 00000ba4: DUP4 00000ba5: GT 00000ba6: PUSH2 0x0baf 00000ba9: JUMPI 00000baa: DUP3 00000bab: PUSH2 0x0bb1 00000bae: JUMP 00000baf: JUMPDEST 00000bb0: DUP2 00000bb1: JUMPDEST 00000bb2: SWAP1 00000bb3: POP 00000bb4: PUSH2 0x0bbd 00000bb7: DUP2 00000bb8: DUP6 00000bb9: PUSH2 0x1901 00000bbc: JUMP 00000bbd: JUMPDEST 00000bbe: SWAP7 00000bbf: SWAP6 00000bc0: POP 00000bc1: POP 00000bc2: POP 00000bc3: POP 00000bc4: POP 00000bc5: POP 00000bc6: JUMP 00000bc7: JUMPDEST 00000bc8: PUSH1 0x00 00000bca: DUP2 00000bcb: DUP2 00000bcc: MSTORE 00000bcd: PUSH1 0x01 00000bcf: PUSH1 0x20 00000bd1: MSTORE 00000bd2: PUSH1 0x40 00000bd4: DUP2 00000bd5: KECCAK256 00000bd6: PUSH2 0x03f8 00000bd9: SWAP1 00000bda: PUSH2 0x1369 00000bdd: JUMP 00000bde: JUMPDEST 00000bdf: PUSH1 0x00 00000be1: DUP3 00000be2: DUP2 00000be3: MSTORE 00000be4: PUSH1 0x20 00000be6: DUP2 00000be7: SWAP1 00000be8: MSTORE 00000be9: PUSH1 0x40 00000beb: SWAP1 00000bec: KECCAK256 00000bed: PUSH1 0x01 00000bef: ADD 00000bf0: SLOAD 00000bf1: PUSH2 0x0bfa 00000bf4: DUP2 00000bf5: CALLER 00000bf6: PUSH2 0x0d20 00000bf9: JUMP 00000bfa: JUMPDEST 00000bfb: PUSH2 0x0424 00000bfe: DUP4 00000bff: DUP4 00000c00: PUSH2 0x0da6 00000c03: JUMP 00000c04: JUMPDEST 00000c05: PUSH1 0x00 00000c07: PUSH2 0x0c10 00000c0a: DUP2 00000c0b: CALLER 00000c0c: PUSH2 0x0d20 00000c0f: JUMP 00000c10: JUMPDEST 00000c11: PUSH1 0x02 00000c13: SLOAD 00000c14: PUSH1 0x40 00000c16: DUP1 00000c17: MLOAD 00000c18: SWAP2 00000c19: DUP3 00000c1a: MSTORE 00000c1b: PUSH1 0x20 00000c1d: DUP3 00000c1e: ADD 00000c1f: DUP5 00000c20: SWAP1 00000c21: MSTORE 00000c22: PUSH32 0xcf8e1df7739f4180a94a519c96fdedb840b57543ce874b151e131cf90e416d9a 00000c43: SWAP2 00000c44: ADD 00000c45: PUSH1 0x40 00000c47: MLOAD 00000c48: DUP1 00000c49: SWAP2 00000c4a: SUB 00000c4b: SWAP1 00000c4c: LOG1 00000c4d: POP 00000c4e: PUSH1 0x02 00000c50: SSTORE 00000c51: JUMP 00000c52: JUMPDEST 00000c53: PUSH2 0x0c5c 00000c56: DUP3 00000c57: DUP3 00000c58: PUSH2 0x0510 00000c5b: JUMP 00000c5c: JUMPDEST 00000c5d: PUSH2 0x04a8 00000c60: JUMPI 00000c61: PUSH1 0x00 00000c63: DUP3 00000c64: DUP2 00000c65: MSTORE 00000c66: PUSH1 0x20 00000c68: DUP2 00000c69: DUP2 00000c6a: MSTORE 00000c6b: PUSH1 0x40 00000c6d: DUP1 00000c6e: DUP4 00000c6f: KECCAK256 00000c70: PUSH1 0x01 00000c72: PUSH1 0x01 00000c74: PUSH1 0xa0 00000c76: SHL 00000c77: SUB 00000c78: DUP6 00000c79: AND 00000c7a: DUP5 00000c7b: MSTORE 00000c7c: SWAP1 00000c7d: SWAP2 00000c7e: MSTORE 00000c7f: SWAP1 00000c80: KECCAK256 00000c81: DUP1 00000c82: SLOAD 00000c83: PUSH1 0xff 00000c85: NOT 00000c86: AND 00000c87: PUSH1 0x01 00000c89: OR 00000c8a: SWAP1 00000c8b: SSTORE 00000c8c: PUSH2 0x0c92 00000c8f: CALLER 00000c90: SWAP1 00000c91: JUMP 00000c92: JUMPDEST 00000c93: PUSH1 0x01 00000c95: PUSH1 0x01 00000c97: PUSH1 0xa0 00000c99: SHL 00000c9a: SUB 00000c9b: AND 00000c9c: DUP2 00000c9d: PUSH1 0x01 00000c9f: PUSH1 0x01 00000ca1: PUSH1 0xa0 00000ca3: SHL 00000ca4: SUB 00000ca5: AND 00000ca6: DUP4 00000ca7: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 00000cc8: PUSH1 0x40 00000cca: MLOAD 00000ccb: PUSH1 0x40 00000ccd: MLOAD 00000cce: DUP1 00000ccf: SWAP2 00000cd0: SUB 00000cd1: SWAP1 00000cd2: LOG4 00000cd3: POP 00000cd4: POP 00000cd5: JUMP 00000cd6: JUMPDEST 00000cd7: PUSH1 0x00 00000cd9: PUSH2 0x0509 00000cdc: DUP4 00000cdd: PUSH1 0x01 00000cdf: PUSH1 0x01 00000ce1: PUSH1 0xa0 00000ce3: SHL 00000ce4: SUB 00000ce5: DUP5 00000ce6: AND 00000ce7: PUSH2 0x1373 00000cea: JUMP 00000ceb: JUMPDEST 00000cec: PUSH1 0x00 00000cee: PUSH1 0x01 00000cf0: PUSH1 0x01 00000cf2: PUSH1 0xe0 00000cf4: SHL 00000cf5: SUB 00000cf6: NOT 00000cf7: DUP3 00000cf8: AND 00000cf9: PUSH4 0x7965db0b 00000cfe: PUSH1 0xe0 00000d00: SHL 00000d01: EQ 00000d02: DUP1 00000d03: PUSH2 0x03f8 00000d06: JUMPI 00000d07: POP 00000d08: PUSH4 0x01ffc9a7 00000d0d: PUSH1 0xe0 00000d0f: SHL 00000d10: PUSH1 0x01 00000d12: PUSH1 0x01 00000d14: PUSH1 0xe0 00000d16: SHL 00000d17: SUB 00000d18: NOT 00000d19: DUP4 00000d1a: AND 00000d1b: EQ 00000d1c: PUSH2 0x03f8 00000d1f: JUMP 00000d20: JUMPDEST 00000d21: PUSH2 0x0d2a 00000d24: DUP3 00000d25: DUP3 00000d26: PUSH2 0x0510 00000d29: JUMP 00000d2a: JUMPDEST 00000d2b: PUSH2 0x04a8 00000d2e: JUMPI 00000d2f: PUSH2 0x0d42 00000d32: DUP2 00000d33: PUSH1 0x01 00000d35: PUSH1 0x01 00000d37: PUSH1 0xa0 00000d39: SHL 00000d3a: SUB 00000d3b: AND 00000d3c: PUSH1 0x14 00000d3e: PUSH2 0x13c2 00000d41: JUMP 00000d42: JUMPDEST 00000d43: PUSH2 0x0d4d 00000d46: DUP4 00000d47: PUSH1 0x20 00000d49: PUSH2 0x13c2 00000d4c: JUMP 00000d4d: JUMPDEST 00000d4e: PUSH1 0x40 00000d50: MLOAD 00000d51: PUSH1 0x20 00000d53: ADD 00000d54: PUSH2 0x0d5e 00000d57: SWAP3 00000d58: SWAP2 00000d59: SWAP1 00000d5a: PUSH2 0x1955 00000d5d: JUMP 00000d5e: JUMPDEST 00000d5f: PUSH1 0x40 00000d61: DUP1 00000d62: MLOAD 00000d63: PUSH1 0x1f 00000d65: NOT 00000d66: DUP2 00000d67: DUP5 00000d68: SUB 00000d69: ADD 00000d6a: DUP2 00000d6b: MSTORE 00000d6c: SWAP1 00000d6d: DUP3 00000d6e: SWAP1 00000d6f: MSTORE 00000d70: PUSH3 0x461bcd 00000d74: PUSH1 0xe5 00000d76: SHL 00000d77: DUP3 00000d78: MSTORE 00000d79: PUSH2 0x0495 00000d7c: SWAP2 00000d7d: PUSH1 0x04 00000d7f: ADD 00000d80: PUSH2 0x19ca 00000d83: JUMP 00000d84: JUMPDEST 00000d85: PUSH2 0x0d8e 00000d88: DUP3 00000d89: DUP3 00000d8a: PUSH2 0x0c52 00000d8d: JUMP 00000d8e: JUMPDEST 00000d8f: PUSH1 0x00 00000d91: DUP3 00000d92: DUP2 00000d93: MSTORE 00000d94: PUSH1 0x01 00000d96: PUSH1 0x20 00000d98: MSTORE 00000d99: PUSH1 0x40 00000d9b: SWAP1 00000d9c: KECCAK256 00000d9d: PUSH2 0x0424 00000da0: SWAP1 00000da1: DUP3 00000da2: PUSH2 0x0cd6 00000da5: JUMP 00000da6: JUMPDEST 00000da7: PUSH2 0x0db0 00000daa: DUP3 00000dab: DUP3 00000dac: PUSH2 0x155e 00000daf: JUMP 00000db0: JUMPDEST 00000db1: PUSH1 0x00 00000db3: DUP3 00000db4: DUP2 00000db5: MSTORE 00000db6: PUSH1 0x01 00000db8: PUSH1 0x20 00000dba: MSTORE 00000dbb: PUSH1 0x40 00000dbd: SWAP1 00000dbe: KECCAK256 00000dbf: PUSH2 0x0424 00000dc2: SWAP1 00000dc3: DUP3 00000dc4: PUSH2 0x15c3 00000dc7: JUMP 00000dc8: JUMPDEST 00000dc9: PUSH1 0x40 00000dcb: DUP1 00000dcc: MLOAD 00000dcd: PUSH1 0x01 00000dcf: PUSH1 0x01 00000dd1: PUSH1 0xa0 00000dd3: SHL 00000dd4: SUB 00000dd5: DUP5 00000dd6: AND 00000dd7: PUSH1 0x24 00000dd9: DUP3 00000dda: ADD 00000ddb: MSTORE 00000ddc: PUSH1 0x44 00000dde: DUP1 00000ddf: DUP3 00000de0: ADD 00000de1: DUP5 00000de2: SWAP1 00000de3: MSTORE 00000de4: DUP3 00000de5: MLOAD 00000de6: DUP1 00000de7: DUP4 00000de8: SUB 00000de9: SWAP1 00000dea: SWAP2 00000deb: ADD 00000dec: DUP2 00000ded: MSTORE 00000dee: PUSH1 0x64 00000df0: SWAP1 00000df1: SWAP2 00000df2: ADD 00000df3: SWAP1 00000df4: SWAP2 00000df5: MSTORE 00000df6: PUSH1 0x20 00000df8: DUP2 00000df9: ADD 00000dfa: DUP1 00000dfb: MLOAD 00000dfc: PUSH1 0x01 00000dfe: PUSH1 0x01 00000e00: PUSH1 0xe0 00000e02: SHL 00000e03: SUB 00000e04: AND 00000e05: PUSH4 0xa9059cbb 00000e0a: PUSH1 0xe0 00000e0c: SHL 00000e0d: OR 00000e0e: SWAP1 00000e0f: MSTORE 00000e10: PUSH2 0x0424 00000e13: SWAP1 00000e14: DUP5 00000e15: SWAP1 00000e16: PUSH2 0x15d8 00000e19: JUMP 00000e1a: JUMPDEST 00000e1b: PUSH1 0x00 00000e1d: PUSH2 0x0509 00000e20: DUP4 00000e21: DUP4 00000e22: PUSH2 0x1649 00000e25: JUMP 00000e26: JUMPDEST 00000e27: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000006 00000e48: PUSH1 0xff 00000e4a: AND 00000e4b: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00000e6c: PUSH1 0x01 00000e6e: PUSH1 0x01 00000e70: PUSH1 0xa0 00000e72: SHL 00000e73: SUB 00000e74: AND 00000e75: PUSH4 0x313ce567 00000e7a: PUSH1 0x40 00000e7c: MLOAD 00000e7d: DUP2 00000e7e: PUSH4 0xffffffff 00000e83: AND 00000e84: PUSH1 0xe0 00000e86: SHL 00000e87: DUP2 00000e88: MSTORE 00000e89: PUSH1 0x04 00000e8b: ADD 00000e8c: PUSH1 0x20 00000e8e: PUSH1 0x40 00000e90: MLOAD 00000e91: DUP1 00000e92: DUP4 00000e93: SUB 00000e94: DUP2 00000e95: DUP7 00000e96: GAS 00000e97: STATICCALL 00000e98: ISZERO 00000e99: DUP1 00000e9a: ISZERO 00000e9b: PUSH2 0x0ea8 00000e9e: JUMPI 00000e9f: RETURNDATASIZE 00000ea0: PUSH1 0x00 00000ea2: DUP1 00000ea3: RETURNDATACOPY 00000ea4: RETURNDATASIZE 00000ea5: PUSH1 0x00 00000ea7: REVERT 00000ea8: JUMPDEST 00000ea9: POP 00000eaa: POP 00000eab: POP 00000eac: POP 00000ead: PUSH1 0x40 00000eaf: MLOAD 00000eb0: RETURNDATASIZE 00000eb1: PUSH1 0x1f 00000eb3: NOT 00000eb4: PUSH1 0x1f 00000eb6: DUP3 00000eb7: ADD 00000eb8: AND 00000eb9: DUP3 00000eba: ADD 00000ebb: DUP1 00000ebc: PUSH1 0x40 00000ebe: MSTORE 00000ebf: POP 00000ec0: DUP2 00000ec1: ADD 00000ec2: SWAP1 00000ec3: PUSH2 0x0ecc 00000ec6: SWAP2 00000ec7: SWAP1 00000ec8: PUSH2 0x19fd 00000ecb: JUMP 00000ecc: JUMPDEST 00000ecd: PUSH1 0xff 00000ecf: AND 00000ed0: EQ 00000ed1: PUSH2 0x0f1e 00000ed4: JUMPI 00000ed5: PUSH1 0x40 00000ed7: MLOAD 00000ed8: PUSH4 0xae4bcf5d 00000edd: PUSH1 0xe0 00000edf: SHL 00000ee0: DUP2 00000ee1: MSTORE 00000ee2: ADDRESS 00000ee3: PUSH1 0x04 00000ee5: DUP3 00000ee6: ADD 00000ee7: MSTORE 00000ee8: PUSH1 0x01 00000eea: PUSH1 0x01 00000eec: PUSH1 0xa0 00000eee: SHL 00000eef: SUB 00000ef0: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00000f11: AND 00000f12: PUSH1 0x24 00000f14: DUP3 00000f15: ADD 00000f16: MSTORE 00000f17: PUSH1 0x44 00000f19: ADD 00000f1a: PUSH2 0x0495 00000f1d: JUMP 00000f1e: JUMPDEST 00000f1f: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000006 00000f40: PUSH1 0xff 00000f42: AND 00000f43: PUSH32 0x0000000000000000000000007712c34205737192402172409a8f7ccef8aa2aec 00000f64: PUSH1 0x01 00000f66: PUSH1 0x01 00000f68: PUSH1 0xa0 00000f6a: SHL 00000f6b: SUB 00000f6c: AND 00000f6d: PUSH4 0x313ce567 00000f72: PUSH1 0x40 00000f74: MLOAD 00000f75: DUP2 00000f76: PUSH4 0xffffffff 00000f7b: AND 00000f7c: PUSH1 0xe0 00000f7e: SHL 00000f7f: DUP2 00000f80: MSTORE 00000f81: PUSH1 0x04 00000f83: ADD 00000f84: PUSH1 0x20 00000f86: PUSH1 0x40 00000f88: MLOAD 00000f89: DUP1 00000f8a: DUP4 00000f8b: SUB 00000f8c: DUP2 00000f8d: DUP7 00000f8e: GAS 00000f8f: STATICCALL 00000f90: ISZERO 00000f91: DUP1 00000f92: ISZERO 00000f93: PUSH2 0x0fa0 00000f96: JUMPI 00000f97: RETURNDATASIZE 00000f98: PUSH1 0x00 00000f9a: DUP1 00000f9b: RETURNDATACOPY 00000f9c: RETURNDATASIZE 00000f9d: PUSH1 0x00 00000f9f: REVERT 00000fa0: JUMPDEST 00000fa1: POP 00000fa2: POP 00000fa3: POP 00000fa4: POP 00000fa5: PUSH1 0x40 00000fa7: MLOAD 00000fa8: RETURNDATASIZE 00000fa9: PUSH1 0x1f 00000fab: NOT 00000fac: PUSH1 0x1f 00000fae: DUP3 00000faf: ADD 00000fb0: AND 00000fb1: DUP3 00000fb2: ADD 00000fb3: DUP1 00000fb4: PUSH1 0x40 00000fb6: MSTORE 00000fb7: POP 00000fb8: DUP2 00000fb9: ADD 00000fba: SWAP1 00000fbb: PUSH2 0x0fc4 00000fbe: SWAP2 00000fbf: SWAP1 00000fc0: PUSH2 0x19fd 00000fc3: JUMP 00000fc4: JUMPDEST 00000fc5: PUSH1 0xff 00000fc7: AND 00000fc8: EQ 00000fc9: PUSH2 0x1016 00000fcc: JUMPI 00000fcd: PUSH1 0x40 00000fcf: MLOAD 00000fd0: PUSH4 0xae4bcf5d 00000fd5: PUSH1 0xe0 00000fd7: SHL 00000fd8: DUP2 00000fd9: MSTORE 00000fda: ADDRESS 00000fdb: PUSH1 0x04 00000fdd: DUP3 00000fde: ADD 00000fdf: MSTORE 00000fe0: PUSH1 0x01 00000fe2: PUSH1 0x01 00000fe4: PUSH1 0xa0 00000fe6: SHL 00000fe7: SUB 00000fe8: PUSH32 0x0000000000000000000000007712c34205737192402172409a8f7ccef8aa2aec 00001009: AND 0000100a: PUSH1 0x24 0000100c: DUP3 0000100d: ADD 0000100e: MSTORE 0000100f: PUSH1 0x44 00001011: ADD 00001012: PUSH2 0x0495 00001015: JUMP 00001016: JUMPDEST 00001017: JUMP 00001018: JUMPDEST 00001019: PUSH1 0x40 0000101b: MLOAD 0000101c: PUSH4 0x70a08231 00001021: PUSH1 0xe0 00001023: SHL 00001024: DUP2 00001025: MSTORE 00001026: ADDRESS 00001027: PUSH1 0x04 00001029: DUP3 0000102a: ADD 0000102b: MSTORE 0000102c: PUSH1 0x00 0000102e: SWAP1 0000102f: PUSH32 0x0000000000000000000000007712c34205737192402172409a8f7ccef8aa2aec 00001050: PUSH1 0x01 00001052: PUSH1 0x01 00001054: PUSH1 0xa0 00001056: SHL 00001057: SUB 00001058: AND 00001059: SWAP1 0000105a: PUSH4 0x70a08231 0000105f: SWAP1 00001060: PUSH1 0x24 00001062: ADD 00001063: PUSH1 0x20 00001065: PUSH1 0x40 00001067: MLOAD 00001068: DUP1 00001069: DUP4 0000106a: SUB 0000106b: DUP2 0000106c: DUP7 0000106d: GAS 0000106e: STATICCALL 0000106f: ISZERO 00001070: DUP1 00001071: ISZERO 00001072: PUSH2 0x107f 00001075: JUMPI 00001076: RETURNDATASIZE 00001077: PUSH1 0x00 00001079: DUP1 0000107a: RETURNDATACOPY 0000107b: RETURNDATASIZE 0000107c: PUSH1 0x00 0000107e: REVERT 0000107f: JUMPDEST 00001080: POP 00001081: POP 00001082: POP 00001083: POP 00001084: PUSH1 0x40 00001086: MLOAD 00001087: RETURNDATASIZE 00001088: PUSH1 0x1f 0000108a: NOT 0000108b: PUSH1 0x1f 0000108d: DUP3 0000108e: ADD 0000108f: AND 00001090: DUP3 00001091: ADD 00001092: DUP1 00001093: PUSH1 0x40 00001095: MSTORE 00001096: POP 00001097: DUP2 00001098: ADD 00001099: SWAP1 0000109a: PUSH2 0x10a3 0000109d: SWAP2 0000109e: SWAP1 0000109f: PUSH2 0x18bf 000010a2: JUMP 000010a3: JUMPDEST 000010a4: SWAP1 000010a5: POP 000010a6: DUP2 000010a7: DUP2 000010a8: LT 000010a9: ISZERO 000010aa: PUSH2 0x10cf 000010ad: JUMPI 000010ae: PUSH1 0x40 000010b0: MLOAD 000010b1: PUSH4 0x8ed350fd 000010b6: PUSH1 0xe0 000010b8: SHL 000010b9: DUP2 000010ba: MSTORE 000010bb: ADDRESS 000010bc: PUSH1 0x04 000010be: DUP3 000010bf: ADD 000010c0: MSTORE 000010c1: PUSH1 0x24 000010c3: DUP2 000010c4: ADD 000010c5: DUP3 000010c6: SWAP1 000010c7: MSTORE 000010c8: PUSH1 0x44 000010ca: ADD 000010cb: PUSH2 0x0495 000010ce: JUMP 000010cf: JUMPDEST 000010d0: PUSH1 0x40 000010d2: MLOAD 000010d3: PUSH4 0x70a08231 000010d8: PUSH1 0xe0 000010da: SHL 000010db: DUP2 000010dc: MSTORE 000010dd: ADDRESS 000010de: PUSH1 0x04 000010e0: DUP3 000010e1: ADD 000010e2: MSTORE 000010e3: PUSH1 0x00 000010e5: SWAP1 000010e6: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00001107: PUSH1 0x01 00001109: PUSH1 0x01 0000110b: PUSH1 0xa0 0000110d: SHL 0000110e: SUB 0000110f: AND 00001110: SWAP1 00001111: PUSH4 0x70a08231 00001116: SWAP1 00001117: PUSH1 0x24 00001119: ADD 0000111a: PUSH1 0x20 0000111c: PUSH1 0x40 0000111e: MLOAD 0000111f: DUP1 00001120: DUP4 00001121: SUB 00001122: DUP2 00001123: DUP7 00001124: GAS 00001125: STATICCALL 00001126: ISZERO 00001127: DUP1 00001128: ISZERO 00001129: PUSH2 0x1136 0000112c: JUMPI 0000112d: RETURNDATASIZE 0000112e: PUSH1 0x00 00001130: DUP1 00001131: RETURNDATACOPY 00001132: RETURNDATASIZE 00001133: PUSH1 0x00 00001135: REVERT 00001136: JUMPDEST 00001137: POP 00001138: POP 00001139: POP 0000113a: POP 0000113b: PUSH1 0x40 0000113d: MLOAD 0000113e: RETURNDATASIZE 0000113f: PUSH1 0x1f 00001141: NOT 00001142: PUSH1 0x1f 00001144: DUP3 00001145: ADD 00001146: AND 00001147: DUP3 00001148: ADD 00001149: DUP1 0000114a: PUSH1 0x40 0000114c: MSTORE 0000114d: POP 0000114e: DUP2 0000114f: ADD 00001150: SWAP1 00001151: PUSH2 0x115a 00001154: SWAP2 00001155: SWAP1 00001156: PUSH2 0x18bf 00001159: JUMP 0000115a: JUMPDEST 0000115b: PUSH1 0x40 0000115d: MLOAD 0000115e: PUSH4 0x095ea7b3 00001163: PUSH1 0xe0 00001165: SHL 00001166: DUP2 00001167: MSTORE 00001168: PUSH1 0x01 0000116a: PUSH1 0x01 0000116c: PUSH1 0xa0 0000116e: SHL 0000116f: SUB 00001170: PUSH32 0x00000000000000000000000031d3f59ad4aac0eee2247c65ebe8bf6e9e470a53 00001191: DUP2 00001192: AND 00001193: PUSH1 0x04 00001195: DUP4 00001196: ADD 00001197: MSTORE 00001198: PUSH1 0x24 0000119a: DUP3 0000119b: ADD 0000119c: DUP7 0000119d: SWAP1 0000119e: MSTORE 0000119f: SWAP2 000011a0: SWAP3 000011a1: POP 000011a2: PUSH32 0x0000000000000000000000007712c34205737192402172409a8f7ccef8aa2aec 000011c3: SWAP1 000011c4: SWAP2 000011c5: AND 000011c6: SWAP1 000011c7: PUSH4 0x095ea7b3 000011cc: SWAP1 000011cd: PUSH1 0x44 000011cf: ADD 000011d0: PUSH1 0x20 000011d2: PUSH1 0x40 000011d4: MLOAD 000011d5: DUP1 000011d6: DUP4 000011d7: SUB 000011d8: DUP2 000011d9: PUSH1 0x00 000011db: DUP8 000011dc: GAS 000011dd: CALL 000011de: ISZERO 000011df: DUP1 000011e0: ISZERO 000011e1: PUSH2 0x11ee 000011e4: JUMPI 000011e5: RETURNDATASIZE 000011e6: PUSH1 0x00 000011e8: DUP1 000011e9: RETURNDATACOPY 000011ea: RETURNDATASIZE 000011eb: PUSH1 0x00 000011ed: REVERT 000011ee: JUMPDEST 000011ef: POP 000011f0: POP 000011f1: POP 000011f2: POP 000011f3: PUSH1 0x40 000011f5: MLOAD 000011f6: RETURNDATASIZE 000011f7: PUSH1 0x1f 000011f9: NOT 000011fa: PUSH1 0x1f 000011fc: DUP3 000011fd: ADD 000011fe: AND 000011ff: DUP3 00001200: ADD 00001201: DUP1 00001202: PUSH1 0x40 00001204: MSTORE 00001205: POP 00001206: DUP2 00001207: ADD 00001208: SWAP1 00001209: PUSH2 0x1212 0000120c: SWAP2 0000120d: SWAP1 0000120e: PUSH2 0x189d 00001211: JUMP 00001212: JUMPDEST 00001213: POP 00001214: PUSH1 0x40 00001216: MLOAD 00001217: PUSH4 0xdb006a75 0000121c: PUSH1 0xe0 0000121e: SHL 0000121f: DUP2 00001220: MSTORE 00001221: PUSH1 0x04 00001223: DUP2 00001224: ADD 00001225: DUP5 00001226: SWAP1 00001227: MSTORE 00001228: PUSH32 0x00000000000000000000000031d3f59ad4aac0eee2247c65ebe8bf6e9e470a53 00001249: PUSH1 0x01 0000124b: PUSH1 0x01 0000124d: PUSH1 0xa0 0000124f: SHL 00001250: SUB 00001251: AND 00001252: SWAP1 00001253: PUSH4 0xdb006a75 00001258: SWAP1 00001259: PUSH1 0x24 0000125b: ADD 0000125c: PUSH1 0x00 0000125e: PUSH1 0x40 00001260: MLOAD 00001261: DUP1 00001262: DUP4 00001263: SUB 00001264: DUP2 00001265: PUSH1 0x00 00001267: DUP8 00001268: DUP1 00001269: EXTCODESIZE 0000126a: ISZERO 0000126b: DUP1 0000126c: ISZERO 0000126d: PUSH2 0x1275 00001270: JUMPI 00001271: PUSH1 0x00 00001273: DUP1 00001274: REVERT 00001275: JUMPDEST 00001276: POP 00001277: GAS 00001278: CALL 00001279: ISZERO 0000127a: DUP1 0000127b: ISZERO 0000127c: PUSH2 0x1289 0000127f: JUMPI 00001280: RETURNDATASIZE 00001281: PUSH1 0x00 00001283: DUP1 00001284: RETURNDATACOPY 00001285: RETURNDATASIZE 00001286: PUSH1 0x00 00001288: REVERT 00001289: JUMPDEST 0000128a: POP 0000128b: POP 0000128c: PUSH1 0x40 0000128e: MLOAD 0000128f: PUSH4 0x70a08231 00001294: PUSH1 0xe0 00001296: SHL 00001297: DUP2 00001298: MSTORE 00001299: ADDRESS 0000129a: PUSH1 0x04 0000129c: DUP3 0000129d: ADD 0000129e: MSTORE 0000129f: PUSH1 0x00 000012a1: SWAP3 000012a2: POP 000012a3: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 000012c4: PUSH1 0x01 000012c6: PUSH1 0x01 000012c8: PUSH1 0xa0 000012ca: SHL 000012cb: SUB 000012cc: AND 000012cd: SWAP2 000012ce: POP 000012cf: PUSH4 0x70a08231 000012d4: SWAP1 000012d5: PUSH1 0x24 000012d7: ADD 000012d8: PUSH1 0x20 000012da: PUSH1 0x40 000012dc: MLOAD 000012dd: DUP1 000012de: DUP4 000012df: SUB 000012e0: DUP2 000012e1: DUP7 000012e2: GAS 000012e3: STATICCALL 000012e4: ISZERO 000012e5: DUP1 000012e6: ISZERO 000012e7: PUSH2 0x12f4 000012ea: JUMPI 000012eb: RETURNDATASIZE 000012ec: PUSH1 0x00 000012ee: DUP1 000012ef: RETURNDATACOPY 000012f0: RETURNDATASIZE 000012f1: PUSH1 0x00 000012f3: REVERT 000012f4: JUMPDEST 000012f5: POP 000012f6: POP 000012f7: POP 000012f8: POP 000012f9: PUSH1 0x40 000012fb: MLOAD 000012fc: RETURNDATASIZE 000012fd: PUSH1 0x1f 000012ff: NOT 00001300: PUSH1 0x1f 00001302: DUP3 00001303: ADD 00001304: AND 00001305: DUP3 00001306: ADD 00001307: DUP1 00001308: PUSH1 0x40 0000130a: MSTORE 0000130b: POP 0000130c: DUP2 0000130d: ADD 0000130e: SWAP1 0000130f: PUSH2 0x1318 00001312: SWAP2 00001313: SWAP1 00001314: PUSH2 0x18bf 00001317: JUMP 00001318: JUMPDEST 00001319: SWAP1 0000131a: POP 0000131b: PUSH2 0x1324 0000131e: DUP5 0000131f: DUP4 00001320: PUSH2 0x1901 00001323: JUMP 00001324: JUMPDEST 00001325: DUP2 00001326: LT 00001327: ISZERO 00001328: PUSH2 0x04eb 0000132b: JUMPI 0000132c: ADDRESS 0000132d: DUP5 0000132e: PUSH2 0x1337 00001331: DUP5 00001332: DUP5 00001333: PUSH2 0x18ee 00001336: JUMP 00001337: JUMPDEST 00001338: PUSH1 0x40 0000133a: MLOAD 0000133b: PUSH4 0x70618821 00001340: PUSH1 0xe1 00001342: SHL 00001343: DUP2 00001344: MSTORE 00001345: PUSH1 0x01 00001347: PUSH1 0x01 00001349: PUSH1 0xa0 0000134b: SHL 0000134c: SUB 0000134d: SWAP1 0000134e: SWAP4 0000134f: AND 00001350: PUSH1 0x04 00001352: DUP5 00001353: ADD 00001354: MSTORE 00001355: PUSH1 0x24 00001357: DUP4 00001358: ADD 00001359: SWAP2 0000135a: SWAP1 0000135b: SWAP2 0000135c: MSTORE 0000135d: PUSH1 0x44 0000135f: DUP3 00001360: ADD 00001361: MSTORE 00001362: PUSH1 0x64 00001364: ADD 00001365: PUSH2 0x0495 00001368: JUMP 00001369: JUMPDEST 0000136a: PUSH1 0x00 0000136c: PUSH2 0x03f8 0000136f: DUP3 00001370: SLOAD 00001371: SWAP1 00001372: JUMP 00001373: JUMPDEST 00001374: PUSH1 0x00 00001376: DUP2 00001377: DUP2 00001378: MSTORE 00001379: PUSH1 0x01 0000137b: DUP4 0000137c: ADD 0000137d: PUSH1 0x20 0000137f: MSTORE 00001380: PUSH1 0x40 00001382: DUP2 00001383: KECCAK256 00001384: SLOAD 00001385: PUSH2 0x13ba 00001388: JUMPI 00001389: POP 0000138a: DUP2 0000138b: SLOAD 0000138c: PUSH1 0x01 0000138e: DUP2 0000138f: DUP2 00001390: ADD 00001391: DUP5 00001392: SSTORE 00001393: PUSH1 0x00 00001395: DUP5 00001396: DUP2 00001397: MSTORE 00001398: PUSH1 0x20 0000139a: DUP1 0000139b: DUP3 0000139c: KECCAK256 0000139d: SWAP1 0000139e: SWAP4 0000139f: ADD 000013a0: DUP5 000013a1: SWAP1 000013a2: SSTORE 000013a3: DUP5 000013a4: SLOAD 000013a5: DUP5 000013a6: DUP3 000013a7: MSTORE 000013a8: DUP3 000013a9: DUP7 000013aa: ADD 000013ab: SWAP1 000013ac: SWAP4 000013ad: MSTORE 000013ae: PUSH1 0x40 000013b0: SWAP1 000013b1: KECCAK256 000013b2: SWAP2 000013b3: SWAP1 000013b4: SWAP2 000013b5: SSTORE 000013b6: PUSH2 0x03f8 000013b9: JUMP 000013ba: JUMPDEST 000013bb: POP 000013bc: PUSH1 0x00 000013be: PUSH2 0x03f8 000013c1: JUMP 000013c2: JUMPDEST 000013c3: PUSH1 0x60 000013c5: PUSH1 0x00 000013c7: PUSH2 0x13d1 000013ca: DUP4 000013cb: PUSH1 0x02 000013cd: PUSH2 0x1a20 000013d0: JUMP 000013d1: JUMPDEST 000013d2: PUSH2 0x13dc 000013d5: SWAP1 000013d6: PUSH1 0x02 000013d8: PUSH2 0x1901 000013db: JUMP 000013dc: JUMPDEST 000013dd: PUSH8 0xffffffffffffffff 000013e6: DUP2 000013e7: GT 000013e8: ISZERO 000013e9: PUSH2 0x13f4 000013ec: JUMPI 000013ed: PUSH2 0x13f4 000013f0: PUSH2 0x1a3f 000013f3: JUMP 000013f4: JUMPDEST 000013f5: PUSH1 0x40 000013f7: MLOAD 000013f8: SWAP1 000013f9: DUP1 000013fa: DUP3 000013fb: MSTORE 000013fc: DUP1 000013fd: PUSH1 0x1f 000013ff: ADD 00001400: PUSH1 0x1f 00001402: NOT 00001403: AND 00001404: PUSH1 0x20 00001406: ADD 00001407: DUP3 00001408: ADD 00001409: PUSH1 0x40 0000140b: MSTORE 0000140c: DUP1 0000140d: ISZERO 0000140e: PUSH2 0x141e 00001411: JUMPI 00001412: PUSH1 0x20 00001414: DUP3 00001415: ADD 00001416: DUP2 00001417: DUP1 00001418: CALLDATASIZE 00001419: DUP4 0000141a: CALLDATACOPY 0000141b: ADD 0000141c: SWAP1 0000141d: POP 0000141e: JUMPDEST 0000141f: POP 00001420: SWAP1 00001421: POP 00001422: PUSH1 0x03 00001424: PUSH1 0xfc 00001426: SHL 00001427: DUP2 00001428: PUSH1 0x00 0000142a: DUP2 0000142b: MLOAD 0000142c: DUP2 0000142d: LT 0000142e: PUSH2 0x1439 00001431: JUMPI 00001432: PUSH2 0x1439 00001435: PUSH2 0x1a55 00001438: JUMP 00001439: JUMPDEST 0000143a: PUSH1 0x20 0000143c: ADD 0000143d: ADD 0000143e: SWAP1 0000143f: PUSH1 0x01 00001441: PUSH1 0x01 00001443: PUSH1 0xf8 00001445: SHL 00001446: SUB 00001447: NOT 00001448: AND 00001449: SWAP1 0000144a: DUP2 0000144b: PUSH1 0x00 0000144d: BYTE 0000144e: SWAP1 0000144f: MSTORE8 00001450: POP 00001451: PUSH1 0x0f 00001453: PUSH1 0xfb 00001455: SHL 00001456: DUP2 00001457: PUSH1 0x01 00001459: DUP2 0000145a: MLOAD 0000145b: DUP2 0000145c: LT 0000145d: PUSH2 0x1468 00001460: JUMPI 00001461: PUSH2 0x1468 00001464: PUSH2 0x1a55 00001467: JUMP 00001468: JUMPDEST 00001469: PUSH1 0x20 0000146b: ADD 0000146c: ADD 0000146d: SWAP1 0000146e: PUSH1 0x01 00001470: PUSH1 0x01 00001472: PUSH1 0xf8 00001474: SHL 00001475: SUB 00001476: NOT 00001477: AND 00001478: SWAP1 00001479: DUP2 0000147a: PUSH1 0x00 0000147c: BYTE 0000147d: SWAP1 0000147e: MSTORE8 0000147f: POP 00001480: PUSH1 0x00 00001482: PUSH2 0x148c 00001485: DUP5 00001486: PUSH1 0x02 00001488: PUSH2 0x1a20 0000148b: JUMP 0000148c: JUMPDEST 0000148d: PUSH2 0x1497 00001490: SWAP1 00001491: PUSH1 0x01 00001493: PUSH2 0x1901 00001496: JUMP 00001497: JUMPDEST 00001498: SWAP1 00001499: POP 0000149a: JUMPDEST 0000149b: PUSH1 0x01 0000149d: DUP2 0000149e: GT 0000149f: ISZERO 000014a0: PUSH2 0x150f 000014a3: JUMPI 000014a4: PUSH16 0x181899199a1a9b1b9c1cb0b131b232b3 000014b5: PUSH1 0x81 000014b7: SHL 000014b8: DUP6 000014b9: PUSH1 0x0f 000014bb: AND 000014bc: PUSH1 0x10 000014be: DUP2 000014bf: LT 000014c0: PUSH2 0x14cb 000014c3: JUMPI 000014c4: PUSH2 0x14cb 000014c7: PUSH2 0x1a55 000014ca: JUMP 000014cb: JUMPDEST 000014cc: BYTE 000014cd: PUSH1 0xf8 000014cf: SHL 000014d0: DUP3 000014d1: DUP3 000014d2: DUP2 000014d3: MLOAD 000014d4: DUP2 000014d5: LT 000014d6: PUSH2 0x14e1 000014d9: JUMPI 000014da: PUSH2 0x14e1 000014dd: PUSH2 0x1a55 000014e0: JUMP 000014e1: JUMPDEST 000014e2: PUSH1 0x20 000014e4: ADD 000014e5: ADD 000014e6: SWAP1 000014e7: PUSH1 0x01 000014e9: PUSH1 0x01 000014eb: PUSH1 0xf8 000014ed: SHL 000014ee: SUB 000014ef: NOT 000014f0: AND 000014f1: SWAP1 000014f2: DUP2 000014f3: PUSH1 0x00 000014f5: BYTE 000014f6: SWAP1 000014f7: MSTORE8 000014f8: POP 000014f9: PUSH1 0x04 000014fb: SWAP5 000014fc: SWAP1 000014fd: SWAP5 000014fe: SHR 000014ff: SWAP4 00001500: PUSH2 0x1508 00001503: DUP2 00001504: PUSH2 0x1a6b 00001507: JUMP 00001508: JUMPDEST 00001509: SWAP1 0000150a: POP 0000150b: PUSH2 0x149a 0000150e: JUMP 0000150f: JUMPDEST 00001510: POP 00001511: DUP4 00001512: ISZERO 00001513: PUSH2 0x0509 00001516: JUMPI 00001517: PUSH1 0x40 00001519: MLOAD 0000151a: PUSH3 0x461bcd 0000151e: PUSH1 0xe5 00001520: SHL 00001521: DUP2 00001522: MSTORE 00001523: PUSH1 0x20 00001525: PUSH1 0x04 00001527: DUP3 00001528: ADD 00001529: DUP2 0000152a: SWAP1 0000152b: MSTORE 0000152c: PUSH1 0x24 0000152e: DUP3 0000152f: ADD 00001530: MSTORE 00001531: PUSH32 0x537472696e67733a20686578206c656e67746820696e73756666696369656e74 00001552: PUSH1 0x44 00001554: DUP3 00001555: ADD 00001556: MSTORE 00001557: PUSH1 0x64 00001559: ADD 0000155a: PUSH2 0x0495 0000155d: JUMP 0000155e: JUMPDEST 0000155f: PUSH2 0x1568 00001562: DUP3 00001563: DUP3 00001564: PUSH2 0x0510 00001567: JUMP 00001568: JUMPDEST 00001569: ISZERO 0000156a: PUSH2 0x04a8 0000156d: JUMPI 0000156e: PUSH1 0x00 00001570: DUP3 00001571: DUP2 00001572: MSTORE 00001573: PUSH1 0x20 00001575: DUP2 00001576: DUP2 00001577: MSTORE 00001578: PUSH1 0x40 0000157a: DUP1 0000157b: DUP4 0000157c: KECCAK256 0000157d: PUSH1 0x01 0000157f: PUSH1 0x01 00001581: PUSH1 0xa0 00001583: SHL 00001584: SUB 00001585: DUP6 00001586: AND 00001587: DUP1 00001588: DUP6 00001589: MSTORE 0000158a: SWAP3 0000158b: MSTORE 0000158c: DUP1 0000158d: DUP4 0000158e: KECCAK256 0000158f: DUP1 00001590: SLOAD 00001591: PUSH1 0xff 00001593: NOT 00001594: AND 00001595: SWAP1 00001596: SSTORE 00001597: MLOAD 00001598: CALLER 00001599: SWAP3 0000159a: DUP6 0000159b: SWAP2 0000159c: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b 000015bd: SWAP2 000015be: SWAP1 000015bf: LOG4 000015c0: POP 000015c1: POP 000015c2: JUMP 000015c3: JUMPDEST 000015c4: PUSH1 0x00 000015c6: PUSH2 0x0509 000015c9: DUP4 000015ca: PUSH1 0x01 000015cc: PUSH1 0x01 000015ce: PUSH1 0xa0 000015d0: SHL 000015d1: SUB 000015d2: DUP5 000015d3: AND 000015d4: PUSH2 0x1673 000015d7: JUMP 000015d8: JUMPDEST 000015d9: PUSH1 0x00 000015db: DUP1 000015dc: PUSH1 0x20 000015de: PUSH1 0x00 000015e0: DUP5 000015e1: MLOAD 000015e2: PUSH1 0x20 000015e4: DUP7 000015e5: ADD 000015e6: PUSH1 0x00 000015e8: DUP9 000015e9: GAS 000015ea: CALL 000015eb: DUP1 000015ec: PUSH2 0x15fb 000015ef: JUMPI 000015f0: PUSH1 0x40 000015f2: MLOAD 000015f3: RETURNDATASIZE 000015f4: PUSH1 0x00 000015f6: DUP3 000015f7: RETURNDATACOPY 000015f8: RETURNDATASIZE 000015f9: DUP2 000015fa: REVERT 000015fb: JUMPDEST 000015fc: POP 000015fd: POP 000015fe: PUSH1 0x00 00001600: MLOAD 00001601: RETURNDATASIZE 00001602: SWAP2 00001603: POP 00001604: DUP2 00001605: ISZERO 00001606: PUSH2 0x1613 00001609: JUMPI 0000160a: DUP1 0000160b: PUSH1 0x01 0000160d: EQ 0000160e: ISZERO 0000160f: PUSH2 0x1620 00001612: JUMP 00001613: JUMPDEST 00001614: PUSH1 0x01 00001616: PUSH1 0x01 00001618: PUSH1 0xa0 0000161a: SHL 0000161b: SUB 0000161c: DUP5 0000161d: AND 0000161e: EXTCODESIZE 0000161f: ISZERO 00001620: JUMPDEST 00001621: ISZERO 00001622: PUSH2 0x04eb 00001625: JUMPI 00001626: PUSH1 0x40 00001628: MLOAD 00001629: PUSH4 0x5274afe7 0000162e: PUSH1 0xe0 00001630: SHL 00001631: DUP2 00001632: MSTORE 00001633: PUSH1 0x01 00001635: PUSH1 0x01 00001637: PUSH1 0xa0 00001639: SHL 0000163a: SUB 0000163b: DUP6 0000163c: AND 0000163d: PUSH1 0x04 0000163f: DUP3 00001640: ADD 00001641: MSTORE 00001642: PUSH1 0x24 00001644: ADD 00001645: PUSH2 0x0495 00001648: JUMP 00001649: JUMPDEST 0000164a: PUSH1 0x00 0000164c: DUP3 0000164d: PUSH1 0x00 0000164f: ADD 00001650: DUP3 00001651: DUP2 00001652: SLOAD 00001653: DUP2 00001654: LT 00001655: PUSH2 0x1660 00001658: JUMPI 00001659: PUSH2 0x1660 0000165c: PUSH2 0x1a55 0000165f: JUMP 00001660: JUMPDEST 00001661: SWAP1 00001662: PUSH1 0x00 00001664: MSTORE 00001665: PUSH1 0x20 00001667: PUSH1 0x00 00001669: KECCAK256 0000166a: ADD 0000166b: SLOAD 0000166c: SWAP1 0000166d: POP 0000166e: SWAP3 0000166f: SWAP2 00001670: POP 00001671: POP 00001672: JUMP 00001673: JUMPDEST 00001674: PUSH1 0x00 00001676: DUP2 00001677: DUP2 00001678: MSTORE 00001679: PUSH1 0x01 0000167b: DUP4 0000167c: ADD 0000167d: PUSH1 0x20 0000167f: MSTORE 00001680: PUSH1 0x40 00001682: DUP2 00001683: KECCAK256 00001684: SLOAD 00001685: DUP1 00001686: ISZERO 00001687: PUSH2 0x175c 0000168a: JUMPI 0000168b: PUSH1 0x00 0000168d: PUSH2 0x1697 00001690: PUSH1 0x01 00001692: DUP4 00001693: PUSH2 0x18ee 00001696: JUMP 00001697: JUMPDEST 00001698: DUP6 00001699: SLOAD 0000169a: SWAP1 0000169b: SWAP2 0000169c: POP 0000169d: PUSH1 0x00 0000169f: SWAP1 000016a0: PUSH2 0x16ab 000016a3: SWAP1 000016a4: PUSH1 0x01 000016a6: SWAP1 000016a7: PUSH2 0x18ee 000016aa: JUMP 000016ab: JUMPDEST 000016ac: SWAP1 000016ad: POP 000016ae: DUP2 000016af: DUP2 000016b0: EQ 000016b1: PUSH2 0x1710 000016b4: JUMPI 000016b5: PUSH1 0x00 000016b7: DUP7 000016b8: PUSH1 0x00 000016ba: ADD 000016bb: DUP3 000016bc: DUP2 000016bd: SLOAD 000016be: DUP2 000016bf: LT 000016c0: PUSH2 0x16cb 000016c3: JUMPI 000016c4: PUSH2 0x16cb 000016c7: PUSH2 0x1a55 000016ca: JUMP 000016cb: JUMPDEST 000016cc: SWAP1 000016cd: PUSH1 0x00 000016cf: MSTORE 000016d0: PUSH1 0x20 000016d2: PUSH1 0x00 000016d4: KECCAK256 000016d5: ADD 000016d6: SLOAD 000016d7: SWAP1 000016d8: POP 000016d9: DUP1 000016da: DUP8 000016db: PUSH1 0x00 000016dd: ADD 000016de: DUP5 000016df: DUP2 000016e0: SLOAD 000016e1: DUP2 000016e2: LT 000016e3: PUSH2 0x16ee 000016e6: JUMPI 000016e7: PUSH2 0x16ee 000016ea: PUSH2 0x1a55 000016ed: JUMP 000016ee: JUMPDEST 000016ef: PUSH1 0x00 000016f1: SWAP2 000016f2: DUP3 000016f3: MSTORE 000016f4: PUSH1 0x20 000016f6: DUP1 000016f7: DUP4 000016f8: KECCAK256 000016f9: SWAP1 000016fa: SWAP2 000016fb: ADD 000016fc: SWAP3 000016fd: SWAP1 000016fe: SWAP3 000016ff: SSTORE 00001700: SWAP2 00001701: DUP3 00001702: MSTORE 00001703: PUSH1 0x01 00001705: DUP9 00001706: ADD 00001707: SWAP1 00001708: MSTORE 00001709: PUSH1 0x40 0000170b: SWAP1 0000170c: KECCAK256 0000170d: DUP4 0000170e: SWAP1 0000170f: SSTORE 00001710: JUMPDEST 00001711: DUP6 00001712: SLOAD 00001713: DUP7 00001714: SWAP1 00001715: DUP1 00001716: PUSH2 0x1721 00001719: JUMPI 0000171a: PUSH2 0x1721 0000171d: PUSH2 0x1a82 00001720: JUMP 00001721: JUMPDEST 00001722: PUSH1 0x01 00001724: SWAP1 00001725: SUB 00001726: DUP2 00001727: DUP2 00001728: SWAP1 00001729: PUSH1 0x00 0000172b: MSTORE 0000172c: PUSH1 0x20 0000172e: PUSH1 0x00 00001730: KECCAK256 00001731: ADD 00001732: PUSH1 0x00 00001734: SWAP1 00001735: SSTORE 00001736: SWAP1 00001737: SSTORE 00001738: DUP6 00001739: PUSH1 0x01 0000173b: ADD 0000173c: PUSH1 0x00 0000173e: DUP7 0000173f: DUP2 00001740: MSTORE 00001741: PUSH1 0x20 00001743: ADD 00001744: SWAP1 00001745: DUP2 00001746: MSTORE 00001747: PUSH1 0x20 00001749: ADD 0000174a: PUSH1 0x00 0000174c: KECCAK256 0000174d: PUSH1 0x00 0000174f: SWAP1 00001750: SSTORE 00001751: PUSH1 0x01 00001753: SWAP4 00001754: POP 00001755: POP 00001756: POP 00001757: POP 00001758: PUSH2 0x03f8 0000175b: JUMP 0000175c: JUMPDEST 0000175d: PUSH1 0x00 0000175f: SWAP2 00001760: POP 00001761: POP 00001762: PUSH2 0x03f8 00001765: JUMP 00001766: JUMPDEST 00001767: PUSH1 0x00 00001769: PUSH1 0x20 0000176b: DUP3 0000176c: DUP5 0000176d: SUB 0000176e: SLT 0000176f: ISZERO 00001770: PUSH2 0x1778 00001773: JUMPI 00001774: PUSH1 0x00 00001776: DUP1 00001777: REVERT 00001778: JUMPDEST 00001779: DUP2 0000177a: CALLDATALOAD 0000177b: PUSH1 0x01 0000177d: PUSH1 0x01 0000177f: PUSH1 0xe0 00001781: SHL 00001782: SUB 00001783: NOT 00001784: DUP2 00001785: AND 00001786: DUP2 00001787: EQ 00001788: PUSH2 0x0509 0000178b: JUMPI 0000178c: PUSH1 0x00 0000178e: DUP1 0000178f: REVERT 00001790: JUMPDEST 00001791: PUSH1 0x00 00001793: PUSH1 0x20 00001795: DUP3 00001796: DUP5 00001797: SUB 00001798: SLT 00001799: ISZERO 0000179a: PUSH2 0x17a2 0000179d: JUMPI 0000179e: PUSH1 0x00 000017a0: DUP1 000017a1: REVERT 000017a2: JUMPDEST 000017a3: POP 000017a4: CALLDATALOAD 000017a5: SWAP2 000017a6: SWAP1 000017a7: POP 000017a8: JUMP 000017a9: JUMPDEST 000017aa: PUSH1 0x01 000017ac: PUSH1 0x01 000017ae: PUSH1 0xa0 000017b0: SHL 000017b1: SUB 000017b2: DUP2 000017b3: AND 000017b4: DUP2 000017b5: EQ 000017b6: PUSH2 0x17be 000017b9: JUMPI 000017ba: PUSH1 0x00 000017bc: DUP1 000017bd: REVERT 000017be: JUMPDEST 000017bf: POP 000017c0: JUMP 000017c1: JUMPDEST 000017c2: PUSH1 0x00 000017c4: DUP1 000017c5: PUSH1 0x40 000017c7: DUP4 000017c8: DUP6 000017c9: SUB 000017ca: SLT 000017cb: ISZERO 000017cc: PUSH2 0x17d4 000017cf: JUMPI 000017d0: PUSH1 0x00 000017d2: DUP1 000017d3: REVERT 000017d4: JUMPDEST 000017d5: DUP3 000017d6: CALLDATALOAD 000017d7: SWAP2 000017d8: POP 000017d9: PUSH1 0x20 000017db: DUP4 000017dc: ADD 000017dd: CALLDATALOAD 000017de: PUSH2 0x17e6 000017e1: DUP2 000017e2: PUSH2 0x17a9 000017e5: JUMP 000017e6: JUMPDEST 000017e7: DUP1 000017e8: SWAP2 000017e9: POP 000017ea: POP 000017eb: SWAP3 000017ec: POP 000017ed: SWAP3 000017ee: SWAP1 000017ef: POP 000017f0: JUMP 000017f1: JUMPDEST 000017f2: PUSH1 0x00 000017f4: DUP1 000017f5: PUSH1 0x00 000017f7: PUSH1 0x60 000017f9: DUP5 000017fa: DUP7 000017fb: SUB 000017fc: SLT 000017fd: ISZERO 000017fe: PUSH2 0x1806 00001801: JUMPI 00001802: PUSH1 0x00 00001804: DUP1 00001805: REVERT 00001806: JUMPDEST 00001807: DUP4 00001808: CALLDATALOAD 00001809: PUSH2 0x1811 0000180c: DUP2 0000180d: PUSH2 0x17a9 00001810: JUMP 00001811: JUMPDEST 00001812: SWAP3 00001813: POP 00001814: PUSH1 0x20 00001816: DUP5 00001817: ADD 00001818: CALLDATALOAD 00001819: PUSH2 0x1821 0000181c: DUP2 0000181d: PUSH2 0x17a9 00001820: JUMP 00001821: JUMPDEST 00001822: SWAP3 00001823: SWAP6 00001824: SWAP3 00001825: SWAP5 00001826: POP 00001827: POP 00001828: POP 00001829: PUSH1 0x40 0000182b: SWAP2 0000182c: SWAP1 0000182d: SWAP2 0000182e: ADD 0000182f: CALLDATALOAD 00001830: SWAP1 00001831: JUMP 00001832: JUMPDEST 00001833: PUSH1 0x00 00001835: DUP1 00001836: PUSH1 0x40 00001838: DUP4 00001839: DUP6 0000183a: SUB 0000183b: SLT 0000183c: ISZERO 0000183d: PUSH2 0x1845 00001840: JUMPI 00001841: PUSH1 0x00 00001843: DUP1 00001844: REVERT 00001845: JUMPDEST 00001846: POP 00001847: POP 00001848: DUP1 00001849: CALLDATALOAD 0000184a: SWAP3 0000184b: PUSH1 0x20 0000184d: SWAP1 0000184e: SWAP2 0000184f: ADD 00001850: CALLDATALOAD 00001851: SWAP2 00001852: POP 00001853: JUMP 00001854: JUMPDEST 00001855: PUSH1 0x00 00001857: DUP1 00001858: PUSH1 0x40 0000185a: DUP4 0000185b: DUP6 0000185c: SUB 0000185d: SLT 0000185e: ISZERO 0000185f: PUSH2 0x1867 00001862: JUMPI 00001863: PUSH1 0x00 00001865: DUP1 00001866: REVERT 00001867: JUMPDEST 00001868: DUP3 00001869: CALLDATALOAD 0000186a: PUSH2 0x1872 0000186d: DUP2 0000186e: PUSH2 0x17a9 00001871: JUMP 00001872: JUMPDEST 00001873: SWAP5 00001874: PUSH1 0x20 00001876: SWAP4 00001877: SWAP1 00001878: SWAP4 00001879: ADD 0000187a: CALLDATALOAD 0000187b: SWAP4 0000187c: POP 0000187d: POP 0000187e: POP 0000187f: JUMP 00001880: JUMPDEST 00001881: PUSH1 0x00 00001883: PUSH1 0x20 00001885: DUP3 00001886: DUP5 00001887: SUB 00001888: SLT 00001889: ISZERO 0000188a: PUSH2 0x1892 0000188d: JUMPI 0000188e: PUSH1 0x00 00001890: DUP1 00001891: REVERT 00001892: JUMPDEST 00001893: DUP2 00001894: CALLDATALOAD 00001895: PUSH2 0x0509 00001898: DUP2 00001899: PUSH2 0x17a9 0000189c: JUMP 0000189d: JUMPDEST 0000189e: PUSH1 0x00 000018a0: PUSH1 0x20 000018a2: DUP3 000018a3: DUP5 000018a4: SUB 000018a5: SLT 000018a6: ISZERO 000018a7: PUSH2 0x18af 000018aa: JUMPI 000018ab: PUSH1 0x00 000018ad: DUP1 000018ae: REVERT 000018af: JUMPDEST 000018b0: DUP2 000018b1: MLOAD 000018b2: DUP1 000018b3: ISZERO 000018b4: ISZERO 000018b5: DUP2 000018b6: EQ 000018b7: PUSH2 0x0509 000018ba: JUMPI 000018bb: PUSH1 0x00 000018bd: DUP1 000018be: REVERT 000018bf: JUMPDEST 000018c0: PUSH1 0x00 000018c2: PUSH1 0x20 000018c4: DUP3 000018c5: DUP5 000018c6: SUB 000018c7: SLT 000018c8: ISZERO 000018c9: PUSH2 0x18d1 000018cc: JUMPI 000018cd: PUSH1 0x00 000018cf: DUP1 000018d0: REVERT 000018d1: JUMPDEST 000018d2: POP 000018d3: MLOAD 000018d4: SWAP2 000018d5: SWAP1 000018d6: POP 000018d7: JUMP 000018d8: JUMPDEST 000018d9: PUSH4 0x4e487b71 000018de: PUSH1 0xe0 000018e0: SHL 000018e1: PUSH1 0x00 000018e3: MSTORE 000018e4: PUSH1 0x11 000018e6: PUSH1 0x04 000018e8: MSTORE 000018e9: PUSH1 0x24 000018eb: PUSH1 0x00 000018ed: REVERT 000018ee: JUMPDEST 000018ef: DUP2 000018f0: DUP2 000018f1: SUB 000018f2: DUP2 000018f3: DUP2 000018f4: GT 000018f5: ISZERO 000018f6: PUSH2 0x03f8 000018f9: JUMPI 000018fa: PUSH2 0x03f8 000018fd: PUSH2 0x18d8 00001900: JUMP 00001901: JUMPDEST 00001902: DUP1 00001903: DUP3 00001904: ADD 00001905: DUP1 00001906: DUP3 00001907: GT 00001908: ISZERO 00001909: PUSH2 0x03f8 0000190c: JUMPI 0000190d: PUSH2 0x03f8 00001910: PUSH2 0x18d8 00001913: JUMP 00001914: JUMPDEST 00001915: PUSH1 0x00 00001917: PUSH1 0x20 00001919: DUP3 0000191a: DUP5 0000191b: SUB 0000191c: SLT 0000191d: ISZERO 0000191e: PUSH2 0x1926 00001921: JUMPI 00001922: PUSH1 0x00 00001924: DUP1 00001925: REVERT 00001926: JUMPDEST 00001927: DUP2 00001928: MLOAD 00001929: PUSH2 0x0509 0000192c: DUP2 0000192d: PUSH2 0x17a9 00001930: JUMP 00001931: JUMPDEST 00001932: PUSH1 0x00 00001934: JUMPDEST 00001935: DUP4 00001936: DUP2 00001937: LT 00001938: ISZERO 00001939: PUSH2 0x194c 0000193c: JUMPI 0000193d: DUP2 0000193e: DUP2 0000193f: ADD 00001940: MLOAD 00001941: DUP4 00001942: DUP3 00001943: ADD 00001944: MSTORE 00001945: PUSH1 0x20 00001947: ADD 00001948: PUSH2 0x1934 0000194b: JUMP 0000194c: JUMPDEST 0000194d: POP 0000194e: POP 0000194f: PUSH1 0x00 00001951: SWAP2 00001952: ADD 00001953: MSTORE 00001954: JUMP 00001955: JUMPDEST 00001956: PUSH32 0x416363657373436f6e74726f6c3a206163636f756e7420000000000000000000 00001977: DUP2 00001978: MSTORE 00001979: PUSH1 0x00 0000197b: DUP4 0000197c: MLOAD 0000197d: PUSH2 0x198d 00001980: DUP2 00001981: PUSH1 0x17 00001983: DUP6 00001984: ADD 00001985: PUSH1 0x20 00001987: DUP9 00001988: ADD 00001989: PUSH2 0x1931 0000198c: JUMP 0000198d: JUMPDEST 0000198e: PUSH17 0x01034b99036b4b9b9b4b733903937b6329 000019a0: PUSH1 0x7d 000019a2: SHL 000019a3: PUSH1 0x17 000019a5: SWAP2 000019a6: DUP5 000019a7: ADD 000019a8: SWAP2 000019a9: DUP3 000019aa: ADD 000019ab: MSTORE 000019ac: DUP4 000019ad: MLOAD 000019ae: PUSH2 0x19be 000019b1: DUP2 000019b2: PUSH1 0x28 000019b4: DUP5 000019b5: ADD 000019b6: PUSH1 0x20 000019b8: DUP9 000019b9: ADD 000019ba: PUSH2 0x1931 000019bd: JUMP 000019be: JUMPDEST 000019bf: ADD 000019c0: PUSH1 0x28 000019c2: ADD 000019c3: SWAP5 000019c4: SWAP4 000019c5: POP 000019c6: POP 000019c7: POP 000019c8: POP 000019c9: JUMP 000019ca: JUMPDEST 000019cb: PUSH1 0x20 000019cd: DUP2 000019ce: MSTORE 000019cf: PUSH1 0x00 000019d1: DUP3 000019d2: MLOAD 000019d3: DUP1 000019d4: PUSH1 0x20 000019d6: DUP5 000019d7: ADD 000019d8: MSTORE 000019d9: PUSH2 0x19e9 000019dc: DUP2 000019dd: PUSH1 0x40 000019df: DUP6 000019e0: ADD 000019e1: PUSH1 0x20 000019e3: DUP8 000019e4: ADD 000019e5: PUSH2 0x1931 000019e8: JUMP 000019e9: JUMPDEST 000019ea: PUSH1 0x1f 000019ec: ADD 000019ed: PUSH1 0x1f 000019ef: NOT 000019f0: AND 000019f1: SWAP2 000019f2: SWAP1 000019f3: SWAP2 000019f4: ADD 000019f5: PUSH1 0x40 000019f7: ADD 000019f8: SWAP3 000019f9: SWAP2 000019fa: POP 000019fb: POP 000019fc: JUMP 000019fd: JUMPDEST 000019fe: PUSH1 0x00 00001a00: PUSH1 0x20 00001a02: DUP3 00001a03: DUP5 00001a04: SUB 00001a05: SLT 00001a06: ISZERO 00001a07: PUSH2 0x1a0f 00001a0a: JUMPI 00001a0b: PUSH1 0x00 00001a0d: DUP1 00001a0e: REVERT 00001a0f: JUMPDEST 00001a10: DUP2 00001a11: MLOAD 00001a12: PUSH1 0xff 00001a14: DUP2 00001a15: AND 00001a16: DUP2 00001a17: EQ 00001a18: PUSH2 0x0509 00001a1b: JUMPI 00001a1c: PUSH1 0x00 00001a1e: DUP1 00001a1f: REVERT 00001a20: JUMPDEST 00001a21: PUSH1 0x00 00001a23: DUP2 00001a24: PUSH1 0x00 00001a26: NOT 00001a27: DIV 00001a28: DUP4 00001a29: GT 00001a2a: DUP3 00001a2b: ISZERO 00001a2c: ISZERO 00001a2d: AND 00001a2e: ISZERO 00001a2f: PUSH2 0x1a3a 00001a32: JUMPI 00001a33: PUSH2 0x1a3a 00001a36: PUSH2 0x18d8 00001a39: JUMP 00001a3a: JUMPDEST 00001a3b: POP 00001a3c: MUL 00001a3d: SWAP1 00001a3e: JUMP 00001a3f: JUMPDEST 00001a40: PUSH4 0x4e487b71 00001a45: PUSH1 0xe0 00001a47: SHL 00001a48: PUSH1 0x00 00001a4a: MSTORE 00001a4b: PUSH1 0x41 00001a4d: PUSH1 0x04 00001a4f: MSTORE 00001a50: PUSH1 0x24 00001a52: PUSH1 0x00 00001a54: REVERT 00001a55: JUMPDEST 00001a56: PUSH4 0x4e487b71 00001a5b: PUSH1 0xe0 00001a5d: SHL 00001a5e: PUSH1 0x00 00001a60: MSTORE 00001a61: PUSH1 0x32 00001a63: PUSH1 0x04 00001a65: MSTORE 00001a66: PUSH1 0x24 00001a68: PUSH1 0x00 00001a6a: REVERT 00001a6b: JUMPDEST 00001a6c: PUSH1 0x00 00001a6e: DUP2 00001a6f: PUSH2 0x1a7a 00001a72: JUMPI 00001a73: PUSH2 0x1a7a 00001a76: PUSH2 0x18d8 00001a79: JUMP 00001a7a: JUMPDEST 00001a7b: POP 00001a7c: PUSH1 0x00 00001a7e: NOT 00001a7f: ADD 00001a80: SWAP1 00001a81: JUMP 00001a82: JUMPDEST 00001a83: PUSH4 0x4e487b71 00001a88: PUSH1 0xe0 00001a8a: SHL 00001a8b: PUSH1 0x00 00001a8d: MSTORE 00001a8e: PUSH1 0x31 00001a90: PUSH1 0x04 00001a92: MSTORE 00001a93: PUSH1 0x24 00001a95: PUSH1 0x00 00001a97: REVERT 00001a98: INVALID 00001a99: LOG2 00001a9a: PUSH5 0x6970667358 00001aa0: UNKNOWN(0x22) 00001aa1: SLT 00001aa2: KECCAK256 00001aa3: UNKNOWN(0x2F) 00001aa4: DUP15 00001aa5: DELEGATECALL 00001aa6: UNKNOWN(0xAE) 00001aa7: UNKNOWN(0xC1) 00001aa8: AND 00001aa9: UNKNOWN(0x2D) 00001aaa: UNKNOWN(0x27) 00001aab: PUSH17 0xca16dbd530d533c8cc2c17763192b73c55 00001abd: UNKNOWN(0xAF) 00001abe: DUP5 00001abf: PUSH4 0x7793c764 00001ac4: PUSH20
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0xec2aabf9d35a931c2a771474ff0c64327f5bc9a9e1b8bfda1e807312747f800e
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0xec2aabf9d35a931c2a771474ff0c64327f5bc9a9e1b8bfda1e807312747f800e",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xae326465",
"selector": "0xae326465",
"calldata_variants": [
"0xae326465",
"0xae3264650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc3118459",
"selector": "0xc3118459",
"calldata_variants": [
"0xc3118459",
"0xc31184590000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca15c873",
"selector": "0xca15c873",
"calldata_variants": [
"0xca15c873",
"0xca15c8730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd04b978",
"selector": "0xdd04b978",
"calldata_variants": [
"0xdd04b978",
"0xdd04b9780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe3667f5e",
"selector": "0xe3667f5e",
"calldata_variants": [
"0xe3667f5e",
"0xe3667f5e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x91d14854",
"selector": "0x91d14854",
"calldata_variants": [
"0x91d14854",
"0x91d148540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9e281a98",
"selector": "0x9e281a98",
"calldata_variants": [
"0x9e281a98",
"0x9e281a980000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 6821,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x0214476871746a66d06febfdebf8a6ebac1add062a231ebff0d6e9a1c183f620
call_targets:
0x9f205e1ac7698f59edbaa0a28c4a4c4ed605b722
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0214476871746a66d06febfdebf8a6ebac1add062a231ebff0d6e9a1c183f620",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x9f205e1ac7698f59edbaa0a28c4a4c4ed605b722"
],
"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": "0xae326465",
"selector": "0xae326465",
"calldata_variants": [
"0xae326465",
"0xae3264650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc3118459",
"selector": "0xc3118459",
"calldata_variants": [
"0xc3118459",
"0xc31184590000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca15c873",
"selector": "0xca15c873",
"calldata_variants": [
"0xca15c873",
"0xca15c8730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd04b978",
"selector": "0xdd04b978",
"calldata_variants": [
"0xdd04b978",
"0xdd04b9780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe3667f5e",
"selector": "0xe3667f5e",
"calldata_variants": [
"0xe3667f5e",
"0xe3667f5e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x91d14854",
"selector": "0x91d14854",
"calldata_variants": [
"0x91d14854",
"0x91d148540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9e281a98",
"selector": "0x9e281a98",
"calldata_variants": [
"0x9e281a98",
"0x9e281a980000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2086,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4573,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4728,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 4,
"guards_detected": [],
"untrusted_call_count": 4
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x0214476871746a66d06febfdebf8a6ebac1add062a231ebff0d6e9a1c183f620
call_targets:
0x9f205e1ac7698f59edbaa0a28c4a4c4ed605b722
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0214476871746a66d06febfdebf8a6ebac1add062a231ebff0d6e9a1c183f620",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x9f205e1ac7698f59edbaa0a28c4a4c4ed605b722"
],
"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": "0xae326465",
"selector": "0xae326465",
"calldata_variants": [
"0xae326465",
"0xae3264650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc3118459",
"selector": "0xc3118459",
"calldata_variants": [
"0xc3118459",
"0xc31184590000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca15c873",
"selector": "0xca15c873",
"calldata_variants": [
"0xca15c873",
"0xca15c8730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd04b978",
"selector": "0xdd04b978",
"calldata_variants": [
"0xdd04b978",
"0xdd04b9780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe3667f5e",
"selector": "0xe3667f5e",
"calldata_variants": [
"0xe3667f5e",
"0xe3667f5e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x91d14854",
"selector": "0x91d14854",
"calldata_variants": [
"0x91d14854",
"0x91d148540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9e281a98",
"selector": "0x9e281a98",
"calldata_variants": [
"0x9e281a98",
"0x9e281a980000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2086,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4573,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4728,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 4,
"guards_detected": []
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| low | other | codex | Unchecked ERC20 return values in withdrawal/redemption flow | 65 | no | — |
viewevidence_json{
"evidence": "`withdrawToken` uses `IERC20(usdcTokenAddress).transfer(...)` without checking the return value, and `_redeemBUIDL` calls `IERC20(buidlTokenAddress).approve(...)` directly without SafeERC20 or return-value checks.",
"locations": [
"contracts/contracts/xManager/tokenManagers/tokenSources/BuidlUSDCSource.sol:175",
"contracts/contracts/xManager/tokenManagers/tokenSources/BuidlUSDCSource.sol:235"
],
"recommendation": "Use SafeERC20 for `transfer` and `approve` (e.g., `safeTransfer` and `safeApprove`/`safeIncreaseAllowance`), or explicitly require the returned boolean to be true. Consider resetting allowance to zero before setting a new value if the token is known to require it.",
"exploit_scenario": "If the USDC or BUIDL token implementation returns false instead of reverting on failure (or requires a zero-allowance reset), `withdrawToken` and `_redeemBUIDL` can succeed and emit events even though the transfer/approval failed. This can lead to silent under-withdrawals or redemption failures without reverting, breaking accounting/operational assumptions for off-chain processes."
}
|
| 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": 16
}
|