TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

073f3e74-0f6a-484b-9199-a379c502677a

complete
Chain ID
1
Address
Block Number
Created
Fri, Dec 26, 2025 3:25 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted DELEGATECALL target reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
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

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: yes

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
One low-severity issue found: unchecked ERC20 return values in BuidlUSDCSource during transfers/approvals could allow silent failures with non-standard tokens.
View stderr
[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"]}]}
Metadata
{
    "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
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
16
EXT*/BALANCE
2
Total opcodes
3836
Flags
delegatecall_present call_family_heavy
View cast disassembly output
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

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_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
view
trace_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
view
trace_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
view
evidence_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
view
evidence_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
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 16
}