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

Analysis Run

1477e342-0362-4cb5-8d4e-25617326771b

complete
Chain ID
1
Address
Block Number
Created
Sun, Dec 28, 2025 3:12 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
Authorization based on tx.origin
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
30317 report.consolidate complete 1 / 1 3 months ago
74086 artifact.fetch complete 1 / 3 1 week ago
74087 tool.cast_disasm complete 1 / 3 1 week ago
74088 analysis.bundle complete 1 / 3 1 week ago
74089 capability.graph complete 1 / 3 1 week ago
74090 detector.run complete 1 / 3 1 week ago
74091 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
Found 1 issue: spot-price fallback in TWAP quoting can be manipulated to extract value from buyback swaps when observations are insufficient.
View stderr
[codex:1046196] OpenAI Codex v0.77.0 (research preview)
[codex:1046196] --------
[codex:1046196] workdir: /tmp/codex-multi-vmovw0u1
[codex:1046196] model: gpt-5.2-codex
[codex:1046196] provider: openai
[codex:1046196] approval: never
[codex:1046196] sandbox: read-only
[codex:1046196] reasoning effort: xhigh
[codex:1046196] reasoning summaries: auto
[codex:1046196] session id: 019b657c-8554-7832-935b-2fd09fada2dc
[codex:1046196] --------
[codex:1046196] user
[codex:1046196] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1046196] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1046196] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1046196] 
[codex:1046196] Scope rules:
[codex:1046196] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1046196] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1046196] 
[codex:1046196] Output MUST be valid JSON matching the provided schema.
[codex:1046196] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1046196] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1046196] 
[codex:1046196] Output constraints (IMPORTANT):
[codex:1046196] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1046196] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1046196] mcp startup: no servers
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Preparing to review audit instructions**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc ls in /tmp/codex-multi-vmovw0u1 succeeded in 5ms:
[codex:1046196] AUDIT_BUNDLE.txt
[codex:1046196] codex-output-schema.json
[codex:1046196] contracts
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Reading AUDIT_BUNDLE.txt**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1046196] 
[codex:1046196] ================================================================================
[codex:1046196] FILE: contracts/@openzeppelin/contracts/access/Ownable.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: MIT
[codex:1046196] // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
[codex:1046196] 
[codex:1046196] pragma solidity ^0.8.20;
[codex:1046196] 
[codex:1046196] import {Context} from "../utils/Context.sol";
[codex:1046196] 
[codex:1046196] /**
[codex:1046196]  * @dev Contract module which provides a basic access control mechanism, where
[codex:1046196]  * there is an account (an owner) that can be granted exclusive access to
[codex:1046196]  * specific functions.
[codex:1046196]  *
[codex:1046196]  * The initial owner is set to the address provided by the deployer. This can
[codex:1046196]  * later be changed with {transferOwnership}.
[codex:1046196]  *
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Identifying main contracts in bundle**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc 'rg -n "''^FILE: contracts/contracts/" AUDIT_BUNDLE.txt' in /tmp/codex-multi-vmovw0u1 succeeded in 7ms:
[codex:1046196] 2594:FILE: contracts/contracts/DragonBuyAndBurn.sol
[codex:1046196] 3432:FILE: contracts/contracts/DragonX.sol
[codex:1046196] 4364:FILE: contracts/contracts/TitanBuy.sol
[codex:1046196] 4832:FILE: contracts/contracts/lib/Constants.sol
[codex:1046196] 4877:FILE: contracts/contracts/lib/DragonStake.sol
[codex:1046196] 5116:FILE: contracts/contracts/lib/Types.sol
[codex:1046196] 5130:FILE: contracts/contracts/lib/interfaces/INonfungiblePositionManager.sol
[codex:1046196] 5188:FILE: contracts/contracts/lib/interfaces/ITitanX.sol
[codex:1046196] 5301:FILE: contracts/contracts/lib/interfaces/IWETH.sol
[codex:1046196] 5319:FILE: contracts/contracts/lib/uniswap/Oracle.sol
[codex:1046196] 5496:FILE: contracts/contracts/lib/uniswap/PoolAddress.sol
[codex:1046196] 5593:FILE: contracts/contracts/lib/uniswap/TickMath.sol
[codex:1046196] 5905:FILE: contracts/contracts/mocks/BuildOnDragonX.sol
[codex:1046196] 5930:FILE: contracts/contracts/mocks/SwapHelper.sol
[codex:1046196] 6033:FILE: contracts/contracts/mocks/TriggerBot.sol
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Planning contract file extraction**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "sed -n '2594,3431p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] FILE: contracts/contracts/DragonBuyAndBurn.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: UNLICENSED
[codex:1046196] pragma solidity 0.8.20;
[codex:1046196] 
[codex:1046196] // UniSwap
[codex:1046196] import "@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol";
[codex:1046196] import "@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol";
[codex:1046196] 
[codex:1046196] // OpenZeppelins
[codex:1046196] import "@openzeppelin/contracts/access/Ownable2Step.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/Context.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
[codex:1046196] 
[codex:1046196] // Library
[codex:1046196] import "./lib/Constants.sol";
[codex:1046196] import "./lib/interfaces/IWETH.sol";
[codex:1046196] import "./lib/interfaces/INonfungiblePositionManager.sol";
[codex:1046196] import "./lib/uniswap/PoolAddress.sol";
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Reviewing large file end for DragonX and TitanBuy**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "sed -n '3432,4363p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] FILE: contracts/contracts/DragonX.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: UNLICENSED
[codex:1046196] pragma solidity 0.8.20;
[codex:1046196] 
[codex:1046196] // OpenZeppelin
[codex:1046196] import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
[codex:1046196] import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/Address.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/Create2.sol";
[codex:1046196] import "@openzeppelin/contracts/access/Ownable2Step.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
[codex:1046196] 
[codex:1046196] // Library
[codex:1046196] import "./lib/DragonStake.sol";
[codex:1046196] import "./lib/Constants.sol";
[codex:1046196] import "./lib/Types.sol";
[codex:1046196] import "./lib/interfaces/ITitanX.sol";
[codex:1046196] 
[codex:1046196] /**
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Continuing with TitanBuy**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "sed -n '4364,4831p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] FILE: contracts/contracts/TitanBuy.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: UNLICENSED
[codex:1046196] pragma solidity 0.8.20;
[codex:1046196] 
[codex:1046196] // UniSwap
[codex:1046196] import "@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol";
[codex:1046196] import "@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol";
[codex:1046196] 
[codex:1046196] // OpenZeppelins
[codex:1046196] import "@openzeppelin/contracts/access/Ownable2Step.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/Context.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
[codex:1046196] 
[codex:1046196] // Library
[codex:1046196] import "./lib/Constants.sol";
[codex:1046196] import "./lib/interfaces/IWETH.sol";
[codex:1046196] import "./lib/uniswap/PoolAddress.sol";
[codex:1046196] import "./lib/uniswap/Oracle.sol";
[codex:1046196] 
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Evaluating third-party vs first-party audit scope**
[codex:1046196] thinking
[codex:1046196] **Analyzing Uniswap TWAP behavior and token interactions**
[codex:1046196] 
[codex:1046196] I’m unpacking how the TWAP may fall back to current price when observations are missing or new, causing potential price manipulation early on. I’m also scrutinizing allowance increments, edge cases in ETH and token transfers, reentrancy guards, and token accounting—especially around deflationary tokens and vault balance calculations—to understand if any unexpected risks arise in these interactions.
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "sed -n '4832,4876p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-vmovw0u1 succeeded in 7ms:
[codex:1046196] FILE: contracts/contracts/lib/Constants.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: UNLICENSED
[codex:1046196] pragma solidity 0.8.20;
[codex:1046196] 
[codex:1046196] /* Common */
[codex:1046196] uint256 constant BASIS = 10_000;
[codex:1046196] uint256 constant SECONDS_IN_DAY = 86400;
[codex:1046196] uint256 constant SCALING_FACTOR_1e3 = 1e3;
[codex:1046196] uint256 constant SCALING_FACTOR_1e6 = 1e6;
[codex:1046196] uint256 constant SCALING_FACTOR_1e7 = 1e7;
[codex:1046196] uint256 constant SCALING_FACTOR_1e11 = 1e11;
[codex:1046196] uint256 constant SCALING_FACTOR_1e18 = 1e18;
[codex:1046196] 
[codex:1046196] /* TitanX staking */
[codex:1046196] uint256 constant TITANX_MAX_STAKE_PER_WALLET = 1000;
[codex:1046196] uint256 constant TITANX_MIN_STAKE_LENGTH = 28;
[codex:1046196] uint256 constant TITANX_MAX_STAKE_LENGTH = 3500;
[codex:1046196] 
[codex:1046196] /* TitanX Stake Longer Pays Better bonus */
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Analyzing contract logic and potential vulnerabilities**
[codex:1046196] 
[codex:1046196] I'm examining complex interactions in the DragonX system, focusing on access controls, token minting restrictions, fee handling with ETH transfers, and potential edge cases involving incentive payouts and external calls. I want to verify whether owner privileges or external calls like `triggerPayouts` might open subtle loopholes or disrupt expected token flows, while also considering possible pitfalls from external contract dependencies like DragonStake. This cautious deep dive helps me ensure no hidden vulnerabilities are overlooked across contract boundaries.
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "sed -n '4877,5115p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] FILE: contracts/contracts/lib/DragonStake.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: UNLICENSED
[codex:1046196] pragma solidity 0.8.20;
[codex:1046196] 
[codex:1046196] // OpenZeppelin
[codex:1046196] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1046196] import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/Address.sol";
[codex:1046196] import "@openzeppelin/contracts/access/Ownable.sol";
[codex:1046196] 
[codex:1046196] // Library
[codex:1046196] import "./interfaces/ITitanX.sol";
[codex:1046196] import "../DragonX.sol";
[codex:1046196] import "./Constants.sol";
[codex:1046196] 
[codex:1046196] /**
[codex:1046196]  * @title A contract managed and deployed by DragonX to initialise the maximum amount of stakes per address
[codex:1046196]  * @author The DragonX devs
[codex:1046196]  * @notice This contract is instantiated by DragonX and will not be deployed as a separate entity
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Analyzing DragonStake and DragonX vulnerabilities**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "sed -n '5319,5495p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] FILE: contracts/contracts/lib/uniswap/Oracle.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: UNLICENSED
[codex:1046196] pragma solidity 0.8.20;
[codex:1046196] 
[codex:1046196] // Uniswap
[codex:1046196] import "@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol";
[codex:1046196] 
[codex:1046196] // OpenZeppelin
[codex:1046196] import "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1046196] 
[codex:1046196] /**
[codex:1046196]  * @notice Adapted Uniswap V3 OracleLibrary computation to be compliant with Solidity 0.8.x and later.
[codex:1046196]  *
[codex:1046196]  * Documentation for Auditors:
[codex:1046196]  *
[codex:1046196]  * Solidity Version: Updated the Solidity version pragma to ^0.8.0. This change ensures compatibility
[codex:1046196]  * with Solidity version 0.8.x.
[codex:1046196]  *
[codex:1046196]  * Safe Arithmetic Operations: Solidity 0.8.x automatically checks for arithmetic overflows/underflows.
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Analyzing potential contract risks and inconsistencies**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc 'rg -n "SafeERC20" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] 807: * {SafeERC20-safeTransferFrom}).
[codex:1046196] 863:FILE: contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
[codex:1046196] 866:// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)
[codex:1046196] 875: * @title SafeERC20
[codex:1046196] 880: * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
[codex:1046196] 883:library SafeERC20 {
[codex:1046196] 889:    error SafeERC20FailedOperation(address token);
[codex:1046196] 894:    error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);
[codex:1046196] 929:                revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);
[codex:1046196] 962:            revert SafeERC20FailedOperation(address(token));
[codex:1046196] 2621:    using SafeERC20 for IERC20;
[codex:1046196] 2622:    using SafeERC20 for IWETH9;
[codex:1046196] 2623:    using SafeERC20 for DragonX;
[codex:1046196] 3439:import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1046196] 3456:    using SafeERC20 for IERC20;
[codex:1046196] 3457:    using SafeERC20 for ITitanX;
[codex:1046196] 4390:    using SafeERC20 for IERC20;
[codex:1046196] 4391:    using SafeERC20 for IWETH9;
[codex:1046196] 4884:import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1046196] 4899:    using SafeERC20 for IERC20;
[codex:1046196] 
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Analyzing SafeERC20 imports and access controls**
[codex:1046196] thinking
[codex:1046196] **Examining delegatecall and time-based logic**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc 'rg -n "delegatecall" AUDIT_BUNDLE.txt' in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] 1091:        (bool success, bytes memory returndata) = target.delegatecall(data);
[codex:1046196] 
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Analyzing oracle manipulation risk and contract behaviors**
[codex:1046196] thinking
[codex:1046196] **Evaluating staking and transaction origin protections**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "nl -ba contracts/contracts/DragonBuyAndBurn.sol | sed -n '150,260p'" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196]    150	        address indexed caller
[codex:1046196]    151	    );
[codex:1046196]    152	
[codex:1046196]    153	    // -----------------------------------------
[codex:1046196]    154	    // Errors
[codex:1046196]    155	    // -----------------------------------------
[codex:1046196]    156	    /**
[codex:1046196]    157	     * @dev Thrown when the provided address is address(0)
[codex:1046196]    158	     */
[codex:1046196]    159	    error InvalidDragonAddress();
[codex:1046196]    160	
[codex:1046196]    161	    /**
[codex:1046196]    162	     * @dev Thrown when the function caller is not authorized or expected.
[codex:1046196]    163	     */
[codex:1046196]    164	    error InvalidCaller();
[codex:1046196]    165	
[codex:1046196]    166	    /**
[codex:1046196]    167	     * @dev Thrown when trying to buy and burn DragonX but the cooldown period is still active.
[codex:1046196]    168	     */
[codex:1046196]    169	    error CooldownPeriodActive();
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Adding line numbers to specific functions**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "nl -ba contracts/contracts/DragonBuyAndBurn.sol | sed -n '350,520p'" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196]    350	        (uint256 amount0, uint256 amount1) = _collectFees();
[codex:1046196]    351	
[codex:1046196]    352	        uint256 dragon;
[codex:1046196]    353	        uint256 titan;
[codex:1046196]    354	
[codex:1046196]    355	        if (dragonAddress_ < titanAddress_) {
[codex:1046196]    356	            dragon = amount0;
[codex:1046196]    357	            titan = amount1;
[codex:1046196]    358	        } else {
[codex:1046196]    359	            titan = amount0;
[codex:1046196]    360	            dragon = amount1;
[codex:1046196]    361	        }
[codex:1046196]    362	
[codex:1046196]    363	        totalDragonFeesBurned += dragon;
[codex:1046196]    364	        totalTitanFeeCollected += titan;
[codex:1046196]    365	        totalDragonBurned += dragon;
[codex:1046196]    366	
[codex:1046196]    367	        DragonX dragonX = DragonX(payable(dragonAddress_));
[codex:1046196]    368	        dragonX.burn();
[codex:1046196]    369	
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Locating functions in codebase**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "nl -ba contracts/contracts/DragonBuyAndBurn.sol | sed -n '560,760p'" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196]    560	
[codex:1046196]    561	        uint160 sqrtPriceX96;
[codex:1046196]    562	        if (secondsAgo == 0) {
[codex:1046196]    563	            // Default to current price
[codex:1046196]    564	            IUniswapV3Pool pool = IUniswapV3Pool(poolAddress);
[codex:1046196]    565	            (sqrtPriceX96, , , , , , ) = pool.slot0();
[codex:1046196]    566	        } else {
[codex:1046196]    567	            // Consult the Oracle Library for TWAP
[codex:1046196]    568	            (int24 arithmeticMeanTick, ) = OracleLibrary.consult(
[codex:1046196]    569	                poolAddress,
[codex:1046196]    570	                secondsAgo
[codex:1046196]    571	            );
[codex:1046196]    572	
[codex:1046196]    573	            // Convert tick to sqrtPriceX96
[codex:1046196]    574	            sqrtPriceX96 = TickMath.getSqrtRatioAtTick(arithmeticMeanTick);
[codex:1046196]    575	        }
[codex:1046196]    576	
[codex:1046196]    577	        return
[codex:1046196]    578	            OracleLibrary.getQuoteForSqrtRatioX96(
[codex:1046196]    579	                sqrtPriceX96,
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Identifying related code in TitanBuy**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "nl -ba contracts/contracts/TitanBuy.sol | sed -n '280,420p'" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196]    280	    function totalWethForBuy() external view returns (uint256 balance) {
[codex:1046196]    281	        return IERC20(WETH9_ADDRESS).balanceOf(address(this));
[codex:1046196]    282	    }
[codex:1046196]    283	
[codex:1046196]    284	    /**
[codex:1046196]    285	     * @dev Calculates the incentive fee for executing the buyTitanX function.
[codex:1046196]    286	     * The fee is computed based on the WETH amount designated for the next TitanX purchase,
[codex:1046196]    287	     * using the `wethForNextBuy` function, and applying a predefined incentive fee rate.
[codex:1046196]    288	     *
[codex:1046196]    289	     * @notice Used to determine the incentive fee for running the buyTitanX function.
[codex:1046196]    290	     *
[codex:1046196]    291	     * @return fee The calculated incentive fee, represented as a uint256.
[codex:1046196]    292	     * This value is calculated by taking the product of `wethForNextBuy()` and
[codex:1046196]    293	     * `INCENTIVE_FEE`, then dividing by `BASIS` to normalize the fee calculation.
[codex:1046196]    294	     */
[codex:1046196]    295	    function incentiveFeeForRunningBuyTitanX()
[codex:1046196]    296	        external
[codex:1046196]    297	        view
[codex:1046196]    298	        returns (uint256 fee)
[codex:1046196]    299	    {
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Analyzing oracle manipulation and attack severity**
[codex:1046196] 
[codex:1046196] I'm weighing the severity of a price manipulation attack that exploits fallback to spot price when TWAP isn't available, balancing potential losses against caps and MEV behavior. I'm also considering other findings related to DoS and checking for issues in key vulnerability categories, while aiming to match a JSON output schema for reporting.
[codex:1046196] exec
[codex:1046196] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-vmovw0u1 succeeded in 5ms:
[codex:1046196] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:1046196] 
[codex:1046196] thinking
[codex:1046196] **Composing structured JSON findings**
[codex:1046196] codex
[codex:1046196] {"no_findings":false,"summary":"Found 1 issue: spot-price fallback in TWAP quoting can be manipulated to extract value from buyback swaps when observations are insufficient.","findings":[{"severity":"medium","category":"oracle","title":"Spot-price fallback in TWAP quotes enables sandwiching of buybacks when observations are insufficient","exploit_scenario":"If the pool is newly initialized or observation history is too short, `oldestObservation` can be zero, causing the quote to fall back to the current `slot0` price. An attacker can manipulate the pool price within the block, call `buyTitanX()` or `buyAndBurnDragonX()` from an EOA, and then back-run to restore price, profiting from the protocol’s WETH spent at the manipulated price (bounded per swap but repeatable each interval).","recommendation":"Require a minimum observation age (e.g., revert if `oldestObservation < minTwa`) and only allow swaps once TWAP history is available. Alternatively, enforce a hard minimum TWAP window, add a secondary oracle/sanity check, or use `sqrtPriceLimitX96`/price-impact caps to prevent spot-price manipulation.","evidence":"Both buy contracts clamp the TWAP window to the oldest observation and fall back to spot price when `secondsAgo == 0`, which then feeds the minimum-out calculations for swaps.","locations":["contracts/contracts/DragonBuyAndBurn.sol:561","contracts/contracts/DragonBuyAndBurn.sol:623","contracts/contracts/TitanBuy.sol:378","contracts/contracts/TitanBuy.sol:389"]}]}
[codex:1046196] tokens used
[codex:1046196] 80,004
[codex:1046196] {"no_findings":false,"summary":"Found 1 issue: spot-price fallback in TWAP quoting can be manipulated to extract value from buyback swaps when observations are insufficient.","findings":[{"severity":"medium","category":"oracle","title":"Spot-price fallback in TWAP quotes enables sandwiching of buybacks when observations are insufficient","exploit_scenario":"If the pool is newly initialized or observation history is too short, `oldestObservation` can be zero, causing the quote to fall back to the current `slot0` price. An attacker can manipulate the pool price within the block, call `buyTitanX()` or `buyAndBurnDragonX()` from an EOA, and then back-run to restore price, profiting from the protocol’s WETH spent at the manipulated price (bounded per swap but repeatable each interval).","recommendation":"Require a minimum observation age (e.g., revert if `oldestObservation < minTwa`) and only allow swaps once TWAP history is available. Alternatively, enforce a hard minimum TWAP window, add a secondary oracle/sanity check, or use `sqrtPriceLimitX96`/price-impact caps to prevent spot-price manipulation.","evidence":"Both buy contracts clamp the TWAP window to the oldest observation and fall back to spot price when `secondsAgo == 0`, which then feeds the minimum-out calculations for swaps.","locations":["contracts/contracts/DragonBuyAndBurn.sol:561","contracts/contracts/DragonBuyAndBurn.sol:623","contracts/contracts/TitanBuy.sol:378","contracts/contracts/TitanBuy.sol:389"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-28T15:12:33.683059+00:00",
        "returncode": 0
    },
    "summary": "Found 1 issue: spot-price fallback in TWAP quoting can be manipulated to extract value from buyback swaps when observations are insufficient.",
    "raw_final": {
        "summary": "Found 1 issue: spot-price fallback in TWAP quoting can be manipulated to extract value from buyback swaps when observations are insufficient.",
        "findings": [
            {
                "title": "Spot-price fallback in TWAP quotes enables sandwiching of buybacks when observations are insufficient",
                "category": "oracle",
                "evidence": "Both buy contracts clamp the TWAP window to the oldest observation and fall back to spot price when `secondsAgo == 0`, which then feeds the minimum-out calculations for swaps.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/DragonBuyAndBurn.sol:561",
                    "contracts/contracts/DragonBuyAndBurn.sol:623",
                    "contracts/contracts/TitanBuy.sol:378",
                    "contracts/contracts/TitanBuy.sol:389"
                ],
                "recommendation": "Require a minimum observation age (e.g., revert if `oldestObservation < minTwa`) and only allow swaps once TWAP history is available. Alternatively, enforce a hard minimum TWAP window, add a secondary oracle/sanity check, or use `sqrtPriceLimitX96`/price-impact caps to prevent spot-price manipulation.",
                "exploit_scenario": "If the pool is newly initialized or observation history is too short, `oldestObservation` can be zero, causing the quote to fall back to the current `slot0` price. An attacker can manipulate the pool price within the block, call `buyTitanX()` or `buyAndBurnDragonX()` from an EOA, and then back-run to restore price, profiting from the protocol\u2019s WETH spent at the manipulated price (bounded per swap but repeatable each interval)."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
26
EXT*/BALANCE
9
Total opcodes
7945
Flags
heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x01d1
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x8c14a5d6
00000019: GT
0000001a: PUSH2 0x00f7
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xd43e158c
00000024: GT
00000025: PUSH2 0x0095
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xe70b7d09
0000002f: GT
00000030: PUSH2 0x0064
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xe70b7d09
0000003a: EQ
0000003b: PUSH2 0x05a0
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xefdcbe6c
00000045: EQ
00000046: PUSH2 0x05b6
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf0fa55a9
00000050: EQ
00000051: PUSH2 0x05d6
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf2fde38b
0000005b: EQ
0000005c: PUSH2 0x05f6
0000005f: JUMPI
00000060: PUSH2 0x025c
00000063: JUMP
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0xd43e158c
0000006b: EQ
0000006c: PUSH2 0x0537
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xd8186458
00000076: EQ
00000077: PUSH2 0x0557
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xdf79d752
00000081: EQ
00000082: PUSH2 0x056c
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xe30c3978
0000008c: EQ
0000008d: PUSH2 0x0582
00000090: JUMPI
00000091: PUSH2 0x025c
00000094: JUMP
00000095: JUMPDEST
00000096: DUP1
00000097: PUSH4 0x9fafc686
0000009c: GT
0000009d: PUSH2 0x00d1
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0x9fafc686
000000a7: EQ
000000a8: PUSH2 0x04cd
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xb35ec4fa
000000b2: EQ
000000b3: PUSH2 0x04e2
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xbc7576d3
000000bd: EQ
000000be: PUSH2 0x0502
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0xc8796572
000000c8: EQ
000000c9: PUSH2 0x0522
000000cc: JUMPI
000000cd: PUSH2 0x025c
000000d0: JUMP
000000d1: JUMPDEST
000000d2: DUP1
000000d3: PUSH4 0x8c14a5d6
000000d8: EQ
000000d9: PUSH2 0x0465
000000dc: JUMPI
000000dd: DUP1
000000de: PUSH4 0x8da5cb5b
000000e3: EQ
000000e4: PUSH2 0x0485
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0x947a36fb
000000ee: EQ
000000ef: PUSH2 0x04b7
000000f2: JUMPI
000000f3: PUSH2 0x025c
000000f6: JUMP
000000f7: JUMPDEST
000000f8: DUP1
000000f9: PUSH4 0x42798394
000000fe: GT
000000ff: PUSH2 0x016f
00000102: JUMPI
00000103: DUP1
00000104: PUSH4 0x658a3b3c
00000109: GT
0000010a: PUSH2 0x013e
0000010d: JUMPI
0000010e: DUP1
0000010f: PUSH4 0x658a3b3c
00000114: EQ
00000115: PUSH2 0x0405
00000118: JUMPI
00000119: DUP1
0000011a: PUSH4 0x715018a6
0000011f: EQ
00000120: PUSH2 0x0425
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x79ba5097
0000012a: EQ
0000012b: PUSH2 0x043a
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0x81210531
00000135: EQ
00000136: PUSH2 0x044f
00000139: JUMPI
0000013a: PUSH2 0x025c
0000013d: JUMP
0000013e: JUMPDEST
0000013f: DUP1
00000140: PUSH4 0x42798394
00000145: EQ
00000146: PUSH2 0x03a4
00000149: JUMPI
0000014a: DUP1
0000014b: PUSH4 0x49f7e6c6
00000150: EQ
00000151: PUSH2 0x03c4
00000154: JUMPI
00000155: DUP1
00000156: PUSH4 0x4dfb82aa
0000015b: EQ
0000015c: PUSH2 0x03da
0000015f: JUMPI
00000160: DUP1
00000161: PUSH4 0x5ed88b84
00000166: EQ
00000167: PUSH2 0x03f0
0000016a: JUMPI
0000016b: PUSH2 0x025c
0000016e: JUMP
0000016f: JUMPDEST
00000170: DUP1
00000171: PUSH4 0x2e3d4400
00000176: GT
00000177: PUSH2 0x01ab
0000017a: JUMPI
0000017b: DUP1
0000017c: PUSH4 0x2e3d4400
00000181: EQ
00000182: PUSH2 0x0339
00000185: JUMPI
00000186: DUP1
00000187: PUSH4 0x3831fc3c
0000018c: EQ
0000018d: PUSH2 0x0359
00000190: JUMPI
00000191: DUP1
00000192: PUSH4 0x3db379a8
00000197: EQ
00000198: PUSH2 0x036e
0000019b: JUMPI
0000019c: DUP1
0000019d: PUSH4 0x3e032a3b
000001a2: EQ
000001a3: PUSH2 0x038e
000001a6: JUMPI
000001a7: PUSH2 0x025c
000001aa: JUMP
000001ab: JUMPDEST
000001ac: DUP1
000001ad: PUSH4 0x098dada5
000001b2: EQ
000001b3: PUSH2 0x02d0
000001b6: JUMPI
000001b7: DUP1
000001b8: PUSH4 0x0b1c963a
000001bd: EQ
000001be: PUSH2 0x02f0
000001c1: JUMPI
000001c2: DUP1
000001c3: PUSH4 0x1830893b
000001c8: EQ
000001c9: PUSH2 0x0323
000001cc: JUMPI
000001cd: PUSH2 0x025c
000001d0: JUMP
000001d1: JUMPDEST
000001d2: CALLDATASIZE
000001d3: PUSH2 0x025c
000001d6: JUMPI
000001d7: CALLER
000001d8: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
000001ed: EQ
000001ee: PUSH2 0x025a
000001f1: JUMPI
000001f2: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000207: PUSH1 0x01
00000209: PUSH1 0x01
0000020b: PUSH1 0xa0
0000020d: SHL
0000020e: SUB
0000020f: AND
00000210: PUSH4 0xd0e30db0
00000215: CALLVALUE
00000216: PUSH1 0x40
00000218: MLOAD
00000219: DUP3
0000021a: PUSH4 0xffffffff
0000021f: AND
00000220: PUSH1 0xe0
00000222: SHL
00000223: DUP2
00000224: MSTORE
00000225: PUSH1 0x04
00000227: ADD
00000228: PUSH1 0x00
0000022a: PUSH1 0x40
0000022c: MLOAD
0000022d: DUP1
0000022e: DUP4
0000022f: SUB
00000230: DUP2
00000231: DUP6
00000232: DUP9
00000233: DUP1
00000234: EXTCODESIZE
00000235: ISZERO
00000236: DUP1
00000237: ISZERO
00000238: PUSH2 0x0240
0000023b: JUMPI
0000023c: PUSH1 0x00
0000023e: DUP1
0000023f: REVERT
00000240: JUMPDEST
00000241: POP
00000242: GAS
00000243: CALL
00000244: ISZERO
00000245: DUP1
00000246: ISZERO
00000247: PUSH2 0x0254
0000024a: JUMPI
0000024b: RETURNDATASIZE
0000024c: PUSH1 0x00
0000024e: DUP1
0000024f: RETURNDATACOPY
00000250: RETURNDATASIZE
00000251: PUSH1 0x00
00000253: REVERT
00000254: JUMPDEST
00000255: POP
00000256: POP
00000257: POP
00000258: POP
00000259: POP
0000025a: JUMPDEST
0000025b: STOP
0000025c: JUMPDEST
0000025d: CALLVALUE
0000025e: DUP1
0000025f: ISZERO
00000260: PUSH2 0x0268
00000263: JUMPI
00000264: PUSH1 0x00
00000266: DUP1
00000267: REVERT
00000268: JUMPDEST
00000269: POP
0000026a: PUSH1 0x40
0000026c: MLOAD
0000026d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000028e: DUP2
0000028f: MSTORE
00000290: PUSH1 0x20
00000292: PUSH1 0x04
00000294: DUP3
00000295: ADD
00000296: MSTORE
00000297: PUSH1 0x12
00000299: PUSH1 0x24
0000029b: DUP3
0000029c: ADD
0000029d: MSTORE
0000029e: PUSH32 0x46616c6c6261636b207472696767657265640000000000000000000000000000
000002bf: PUSH1 0x44
000002c1: DUP3
000002c2: ADD
000002c3: MSTORE
000002c4: PUSH1 0x64
000002c6: ADD
000002c7: JUMPDEST
000002c8: PUSH1 0x40
000002ca: MLOAD
000002cb: DUP1
000002cc: SWAP2
000002cd: SUB
000002ce: SWAP1
000002cf: REVERT
000002d0: JUMPDEST
000002d1: CALLVALUE
000002d2: DUP1
000002d3: ISZERO
000002d4: PUSH2 0x02dc
000002d7: JUMPI
000002d8: PUSH1 0x00
000002da: DUP1
000002db: REVERT
000002dc: JUMPDEST
000002dd: POP
000002de: PUSH2 0x025a
000002e1: PUSH2 0x02eb
000002e4: CALLDATASIZE
000002e5: PUSH1 0x04
000002e7: PUSH2 0x30cb
000002ea: JUMP
000002eb: JUMPDEST
000002ec: PUSH2 0x0616
000002ef: JUMP
000002f0: JUMPDEST
000002f1: CALLVALUE
000002f2: DUP1
000002f3: ISZERO
000002f4: PUSH2 0x02fc
000002f7: JUMPI
000002f8: PUSH1 0x00
000002fa: DUP1
000002fb: REVERT
000002fc: JUMPDEST
000002fd: POP
000002fe: PUSH2 0x0310
00000301: PUSH2 0x030b
00000304: CALLDATASIZE
00000305: PUSH1 0x04
00000307: PUSH2 0x30cb
0000030a: JUMP
0000030b: JUMPDEST
0000030c: PUSH2 0x0623
0000030f: JUMP
00000310: JUMPDEST
00000311: PUSH1 0x40
00000313: MLOAD
00000314: SWAP1
00000315: DUP2
00000316: MSTORE
00000317: PUSH1 0x20
00000319: ADD
0000031a: JUMPDEST
0000031b: PUSH1 0x40
0000031d: MLOAD
0000031e: DUP1
0000031f: SWAP2
00000320: SUB
00000321: SWAP1
00000322: RETURN
00000323: JUMPDEST
00000324: CALLVALUE
00000325: DUP1
00000326: ISZERO
00000327: PUSH2 0x032f
0000032a: JUMPI
0000032b: PUSH1 0x00
0000032d: DUP1
0000032e: REVERT
0000032f: JUMPDEST
00000330: POP
00000331: PUSH2 0x0310
00000334: PUSH1 0x06
00000336: SLOAD
00000337: DUP2
00000338: JUMP
00000339: JUMPDEST
0000033a: CALLVALUE
0000033b: DUP1
0000033c: ISZERO
0000033d: PUSH2 0x0345
00000340: JUMPI
00000341: PUSH1 0x00
00000343: DUP1
00000344: REVERT
00000345: JUMPDEST
00000346: POP
00000347: PUSH2 0x0310
0000034a: PUSH2 0x0354
0000034d: CALLDATASIZE
0000034e: PUSH1 0x04
00000350: PUSH2 0x30cb
00000353: JUMP
00000354: JUMPDEST
00000355: PUSH2 0x0777
00000358: JUMP
00000359: JUMPDEST
0000035a: CALLVALUE
0000035b: DUP1
0000035c: ISZERO
0000035d: PUSH2 0x0365
00000360: JUMPI
00000361: PUSH1 0x00
00000363: DUP1
00000364: REVERT
00000365: JUMPDEST
00000366: POP
00000367: PUSH2 0x0310
0000036a: PUSH2 0x08e9
0000036d: JUMP
0000036e: JUMPDEST
0000036f: CALLVALUE
00000370: DUP1
00000371: ISZERO
00000372: PUSH2 0x037a
00000375: JUMPI
00000376: PUSH1 0x00
00000378: DUP1
00000379: REVERT
0000037a: JUMPDEST
0000037b: POP
0000037c: PUSH2 0x025a
0000037f: PUSH2 0x0389
00000382: CALLDATASIZE
00000383: PUSH1 0x04
00000385: PUSH2 0x30f6
00000388: JUMP
00000389: JUMPDEST
0000038a: PUSH2 0x0da1
0000038d: JUMP
0000038e: JUMPDEST
0000038f: CALLVALUE
00000390: DUP1
00000391: ISZERO
00000392: PUSH2 0x039a
00000395: JUMPI
00000396: PUSH1 0x00
00000398: DUP1
00000399: REVERT
0000039a: JUMPDEST
0000039b: POP
0000039c: PUSH2 0x0310
0000039f: PUSH1 0x04
000003a1: SLOAD
000003a2: DUP2
000003a3: JUMP
000003a4: JUMPDEST
000003a5: CALLVALUE
000003a6: DUP1
000003a7: ISZERO
000003a8: PUSH2 0x03b0
000003ab: JUMPI
000003ac: PUSH1 0x00
000003ae: DUP1
000003af: REVERT
000003b0: JUMPDEST
000003b1: POP
000003b2: PUSH2 0x025a
000003b5: PUSH2 0x03bf
000003b8: CALLDATASIZE
000003b9: PUSH1 0x04
000003bb: PUSH2 0x30cb
000003be: JUMP
000003bf: JUMPDEST
000003c0: PUSH2 0x0e6c
000003c3: JUMP
000003c4: JUMPDEST
000003c5: CALLVALUE
000003c6: DUP1
000003c7: ISZERO
000003c8: PUSH2 0x03d0
000003cb: JUMPI
000003cc: PUSH1 0x00
000003ce: DUP1
000003cf: REVERT
000003d0: JUMPDEST
000003d1: POP
000003d2: PUSH2 0x0310
000003d5: PUSH1 0x0a
000003d7: SLOAD
000003d8: DUP2
000003d9: JUMP
000003da: JUMPDEST
000003db: CALLVALUE
000003dc: DUP1
000003dd: ISZERO
000003de: PUSH2 0x03e6
000003e1: JUMPI
000003e2: PUSH1 0x00
000003e4: DUP1
000003e5: REVERT
000003e6: JUMPDEST
000003e7: POP
000003e8: PUSH2 0x0310
000003eb: PUSH1 0x08
000003ed: SLOAD
000003ee: DUP2
000003ef: JUMP
000003f0: JUMPDEST
000003f1: CALLVALUE
000003f2: DUP1
000003f3: ISZERO
000003f4: PUSH2 0x03fc
000003f7: JUMPI
000003f8: PUSH1 0x00
000003fa: DUP1
000003fb: REVERT
000003fc: JUMPDEST
000003fd: POP
000003fe: PUSH2 0x0310
00000401: PUSH2 0x11bd
00000404: JUMP
00000405: JUMPDEST
00000406: CALLVALUE
00000407: DUP1
00000408: ISZERO
00000409: PUSH2 0x0411
0000040c: JUMPI
0000040d: PUSH1 0x00
0000040f: DUP1
00000410: REVERT
00000411: JUMPDEST
00000412: POP
00000413: PUSH2 0x025a
00000416: PUSH2 0x0420
00000419: CALLDATASIZE
0000041a: PUSH1 0x04
0000041c: PUSH2 0x3128
0000041f: JUMP
00000420: JUMPDEST
00000421: PUSH2 0x1251
00000424: JUMP
00000425: JUMPDEST
00000426: CALLVALUE
00000427: DUP1
00000428: ISZERO
00000429: PUSH2 0x0431
0000042c: JUMPI
0000042d: PUSH1 0x00
0000042f: DUP1
00000430: REVERT
00000431: JUMPDEST
00000432: POP
00000433: PUSH2 0x025a
00000436: PUSH2 0x12d3
00000439: JUMP
0000043a: JUMPDEST
0000043b: CALLVALUE
0000043c: DUP1
0000043d: ISZERO
0000043e: PUSH2 0x0446
00000441: JUMPI
00000442: PUSH1 0x00
00000444: DUP1
00000445: REVERT
00000446: JUMPDEST
00000447: POP
00000448: PUSH2 0x025a
0000044b: PUSH2 0x12e7
0000044e: JUMP
0000044f: JUMPDEST
00000450: CALLVALUE
00000451: DUP1
00000452: ISZERO
00000453: PUSH2 0x045b
00000456: JUMPI
00000457: PUSH1 0x00
00000459: DUP1
0000045a: REVERT
0000045b: JUMPDEST
0000045c: POP
0000045d: PUSH2 0x0310
00000460: PUSH1 0x09
00000462: SLOAD
00000463: DUP2
00000464: JUMP
00000465: JUMPDEST
00000466: CALLVALUE
00000467: DUP1
00000468: ISZERO
00000469: PUSH2 0x0471
0000046c: JUMPI
0000046d: PUSH1 0x00
0000046f: DUP1
00000470: REVERT
00000471: JUMPDEST
00000472: POP
00000473: PUSH2 0x025a
00000476: PUSH2 0x0480
00000479: CALLDATASIZE
0000047a: PUSH1 0x04
0000047c: PUSH2 0x30f6
0000047f: JUMP
00000480: JUMPDEST
00000481: PUSH2 0x1344
00000484: JUMP
00000485: JUMPDEST
00000486: CALLVALUE
00000487: DUP1
00000488: ISZERO
00000489: PUSH2 0x0491
0000048c: JUMPI
0000048d: PUSH1 0x00
0000048f: DUP1
00000490: REVERT
00000491: JUMPDEST
00000492: POP
00000493: PUSH1 0x00
00000495: SLOAD
00000496: PUSH1 0x01
00000498: PUSH1 0x01
0000049a: PUSH1 0xa0
0000049c: SHL
0000049d: SUB
0000049e: AND
0000049f: JUMPDEST
000004a0: PUSH1 0x40
000004a2: MLOAD
000004a3: PUSH1 0x01
000004a5: PUSH1 0x01
000004a7: PUSH1 0xa0
000004a9: SHL
000004aa: SUB
000004ab: SWAP1
000004ac: SWAP2
000004ad: AND
000004ae: DUP2
000004af: MSTORE
000004b0: PUSH1 0x20
000004b2: ADD
000004b3: PUSH2 0x031a
000004b6: JUMP
000004b7: JUMPDEST
000004b8: CALLVALUE
000004b9: DUP1
000004ba: ISZERO
000004bb: PUSH2 0x04c3
000004be: JUMPI
000004bf: PUSH1 0x00
000004c1: DUP1
000004c2: REVERT
000004c3: JUMPDEST
000004c4: POP
000004c5: PUSH2 0x0310
000004c8: PUSH1 0x0b
000004ca: SLOAD
000004cb: DUP2
000004cc: JUMP
000004cd: JUMPDEST
000004ce: CALLVALUE
000004cf: DUP1
000004d0: ISZERO
000004d1: PUSH2 0x04d9
000004d4: JUMPI
000004d5: PUSH1 0x00
000004d7: DUP1
000004d8: REVERT
000004d9: JUMPDEST
000004da: POP
000004db: PUSH2 0x0310
000004de: PUSH2 0x1407
000004e1: JUMP
000004e2: JUMPDEST
000004e3: CALLVALUE
000004e4: DUP1
000004e5: ISZERO
000004e6: PUSH2 0x04ee
000004e9: JUMPI
000004ea: PUSH1 0x00
000004ec: DUP1
000004ed: REVERT
000004ee: JUMPDEST
000004ef: POP
000004f0: PUSH1 0x03
000004f2: SLOAD
000004f3: PUSH2 0x049f
000004f6: SWAP1
000004f7: PUSH1 0x01
000004f9: PUSH1 0x01
000004fb: PUSH1 0xa0
000004fd: SHL
000004fe: SUB
000004ff: AND
00000500: DUP2
00000501: JUMP
00000502: JUMPDEST
00000503: CALLVALUE
00000504: DUP1
00000505: ISZERO
00000506: PUSH2 0x050e
00000509: JUMPI
0000050a: PUSH1 0x00
0000050c: DUP1
0000050d: REVERT
0000050e: JUMPDEST
0000050f: POP
00000510: PUSH2 0x025a
00000513: PUSH2 0x051d
00000516: CALLDATASIZE
00000517: PUSH1 0x04
00000519: PUSH2 0x30cb
0000051c: JUMP
0000051d: JUMPDEST
0000051e: PUSH2 0x14af
00000521: JUMP
00000522: JUMPDEST
00000523: CALLVALUE
00000524: DUP1
00000525: ISZERO
00000526: PUSH2 0x052e
00000529: JUMPI
0000052a: PUSH1 0x00
0000052c: DUP1
0000052d: REVERT
0000052e: JUMPDEST
0000052f: POP
00000530: PUSH2 0x025a
00000533: PUSH2 0x1535
00000536: JUMP
00000537: JUMPDEST
00000538: CALLVALUE
00000539: DUP1
0000053a: ISZERO
0000053b: PUSH2 0x0543
0000053e: JUMPI
0000053f: PUSH1 0x00
00000541: DUP1
00000542: REVERT
00000543: JUMPDEST
00000544: POP
00000545: PUSH2 0x0310
00000548: PUSH2 0x0552
0000054b: CALLDATASIZE
0000054c: PUSH1 0x04
0000054e: PUSH2 0x30cb
00000551: JUMP
00000552: JUMPDEST
00000553: PUSH2 0x16f0
00000556: JUMP
00000557: JUMPDEST
00000558: CALLVALUE
00000559: DUP1
0000055a: ISZERO
0000055b: PUSH2 0x0563
0000055e: JUMPI
0000055f: PUSH1 0x00
00000561: DUP1
00000562: REVERT
00000563: JUMPDEST
00000564: POP
00000565: PUSH2 0x0310
00000568: PUSH2 0x1760
0000056b: JUMP
0000056c: JUMPDEST
0000056d: CALLVALUE
0000056e: DUP1
0000056f: ISZERO
00000570: PUSH2 0x0578
00000573: JUMPI
00000574: PUSH1 0x00
00000576: DUP1
00000577: REVERT
00000578: JUMPDEST
00000579: POP
0000057a: PUSH2 0x0310
0000057d: PUSH1 0x05
0000057f: SLOAD
00000580: DUP2
00000581: JUMP
00000582: JUMPDEST
00000583: CALLVALUE
00000584: DUP1
00000585: ISZERO
00000586: PUSH2 0x058e
00000589: JUMPI
0000058a: PUSH1 0x00
0000058c: DUP1
0000058d: REVERT
0000058e: JUMPDEST
0000058f: POP
00000590: PUSH1 0x01
00000592: SLOAD
00000593: PUSH1 0x01
00000595: PUSH1 0x01
00000597: PUSH1 0xa0
00000599: SHL
0000059a: SUB
0000059b: AND
0000059c: PUSH2 0x049f
0000059f: JUMP
000005a0: JUMPDEST
000005a1: CALLVALUE
000005a2: DUP1
000005a3: ISZERO
000005a4: PUSH2 0x05ac
000005a7: JUMPI
000005a8: PUSH1 0x00
000005aa: DUP1
000005ab: REVERT
000005ac: JUMPDEST
000005ad: POP
000005ae: PUSH2 0x0310
000005b1: PUSH1 0x07
000005b3: SLOAD
000005b4: DUP2
000005b5: JUMP
000005b6: JUMPDEST
000005b7: CALLVALUE
000005b8: DUP1
000005b9: ISZERO
000005ba: PUSH2 0x05c2
000005bd: JUMPI
000005be: PUSH1 0x00
000005c0: DUP1
000005c1: REVERT
000005c2: JUMPDEST
000005c3: POP
000005c4: PUSH1 0x0c
000005c6: SLOAD
000005c7: PUSH2 0x049f
000005ca: SWAP1
000005cb: PUSH1 0x01
000005cd: PUSH1 0x01
000005cf: PUSH1 0xa0
000005d1: SHL
000005d2: SUB
000005d3: AND
000005d4: DUP2
000005d5: JUMP
000005d6: JUMPDEST
000005d7: CALLVALUE
000005d8: DUP1
000005d9: ISZERO
000005da: PUSH2 0x05e2
000005dd: JUMPI
000005de: PUSH1 0x00
000005e0: DUP1
000005e1: REVERT
000005e2: JUMPDEST
000005e3: POP
000005e4: PUSH2 0x025a
000005e7: PUSH2 0x05f1
000005ea: CALLDATASIZE
000005eb: PUSH1 0x04
000005ed: PUSH2 0x30cb
000005f0: JUMP
000005f1: JUMPDEST
000005f2: PUSH2 0x178c
000005f5: JUMP
000005f6: JUMPDEST
000005f7: CALLVALUE
000005f8: DUP1
000005f9: ISZERO
000005fa: PUSH2 0x0602
000005fd: JUMPI
000005fe: PUSH1 0x00
00000600: DUP1
00000601: REVERT
00000602: JUMPDEST
00000603: POP
00000604: PUSH2 0x025a
00000607: PUSH2 0x0611
0000060a: CALLDATASIZE
0000060b: PUSH1 0x04
0000060d: PUSH2 0x3128
00000610: JUMP
00000611: JUMPDEST
00000612: PUSH2 0x1811
00000615: JUMP
00000616: JUMPDEST
00000617: PUSH2 0x061e
0000061a: PUSH2 0x189a
0000061d: JUMP
0000061e: JUMPDEST
0000061f: PUSH1 0x09
00000621: SSTORE
00000622: JUMP
00000623: JUMPDEST
00000624: PUSH1 0x03
00000626: SLOAD
00000627: PUSH1 0x00
00000629: SWAP1
0000062a: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1
0000063f: SWAP1
00000640: PUSH1 0x01
00000642: PUSH1 0x01
00000644: PUSH1 0xa0
00000646: SHL
00000647: SUB
00000648: AND
00000649: DUP3
0000064a: PUSH2 0x0673
0000064d: PUSH20 0x1f98431c8ad98523631ae4a59f267346ea31f984
00000662: PUSH2 0x066e
00000665: DUP5
00000666: DUP7
00000667: PUSH2 0x2710
0000066a: PUSH2 0x18e0
0000066d: JUMP
0000066e: JUMPDEST
0000066f: PUSH2 0x1957
00000672: JUMP
00000673: JUMPDEST
00000674: PUSH1 0x0e
00000676: SLOAD
00000677: SWAP1
00000678: SWAP2
00000679: POP
0000067a: PUSH1 0x00
0000067c: SWAP1
0000067d: PUSH2 0x0695
00000680: SWAP1
00000681: PUSH5 0x0100000000
00000687: SWAP1
00000688: DIV
00000689: PUSH4 0xffffffff
0000068e: AND
0000068f: PUSH1 0x3c
00000691: PUSH2 0x3174
00000694: JUMP
00000695: JUMPDEST
00000696: SWAP1
00000697: POP
00000698: PUSH1 0x00
0000069a: PUSH2 0x06a2
0000069d: DUP4
0000069e: PUSH2 0x1a89
000006a1: JUMP
000006a2: JUMPDEST
000006a3: SWAP1
000006a4: POP
000006a5: DUP2
000006a6: PUSH4 0xffffffff
000006ab: AND
000006ac: DUP2
000006ad: PUSH4 0xffffffff
000006b2: AND
000006b3: LT
000006b4: ISZERO
000006b5: PUSH2 0x06bc
000006b8: JUMPI
000006b9: DUP1
000006ba: SWAP2
000006bb: POP
000006bc: JUMPDEST
000006bd: PUSH1 0x00
000006bf: DUP3
000006c0: PUSH4 0xffffffff
000006c5: AND
000006c6: PUSH1 0x00
000006c8: SUB
000006c9: PUSH2 0x0743
000006cc: JUMPI
000006cd: PUSH1 0x00
000006cf: DUP5
000006d0: SWAP1
000006d1: POP
000006d2: DUP1
000006d3: PUSH1 0x01
000006d5: PUSH1 0x01
000006d7: PUSH1 0xa0
000006d9: SHL
000006da: SUB
000006db: AND
000006dc: PUSH4 0x3850c7bd
000006e1: PUSH1 0x40
000006e3: MLOAD
000006e4: DUP2
000006e5: PUSH4 0xffffffff
000006ea: AND
000006eb: PUSH1 0xe0
000006ed: SHL
000006ee: DUP2
000006ef: MSTORE
000006f0: PUSH1 0x04
000006f2: ADD
000006f3: PUSH1 0xe0
000006f5: PUSH1 0x40
000006f7: MLOAD
000006f8: DUP1
000006f9: DUP4
000006fa: SUB
000006fb: DUP2
000006fc: DUP7
000006fd: GAS
000006fe: STATICCALL
000006ff: ISZERO
00000700: DUP1
00000701: ISZERO
00000702: PUSH2 0x070f
00000705: JUMPI
00000706: RETURNDATASIZE
00000707: PUSH1 0x00
00000709: DUP1
0000070a: RETURNDATACOPY
0000070b: RETURNDATASIZE
0000070c: PUSH1 0x00
0000070e: REVERT
0000070f: JUMPDEST
00000710: POP
00000711: POP
00000712: POP
00000713: POP
00000714: PUSH1 0x40
00000716: MLOAD
00000717: RETURNDATASIZE
00000718: PUSH1 0x1f
0000071a: NOT
0000071b: PUSH1 0x1f
0000071d: DUP3
0000071e: ADD
0000071f: AND
00000720: DUP3
00000721: ADD
00000722: DUP1
00000723: PUSH1 0x40
00000725: MSTORE
00000726: POP
00000727: DUP2
00000728: ADD
00000729: SWAP1
0000072a: PUSH2 0x0733
0000072d: SWAP2
0000072e: SWAP1
0000072f: PUSH2 0x31c3
00000732: JUMP
00000733: JUMPDEST
00000734: POP
00000735: SWAP5
00000736: SWAP7
00000737: POP
00000738: PUSH2 0x075f
0000073b: SWAP6
0000073c: POP
0000073d: POP
0000073e: POP
0000073f: POP
00000740: POP
00000741: POP
00000742: JUMP
00000743: JUMPDEST
00000744: PUSH1 0x00
00000746: PUSH2 0x074f
00000749: DUP6
0000074a: DUP6
0000074b: PUSH2 0x1ca8
0000074e: JUMP
0000074f: JUMPDEST
00000750: POP
00000751: SWAP1
00000752: POP
00000753: PUSH2 0x075b
00000756: DUP2
00000757: PUSH2 0x1f4c
0000075a: JUMP
0000075b: JUMPDEST
0000075c: SWAP2
0000075d: POP
0000075e: POP
0000075f: JUMPDEST
00000760: PUSH2 0x076b
00000763: DUP2
00000764: DUP10
00000765: DUP9
00000766: DUP9
00000767: PUSH2 0x23e9
0000076a: JUMP
0000076b: JUMPDEST
0000076c: SWAP9
0000076d: SWAP8
0000076e: POP
0000076f: POP
00000770: POP
00000771: POP
00000772: POP
00000773: POP
00000774: POP
00000775: POP
00000776: JUMP
00000777: JUMPDEST
00000778: PUSH1 0x00
0000077a: DUP1
0000077b: PUSH2 0x07c7
0000077e: PUSH20 0x1f98431c8ad98523631ae4a59f267346ea31f984
00000793: PUSH2 0x066e
00000796: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
000007ab: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1
000007c0: PUSH2 0x2710
000007c3: PUSH2 0x18e0
000007c6: JUMP
000007c7: JUMPDEST
000007c8: PUSH1 0x0e
000007ca: SLOAD
000007cb: SWAP1
000007cc: SWAP2
000007cd: POP
000007ce: PUSH1 0x00
000007d0: SWAP1
000007d1: PUSH2 0x07e1
000007d4: SWAP1
000007d5: PUSH4 0xffffffff
000007da: AND
000007db: PUSH1 0x3c
000007dd: PUSH2 0x3174
000007e0: JUMP
000007e1: JUMPDEST
000007e2: SWAP1
000007e3: POP
000007e4: PUSH1 0x00
000007e6: PUSH2 0x07ee
000007e9: DUP4
000007ea: PUSH2 0x1a89
000007ed: JUMP
000007ee: JUMPDEST
000007ef: SWAP1
000007f0: POP
000007f1: DUP2
000007f2: PUSH4 0xffffffff
000007f7: AND
000007f8: DUP2
000007f9: PUSH4 0xffffffff
000007fe: AND
000007ff: LT
00000800: ISZERO
00000801: PUSH2 0x0808
00000804: JUMPI
00000805: DUP1
00000806: SWAP2
00000807: POP
00000808: JUMPDEST
00000809: PUSH1 0x00
0000080b: DUP3
0000080c: PUSH4 0xffffffff
00000811: AND
00000812: PUSH1 0x00
00000814: SUB
00000815: PUSH2 0x088f
00000818: JUMPI
00000819: PUSH1 0x00
0000081b: DUP5
0000081c: SWAP1
0000081d: POP
0000081e: DUP1
0000081f: PUSH1 0x01
00000821: PUSH1 0x01
00000823: PUSH1 0xa0
00000825: SHL
00000826: SUB
00000827: AND
00000828: PUSH4 0x3850c7bd
0000082d: PUSH1 0x40
0000082f: MLOAD
00000830: DUP2
00000831: PUSH4 0xffffffff
00000836: AND
00000837: PUSH1 0xe0
00000839: SHL
0000083a: DUP2
0000083b: MSTORE
0000083c: PUSH1 0x04
0000083e: ADD
0000083f: PUSH1 0xe0
00000841: PUSH1 0x40
00000843: MLOAD
00000844: DUP1
00000845: DUP4
00000846: SUB
00000847: DUP2
00000848: DUP7
00000849: GAS
0000084a: STATICCALL
0000084b: ISZERO
0000084c: DUP1
0000084d: ISZERO
0000084e: PUSH2 0x085b
00000851: JUMPI
00000852: RETURNDATASIZE
00000853: PUSH1 0x00
00000855: DUP1
00000856: RETURNDATACOPY
00000857: RETURNDATASIZE
00000858: PUSH1 0x00
0000085a: REVERT
0000085b: JUMPDEST
0000085c: POP
0000085d: POP
0000085e: POP
0000085f: POP
00000860: PUSH1 0x40
00000862: MLOAD
00000863: RETURNDATASIZE
00000864: PUSH1 0x1f
00000866: NOT
00000867: PUSH1 0x1f
00000869: DUP3
0000086a: ADD
0000086b: AND
0000086c: DUP3
0000086d: ADD
0000086e: DUP1
0000086f: PUSH1 0x40
00000871: MSTORE
00000872: POP
00000873: DUP2
00000874: ADD
00000875: SWAP1
00000876: PUSH2 0x087f
00000879: SWAP2
0000087a: SWAP1
0000087b: PUSH2 0x31c3
0000087e: JUMP
0000087f: JUMPDEST
00000880: POP
00000881: SWAP5
00000882: SWAP7
00000883: POP
00000884: PUSH2 0x08ab
00000887: SWAP6
00000888: POP
00000889: POP
0000088a: POP
0000088b: POP
0000088c: POP
0000088d: POP
0000088e: JUMP
0000088f: JUMPDEST
00000890: PUSH1 0x00
00000892: PUSH2 0x089b
00000895: DUP6
00000896: DUP6
00000897: PUSH2 0x1ca8
0000089a: JUMP
0000089b: JUMPDEST
0000089c: POP
0000089d: SWAP1
0000089e: POP
0000089f: PUSH2 0x08a7
000008a2: DUP2
000008a3: PUSH2 0x1f4c
000008a6: JUMP
000008a7: JUMPDEST
000008a8: SWAP2
000008a9: POP
000008aa: POP
000008ab: JUMPDEST
000008ac: PUSH2 0x08df
000008af: DUP2
000008b0: DUP8
000008b1: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
000008c6: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1
000008db: PUSH2 0x23e9
000008de: JUMP
000008df: JUMPDEST
000008e0: SWAP7
000008e1: SWAP6
000008e2: POP
000008e3: POP
000008e4: POP
000008e5: POP
000008e6: POP
000008e7: POP
000008e8: JUMP
000008e9: JUMPDEST
000008ea: PUSH1 0x00
000008ec: PUSH2 0x08f3
000008ef: PUSH2 0x2507
000008f2: JUMP
000008f3: JUMPDEST
000008f4: PUSH1 0x03
000008f6: SLOAD
000008f7: PUSH1 0x01
000008f9: PUSH1 0x01
000008fb: PUSH1 0xa0
000008fd: SHL
000008fe: SUB
000008ff: AND
00000900: DUP1
00000901: PUSH2 0x0936
00000904: JUMPI
00000905: PUSH1 0x40
00000907: MLOAD
00000908: PUSH32 0x90a3742300000000000000000000000000000000000000000000000000000000
00000929: DUP2
0000092a: MSTORE
0000092b: PUSH1 0x04
0000092d: ADD
0000092e: PUSH1 0x40
00000930: MLOAD
00000931: DUP1
00000932: SWAP2
00000933: SUB
00000934: SWAP1
00000935: REVERT
00000936: JUMPDEST
00000937: CALLER
00000938: ORIGIN
00000939: EQ
0000093a: PUSH2 0x096f
0000093d: JUMPI
0000093e: PUSH1 0x40
00000940: MLOAD
00000941: PUSH32 0x48f5c3ed00000000000000000000000000000000000000000000000000000000
00000962: DUP2
00000963: MSTORE
00000964: PUSH1 0x04
00000966: ADD
00000967: PUSH1 0x40
00000969: MLOAD
0000096a: DUP1
0000096b: SWAP2
0000096c: SUB
0000096d: SWAP1
0000096e: REVERT
0000096f: JUMPDEST
00000970: PUSH1 0x0b
00000972: SLOAD
00000973: PUSH1 0x0a
00000975: SLOAD
00000976: PUSH2 0x097f
00000979: SWAP1
0000097a: TIMESTAMP
0000097b: PUSH2 0x325d
0000097e: JUMP
0000097f: JUMPDEST
00000980: GT
00000981: PUSH2 0x09b6
00000984: JUMPI
00000985: PUSH1 0x40
00000987: MLOAD
00000988: PUSH32 0x998d019b00000000000000000000000000000000000000000000000000000000
000009a9: DUP2
000009aa: MSTORE
000009ab: PUSH1 0x04
000009ad: ADD
000009ae: PUSH1 0x40
000009b0: MLOAD
000009b1: DUP1
000009b2: SWAP2
000009b3: SUB
000009b4: SWAP1
000009b5: REVERT
000009b6: JUMPDEST
000009b7: TIMESTAMP
000009b8: PUSH1 0x0a
000009ba: SSTORE
000009bb: PUSH1 0x40
000009bd: MLOAD
000009be: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
000009df: DUP2
000009e0: MSTORE
000009e1: ADDRESS
000009e2: PUSH1 0x04
000009e4: DUP3
000009e5: ADD
000009e6: MSTORE
000009e7: PUSH20 0xe592427a0aece92de3edee1f18e0157c05861564
000009fc: SWAP1
000009fd: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000a12: SWAP1
00000a13: PUSH1 0x00
00000a15: SWAP1
00000a16: DUP3
00000a17: SWAP1
00000a18: PUSH4 0x70a08231
00000a1d: SWAP1
00000a1e: PUSH1 0x24
00000a20: ADD
00000a21: PUSH1 0x20
00000a23: PUSH1 0x40
00000a25: MLOAD
00000a26: DUP1
00000a27: DUP4
00000a28: SUB
00000a29: DUP2
00000a2a: DUP7
00000a2b: GAS
00000a2c: STATICCALL
00000a2d: ISZERO
00000a2e: DUP1
00000a2f: ISZERO
00000a30: PUSH2 0x0a3d
00000a33: JUMPI
00000a34: RETURNDATASIZE
00000a35: PUSH1 0x00
00000a37: DUP1
00000a38: RETURNDATACOPY
00000a39: RETURNDATASIZE
00000a3a: PUSH1 0x00
00000a3c: REVERT
00000a3d: JUMPDEST
00000a3e: POP
00000a3f: POP
00000a40: POP
00000a41: POP
00000a42: PUSH1 0x40
00000a44: MLOAD
00000a45: RETURNDATASIZE
00000a46: PUSH1 0x1f
00000a48: NOT
00000a49: PUSH1 0x1f
00000a4b: DUP3
00000a4c: ADD
00000a4d: AND
00000a4e: DUP3
00000a4f: ADD
00000a50: DUP1
00000a51: PUSH1 0x40
00000a53: MSTORE
00000a54: POP
00000a55: DUP2
00000a56: ADD
00000a57: SWAP1
00000a58: PUSH2 0x0a61
00000a5b: SWAP2
00000a5c: SWAP1
00000a5d: PUSH2 0x3270
00000a60: JUMP
00000a61: JUMPDEST
00000a62: PUSH1 0x09
00000a64: SLOAD
00000a65: SWAP1
00000a66: SWAP2
00000a67: POP
00000a68: DUP1
00000a69: DUP3
00000a6a: GT
00000a6b: ISZERO
00000a6c: PUSH2 0x0a73
00000a6f: JUMPI
00000a70: DUP1
00000a71: SWAP2
00000a72: POP
00000a73: JUMPDEST
00000a74: PUSH1 0x00
00000a76: PUSH2 0x2710
00000a79: PUSH2 0x0a84
00000a7c: PUSH2 0x012c
00000a7f: DUP6
00000a80: PUSH2 0x3289
00000a83: JUMP
00000a84: JUMPDEST
00000a85: PUSH2 0x0a8e
00000a88: SWAP2
00000a89: SWAP1
00000a8a: PUSH2 0x32cf
00000a8d: JUMP
00000a8e: JUMPDEST
00000a8f: PUSH1 0x40
00000a91: MLOAD
00000a92: PUSH32 0x2e1a7d4d00000000000000000000000000000000000000000000000000000000
00000ab3: DUP2
00000ab4: MSTORE
00000ab5: PUSH1 0x04
00000ab7: DUP2
00000ab8: ADD
00000ab9: DUP3
00000aba: SWAP1
00000abb: MSTORE
00000abc: SWAP1
00000abd: SWAP2
00000abe: POP
00000abf: PUSH1 0x01
00000ac1: PUSH1 0x01
00000ac3: PUSH1 0xa0
00000ac5: SHL
00000ac6: SUB
00000ac7: DUP6
00000ac8: AND
00000ac9: SWAP1
00000aca: PUSH4 0x2e1a7d4d
00000acf: SWAP1
00000ad0: PUSH1 0x24
00000ad2: ADD
00000ad3: PUSH1 0x00
00000ad5: PUSH1 0x40
00000ad7: MLOAD
00000ad8: DUP1
00000ad9: DUP4
00000ada: SUB
00000adb: DUP2
00000adc: PUSH1 0x00
00000ade: DUP8
00000adf: DUP1
00000ae0: EXTCODESIZE
00000ae1: ISZERO
00000ae2: DUP1
00000ae3: ISZERO
00000ae4: PUSH2 0x0aec
00000ae7: JUMPI
00000ae8: PUSH1 0x00
00000aea: DUP1
00000aeb: REVERT
00000aec: JUMPDEST
00000aed: POP
00000aee: GAS
00000aef: CALL
00000af0: ISZERO
00000af1: DUP1
00000af2: ISZERO
00000af3: PUSH2 0x0b00
00000af6: JUMPI
00000af7: RETURNDATASIZE
00000af8: PUSH1 0x00
00000afa: DUP1
00000afb: RETURNDATACOPY
00000afc: RETURNDATASIZE
00000afd: PUSH1 0x00
00000aff: REVERT
00000b00: JUMPDEST
00000b01: POP
00000b02: POP
00000b03: POP
00000b04: POP
00000b05: DUP1
00000b06: DUP4
00000b07: PUSH2 0x0b10
00000b0a: SWAP2
00000b0b: SWAP1
00000b0c: PUSH2 0x325d
00000b0f: JUMP
00000b10: JUMPDEST
00000b11: SWAP3
00000b12: POP
00000b13: DUP3
00000b14: PUSH1 0x00
00000b16: SUB
00000b17: PUSH2 0x0b4c
00000b1a: JUMPI
00000b1b: PUSH1 0x40
00000b1d: MLOAD
00000b1e: PUSH32 0x9fa351b400000000000000000000000000000000000000000000000000000000
00000b3f: DUP2
00000b40: MSTORE
00000b41: PUSH1 0x04
00000b43: ADD
00000b44: PUSH1 0x40
00000b46: MLOAD
00000b47: DUP1
00000b48: SWAP2
00000b49: SUB
00000b4a: SWAP1
00000b4b: REVERT
00000b4c: JUMPDEST
00000b4d: PUSH2 0x0b60
00000b50: PUSH1 0x01
00000b52: PUSH1 0x01
00000b54: PUSH1 0xa0
00000b56: SHL
00000b57: SUB
00000b58: DUP6
00000b59: AND
00000b5a: DUP7
00000b5b: DUP6
00000b5c: PUSH2 0x2548
00000b5f: JUMP
00000b60: JUMPDEST
00000b61: PUSH1 0x40
00000b63: DUP1
00000b64: MLOAD
00000b65: PUSH32 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000
00000b86: PUSH1 0x20
00000b88: DUP3
00000b89: ADD
00000b8a: MSTORE
00000b8b: PUSH31 0x27100000000000000000000000000000000000000000000000000000000000
00000bab: PUSH1 0x34
00000bad: DUP3
00000bae: ADD
00000baf: DUP2
00000bb0: SWAP1
00000bb1: MSTORE
00000bb2: PUSH32 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1000000000000000000000000
00000bd3: PUSH1 0x37
00000bd5: DUP4
00000bd6: ADD
00000bd7: MSTORE
00000bd8: PUSH1 0x4b
00000bda: DUP3
00000bdb: ADD
00000bdc: MSTORE
00000bdd: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00000bfe: PUSH1 0x60
00000c00: DUP10
00000c01: SWAP1
00000c02: SHL
00000c03: AND
00000c04: PUSH1 0x4e
00000c06: DUP3
00000c07: ADD
00000c08: MSTORE
00000c09: DUP2
00000c0a: MLOAD
00000c0b: PUSH1 0x42
00000c0d: DUP2
00000c0e: DUP4
00000c0f: SUB
00000c10: ADD
00000c11: DUP2
00000c12: MSTORE
00000c13: PUSH1 0x62
00000c15: SWAP1
00000c16: SWAP2
00000c17: ADD
00000c18: SWAP1
00000c19: SWAP2
00000c1a: MSTORE
00000c1b: PUSH1 0x00
00000c1d: PUSH2 0x0c25
00000c20: DUP6
00000c21: PUSH2 0x16f0
00000c24: JUMP
00000c25: JUMPDEST
00000c26: PUSH1 0x40
00000c28: DUP1
00000c29: MLOAD
00000c2a: PUSH1 0xa0
00000c2c: DUP2
00000c2d: ADD
00000c2e: DUP3
00000c2f: MSTORE
00000c30: DUP5
00000c31: DUP2
00000c32: MSTORE
00000c33: ADDRESS
00000c34: PUSH1 0x20
00000c36: DUP3
00000c37: ADD
00000c38: MSTORE
00000c39: SWAP2
00000c3a: SWAP3
00000c3b: POP
00000c3c: PUSH1 0x00
00000c3e: SWAP2
00000c3f: SWAP1
00000c40: DUP2
00000c41: ADD
00000c42: PUSH2 0x0c4c
00000c45: TIMESTAMP
00000c46: PUSH1 0x01
00000c48: PUSH2 0x32e3
00000c4b: JUMP
00000c4c: JUMPDEST
00000c4d: DUP2
00000c4e: MSTORE
00000c4f: PUSH1 0x20
00000c51: ADD
00000c52: DUP8
00000c53: DUP2
00000c54: MSTORE
00000c55: PUSH1 0x20
00000c57: ADD
00000c58: DUP4
00000c59: DUP2
00000c5a: MSTORE
00000c5b: POP
00000c5c: SWAP1
00000c5d: POP
00000c5e: DUP8
00000c5f: PUSH1 0x01
00000c61: PUSH1 0x01
00000c63: PUSH1 0xa0
00000c65: SHL
00000c66: SUB
00000c67: AND
00000c68: PUSH4 0xc04b8d59
00000c6d: DUP3
00000c6e: PUSH1 0x40
00000c70: MLOAD
00000c71: DUP3
00000c72: PUSH4 0xffffffff
00000c77: AND
00000c78: PUSH1 0xe0
00000c7a: SHL
00000c7b: DUP2
00000c7c: MSTORE
00000c7d: PUSH1 0x04
00000c7f: ADD
00000c80: PUSH2 0x0c89
00000c83: SWAP2
00000c84: SWAP1
00000c85: PUSH2 0x331a
00000c88: JUMP
00000c89: JUMPDEST
00000c8a: PUSH1 0x20
00000c8c: PUSH1 0x40
00000c8e: MLOAD
00000c8f: DUP1
00000c90: DUP4
00000c91: SUB
00000c92: DUP2
00000c93: PUSH1 0x00
00000c95: DUP8
00000c96: GAS
00000c97: CALL
00000c98: ISZERO
00000c99: DUP1
00000c9a: ISZERO
00000c9b: PUSH2 0x0ca8
00000c9e: JUMPI
00000c9f: RETURNDATASIZE
00000ca0: PUSH1 0x00
00000ca2: DUP1
00000ca3: RETURNDATACOPY
00000ca4: RETURNDATASIZE
00000ca5: PUSH1 0x00
00000ca7: REVERT
00000ca8: JUMPDEST
00000ca9: POP
00000caa: POP
00000cab: POP
00000cac: POP
00000cad: PUSH1 0x40
00000caf: MLOAD
00000cb0: RETURNDATASIZE
00000cb1: PUSH1 0x1f
00000cb3: NOT
00000cb4: PUSH1 0x1f
00000cb6: DUP3
00000cb7: ADD
00000cb8: AND
00000cb9: DUP3
00000cba: ADD
00000cbb: DUP1
00000cbc: PUSH1 0x40
00000cbe: MSTORE
00000cbf: POP
00000cc0: DUP2
00000cc1: ADD
00000cc2: SWAP1
00000cc3: PUSH2 0x0ccc
00000cc6: SWAP2
00000cc7: SWAP1
00000cc8: PUSH2 0x3270
00000ccb: JUMP
00000ccc: JUMPDEST
00000ccd: SWAP10
00000cce: POP
00000ccf: DUP9
00000cd0: PUSH1 0x01
00000cd2: PUSH1 0x01
00000cd4: PUSH1 0xa0
00000cd6: SHL
00000cd7: SUB
00000cd8: AND
00000cd9: PUSH4 0x44df8e70
00000cde: PUSH1 0x40
00000ce0: MLOAD
00000ce1: DUP2
00000ce2: PUSH4 0xffffffff
00000ce7: AND
00000ce8: PUSH1 0xe0
00000cea: SHL
00000ceb: DUP2
00000cec: MSTORE
00000ced: PUSH1 0x04
00000cef: ADD
00000cf0: PUSH1 0x00
00000cf2: PUSH1 0x40
00000cf4: MLOAD
00000cf5: DUP1
00000cf6: DUP4
00000cf7: SUB
00000cf8: DUP2
00000cf9: PUSH1 0x00
00000cfb: DUP8
00000cfc: DUP1
00000cfd: EXTCODESIZE
00000cfe: ISZERO
00000cff: DUP1
00000d00: ISZERO
00000d01: PUSH2 0x0d09
00000d04: JUMPI
00000d05: PUSH1 0x00
00000d07: DUP1
00000d08: REVERT
00000d09: JUMPDEST
00000d0a: POP
00000d0b: GAS
00000d0c: CALL
00000d0d: ISZERO
00000d0e: DUP1
00000d0f: ISZERO
00000d10: PUSH2 0x0d1d
00000d13: JUMPI
00000d14: RETURNDATASIZE
00000d15: PUSH1 0x00
00000d17: DUP1
00000d18: RETURNDATACOPY
00000d19: RETURNDATASIZE
00000d1a: PUSH1 0x00
00000d1c: REVERT
00000d1d: JUMPDEST
00000d1e: POP
00000d1f: POP
00000d20: POP
00000d21: POP
00000d22: DUP6
00000d23: PUSH1 0x05
00000d25: PUSH1 0x00
00000d27: DUP3
00000d28: DUP3
00000d29: SLOAD
00000d2a: PUSH2 0x0d33
00000d2d: SWAP2
00000d2e: SWAP1
00000d2f: PUSH2 0x32e3
00000d32: JUMP
00000d33: JUMPDEST
00000d34: SWAP3
00000d35: POP
00000d36: POP
00000d37: DUP2
00000d38: SWAP1
00000d39: SSTORE
00000d3a: POP
00000d3b: DUP10
00000d3c: PUSH1 0x06
00000d3e: PUSH1 0x00
00000d40: DUP3
00000d41: DUP3
00000d42: SLOAD
00000d43: PUSH2 0x0d4c
00000d46: SWAP2
00000d47: SWAP1
00000d48: PUSH2 0x32e3
00000d4b: JUMP
00000d4c: JUMPDEST
00000d4d: SWAP1
00000d4e: SWAP2
00000d4f: SSTORE
00000d50: POP
00000d51: PUSH2 0x0d5c
00000d54: SWAP1
00000d55: POP
00000d56: CALLER
00000d57: DUP6
00000d58: PUSH2 0x25eb
00000d5b: JUMP
00000d5c: JUMPDEST
00000d5d: PUSH1 0x40
00000d5f: MLOAD
00000d60: CALLER
00000d61: SWAP1
00000d62: DUP12
00000d63: SWAP1
00000d64: DUP9
00000d65: SWAP1
00000d66: PUSH32 0x1b6fe3d614107093562b62b9236e265cac820f430060c5eb674a70824a7435db
00000d87: SWAP1
00000d88: PUSH1 0x00
00000d8a: SWAP1
00000d8b: LOG4
00000d8c: POP
00000d8d: POP
00000d8e: POP
00000d8f: POP
00000d90: POP
00000d91: POP
00000d92: POP
00000d93: POP
00000d94: POP
00000d95: PUSH2 0x0d9e
00000d98: PUSH1 0x01
00000d9a: PUSH1 0x02
00000d9c: SSTORE
00000d9d: JUMP
00000d9e: JUMPDEST
00000d9f: SWAP1
00000da0: JUMP
00000da1: JUMPDEST
00000da2: PUSH2 0x0da9
00000da5: PUSH2 0x189a
00000da8: JUMP
00000da9: JUMPDEST
00000daa: PUSH1 0x05
00000dac: DUP2
00000dad: PUSH4 0xffffffff
00000db2: AND
00000db3: LT
00000db4: ISZERO
00000db5: DUP1
00000db6: ISZERO
00000db7: PUSH2 0x0dc7
00000dba: JUMPI
00000dbb: POP
00000dbc: PUSH1 0x3c
00000dbe: DUP2
00000dbf: PUSH4 0xffffffff
00000dc4: AND
00000dc5: GT
00000dc6: ISZERO
00000dc7: JUMPDEST
00000dc8: PUSH2 0x0e2d
00000dcb: JUMPI
00000dcc: PUSH1 0x40
00000dce: MLOAD
00000dcf: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000df0: DUP2
00000df1: MSTORE
00000df2: PUSH1 0x20
00000df4: PUSH1 0x04
00000df6: DUP3
00000df7: ADD
00000df8: MSTORE
00000df9: PUSH1 0x0a
00000dfb: PUSH1 0x24
00000dfd: DUP3
00000dfe: ADD
00000dff: MSTORE
00000e00: PUSH32 0x356d2d3168206f6e6c7900000000000000000000000000000000000000000000
00000e21: PUSH1 0x44
00000e23: DUP3
00000e24: ADD
00000e25: MSTORE
00000e26: PUSH1 0x64
00000e28: ADD
00000e29: PUSH2 0x02c7
00000e2c: JUMP
00000e2d: JUMPDEST
00000e2e: PUSH1 0x0e
00000e30: DUP1
00000e31: SLOAD
00000e32: PUSH4 0xffffffff
00000e37: SWAP1
00000e38: SWAP3
00000e39: AND
00000e3a: PUSH5 0x0100000000
00000e40: MUL
00000e41: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff
00000e62: SWAP1
00000e63: SWAP3
00000e64: AND
00000e65: SWAP2
00000e66: SWAP1
00000e67: SWAP2
00000e68: OR
00000e69: SWAP1
00000e6a: SSTORE
00000e6b: JUMP
00000e6c: JUMPDEST
00000e6d: PUSH2 0x0e74
00000e70: PUSH2 0x189a
00000e73: JUMP
00000e74: JUMPDEST
00000e75: PUSH1 0x03
00000e77: SLOAD
00000e78: PUSH1 0x01
00000e7a: PUSH1 0x01
00000e7c: PUSH1 0xa0
00000e7e: SHL
00000e7f: SUB
00000e80: AND
00000e81: DUP1
00000e82: PUSH2 0x0eb7
00000e85: JUMPI
00000e86: PUSH1 0x40
00000e88: MLOAD
00000e89: PUSH32 0x90a3742300000000000000000000000000000000000000000000000000000000
00000eaa: DUP2
00000eab: MSTORE
00000eac: PUSH1 0x04
00000eae: ADD
00000eaf: PUSH1 0x40
00000eb1: MLOAD
00000eb2: DUP1
00000eb3: SWAP2
00000eb4: SUB
00000eb5: SWAP1
00000eb6: REVERT
00000eb7: JUMPDEST
00000eb8: PUSH1 0x40
00000eba: MLOAD
00000ebb: PUSH32 0xc947449200000000000000000000000000000000000000000000000000000000
00000edc: DUP2
00000edd: MSTORE
00000ede: PUSH1 0x04
00000ee0: DUP2
00000ee1: ADD
00000ee2: DUP4
00000ee3: SWAP1
00000ee4: MSTORE
00000ee5: DUP2
00000ee6: SWAP1
00000ee7: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1
00000efc: SWAP1
00000efd: PUSH1 0x01
00000eff: PUSH1 0x01
00000f01: PUSH1 0xa0
00000f03: SHL
00000f04: SUB
00000f05: DUP4
00000f06: AND
00000f07: SWAP1
00000f08: PUSH4 0xc9474492
00000f0d: SWAP1
00000f0e: PUSH1 0x24
00000f10: ADD
00000f11: PUSH1 0x00
00000f13: PUSH1 0x40
00000f15: MLOAD
00000f16: DUP1
00000f17: DUP4
00000f18: SUB
00000f19: DUP2
00000f1a: PUSH1 0x00
00000f1c: DUP8
00000f1d: DUP1
00000f1e: EXTCODESIZE
00000f1f: ISZERO
00000f20: DUP1
00000f21: ISZERO
00000f22: PUSH2 0x0f2a
00000f25: JUMPI
00000f26: PUSH1 0x00
00000f28: DUP1
00000f29: REVERT
00000f2a: JUMPDEST
00000f2b: POP
00000f2c: GAS
00000f2d: CALL
00000f2e: ISZERO
00000f2f: DUP1
00000f30: ISZERO
00000f31: PUSH2 0x0f3e
00000f34: JUMPI
00000f35: RETURNDATASIZE
00000f36: PUSH1 0x00
00000f38: DUP1
00000f39: RETURNDATACOPY
00000f3a: RETURNDATASIZE
00000f3b: PUSH1 0x00
00000f3d: REVERT
00000f3e: JUMPDEST
00000f3f: POP
00000f40: POP
00000f41: POP
00000f42: POP
00000f43: DUP4
00000f44: DUP2
00000f45: PUSH1 0x01
00000f47: PUSH1 0x01
00000f49: PUSH1 0xa0
00000f4b: SHL
00000f4c: SUB
00000f4d: AND
00000f4e: PUSH4 0xdd62ed3e
00000f53: PUSH2 0x0f59
00000f56: CALLER
00000f57: SWAP1
00000f58: JUMP
00000f59: JUMPDEST
00000f5a: PUSH1 0x40
00000f5c: MLOAD
00000f5d: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000f7e: PUSH1 0xe0
00000f80: DUP5
00000f81: SWAP1
00000f82: SHL
00000f83: AND
00000f84: DUP2
00000f85: MSTORE
00000f86: PUSH1 0x01
00000f88: PUSH1 0x01
00000f8a: PUSH1 0xa0
00000f8c: SHL
00000f8d: SUB
00000f8e: SWAP1
00000f8f: SWAP2
00000f90: AND
00000f91: PUSH1 0x04
00000f93: DUP3
00000f94: ADD
00000f95: MSTORE
00000f96: ADDRESS
00000f97: PUSH1 0x24
00000f99: DUP3
00000f9a: ADD
00000f9b: MSTORE
00000f9c: PUSH1 0x44
00000f9e: ADD
00000f9f: PUSH1 0x20
00000fa1: PUSH1 0x40
00000fa3: MLOAD
00000fa4: DUP1
00000fa5: DUP4
00000fa6: SUB
00000fa7: DUP2
00000fa8: DUP7
00000fa9: GAS
00000faa: STATICCALL
00000fab: ISZERO
00000fac: DUP1
00000fad: ISZERO
00000fae: PUSH2 0x0fbb
00000fb1: JUMPI
00000fb2: RETURNDATASIZE
00000fb3: PUSH1 0x00
00000fb5: DUP1
00000fb6: RETURNDATACOPY
00000fb7: RETURNDATASIZE
00000fb8: PUSH1 0x00
00000fba: REVERT
00000fbb: JUMPDEST
00000fbc: POP
00000fbd: POP
00000fbe: POP
00000fbf: POP
00000fc0: PUSH1 0x40
00000fc2: MLOAD
00000fc3: RETURNDATASIZE
00000fc4: PUSH1 0x1f
00000fc6: NOT
00000fc7: PUSH1 0x1f
00000fc9: DUP3
00000fca: ADD
00000fcb: AND
00000fcc: DUP3
00000fcd: ADD
00000fce: DUP1
00000fcf: PUSH1 0x40
00000fd1: MSTORE
00000fd2: POP
00000fd3: DUP2
00000fd4: ADD
00000fd5: SWAP1
00000fd6: PUSH2 0x0fdf
00000fd9: SWAP2
00000fda: SWAP1
00000fdb: PUSH2 0x3270
00000fde: JUMP
00000fdf: JUMPDEST
00000fe0: LT
00000fe1: ISZERO
00000fe2: PUSH2 0x1047
00000fe5: JUMPI
00000fe6: PUSH1 0x40
00000fe8: MLOAD
00000fe9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000100a: DUP2
0000100b: MSTORE
0000100c: PUSH1 0x20
0000100e: PUSH1 0x04
00001010: DUP3
00001011: ADD
00001012: MSTORE
00001013: PUSH1 0x11
00001015: PUSH1 0x24
00001017: DUP3
00001018: ADD
00001019: MSTORE
0000101a: PUSH32 0x616c6c6f77616e636520746f6f206c6f77000000000000000000000000000000
0000103b: PUSH1 0x44
0000103d: DUP3
0000103e: ADD
0000103f: MSTORE
00001040: PUSH1 0x64
00001042: ADD
00001043: PUSH2 0x02c7
00001046: JUMP
00001047: JUMPDEST
00001048: DUP4
00001049: PUSH1 0x01
0000104b: PUSH1 0x01
0000104d: PUSH1 0xa0
0000104f: SHL
00001050: SUB
00001051: DUP3
00001052: AND
00001053: PUSH4 0x70a08231
00001058: CALLER
00001059: PUSH1 0x40
0000105b: MLOAD
0000105c: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000107d: PUSH1 0xe0
0000107f: DUP5
00001080: SWAP1
00001081: SHL
00001082: AND
00001083: DUP2
00001084: MSTORE
00001085: PUSH1 0x01
00001087: PUSH1 0x01
00001089: PUSH1 0xa0
0000108b: SHL
0000108c: SUB
0000108d: SWAP1
0000108e: SWAP2
0000108f: AND
00001090: PUSH1 0x04
00001092: DUP3
00001093: ADD
00001094: MSTORE
00001095: PUSH1 0x24
00001097: ADD
00001098: PUSH1 0x20
0000109a: PUSH1 0x40
0000109c: MLOAD
0000109d: DUP1
0000109e: DUP4
0000109f: SUB
000010a0: DUP2
000010a1: DUP7
000010a2: GAS
000010a3: STATICCALL
000010a4: ISZERO
000010a5: DUP1
000010a6: ISZERO
000010a7: PUSH2 0x10b4
000010aa: JUMPI
000010ab: RETURNDATASIZE
000010ac: PUSH1 0x00
000010ae: DUP1
000010af: RETURNDATACOPY
000010b0: RETURNDATASIZE
000010b1: PUSH1 0x00
000010b3: REVERT
000010b4: JUMPDEST
000010b5: POP
000010b6: POP
000010b7: POP
000010b8: POP
000010b9: PUSH1 0x40
000010bb: MLOAD
000010bc: RETURNDATASIZE
000010bd: PUSH1 0x1f
000010bf: NOT
000010c0: PUSH1 0x1f
000010c2: DUP3
000010c3: ADD
000010c4: AND
000010c5: DUP3
000010c6: ADD
000010c7: DUP1
000010c8: PUSH1 0x40
000010ca: MSTORE
000010cb: POP
000010cc: DUP2
000010cd: ADD
000010ce: SWAP1
000010cf: PUSH2 0x10d8
000010d2: SWAP2
000010d3: SWAP1
000010d4: PUSH2 0x3270
000010d7: JUMP
000010d8: JUMPDEST
000010d9: LT
000010da: ISZERO
000010db: PUSH2 0x1140
000010de: JUMPI
000010df: PUSH1 0x40
000010e1: MLOAD
000010e2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001103: DUP2
00001104: MSTORE
00001105: PUSH1 0x20
00001107: PUSH1 0x04
00001109: DUP3
0000110a: ADD
0000110b: MSTORE
0000110c: PUSH1 0x0f
0000110e: PUSH1 0x24
00001110: DUP3
00001111: ADD
00001112: MSTORE
00001113: PUSH32 0x62616c616e636520746f6f206c6f770000000000000000000000000000000000
00001134: PUSH1 0x44
00001136: DUP3
00001137: ADD
00001138: MSTORE
00001139: PUSH1 0x64
0000113b: ADD
0000113c: PUSH2 0x02c7
0000113f: JUMP
00001140: JUMPDEST
00001141: PUSH2 0x1155
00001144: PUSH1 0x01
00001146: PUSH1 0x01
00001148: PUSH1 0xa0
0000114a: SHL
0000114b: SUB
0000114c: DUP3
0000114d: AND
0000114e: CALLER
0000114f: ADDRESS
00001150: DUP8
00001151: PUSH2 0x26b9
00001154: JUMP
00001155: JUMPDEST
00001156: PUSH2 0x117d
00001159: PUSH1 0x01
0000115b: PUSH1 0x01
0000115d: PUSH1 0xa0
0000115f: SHL
00001160: SUB
00001161: DUP4
00001162: AND
00001163: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88
00001178: DUP7
00001179: PUSH2 0x2548
0000117c: JUMP
0000117d: JUMPDEST
0000117e: PUSH2 0x11a5
00001181: PUSH1 0x01
00001183: PUSH1 0x01
00001185: PUSH1 0xa0
00001187: SHL
00001188: SUB
00001189: DUP3
0000118a: AND
0000118b: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88
000011a0: DUP7
000011a1: PUSH2 0x2548
000011a4: JUMP
000011a5: JUMPDEST
000011a6: PUSH2 0x11ae
000011a9: DUP5
000011aa: PUSH2 0x2735
000011ad: JUMP
000011ae: JUMPDEST
000011af: PUSH2 0x11b7
000011b2: DUP5
000011b3: PUSH2 0x28a9
000011b6: JUMP
000011b7: JUMPDEST
000011b8: POP
000011b9: POP
000011ba: POP
000011bb: POP
000011bc: JUMP
000011bd: JUMPDEST
000011be: PUSH1 0x40
000011c0: MLOAD
000011c1: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
000011e2: DUP2
000011e3: MSTORE
000011e4: ADDRESS
000011e5: PUSH1 0x04
000011e7: DUP3
000011e8: ADD
000011e9: MSTORE
000011ea: PUSH1 0x00
000011ec: SWAP1
000011ed: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00001202: SWAP1
00001203: PUSH4 0x70a08231
00001208: SWAP1
00001209: PUSH1 0x24
0000120b: ADD
0000120c: PUSH1 0x20
0000120e: PUSH1 0x40
00001210: MLOAD
00001211: DUP1
00001212: DUP4
00001213: SUB
00001214: DUP2
00001215: DUP7
00001216: GAS
00001217: STATICCALL
00001218: ISZERO
00001219: DUP1
0000121a: ISZERO
0000121b: PUSH2 0x1228
0000121e: JUMPI
0000121f: RETURNDATASIZE
00001220: PUSH1 0x00
00001222: DUP1
00001223: RETURNDATACOPY
00001224: RETURNDATASIZE
00001225: PUSH1 0x00
00001227: REVERT
00001228: JUMPDEST
00001229: POP
0000122a: POP
0000122b: POP
0000122c: POP
0000122d: PUSH1 0x40
0000122f: MLOAD
00001230: RETURNDATASIZE
00001231: PUSH1 0x1f
00001233: NOT
00001234: PUSH1 0x1f
00001236: DUP3
00001237: ADD
00001238: AND
00001239: DUP3
0000123a: ADD
0000123b: DUP1
0000123c: PUSH1 0x40
0000123e: MSTORE
0000123f: POP
00001240: DUP2
00001241: ADD
00001242: SWAP1
00001243: PUSH2 0x124c
00001246: SWAP2
00001247: SWAP1
00001248: PUSH2 0x3270
0000124b: JUMP
0000124c: JUMPDEST
0000124d: SWAP1
0000124e: POP
0000124f: SWAP1
00001250: JUMP
00001251: JUMPDEST
00001252: PUSH2 0x1259
00001255: PUSH2 0x189a
00001258: JUMP
00001259: JUMPDEST
0000125a: PUSH1 0x01
0000125c: PUSH1 0x01
0000125e: PUSH1 0xa0
00001260: SHL
00001261: SUB
00001262: DUP2
00001263: AND
00001264: PUSH2 0x1299
00001267: JUMPI
00001268: PUSH1 0x40
0000126a: MLOAD
0000126b: PUSH32 0x90a3742300000000000000000000000000000000000000000000000000000000
0000128c: DUP2
0000128d: MSTORE
0000128e: PUSH1 0x04
00001290: ADD
00001291: PUSH1 0x40
00001293: MLOAD
00001294: DUP1
00001295: SWAP2
00001296: SUB
00001297: SWAP1
00001298: REVERT
00001299: JUMPDEST
0000129a: PUSH1 0x03
0000129c: DUP1
0000129d: SLOAD
0000129e: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000012bf: AND
000012c0: PUSH1 0x01
000012c2: PUSH1 0x01
000012c4: PUSH1 0xa0
000012c6: SHL
000012c7: SUB
000012c8: SWAP3
000012c9: SWAP1
000012ca: SWAP3
000012cb: AND
000012cc: SWAP2
000012cd: SWAP1
000012ce: SWAP2
000012cf: OR
000012d0: SWAP1
000012d1: SSTORE
000012d2: JUMP
000012d3: JUMPDEST
000012d4: PUSH2 0x12db
000012d7: PUSH2 0x189a
000012da: JUMP
000012db: JUMPDEST
000012dc: PUSH2 0x12e5
000012df: PUSH1 0x00
000012e1: PUSH2 0x2abc
000012e4: JUMP
000012e5: JUMPDEST
000012e6: JUMP
000012e7: JUMPDEST
000012e8: PUSH1 0x01
000012ea: SLOAD
000012eb: CALLER
000012ec: SWAP1
000012ed: PUSH1 0x01
000012ef: PUSH1 0x01
000012f1: PUSH1 0xa0
000012f3: SHL
000012f4: SUB
000012f5: AND
000012f6: DUP2
000012f7: EQ
000012f8: PUSH2 0x1338
000012fb: JUMPI
000012fc: PUSH1 0x40
000012fe: MLOAD
000012ff: PUSH32 0x118cdaa700000000000000000000000000000000000000000000000000000000
00001320: DUP2
00001321: MSTORE
00001322: PUSH1 0x01
00001324: PUSH1 0x01
00001326: PUSH1 0xa0
00001328: SHL
00001329: SUB
0000132a: DUP3
0000132b: AND
0000132c: PUSH1 0x04
0000132e: DUP3
0000132f: ADD
00001330: MSTORE
00001331: PUSH1 0x24
00001333: ADD
00001334: PUSH2 0x02c7
00001337: JUMP
00001338: JUMPDEST
00001339: PUSH2 0x1341
0000133c: DUP2
0000133d: PUSH2 0x2abc
00001340: JUMP
00001341: JUMPDEST
00001342: POP
00001343: JUMP
00001344: JUMPDEST
00001345: PUSH2 0x134c
00001348: PUSH2 0x189a
0000134b: JUMP
0000134c: JUMPDEST
0000134d: PUSH1 0x05
0000134f: DUP2
00001350: PUSH4 0xffffffff
00001355: AND
00001356: LT
00001357: ISZERO
00001358: DUP1
00001359: ISZERO
0000135a: PUSH2 0x136a
0000135d: JUMPI
0000135e: POP
0000135f: PUSH1 0x3c
00001361: DUP2
00001362: PUSH4 0xffffffff
00001367: AND
00001368: GT
00001369: ISZERO
0000136a: JUMPDEST
0000136b: PUSH2 0x13d0
0000136e: JUMPI
0000136f: PUSH1 0x40
00001371: MLOAD
00001372: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001393: DUP2
00001394: MSTORE
00001395: PUSH1 0x20
00001397: PUSH1 0x04
00001399: DUP3
0000139a: ADD
0000139b: MSTORE
0000139c: PUSH1 0x0a
0000139e: PUSH1 0x24
000013a0: DUP3
000013a1: ADD
000013a2: MSTORE
000013a3: PUSH32 0x356d2d3168206f6e6c7900000000000000000000000000000000000000000000
000013c4: PUSH1 0x44
000013c6: DUP3
000013c7: ADD
000013c8: MSTORE
000013c9: PUSH1 0x64
000013cb: ADD
000013cc: PUSH2 0x02c7
000013cf: JUMP
000013d0: JUMPDEST
000013d1: PUSH1 0x0e
000013d3: DUP1
000013d4: SLOAD
000013d5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
000013f6: AND
000013f7: PUSH4 0xffffffff
000013fc: SWAP3
000013fd: SWAP1
000013fe: SWAP3
000013ff: AND
00001400: SWAP2
00001401: SWAP1
00001402: SWAP2
00001403: OR
00001404: SWAP1
00001405: SSTORE
00001406: JUMP
00001407: JUMPDEST
00001408: PUSH1 0x09
0000140a: SLOAD
0000140b: PUSH1 0x40
0000140d: MLOAD
0000140e: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
0000142f: DUP2
00001430: MSTORE
00001431: ADDRESS
00001432: PUSH1 0x04
00001434: DUP3
00001435: ADD
00001436: MSTORE
00001437: PUSH1 0x00
00001439: SWAP2
0000143a: SWAP1
0000143b: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00001450: SWAP1
00001451: DUP2
00001452: SWAP1
00001453: PUSH4 0x70a08231
00001458: SWAP1
00001459: PUSH1 0x24
0000145b: ADD
0000145c: PUSH1 0x20
0000145e: PUSH1 0x40
00001460: MLOAD
00001461: DUP1
00001462: DUP4
00001463: SUB
00001464: DUP2
00001465: DUP7
00001466: GAS
00001467: STATICCALL
00001468: ISZERO
00001469: DUP1
0000146a: ISZERO
0000146b: PUSH2 0x1478
0000146e: JUMPI
0000146f: RETURNDATASIZE
00001470: PUSH1 0x00
00001472: DUP1
00001473: RETURNDATACOPY
00001474: RETURNDATASIZE
00001475: PUSH1 0x00
00001477: REVERT
00001478: JUMPDEST
00001479: POP
0000147a: POP
0000147b: POP
0000147c: POP
0000147d: PUSH1 0x40
0000147f: MLOAD
00001480: RETURNDATASIZE
00001481: PUSH1 0x1f
00001483: NOT
00001484: PUSH1 0x1f
00001486: DUP3
00001487: ADD
00001488: AND
00001489: DUP3
0000148a: ADD
0000148b: DUP1
0000148c: PUSH1 0x40
0000148e: MSTORE
0000148f: POP
00001490: DUP2
00001491: ADD
00001492: SWAP1
00001493: PUSH2 0x149c
00001496: SWAP2
00001497: SWAP1
00001498: PUSH2 0x3270
0000149b: JUMP
0000149c: JUMPDEST
0000149d: SWAP3
0000149e: POP
0000149f: DUP2
000014a0: DUP4
000014a1: GT
000014a2: ISZERO
000014a3: PUSH2 0x14aa
000014a6: JUMPI
000014a7: DUP2
000014a8: SWAP3
000014a9: POP
000014aa: JUMPDEST
000014ab: POP
000014ac: POP
000014ad: SWAP1
000014ae: JUMP
000014af: JUMPDEST
000014b0: PUSH2 0x14b7
000014b3: PUSH2 0x189a
000014b6: JUMP
000014b7: JUMPDEST
000014b8: PUSH1 0x3c
000014ba: DUP2
000014bb: LT
000014bc: ISZERO
000014bd: DUP1
000014be: ISZERO
000014bf: PUSH2 0x14ca
000014c2: JUMPI
000014c3: POP
000014c4: PUSH2 0xa8c0
000014c7: DUP2
000014c8: GT
000014c9: ISZERO
000014ca: JUMPDEST
000014cb: PUSH2 0x1530
000014ce: JUMPI
000014cf: PUSH1 0x40
000014d1: MLOAD
000014d2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000014f3: DUP2
000014f4: MSTORE
000014f5: PUSH1 0x20
000014f7: PUSH1 0x04
000014f9: DUP3
000014fa: ADD
000014fb: MSTORE
000014fc: PUSH1 0x0b
000014fe: PUSH1 0x24
00001500: DUP3
00001501: ADD
00001502: MSTORE
00001503: PUSH32 0x316d2d313268206f6e6c79000000000000000000000000000000000000000000
00001524: PUSH1 0x44
00001526: DUP3
00001527: ADD
00001528: MSTORE
00001529: PUSH1 0x64
0000152b: ADD
0000152c: PUSH2 0x02c7
0000152f: JUMP
00001530: JUMPDEST
00001531: PUSH1 0x0b
00001533: SSTORE
00001534: JUMP
00001535: JUMPDEST
00001536: PUSH2 0x153d
00001539: PUSH2 0x2507
0000153c: JUMP
0000153d: JUMPDEST
0000153e: PUSH1 0x03
00001540: SLOAD
00001541: PUSH1 0x01
00001543: PUSH1 0x01
00001545: PUSH1 0xa0
00001547: SHL
00001548: SUB
00001549: AND
0000154a: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1
0000155f: CALLER
00001560: PUSH1 0x00
00001562: DUP1
00001563: PUSH2 0x156a
00001566: PUSH2 0x2aed
00001569: JUMP
0000156a: JUMPDEST
0000156b: SWAP2
0000156c: POP
0000156d: SWAP2
0000156e: POP
0000156f: PUSH1 0x00
00001571: DUP1
00001572: DUP6
00001573: PUSH1 0x01
00001575: PUSH1 0x01
00001577: PUSH1 0xa0
00001579: SHL
0000157a: SUB
0000157b: AND
0000157c: DUP8
0000157d: PUSH1 0x01
0000157f: PUSH1 0x01
00001581: PUSH1 0xa0
00001583: SHL
00001584: SUB
00001585: AND
00001586: LT
00001587: ISZERO
00001588: PUSH2 0x1595
0000158b: JUMPI
0000158c: POP
0000158d: DUP3
0000158e: SWAP1
0000158f: POP
00001590: DUP2
00001591: PUSH2 0x159b
00001594: JUMP
00001595: JUMPDEST
00001596: POP
00001597: DUP2
00001598: SWAP1
00001599: POP
0000159a: DUP3
0000159b: JUMPDEST
0000159c: DUP2
0000159d: PUSH1 0x07
0000159f: PUSH1 0x00
000015a1: DUP3
000015a2: DUP3
000015a3: SLOAD
000015a4: PUSH2 0x15ad
000015a7: SWAP2
000015a8: SWAP1
000015a9: PUSH2 0x32e3
000015ac: JUMP
000015ad: JUMPDEST
000015ae: SWAP3
000015af: POP
000015b0: POP
000015b1: DUP2
000015b2: SWAP1
000015b3: SSTORE
000015b4: POP
000015b5: DUP1
000015b6: PUSH1 0x08
000015b8: PUSH1 0x00
000015ba: DUP3
000015bb: DUP3
000015bc: SLOAD
000015bd: PUSH2 0x15c6
000015c0: SWAP2
000015c1: SWAP1
000015c2: PUSH2 0x32e3
000015c5: JUMP
000015c6: JUMPDEST
000015c7: SWAP3
000015c8: POP
000015c9: POP
000015ca: DUP2
000015cb: SWAP1
000015cc: SSTORE
000015cd: POP
000015ce: DUP2
000015cf: PUSH1 0x06
000015d1: PUSH1 0x00
000015d3: DUP3
000015d4: DUP3
000015d5: SLOAD
000015d6: PUSH2 0x15df
000015d9: SWAP2
000015da: SWAP1
000015db: PUSH2 0x32e3
000015de: JUMP
000015df: JUMPDEST
000015e0: SWAP3
000015e1: POP
000015e2: POP
000015e3: DUP2
000015e4: SWAP1
000015e5: SSTORE
000015e6: POP
000015e7: PUSH1 0x00
000015e9: DUP8
000015ea: SWAP1
000015eb: POP
000015ec: DUP1
000015ed: PUSH1 0x01
000015ef: PUSH1 0x01
000015f1: PUSH1 0xa0
000015f3: SHL
000015f4: SUB
000015f5: AND
000015f6: PUSH4 0x44df8e70
000015fb: PUSH1 0x40
000015fd: MLOAD
000015fe: DUP2
000015ff: PUSH4 0xffffffff
00001604: AND
00001605: PUSH1 0xe0
00001607: SHL
00001608: DUP2
00001609: MSTORE
0000160a: PUSH1 0x04
0000160c: ADD
0000160d: PUSH1 0x00
0000160f: PUSH1 0x40
00001611: MLOAD
00001612: DUP1
00001613: DUP4
00001614: SUB
00001615: DUP2
00001616: PUSH1 0x00
00001618: DUP8
00001619: DUP1
0000161a: EXTCODESIZE
0000161b: ISZERO
0000161c: DUP1
0000161d: ISZERO
0000161e: PUSH2 0x1626
00001621: JUMPI
00001622: PUSH1 0x00
00001624: DUP1
00001625: REVERT
00001626: JUMPDEST
00001627: POP
00001628: GAS
00001629: CALL
0000162a: ISZERO
0000162b: DUP1
0000162c: ISZERO
0000162d: PUSH2 0x163a
00001630: JUMPI
00001631: RETURNDATASIZE
00001632: PUSH1 0x00
00001634: DUP1
00001635: RETURNDATACOPY
00001636: RETURNDATASIZE
00001637: PUSH1 0x00
00001639: REVERT
0000163a: JUMPDEST
0000163b: POP
0000163c: PUSH2 0x1653
0000163f: SWAP3
00001640: POP
00001641: POP
00001642: POP
00001643: PUSH1 0x01
00001645: PUSH1 0x01
00001647: PUSH1 0xa0
00001649: SHL
0000164a: SUB
0000164b: DUP9
0000164c: AND
0000164d: DUP10
0000164e: DUP5
0000164f: PUSH2 0x2bef
00001652: JUMP
00001653: JUMPDEST
00001654: DUP1
00001655: PUSH1 0x01
00001657: PUSH1 0x01
00001659: PUSH1 0xa0
0000165b: SHL
0000165c: SUB
0000165d: AND
0000165e: PUSH4 0x7196e841
00001663: PUSH1 0x40
00001665: MLOAD
00001666: DUP2
00001667: PUSH4 0xffffffff
0000166c: AND
0000166d: PUSH1 0xe0
0000166f: SHL
00001670: DUP2
00001671: MSTORE
00001672: PUSH1 0x04
00001674: ADD
00001675: PUSH1 0x00
00001677: PUSH1 0x40
00001679: MLOAD
0000167a: DUP1
0000167b: DUP4
0000167c: SUB
0000167d: DUP2
0000167e: PUSH1 0x00
00001680: DUP8
00001681: DUP1
00001682: EXTCODESIZE
00001683: ISZERO
00001684: DUP1
00001685: ISZERO
00001686: PUSH2 0x168e
00001689: JUMPI
0000168a: PUSH1 0x00
0000168c: DUP1
0000168d: REVERT
0000168e: JUMPDEST
0000168f: POP
00001690: GAS
00001691: CALL
00001692: ISZERO
00001693: DUP1
00001694: ISZERO
00001695: PUSH2 0x16a2
00001698: JUMPI
00001699: RETURNDATASIZE
0000169a: PUSH1 0x00
0000169c: DUP1
0000169d: RETURNDATACOPY
0000169e: RETURNDATASIZE
0000169f: PUSH1 0x00
000016a1: REVERT
000016a2: JUMPDEST
000016a3: POP
000016a4: POP
000016a5: POP
000016a6: POP
000016a7: DUP6
000016a8: PUSH1 0x01
000016aa: PUSH1 0x01
000016ac: PUSH1 0xa0
000016ae: SHL
000016af: SUB
000016b0: AND
000016b1: DUP3
000016b2: DUP5
000016b3: PUSH32 0xb3ff07f4fe20273bbc264b773aacc6325987f8b0b1aa4c5bdfe5b75fdbd1284c
000016d4: PUSH1 0x40
000016d6: MLOAD
000016d7: PUSH1 0x40
000016d9: MLOAD
000016da: DUP1
000016db: SWAP2
000016dc: SUB
000016dd: SWAP1
000016de: LOG4
000016df: POP
000016e0: POP
000016e1: POP
000016e2: POP
000016e3: POP
000016e4: POP
000016e5: POP
000016e6: POP
000016e7: PUSH2 0x12e5
000016ea: PUSH1 0x01
000016ec: PUSH1 0x02
000016ee: SSTORE
000016ef: JUMP
000016f0: JUMPDEST
000016f1: PUSH1 0x04
000016f3: SLOAD
000016f4: PUSH1 0x00
000016f6: SWAP1
000016f7: DUP2
000016f8: PUSH2 0x1700
000016fb: DUP5
000016fc: PUSH2 0x0777
000016ff: JUMP
00001700: JUMPDEST
00001701: SWAP1
00001702: POP
00001703: PUSH1 0x00
00001705: PUSH1 0x64
00001707: PUSH2 0x1710
0000170a: DUP5
0000170b: DUP3
0000170c: PUSH2 0x325d
0000170f: JUMP
00001710: JUMPDEST
00001711: PUSH2 0x171a
00001714: SWAP1
00001715: DUP5
00001716: PUSH2 0x3289
00001719: JUMP
0000171a: JUMPDEST
0000171b: PUSH2 0x1724
0000171e: SWAP2
0000171f: SWAP1
00001720: PUSH2 0x32cf
00001723: JUMP
00001724: JUMPDEST
00001725: SWAP1
00001726: POP
00001727: PUSH1 0x00
00001729: PUSH2 0x1731
0000172c: DUP3
0000172d: PUSH2 0x0623
00001730: JUMP
00001731: JUMPDEST
00001732: SWAP1
00001733: POP
00001734: PUSH1 0x00
00001736: PUSH1 0x64
00001738: PUSH2 0x1741
0000173b: DUP7
0000173c: DUP3
0000173d: PUSH2 0x325d
00001740: JUMP
00001741: JUMPDEST
00001742: PUSH2 0x174b
00001745: SWAP1
00001746: DUP5
00001747: PUSH2 0x3289
0000174a: JUMP
0000174b: JUMPDEST
0000174c: PUSH2 0x1755
0000174f: SWAP2
00001750: SWAP1
00001751: PUSH2 0x32cf
00001754: JUMP
00001755: JUMPDEST
00001756: SWAP8
00001757: SWAP7
00001758: POP
00001759: POP
0000175a: POP
0000175b: POP
0000175c: POP
0000175d: POP
0000175e: POP
0000175f: JUMP
00001760: JUMPDEST
00001761: PUSH1 0x00
00001763: DUP1
00001764: PUSH2 0x176b
00001767: PUSH2 0x1407
0000176a: JUMP
0000176b: JUMPDEST
0000176c: SWAP1
0000176d: POP
0000176e: PUSH2 0x2710
00001771: PUSH2 0x177c
00001774: PUSH2 0x012c
00001777: DUP4
00001778: PUSH2 0x3289
0000177b: JUMP
0000177c: JUMPDEST
0000177d: PUSH2 0x1786
00001780: SWAP2
00001781: SWAP1
00001782: PUSH2 0x32cf
00001785: JUMP
00001786: JUMPDEST
00001787: SWAP2
00001788: POP
00001789: POP
0000178a: SWAP1
0000178b: JUMP
0000178c: JUMPDEST
0000178d: PUSH2 0x1794
00001790: PUSH2 0x189a
00001793: JUMP
00001794: JUMPDEST
00001795: PUSH1 0x05
00001797: DUP2
00001798: LT
00001799: ISZERO
0000179a: DUP1
0000179b: ISZERO
0000179c: PUSH2 0x17a6
0000179f: JUMPI
000017a0: POP
000017a1: PUSH1 0x0f
000017a3: DUP2
000017a4: GT
000017a5: ISZERO
000017a6: JUMPDEST
000017a7: PUSH2 0x180c
000017aa: JUMPI
000017ab: PUSH1 0x40
000017ad: MLOAD
000017ae: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000017cf: DUP2
000017d0: MSTORE
000017d1: PUSH1 0x20
000017d3: PUSH1 0x04
000017d5: DUP3
000017d6: ADD
000017d7: MSTORE
000017d8: PUSH1 0x0a
000017da: PUSH1 0x24
000017dc: DUP3
000017dd: ADD
000017de: MSTORE
000017df: PUSH32 0x352d313525206f6e6c7900000000000000000000000000000000000000000000
00001800: PUSH1 0x44
00001802: DUP3
00001803: ADD
00001804: MSTORE
00001805: PUSH1 0x64
00001807: ADD
00001808: PUSH2 0x02c7
0000180b: JUMP
0000180c: JUMPDEST
0000180d: PUSH1 0x04
0000180f: SSTORE
00001810: JUMP
00001811: JUMPDEST
00001812: PUSH2 0x1819
00001815: PUSH2 0x189a
00001818: JUMP
00001819: JUMPDEST
0000181a: PUSH1 0x01
0000181c: DUP1
0000181d: SLOAD
0000181e: PUSH1 0x01
00001820: PUSH1 0x01
00001822: PUSH1 0xa0
00001824: SHL
00001825: SUB
00001826: DUP4
00001827: AND
00001828: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00001849: SWAP1
0000184a: SWAP2
0000184b: AND
0000184c: DUP2
0000184d: OR
0000184e: SWAP1
0000184f: SWAP2
00001850: SSTORE
00001851: PUSH2 0x1862
00001854: PUSH1 0x00
00001856: SLOAD
00001857: PUSH1 0x01
00001859: PUSH1 0x01
0000185b: PUSH1 0xa0
0000185d: SHL
0000185e: SUB
0000185f: AND
00001860: SWAP1
00001861: JUMP
00001862: JUMPDEST
00001863: PUSH1 0x01
00001865: PUSH1 0x01
00001867: PUSH1 0xa0
00001869: SHL
0000186a: SUB
0000186b: AND
0000186c: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700
0000188d: PUSH1 0x40
0000188f: MLOAD
00001890: PUSH1 0x40
00001892: MLOAD
00001893: DUP1
00001894: SWAP2
00001895: SUB
00001896: SWAP1
00001897: LOG3
00001898: POP
00001899: JUMP
0000189a: JUMPDEST
0000189b: PUSH1 0x00
0000189d: SLOAD
0000189e: PUSH1 0x01
000018a0: PUSH1 0x01
000018a2: PUSH1 0xa0
000018a4: SHL
000018a5: SUB
000018a6: AND
000018a7: CALLER
000018a8: EQ
000018a9: PUSH2 0x12e5
000018ac: JUMPI
000018ad: PUSH1 0x40
000018af: MLOAD
000018b0: PUSH32 0x118cdaa700000000000000000000000000000000000000000000000000000000
000018d1: DUP2
000018d2: MSTORE
000018d3: CALLER
000018d4: PUSH1 0x04
000018d6: DUP3
000018d7: ADD
000018d8: MSTORE
000018d9: PUSH1 0x24
000018db: ADD
000018dc: PUSH2 0x02c7
000018df: JUMP
000018e0: JUMPDEST
000018e1: PUSH1 0x40
000018e3: DUP1
000018e4: MLOAD
000018e5: PUSH1 0x60
000018e7: DUP2
000018e8: ADD
000018e9: DUP3
000018ea: MSTORE
000018eb: PUSH1 0x00
000018ed: DUP1
000018ee: DUP3
000018ef: MSTORE
000018f0: PUSH1 0x20
000018f2: DUP3
000018f3: ADD
000018f4: DUP2
000018f5: SWAP1
000018f6: MSTORE
000018f7: SWAP2
000018f8: DUP2
000018f9: ADD
000018fa: SWAP2
000018fb: SWAP1
000018fc: SWAP2
000018fd: MSTORE
000018fe: DUP3
000018ff: PUSH1 0x01
00001901: PUSH1 0x01
00001903: PUSH1 0xa0
00001905: SHL
00001906: SUB
00001907: AND
00001908: DUP5
00001909: PUSH1 0x01
0000190b: PUSH1 0x01
0000190d: PUSH1 0xa0
0000190f: SHL
00001910: SUB
00001911: AND
00001912: GT
00001913: ISZERO
00001914: PUSH2 0x191b
00001917: JUMPI
00001918: SWAP2
00001919: SWAP3
0000191a: SWAP2
0000191b: JUMPDEST
0000191c: PUSH1 0x40
0000191e: MLOAD
0000191f: DUP1
00001920: PUSH1 0x60
00001922: ADD
00001923: PUSH1 0x40
00001925: MSTORE
00001926: DUP1
00001927: DUP6
00001928: PUSH1 0x01
0000192a: PUSH1 0x01
0000192c: PUSH1 0xa0
0000192e: SHL
0000192f: SUB
00001930: AND
00001931: DUP2
00001932: MSTORE
00001933: PUSH1 0x20
00001935: ADD
00001936: DUP5
00001937: PUSH1 0x01
00001939: PUSH1 0x01
0000193b: PUSH1 0xa0
0000193d: SHL
0000193e: SUB
0000193f: AND
00001940: DUP2
00001941: MSTORE
00001942: PUSH1 0x20
00001944: ADD
00001945: DUP4
00001946: PUSH3 0xffffff
0000194a: AND
0000194b: DUP2
0000194c: MSTORE
0000194d: POP
0000194e: SWAP1
0000194f: POP
00001950: JUMPDEST
00001951: SWAP4
00001952: SWAP3
00001953: POP
00001954: POP
00001955: POP
00001956: JUMP
00001957: JUMPDEST
00001958: PUSH1 0x00
0000195a: DUP2
0000195b: PUSH1 0x20
0000195d: ADD
0000195e: MLOAD
0000195f: PUSH1 0x01
00001961: PUSH1 0x01
00001963: PUSH1 0xa0
00001965: SHL
00001966: SUB
00001967: AND
00001968: DUP3
00001969: PUSH1 0x00
0000196b: ADD
0000196c: MLOAD
0000196d: PUSH1 0x01
0000196f: PUSH1 0x01
00001971: PUSH1 0xa0
00001973: SHL
00001974: SUB
00001975: AND
00001976: LT
00001977: PUSH2 0x197f
0000197a: JUMPI
0000197b: PUSH1 0x00
0000197d: DUP1
0000197e: REVERT
0000197f: JUMPDEST
00001980: DUP2
00001981: MLOAD
00001982: PUSH1 0x20
00001984: DUP1
00001985: DUP5
00001986: ADD
00001987: MLOAD
00001988: PUSH1 0x40
0000198a: DUP1
0000198b: DUP7
0000198c: ADD
0000198d: MLOAD
0000198e: DUP2
0000198f: MLOAD
00001990: PUSH1 0x01
00001992: PUSH1 0x01
00001994: PUSH1 0xa0
00001996: SHL
00001997: SUB
00001998: SWAP6
00001999: DUP7
0000199a: AND
0000199b: DUP2
0000199c: DUP7
0000199d: ADD
0000199e: MSTORE
0000199f: SWAP5
000019a0: SWAP1
000019a1: SWAP3
000019a2: AND
000019a3: DUP5
000019a4: DUP3
000019a5: ADD
000019a6: MSTORE
000019a7: PUSH3 0xffffff
000019ab: SWAP1
000019ac: SWAP2
000019ad: AND
000019ae: PUSH1 0x60
000019b0: DUP1
000019b1: DUP6
000019b2: ADD
000019b3: SWAP2
000019b4: SWAP1
000019b5: SWAP2
000019b6: MSTORE
000019b7: DUP2
000019b8: MLOAD
000019b9: DUP1
000019ba: DUP6
000019bb: SUB
000019bc: DUP3
000019bd: ADD
000019be: DUP2
000019bf: MSTORE
000019c0: PUSH1 0x80
000019c2: DUP6
000019c3: ADD
000019c4: SWAP1
000019c5: SWAP3
000019c6: MSTORE
000019c7: DUP2
000019c8: MLOAD
000019c9: SWAP2
000019ca: SWAP1
000019cb: SWAP3
000019cc: ADD
000019cd: KECCAK256
000019ce: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000
000019ef: PUSH1 0xa0
000019f1: DUP5
000019f2: ADD
000019f3: MSTORE
000019f4: SWAP1
000019f5: DUP6
000019f6: SWAP1
000019f7: SHL
000019f8: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00001a19: AND
00001a1a: PUSH1 0xa1
00001a1c: DUP4
00001a1d: ADD
00001a1e: MSTORE
00001a1f: PUSH1 0xb5
00001a21: DUP3
00001a22: ADD
00001a23: MSTORE
00001a24: PUSH32 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
00001a45: PUSH1 0xd5
00001a47: DUP3
00001a48: ADD
00001a49: MSTORE
00001a4a: PUSH1 0xf5
00001a4c: ADD
00001a4d: PUSH1 0x40
00001a4f: DUP1
00001a50: MLOAD
00001a51: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001a72: DUP2
00001a73: DUP5
00001a74: SUB
00001a75: ADD
00001a76: DUP2
00001a77: MSTORE
00001a78: SWAP2
00001a79: SWAP1
00001a7a: MSTORE
00001a7b: DUP1
00001a7c: MLOAD
00001a7d: PUSH1 0x20
00001a7f: SWAP1
00001a80: SWAP2
00001a81: ADD
00001a82: KECCAK256
00001a83: SWAP4
00001a84: SWAP3
00001a85: POP
00001a86: POP
00001a87: POP
00001a88: JUMP
00001a89: JUMPDEST
00001a8a: PUSH1 0x00
00001a8c: DUP1
00001a8d: PUSH1 0x00
00001a8f: DUP4
00001a90: PUSH1 0x01
00001a92: PUSH1 0x01
00001a94: PUSH1 0xa0
00001a96: SHL
00001a97: SUB
00001a98: AND
00001a99: PUSH4 0x3850c7bd
00001a9e: PUSH1 0x40
00001aa0: MLOAD
00001aa1: DUP2
00001aa2: PUSH4 0xffffffff
00001aa7: AND
00001aa8: PUSH1 0xe0
00001aaa: SHL
00001aab: DUP2
00001aac: MSTORE
00001aad: PUSH1 0x04
00001aaf: ADD
00001ab0: PUSH1 0xe0
00001ab2: PUSH1 0x40
00001ab4: MLOAD
00001ab5: DUP1
00001ab6: DUP4
00001ab7: SUB
00001ab8: DUP2
00001ab9: DUP7
00001aba: GAS
00001abb: STATICCALL
00001abc: ISZERO
00001abd: DUP1
00001abe: ISZERO
00001abf: PUSH2 0x1acc
00001ac2: JUMPI
00001ac3: RETURNDATASIZE
00001ac4: PUSH1 0x00
00001ac6: DUP1
00001ac7: RETURNDATACOPY
00001ac8: RETURNDATASIZE
00001ac9: PUSH1 0x00
00001acb: REVERT
00001acc: JUMPDEST
00001acd: POP
00001ace: POP
00001acf: POP
00001ad0: POP
00001ad1: PUSH1 0x40
00001ad3: MLOAD
00001ad4: RETURNDATASIZE
00001ad5: PUSH1 0x1f
00001ad7: NOT
00001ad8: PUSH1 0x1f
00001ada: DUP3
00001adb: ADD
00001adc: AND
00001add: DUP3
00001ade: ADD
00001adf: DUP1
00001ae0: PUSH1 0x40
00001ae2: MSTORE
00001ae3: POP
00001ae4: DUP2
00001ae5: ADD
00001ae6: SWAP1
00001ae7: PUSH2 0x1af0
00001aea: SWAP2
00001aeb: SWAP1
00001aec: PUSH2 0x31c3
00001aef: JUMP
00001af0: JUMPDEST
00001af1: POP
00001af2: POP
00001af3: POP
00001af4: SWAP4
00001af5: POP
00001af6: SWAP4
00001af7: POP
00001af8: POP
00001af9: POP
00001afa: PUSH1 0x00
00001afc: DUP2
00001afd: PUSH2 0xffff
00001b00: AND
00001b01: GT
00001b02: PUSH2 0x1b67
00001b05: JUMPI
00001b06: PUSH1 0x40
00001b08: MLOAD
00001b09: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001b2a: DUP2
00001b2b: MSTORE
00001b2c: PUSH1 0x20
00001b2e: PUSH1 0x04
00001b30: DUP3
00001b31: ADD
00001b32: MSTORE
00001b33: PUSH1 0x02
00001b35: PUSH1 0x24
00001b37: DUP3
00001b38: ADD
00001b39: MSTORE
00001b3a: PUSH32 0x4e49000000000000000000000000000000000000000000000000000000000000
00001b5b: PUSH1 0x44
00001b5d: DUP3
00001b5e: ADD
00001b5f: MSTORE
00001b60: PUSH1 0x64
00001b62: ADD
00001b63: PUSH2 0x02c7
00001b66: JUMP
00001b67: JUMPDEST
00001b68: PUSH1 0x00
00001b6a: DUP1
00001b6b: PUSH1 0x01
00001b6d: PUSH1 0x01
00001b6f: PUSH1 0xa0
00001b71: SHL
00001b72: SUB
00001b73: DUP7
00001b74: AND
00001b75: PUSH4 0x252c09d7
00001b7a: DUP5
00001b7b: PUSH2 0x1b85
00001b7e: DUP8
00001b7f: PUSH1 0x01
00001b81: PUSH2 0x33a8
00001b84: JUMP
00001b85: JUMPDEST
00001b86: PUSH2 0x1b8f
00001b89: SWAP2
00001b8a: SWAP1
00001b8b: PUSH2 0x33ca
00001b8e: JUMP
00001b8f: JUMPDEST
00001b90: PUSH1 0x40
00001b92: MLOAD
00001b93: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00001bb4: PUSH1 0xe0
00001bb6: DUP5
00001bb7: SWAP1
00001bb8: SHL
00001bb9: AND
00001bba: DUP2
00001bbb: MSTORE
00001bbc: PUSH2 0xffff
00001bbf: SWAP1
00001bc0: SWAP2
00001bc1: AND
00001bc2: PUSH1 0x04
00001bc4: DUP3
00001bc5: ADD
00001bc6: MSTORE
00001bc7: PUSH1 0x24
00001bc9: ADD
00001bca: PUSH1 0x80
00001bcc: PUSH1 0x40
00001bce: MLOAD
00001bcf: DUP1
00001bd0: DUP4
00001bd1: SUB
00001bd2: DUP2
00001bd3: DUP7
00001bd4: GAS
00001bd5: STATICCALL
00001bd6: ISZERO
00001bd7: DUP1
00001bd8: ISZERO
00001bd9: PUSH2 0x1be6
00001bdc: JUMPI
00001bdd: RETURNDATASIZE
00001bde: PUSH1 0x00
00001be0: DUP1
00001be1: RETURNDATACOPY
00001be2: RETURNDATASIZE
00001be3: PUSH1 0x00
00001be5: REVERT
00001be6: JUMPDEST
00001be7: POP
00001be8: POP
00001be9: POP
00001bea: POP
00001beb: PUSH1 0x40
00001bed: MLOAD
00001bee: RETURNDATASIZE
00001bef: PUSH1 0x1f
00001bf1: NOT
00001bf2: PUSH1 0x1f
00001bf4: DUP3
00001bf5: ADD
00001bf6: AND
00001bf7: DUP3
00001bf8: ADD
00001bf9: DUP1
00001bfa: PUSH1 0x40
00001bfc: MSTORE
00001bfd: POP
00001bfe: DUP2
00001bff: ADD
00001c00: SWAP1
00001c01: PUSH2 0x1c0a
00001c04: SWAP2
00001c05: SWAP1
00001c06: PUSH2 0x33fd
00001c09: JUMP
00001c0a: JUMPDEST
00001c0b: SWAP4
00001c0c: POP
00001c0d: POP
00001c0e: POP
00001c0f: SWAP2
00001c10: POP
00001c11: DUP1
00001c12: PUSH2 0x1c9e
00001c15: JUMPI
00001c16: PUSH1 0x40
00001c18: MLOAD
00001c19: PUSH32 0x252c09d700000000000000000000000000000000000000000000000000000000
00001c3a: DUP2
00001c3b: MSTORE
00001c3c: PUSH1 0x00
00001c3e: PUSH1 0x04
00001c40: DUP3
00001c41: ADD
00001c42: MSTORE
00001c43: PUSH1 0x01
00001c45: PUSH1 0x01
00001c47: PUSH1 0xa0
00001c49: SHL
00001c4a: SUB
00001c4b: DUP8
00001c4c: AND
00001c4d: SWAP1
00001c4e: PUSH4 0x252c09d7
00001c53: SWAP1
00001c54: PUSH1 0x24
00001c56: ADD
00001c57: PUSH1 0x80
00001c59: PUSH1 0x40
00001c5b: MLOAD
00001c5c: DUP1
00001c5d: DUP4
00001c5e: SUB
00001c5f: DUP2
00001c60: DUP7
00001c61: GAS
00001c62: STATICCALL
00001c63: ISZERO
00001c64: DUP1
00001c65: ISZERO
00001c66: PUSH2 0x1c73
00001c69: JUMPI
00001c6a: RETURNDATASIZE
00001c6b: PUSH1 0x00
00001c6d: DUP1
00001c6e: RETURNDATACOPY
00001c6f: RETURNDATASIZE
00001c70: PUSH1 0x00
00001c72: REVERT
00001c73: JUMPDEST
00001c74: POP
00001c75: POP
00001c76: POP
00001c77: POP
00001c78: PUSH1 0x40
00001c7a: MLOAD
00001c7b: RETURNDATASIZE
00001c7c: PUSH1 0x1f
00001c7e: NOT
00001c7f: PUSH1 0x1f
00001c81: DUP3
00001c82: ADD
00001c83: AND
00001c84: DUP3
00001c85: ADD
00001c86: DUP1
00001c87: PUSH1 0x40
00001c89: MSTORE
00001c8a: POP
00001c8b: DUP2
00001c8c: ADD
00001c8d: SWAP1
00001c8e: PUSH2 0x1c97
00001c91: SWAP2
00001c92: SWAP1
00001c93: PUSH2 0x33fd
00001c96: JUMP
00001c97: JUMPDEST
00001c98: POP
00001c99: SWAP2
00001c9a: SWAP4
00001c9b: POP
00001c9c: POP
00001c9d: POP
00001c9e: JUMPDEST
00001c9f: PUSH2 0x08df
00001ca2: DUP3
00001ca3: TIMESTAMP
00001ca4: PUSH2 0x3455
00001ca7: JUMP
00001ca8: JUMPDEST
00001ca9: PUSH1 0x00
00001cab: DUP1
00001cac: DUP3
00001cad: PUSH4 0xffffffff
00001cb2: AND
00001cb3: PUSH1 0x00
00001cb5: SUB
00001cb6: PUSH2 0x1d1b
00001cb9: JUMPI
00001cba: PUSH1 0x40
00001cbc: MLOAD
00001cbd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001cde: DUP2
00001cdf: MSTORE
00001ce0: PUSH1 0x20
00001ce2: PUSH1 0x04
00001ce4: DUP3
00001ce5: ADD
00001ce6: MSTORE
00001ce7: PUSH1 0x02
00001ce9: PUSH1 0x24
00001ceb: DUP3
00001cec: ADD
00001ced: MSTORE
00001cee: PUSH32 0x4250000000000000000000000000000000000000000000000000000000000000
00001d0f: PUSH1 0x44
00001d11: DUP3
00001d12: ADD
00001d13: MSTORE
00001d14: PUSH1 0x64
00001d16: ADD
00001d17: PUSH2 0x02c7
00001d1a: JUMP
00001d1b: JUMPDEST
00001d1c: PUSH1 0x40
00001d1e: DUP1
00001d1f: MLOAD
00001d20: PUSH1 0x02
00001d22: DUP1
00001d23: DUP3
00001d24: MSTORE
00001d25: PUSH1 0x60
00001d27: DUP3
00001d28: ADD
00001d29: DUP4
00001d2a: MSTORE
00001d2b: PUSH1 0x00
00001d2d: SWAP3
00001d2e: PUSH1 0x20
00001d30: DUP4
00001d31: ADD
00001d32: SWAP1
00001d33: DUP1
00001d34: CALLDATASIZE
00001d35: DUP4
00001d36: CALLDATACOPY
00001d37: ADD
00001d38: SWAP1
00001d39: POP
00001d3a: POP
00001d3b: SWAP1
00001d3c: POP
00001d3d: DUP4
00001d3e: DUP2
00001d3f: PUSH1 0x00
00001d41: DUP2
00001d42: MLOAD
00001d43: DUP2
00001d44: LT
00001d45: PUSH2 0x1d50
00001d48: JUMPI
00001d49: PUSH2 0x1d50
00001d4c: PUSH2 0x34a1
00001d4f: JUMP
00001d50: JUMPDEST
00001d51: PUSH1 0x20
00001d53: MUL
00001d54: PUSH1 0x20
00001d56: ADD
00001d57: ADD
00001d58: SWAP1
00001d59: PUSH4 0xffffffff
00001d5e: AND
00001d5f: SWAP1
00001d60: DUP2
00001d61: PUSH4 0xffffffff
00001d66: AND
00001d67: DUP2
00001d68: MSTORE
00001d69: POP
00001d6a: POP
00001d6b: PUSH1 0x00
00001d6d: DUP2
00001d6e: PUSH1 0x01
00001d70: DUP2
00001d71: MLOAD
00001d72: DUP2
00001d73: LT
00001d74: PUSH2 0x1d7f
00001d77: JUMPI
00001d78: PUSH2 0x1d7f
00001d7b: PUSH2 0x34a1
00001d7e: JUMP
00001d7f: JUMPDEST
00001d80: PUSH1 0x20
00001d82: MUL
00001d83: PUSH1 0x20
00001d85: ADD
00001d86: ADD
00001d87: SWAP1
00001d88: PUSH4 0xffffffff
00001d8d: AND
00001d8e: SWAP1
00001d8f: DUP2
00001d90: PUSH4 0xffffffff
00001d95: AND
00001d96: DUP2
00001d97: MSTORE
00001d98: POP
00001d99: POP
00001d9a: PUSH1 0x00
00001d9c: DUP1
00001d9d: DUP7
00001d9e: PUSH1 0x01
00001da0: PUSH1 0x01
00001da2: PUSH1 0xa0
00001da4: SHL
00001da5: SUB
00001da6: AND
00001da7: PUSH4 0x883bdbfd
00001dac: DUP5
00001dad: PUSH1 0x40
00001daf: MLOAD
00001db0: DUP3
00001db1: PUSH4 0xffffffff
00001db6: AND
00001db7: PUSH1 0xe0
00001db9: SHL
00001dba: DUP2
00001dbb: MSTORE
00001dbc: PUSH1 0x04
00001dbe: ADD
00001dbf: PUSH2 0x1dc8
00001dc2: SWAP2
00001dc3: SWAP1
00001dc4: PUSH2 0x34d0
00001dc7: JUMP
00001dc8: JUMPDEST
00001dc9: PUSH1 0x00
00001dcb: PUSH1 0x40
00001dcd: MLOAD
00001dce: DUP1
00001dcf: DUP4
00001dd0: SUB
00001dd1: DUP2
00001dd2: DUP7
00001dd3: GAS
00001dd4: STATICCALL
00001dd5: ISZERO
00001dd6: DUP1
00001dd7: ISZERO
00001dd8: PUSH2 0x1de5
00001ddb: JUMPI
00001ddc: RETURNDATASIZE
00001ddd: PUSH1 0x00
00001ddf: DUP1
00001de0: RETURNDATACOPY
00001de1: RETURNDATASIZE
00001de2: PUSH1 0x00
00001de4: REVERT
00001de5: JUMPDEST
00001de6: POP
00001de7: POP
00001de8: POP
00001de9: POP
00001dea: PUSH1 0x40
00001dec: MLOAD
00001ded: RETURNDATASIZE
00001dee: PUSH1 0x00
00001df0: DUP3
00001df1: RETURNDATACOPY
00001df2: PUSH1 0x1f
00001df4: RETURNDATASIZE
00001df5: SWAP1
00001df6: DUP2
00001df7: ADD
00001df8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001e19: AND
00001e1a: DUP3
00001e1b: ADD
00001e1c: PUSH1 0x40
00001e1e: MSTORE
00001e1f: PUSH2 0x1e2b
00001e22: SWAP2
00001e23: SWAP1
00001e24: DUP2
00001e25: ADD
00001e26: SWAP1
00001e27: PUSH2 0x3601
00001e2a: JUMP
00001e2b: JUMPDEST
00001e2c: SWAP2
00001e2d: POP
00001e2e: SWAP2
00001e2f: POP
00001e30: PUSH1 0x00
00001e32: DUP3
00001e33: PUSH1 0x00
00001e35: DUP2
00001e36: MLOAD
00001e37: DUP2
00001e38: LT
00001e39: PUSH2 0x1e44
00001e3c: JUMPI
00001e3d: PUSH2 0x1e44
00001e40: PUSH2 0x34a1
00001e43: JUMP
00001e44: JUMPDEST
00001e45: PUSH1 0x20
00001e47: MUL
00001e48: PUSH1 0x20
00001e4a: ADD
00001e4b: ADD
00001e4c: MLOAD
00001e4d: DUP4
00001e4e: PUSH1 0x01
00001e50: DUP2
00001e51: MLOAD
00001e52: DUP2
00001e53: LT
00001e54: PUSH2 0x1e5f
00001e57: JUMPI
00001e58: PUSH2 0x1e5f
00001e5b: PUSH2 0x34a1
00001e5e: JUMP
00001e5f: JUMPDEST
00001e60: PUSH1 0x20
00001e62: MUL
00001e63: PUSH1 0x20
00001e65: ADD
00001e66: ADD
00001e67: MLOAD
00001e68: PUSH2 0x1e71
00001e6b: SWAP2
00001e6c: SWAP1
00001e6d: PUSH2 0x36c4
00001e70: JUMP
00001e71: JUMPDEST
00001e72: SWAP1
00001e73: POP
00001e74: PUSH1 0x00
00001e76: DUP3
00001e77: PUSH1 0x00
00001e79: DUP2
00001e7a: MLOAD
00001e7b: DUP2
00001e7c: LT
00001e7d: PUSH2 0x1e88
00001e80: JUMPI
00001e81: PUSH2 0x1e88
00001e84: PUSH2 0x34a1
00001e87: JUMP
00001e88: JUMPDEST
00001e89: PUSH1 0x20
00001e8b: MUL
00001e8c: PUSH1 0x20
00001e8e: ADD
00001e8f: ADD
00001e90: MLOAD
00001e91: DUP4
00001e92: PUSH1 0x01
00001e94: DUP2
00001e95: MLOAD
00001e96: DUP2
00001e97: LT
00001e98: PUSH2 0x1ea3
00001e9b: JUMPI
00001e9c: PUSH2 0x1ea3
00001e9f: PUSH2 0x34a1
00001ea2: JUMP
00001ea3: JUMPDEST
00001ea4: PUSH1 0x20
00001ea6: MUL
00001ea7: PUSH1 0x20
00001ea9: ADD
00001eaa: ADD
00001eab: MLOAD
00001eac: PUSH2 0x1eb5
00001eaf: SWAP2
00001eb0: SWAP1
00001eb1: PUSH2 0x3709
00001eb4: JUMP
00001eb5: JUMPDEST
00001eb6: SWAP1
00001eb7: POP
00001eb8: PUSH4 0xffffffff
00001ebd: DUP9
00001ebe: AND
00001ebf: PUSH2 0x1ec8
00001ec2: DUP2
00001ec3: DUP5
00001ec4: PUSH2 0x3729
00001ec7: JUMP
00001ec8: JUMPDEST
00001ec9: SWAP8
00001eca: POP
00001ecb: PUSH1 0x00
00001ecd: DUP4
00001ece: PUSH1 0x06
00001ed0: SIGNEXTEND
00001ed1: SLT
00001ed2: DUP1
00001ed3: ISZERO
00001ed4: PUSH2 0x1ee8
00001ed7: JUMPI
00001ed8: POP
00001ed9: PUSH2 0x1ee2
00001edc: DUP2
00001edd: DUP5
00001ede: PUSH2 0x379d
00001ee1: JUMP
00001ee2: JUMPDEST
00001ee3: PUSH1 0x06
00001ee5: SIGNEXTEND
00001ee6: ISZERO
00001ee7: ISZERO
00001ee8: JUMPDEST
00001ee9: ISZERO
00001eea: PUSH2 0x1efb
00001eed: JUMPI
00001eee: DUP8
00001eef: PUSH2 0x1ef7
00001ef2: DUP2
00001ef3: PUSH2 0x37bf
00001ef6: JUMP
00001ef7: JUMPDEST
00001ef8: SWAP9
00001ef9: POP
00001efa: POP
00001efb: JUMPDEST
00001efc: PUSH4 0xffffffff
00001f01: DUP10
00001f02: AND
00001f03: PUSH24 0xffffffffffffffffffffffffffffffffffffffff00000000
00001f1c: PUSH1 0x20
00001f1e: DUP5
00001f1f: SWAP1
00001f20: SHL
00001f21: AND
00001f22: PUSH2 0x1f32
00001f25: PUSH1 0x01
00001f27: PUSH1 0x01
00001f29: PUSH1 0xa0
00001f2b: SHL
00001f2c: SUB
00001f2d: DUP4
00001f2e: PUSH2 0x381c
00001f31: JUMP
00001f32: JUMPDEST
00001f33: PUSH2 0x1f3c
00001f36: SWAP2
00001f37: SWAP1
00001f38: PUSH2 0x385f
00001f3b: JUMP
00001f3c: JUMPDEST
00001f3d: SWAP8
00001f3e: POP
00001f3f: POP
00001f40: POP
00001f41: POP
00001f42: POP
00001f43: POP
00001f44: POP
00001f45: POP
00001f46: SWAP3
00001f47: POP
00001f48: SWAP3
00001f49: SWAP1
00001f4a: POP
00001f4b: JUMP
00001f4c: JUMPDEST
00001f4d: PUSH1 0x00
00001f4f: DUP1
00001f50: PUSH1 0x00
00001f52: DUP4
00001f53: PUSH1 0x02
00001f55: SIGNEXTEND
00001f56: SLT
00001f57: PUSH2 0x1f63
00001f5a: JUMPI
00001f5b: DUP3
00001f5c: PUSH1 0x02
00001f5e: SIGNEXTEND
00001f5f: PUSH2 0x1f70
00001f62: JUMP
00001f63: JUMPDEST
00001f64: DUP3
00001f65: PUSH1 0x02
00001f67: SIGNEXTEND
00001f68: PUSH2 0x1f70
00001f6b: SWAP1
00001f6c: PUSH2 0x3896
00001f6f: JUMP
00001f70: JUMPDEST
00001f71: SWAP1
00001f72: POP
00001f73: PUSH2 0x1f9b
00001f76: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618
00001f97: PUSH2 0x38ce
00001f9a: JUMP
00001f9b: JUMPDEST
00001f9c: PUSH1 0x02
00001f9e: SIGNEXTEND
00001f9f: DUP2
00001fa0: GT
00001fa1: ISZERO
00001fa2: PUSH2 0x2007
00001fa5: JUMPI
00001fa6: PUSH1 0x40
00001fa8: MLOAD
00001fa9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001fca: DUP2
00001fcb: MSTORE
00001fcc: PUSH1 0x20
00001fce: PUSH1 0x04
00001fd0: DUP3
00001fd1: ADD
00001fd2: MSTORE
00001fd3: PUSH1 0x01
00001fd5: PUSH1 0x24
00001fd7: DUP3
00001fd8: ADD
00001fd9: MSTORE
00001fda: PUSH32 0x5400000000000000000000000000000000000000000000000000000000000000
00001ffb: PUSH1 0x44
00001ffd: DUP3
00001ffe: ADD
00001fff: MSTORE
00002000: PUSH1 0x64
00002002: ADD
00002003: PUSH2 0x02c7
00002006: JUMP
00002007: JUMPDEST
00002008: PUSH1 0x00
0000200a: DUP2
0000200b: PUSH1 0x01
0000200d: AND
0000200e: PUSH1 0x00
00002010: SUB
00002011: PUSH2 0x202b
00002014: JUMPI
00002015: PUSH17 0x0100000000000000000000000000000000
00002027: PUSH2 0x203d
0000202a: JUMP
0000202b: JUMPDEST
0000202c: PUSH16 0xfffcb933bd6fad37aa2d162d1a594001
0000203d: JUMPDEST
0000203e: PUSH17 0xffffffffffffffffffffffffffffffffff
00002050: AND
00002051: SWAP1
00002052: POP
00002053: PUSH1 0x02
00002055: DUP3
00002056: AND
00002057: ISZERO
00002058: PUSH2 0x207c
0000205b: JUMPI
0000205c: PUSH1 0x80
0000205e: PUSH2 0x2077
00002061: DUP3
00002062: PUSH16 0xfff97272373d413259a46990580e213a
00002073: PUSH2 0x3289
00002076: JUMP
00002077: JUMPDEST
00002078: SWAP1
00002079: SHR
0000207a: SWAP1
0000207b: POP
0000207c: JUMPDEST
0000207d: PUSH1 0x04
0000207f: DUP3
00002080: AND
00002081: ISZERO
00002082: PUSH2 0x20a6
00002085: JUMPI
00002086: PUSH1 0x80
00002088: PUSH2 0x20a1
0000208b: DUP3
0000208c: PUSH16 0xfff2e50f5f656932ef12357cf3c7fdcc
0000209d: PUSH2 0x3289
000020a0: JUMP
000020a1: JUMPDEST
000020a2: SWAP1
000020a3: SHR
000020a4: SWAP1
000020a5: POP
000020a6: JUMPDEST
000020a7: PUSH1 0x08
000020a9: DUP3
000020aa: AND
000020ab: ISZERO
000020ac: PUSH2 0x20d0
000020af: JUMPI
000020b0: PUSH1 0x80
000020b2: PUSH2 0x20cb
000020b5: DUP3
000020b6: PUSH16 0xffe5caca7e10e4e61c3624eaa0941cd0
000020c7: PUSH2 0x3289
000020ca: JUMP
000020cb: JUMPDEST
000020cc: SWAP1
000020cd: SHR
000020ce: SWAP1
000020cf: POP
000020d0: JUMPDEST
000020d1: PUSH1 0x10
000020d3: DUP3
000020d4: AND
000020d5: ISZERO
000020d6: PUSH2 0x20fa
000020d9: JUMPI
000020da: PUSH1 0x80
000020dc: PUSH2 0x20f5
000020df: DUP3
000020e0: PUSH16 0xffcb9843d60f6159c9db58835c926644
000020f1: PUSH2 0x3289
000020f4: JUMP
000020f5: JUMPDEST
000020f6: SWAP1
000020f7: SHR
000020f8: SWAP1
000020f9: POP
000020fa: JUMPDEST
000020fb: PUSH1 0x20
000020fd: DUP3
000020fe: AND
000020ff: ISZERO
00002100: PUSH2 0x2124
00002103: JUMPI
00002104: PUSH1 0x80
00002106: PUSH2 0x211f
00002109: DUP3
0000210a: PUSH16 0xff973b41fa98c081472e6896dfb254c0
0000211b: PUSH2 0x3289
0000211e: JUMP
0000211f: JUMPDEST
00002120: SWAP1
00002121: SHR
00002122: SWAP1
00002123: POP
00002124: JUMPDEST
00002125: PUSH1 0x40
00002127: DUP3
00002128: AND
00002129: ISZERO
0000212a: PUSH2 0x214e
0000212d: JUMPI
0000212e: PUSH1 0x80
00002130: PUSH2 0x2149
00002133: DUP3
00002134: PUSH16 0xff2ea16466c96a3843ec78b326b52861
00002145: PUSH2 0x3289
00002148: JUMP
00002149: JUMPDEST
0000214a: SWAP1
0000214b: SHR
0000214c: SWAP1
0000214d: POP
0000214e: JUMPDEST
0000214f: PUSH1 0x80
00002151: DUP3
00002152: AND
00002153: ISZERO
00002154: PUSH2 0x2178
00002157: JUMPI
00002158: PUSH1 0x80
0000215a: PUSH2 0x2173
0000215d: DUP3
0000215e: PUSH16 0xfe5dee046a99a2a811c461f1969c3053
0000216f: PUSH2 0x3289
00002172: JUMP
00002173: JUMPDEST
00002174: SWAP1
00002175: SHR
00002176: SWAP1
00002177: POP
00002178: JUMPDEST
00002179: PUSH2 0x0100
0000217c: DUP3
0000217d: AND
0000217e: ISZERO
0000217f: PUSH2 0x21a3
00002182: JUMPI
00002183: PUSH1 0x80
00002185: PUSH2 0x219e
00002188: DUP3
00002189: PUSH16 0xfcbe86c7900a88aedcffc83b479aa3a4
0000219a: PUSH2 0x3289
0000219d: JUMP
0000219e: JUMPDEST
0000219f: SWAP1
000021a0: SHR
000021a1: SWAP1
000021a2: POP
000021a3: JUMPDEST
000021a4: PUSH2 0x0200
000021a7: DUP3
000021a8: AND
000021a9: ISZERO
000021aa: PUSH2 0x21ce
000021ad: JUMPI
000021ae: PUSH1 0x80
000021b0: PUSH2 0x21c9
000021b3: DUP3
000021b4: PUSH16 0xf987a7253ac413176f2b074cf7815e54
000021c5: PUSH2 0x3289
000021c8: JUMP
000021c9: JUMPDEST
000021ca: SWAP1
000021cb: SHR
000021cc: SWAP1
000021cd: POP
000021ce: JUMPDEST
000021cf: PUSH2 0x0400
000021d2: DUP3
000021d3: AND
000021d4: ISZERO
000021d5: PUSH2 0x21f9
000021d8: JUMPI
000021d9: PUSH1 0x80
000021db: PUSH2 0x21f4
000021de: DUP3
000021df: PUSH16 0xf3392b0822b70005940c7a398e4b70f3
000021f0: PUSH2 0x3289
000021f3: JUMP
000021f4: JUMPDEST
000021f5: SWAP1
000021f6: SHR
000021f7: SWAP1
000021f8: POP
000021f9: JUMPDEST
000021fa: PUSH2 0x0800
000021fd: DUP3
000021fe: AND
000021ff: ISZERO
00002200: PUSH2 0x2224
00002203: JUMPI
00002204: PUSH1 0x80
00002206: PUSH2 0x221f
00002209: DUP3
0000220a: PUSH16 0xe7159475a2c29b7443b29c7fa6e889d9
0000221b: PUSH2 0x3289
0000221e: JUMP
0000221f: JUMPDEST
00002220: SWAP1
00002221: SHR
00002222: SWAP1
00002223: POP
00002224: JUMPDEST
00002225: PUSH2 0x1000
00002228: DUP3
00002229: AND
0000222a: ISZERO
0000222b: PUSH2 0x224f
0000222e: JUMPI
0000222f: PUSH1 0x80
00002231: PUSH2 0x224a
00002234: DUP3
00002235: PUSH16 0xd097f3bdfd2022b8845ad8f792aa5825
00002246: PUSH2 0x3289
00002249: JUMP
0000224a: JUMPDEST
0000224b: SWAP1
0000224c: SHR
0000224d: SWAP1
0000224e: POP
0000224f: JUMPDEST
00002250: PUSH2 0x2000
00002253: DUP3
00002254: AND
00002255: ISZERO
00002256: PUSH2 0x227a
00002259: JUMPI
0000225a: PUSH1 0x80
0000225c: PUSH2 0x2275
0000225f: DUP3
00002260: PUSH16 0xa9f746462d870fdf8a65dc1f90e061e5
00002271: PUSH2 0x3289
00002274: JUMP
00002275: JUMPDEST
00002276: SWAP1
00002277: SHR
00002278: SWAP1
00002279: POP
0000227a: JUMPDEST
0000227b: PUSH2 0x4000
0000227e: DUP3
0000227f: AND
00002280: ISZERO
00002281: PUSH2 0x22a5
00002284: JUMPI
00002285: PUSH1 0x80
00002287: PUSH2 0x22a0
0000228a: DUP3
0000228b: PUSH16 0x70d869a156d2a1b890bb3df62baf32f7
0000229c: PUSH2 0x3289
0000229f: JUMP
000022a0: JUMPDEST
000022a1: SWAP1
000022a2: SHR
000022a3: SWAP1
000022a4: POP
000022a5: JUMPDEST
000022a6: PUSH2 0x8000
000022a9: DUP3
000022aa: AND
000022ab: ISZERO
000022ac: PUSH2 0x22d0
000022af: JUMPI
000022b0: PUSH1 0x80
000022b2: PUSH2 0x22cb
000022b5: DUP3
000022b6: PUSH16 0x31be135f97d08fd981231505542fcfa6
000022c7: PUSH2 0x3289
000022ca: JUMP
000022cb: JUMPDEST
000022cc: SWAP1
000022cd: SHR
000022ce: SWAP1
000022cf: POP
000022d0: JUMPDEST
000022d1: PUSH3 0x010000
000022d5: DUP3
000022d6: AND
000022d7: ISZERO
000022d8: PUSH2 0x22fc
000022db: JUMPI
000022dc: PUSH1 0x80
000022de: PUSH2 0x22f7
000022e1: DUP3
000022e2: PUSH16 0x09aa508b5b7a84e1c677de54f3e99bc9
000022f3: PUSH2 0x3289
000022f6: JUMP
000022f7: JUMPDEST
000022f8: SWAP1
000022f9: SHR
000022fa: SWAP1
000022fb: POP
000022fc: JUMPDEST
000022fd: PUSH3 0x020000
00002301: DUP3
00002302: AND
00002303: ISZERO
00002304: PUSH2 0x2327
00002307: JUMPI
00002308: PUSH1 0x80
0000230a: PUSH2 0x2322
0000230d: DUP3
0000230e: PUSH15 0x5d6af8dedb81196699c329225ee604
0000231e: PUSH2 0x3289
00002321: JUMP
00002322: JUMPDEST
00002323: SWAP1
00002324: SHR
00002325: SWAP1
00002326: POP
00002327: JUMPDEST
00002328: PUSH3 0x040000
0000232c: DUP3
0000232d: AND
0000232e: ISZERO
0000232f: PUSH2 0x2351
00002332: JUMPI
00002333: PUSH1 0x80
00002335: PUSH2 0x234c
00002338: DUP3
00002339: PUSH14 0x2216e584f5fa1ea926041bedfe98
00002348: PUSH2 0x3289
0000234b: JUMP
0000234c: JUMPDEST
0000234d: SWAP1
0000234e: SHR
0000234f: SWAP1
00002350: POP
00002351: JUMPDEST
00002352: PUSH3 0x080000
00002356: DUP3
00002357: AND
00002358: ISZERO
00002359: PUSH2 0x2379
0000235c: JUMPI
0000235d: PUSH1 0x80
0000235f: PUSH2 0x2374
00002362: DUP3
00002363: PUSH12 0x048a170391f7dc42444e8fa2
00002370: PUSH2 0x3289
00002373: JUMP
00002374: JUMPDEST
00002375: SWAP1
00002376: SHR
00002377: SWAP1
00002378: POP
00002379: JUMPDEST
0000237a: PUSH1 0x00
0000237c: DUP5
0000237d: PUSH1 0x02
0000237f: SIGNEXTEND
00002380: SGT
00002381: ISZERO
00002382: PUSH2 0x23b2
00002385: JUMPI
00002386: PUSH2 0x23af
00002389: DUP2
0000238a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000023ab: PUSH2 0x32cf
000023ae: JUMP
000023af: JUMPDEST
000023b0: SWAP1
000023b1: POP
000023b2: JUMPDEST
000023b3: PUSH2 0x23c1
000023b6: PUSH5 0x0100000000
000023bc: DUP3
000023bd: PUSH2 0x390c
000023c0: JUMP
000023c1: JUMPDEST
000023c2: ISZERO
000023c3: PUSH2 0x23cd
000023c6: JUMPI
000023c7: PUSH1 0x01
000023c9: PUSH2 0x23d0
000023cc: JUMP
000023cd: JUMPDEST
000023ce: PUSH1 0x00
000023d0: JUMPDEST
000023d1: PUSH2 0x23e1
000023d4: SWAP1
000023d5: PUSH1 0xff
000023d7: AND
000023d8: PUSH1 0x20
000023da: DUP4
000023db: SWAP1
000023dc: SHR
000023dd: PUSH2 0x32e3
000023e0: JUMP
000023e1: JUMPDEST
000023e2: SWAP5
000023e3: SWAP4
000023e4: POP
000023e5: POP
000023e6: POP
000023e7: POP
000023e8: JUMP
000023e9: JUMPDEST
000023ea: PUSH1 0x00
000023ec: PUSH16 0xffffffffffffffffffffffffffffffff
000023fd: PUSH1 0x01
000023ff: PUSH1 0x01
00002401: PUSH1 0xa0
00002403: SHL
00002404: SUB
00002405: DUP7
00002406: AND
00002407: GT
00002408: PUSH2 0x2490
0000240b: JUMPI
0000240c: PUSH1 0x00
0000240e: PUSH2 0x2420
00002411: PUSH1 0x01
00002413: PUSH1 0x01
00002415: PUSH1 0xa0
00002417: SHL
00002418: SUB
00002419: DUP8
0000241a: AND
0000241b: DUP1
0000241c: PUSH2 0x3289
0000241f: JUMP
00002420: JUMPDEST
00002421: SWAP1
00002422: POP
00002423: DUP3
00002424: PUSH1 0x01
00002426: PUSH1 0x01
00002428: PUSH1 0xa0
0000242a: SHL
0000242b: SUB
0000242c: AND
0000242d: DUP5
0000242e: PUSH1 0x01
00002430: PUSH1 0x01
00002432: PUSH1 0xa0
00002434: SHL
00002435: SUB
00002436: AND
00002437: LT
00002438: PUSH2 0x2464
0000243b: JUMPI
0000243c: PUSH2 0x245f
0000243f: PUSH25 0x01000000000000000000000000000000000000000000000000
00002459: DUP7
0000245a: DUP4
0000245b: PUSH2 0x2c20
0000245e: JUMP
0000245f: JUMPDEST
00002460: PUSH2 0x2488
00002463: JUMP
00002464: JUMPDEST
00002465: PUSH2 0x2488
00002468: DUP2
00002469: DUP7
0000246a: PUSH25 0x01000000000000000000000000000000000000000000000000
00002484: PUSH2 0x2c20
00002487: JUMP
00002488: JUMPDEST
00002489: SWAP2
0000248a: POP
0000248b: POP
0000248c: PUSH2 0x23e1
0000248f: JUMP
00002490: JUMPDEST
00002491: PUSH1 0x00
00002493: PUSH2 0x24af
00002496: PUSH1 0x01
00002498: PUSH1 0x01
0000249a: PUSH1 0xa0
0000249c: SHL
0000249d: SUB
0000249e: DUP8
0000249f: AND
000024a0: DUP1
000024a1: PUSH9 0x010000000000000000
000024ab: PUSH2 0x2c20
000024ae: JUMP
000024af: JUMPDEST
000024b0: SWAP1
000024b1: POP
000024b2: DUP3
000024b3: PUSH1 0x01
000024b5: PUSH1 0x01
000024b7: PUSH1 0xa0
000024b9: SHL
000024ba: SUB
000024bb: AND
000024bc: DUP5
000024bd: PUSH1 0x01
000024bf: PUSH1 0x01
000024c1: PUSH1 0xa0
000024c3: SHL
000024c4: SUB
000024c5: AND
000024c6: LT
000024c7: PUSH2 0x24eb
000024ca: JUMPI
000024cb: PUSH2 0x24e6
000024ce: PUSH17 0x0100000000000000000000000000000000
000024e0: DUP7
000024e1: DUP4
000024e2: PUSH2 0x2c20
000024e5: JUMP
000024e6: JUMPDEST
000024e7: PUSH2 0x08df
000024ea: JUMP
000024eb: JUMPDEST
000024ec: PUSH2 0x08df
000024ef: DUP2
000024f0: DUP7
000024f1: PUSH17 0x0100000000000000000000000000000000
00002503: PUSH2 0x2c20
00002506: JUMP
00002507: JUMPDEST
00002508: PUSH1 0x02
0000250a: DUP1
0000250b: SLOAD
0000250c: SUB
0000250d: PUSH2 0x2542
00002510: JUMPI
00002511: PUSH1 0x40
00002513: MLOAD
00002514: PUSH32 0x3ee5aeb500000000000000000000000000000000000000000000000000000000
00002535: DUP2
00002536: MSTORE
00002537: PUSH1 0x04
00002539: ADD
0000253a: PUSH1 0x40
0000253c: MLOAD
0000253d: DUP1
0000253e: SWAP2
0000253f: SUB
00002540: SWAP1
00002541: REVERT
00002542: JUMPDEST
00002543: PUSH1 0x02
00002545: DUP1
00002546: SSTORE
00002547: JUMP
00002548: JUMPDEST
00002549: PUSH1 0x40
0000254b: MLOAD
0000254c: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000
0000256d: DUP2
0000256e: MSTORE
0000256f: ADDRESS
00002570: PUSH1 0x04
00002572: DUP3
00002573: ADD
00002574: MSTORE
00002575: PUSH1 0x01
00002577: PUSH1 0x01
00002579: PUSH1 0xa0
0000257b: SHL
0000257c: SUB
0000257d: DUP4
0000257e: DUP2
0000257f: AND
00002580: PUSH1 0x24
00002582: DUP4
00002583: ADD
00002584: MSTORE
00002585: PUSH1 0x00
00002587: SWAP2
00002588: SWAP1
00002589: DUP6
0000258a: AND
0000258b: SWAP1
0000258c: PUSH4 0xdd62ed3e
00002591: SWAP1
00002592: PUSH1 0x44
00002594: ADD
00002595: PUSH1 0x20
00002597: PUSH1 0x40
00002599: MLOAD
0000259a: DUP1
0000259b: DUP4
0000259c: SUB
0000259d: DUP2
0000259e: DUP7
0000259f: GAS
000025a0: STATICCALL
000025a1: ISZERO
000025a2: DUP1
000025a3: ISZERO
000025a4: PUSH2 0x25b1
000025a7: JUMPI
000025a8: RETURNDATASIZE
000025a9: PUSH1 0x00
000025ab: DUP1
000025ac: RETURNDATACOPY
000025ad: RETURNDATASIZE
000025ae: PUSH1 0x00
000025b0: REVERT
000025b1: JUMPDEST
000025b2: POP
000025b3: POP
000025b4: POP
000025b5: POP
000025b6: PUSH1 0x40
000025b8: MLOAD
000025b9: RETURNDATASIZE
000025ba: PUSH1 0x1f
000025bc: NOT
000025bd: PUSH1 0x1f
000025bf: DUP3
000025c0: ADD
000025c1: AND
000025c2: DUP3
000025c3: ADD
000025c4: DUP1
000025c5: PUSH1 0x40
000025c7: MSTORE
000025c8: POP
000025c9: DUP2
000025ca: ADD
000025cb: SWAP1
000025cc: PUSH2 0x25d5
000025cf: SWAP2
000025d0: SWAP1
000025d1: PUSH2 0x3270
000025d4: JUMP
000025d5: JUMPDEST
000025d6: SWAP1
000025d7: POP
000025d8: PUSH2 0x11b7
000025db: DUP5
000025dc: DUP5
000025dd: PUSH2 0x25e6
000025e0: DUP6
000025e1: DUP6
000025e2: PUSH2 0x32e3
000025e5: JUMP
000025e6: JUMPDEST
000025e7: PUSH2 0x2d1b
000025ea: JUMP
000025eb: JUMPDEST
000025ec: DUP1
000025ed: SELFBALANCE
000025ee: LT
000025ef: ISZERO
000025f0: PUSH2 0x2627
000025f3: JUMPI
000025f4: PUSH1 0x40
000025f6: MLOAD
000025f7: PUSH32 0xcd78605900000000000000000000000000000000000000000000000000000000
00002618: DUP2
00002619: MSTORE
0000261a: ADDRESS
0000261b: PUSH1 0x04
0000261d: DUP3
0000261e: ADD
0000261f: MSTORE
00002620: PUSH1 0x24
00002622: ADD
00002623: PUSH2 0x02c7
00002626: JUMP
00002627: JUMPDEST
00002628: PUSH1 0x00
0000262a: DUP3
0000262b: PUSH1 0x01
0000262d: PUSH1 0x01
0000262f: PUSH1 0xa0
00002631: SHL
00002632: SUB
00002633: AND
00002634: DUP3
00002635: PUSH1 0x40
00002637: MLOAD
00002638: PUSH1 0x00
0000263a: PUSH1 0x40
0000263c: MLOAD
0000263d: DUP1
0000263e: DUP4
0000263f: SUB
00002640: DUP2
00002641: DUP6
00002642: DUP8
00002643: GAS
00002644: CALL
00002645: SWAP3
00002646: POP
00002647: POP
00002648: POP
00002649: RETURNDATASIZE
0000264a: DUP1
0000264b: PUSH1 0x00
0000264d: DUP2
0000264e: EQ
0000264f: PUSH2 0x2674
00002652: JUMPI
00002653: PUSH1 0x40
00002655: MLOAD
00002656: SWAP2
00002657: POP
00002658: PUSH1 0x1f
0000265a: NOT
0000265b: PUSH1 0x3f
0000265d: RETURNDATASIZE
0000265e: ADD
0000265f: AND
00002660: DUP3
00002661: ADD
00002662: PUSH1 0x40
00002664: MSTORE
00002665: RETURNDATASIZE
00002666: DUP3
00002667: MSTORE
00002668: RETURNDATASIZE
00002669: PUSH1 0x00
0000266b: PUSH1 0x20
0000266d: DUP5
0000266e: ADD
0000266f: RETURNDATACOPY
00002670: PUSH2 0x2679
00002673: JUMP
00002674: JUMPDEST
00002675: PUSH1 0x60
00002677: SWAP2
00002678: POP
00002679: JUMPDEST
0000267a: POP
0000267b: POP
0000267c: SWAP1
0000267d: POP
0000267e: DUP1
0000267f: PUSH2 0x26b4
00002682: JUMPI
00002683: PUSH1 0x40
00002685: MLOAD
00002686: PUSH32 0x1425ea4200000000000000000000000000000000000000000000000000000000
000026a7: DUP2
000026a8: MSTORE
000026a9: PUSH1 0x04
000026ab: ADD
000026ac: PUSH1 0x40
000026ae: MLOAD
000026af: DUP1
000026b0: SWAP2
000026b1: SUB
000026b2: SWAP1
000026b3: REVERT
000026b4: JUMPDEST
000026b5: POP
000026b6: POP
000026b7: POP
000026b8: JUMP
000026b9: JUMPDEST
000026ba: PUSH1 0x40
000026bc: MLOAD
000026bd: PUSH1 0x01
000026bf: PUSH1 0x01
000026c1: PUSH1 0xa0
000026c3: SHL
000026c4: SUB
000026c5: DUP5
000026c6: DUP2
000026c7: AND
000026c8: PUSH1 0x24
000026ca: DUP4
000026cb: ADD
000026cc: MSTORE
000026cd: DUP4
000026ce: DUP2
000026cf: AND
000026d0: PUSH1 0x44
000026d2: DUP4
000026d3: ADD
000026d4: MSTORE
000026d5: PUSH1 0x64
000026d7: DUP3
000026d8: ADD
000026d9: DUP4
000026da: SWAP1
000026db: MSTORE
000026dc: PUSH2 0x11b7
000026df: SWAP2
000026e0: DUP7
000026e1: SWAP2
000026e2: DUP3
000026e3: AND
000026e4: SWAP1
000026e5: PUSH4 0x23b872dd
000026ea: SWAP1
000026eb: PUSH1 0x84
000026ed: ADD
000026ee: JUMPDEST
000026ef: PUSH1 0x40
000026f1: MLOAD
000026f2: PUSH1 0x20
000026f4: DUP2
000026f5: DUP4
000026f6: SUB
000026f7: SUB
000026f8: DUP2
000026f9: MSTORE
000026fa: SWAP1
000026fb: PUSH1 0x40
000026fd: MSTORE
000026fe: SWAP2
000026ff: POP
00002700: PUSH1 0xe0
00002702: SHL
00002703: PUSH1 0x20
00002705: DUP3
00002706: ADD
00002707: DUP1
00002708: MLOAD
00002709: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002726: DUP4
00002727: DUP2
00002728: DUP4
00002729: AND
0000272a: OR
0000272b: DUP4
0000272c: MSTORE
0000272d: POP
0000272e: POP
0000272f: POP
00002730: POP
00002731: PUSH2 0x2dd5
00002734: JUMP
00002735: JUMPDEST
00002736: PUSH1 0x00
00002738: DUP1
00002739: PUSH2 0x2741
0000273c: DUP4
0000273d: PUSH2 0x2e51
00002740: JUMP
00002741: JUMPDEST
00002742: POP
00002743: POP
00002744: PUSH1 0x40
00002746: MLOAD
00002747: PUSH32 0x13ead56200000000000000000000000000000000000000000000000000000000
00002768: DUP2
00002769: MSTORE
0000276a: PUSH1 0x01
0000276c: PUSH1 0x01
0000276e: PUSH1 0xa0
00002770: SHL
00002771: SUB
00002772: DUP1
00002773: DUP5
00002774: AND
00002775: PUSH1 0x04
00002777: DUP4
00002778: ADD
00002779: MSTORE
0000277a: DUP3
0000277b: AND
0000277c: PUSH1 0x24
0000277e: DUP3
0000277f: ADD
00002780: MSTORE
00002781: PUSH2 0x2710
00002784: PUSH1 0x44
00002786: DUP3
00002787: ADD
00002788: MSTORE
00002789: PUSH13 0x01000000000000000000000000
00002797: PUSH1 0x64
00002799: DUP3
0000279a: ADD
0000279b: MSTORE
0000279c: SWAP2
0000279d: SWAP4
0000279e: POP
0000279f: SWAP2
000027a0: POP
000027a1: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88
000027b6: SWAP1
000027b7: DUP2
000027b8: SWAP1
000027b9: PUSH4 0x13ead562
000027be: SWAP1
000027bf: PUSH1 0x84
000027c1: ADD
000027c2: PUSH1 0x20
000027c4: PUSH1 0x40
000027c6: MLOAD
000027c7: DUP1
000027c8: DUP4
000027c9: SUB
000027ca: DUP2
000027cb: PUSH1 0x00
000027cd: DUP8
000027ce: GAS
000027cf: CALL
000027d0: ISZERO
000027d1: DUP1
000027d2: ISZERO
000027d3: PUSH2 0x27e0
000027d6: JUMPI
000027d7: RETURNDATASIZE
000027d8: PUSH1 0x00
000027da: DUP1
000027db: RETURNDATACOPY
000027dc: RETURNDATASIZE
000027dd: PUSH1 0x00
000027df: REVERT
000027e0: JUMPDEST
000027e1: POP
000027e2: POP
000027e3: POP
000027e4: POP
000027e5: PUSH1 0x40
000027e7: MLOAD
000027e8: RETURNDATASIZE
000027e9: PUSH1 0x1f
000027eb: NOT
000027ec: PUSH1 0x1f
000027ee: DUP3
000027ef: ADD
000027f0: AND
000027f1: DUP3
000027f2: ADD
000027f3: DUP1
000027f4: PUSH1 0x40
000027f6: MSTORE
000027f7: POP
000027f8: DUP2
000027f9: ADD
000027fa: SWAP1
000027fb: PUSH2 0x2804
000027fe: SWAP2
000027ff: SWAP1
00002800: PUSH2 0x3920
00002803: JUMP
00002804: JUMPDEST
00002805: PUSH1 0x0c
00002807: DUP1
00002808: SLOAD
00002809: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
0000282a: AND
0000282b: PUSH1 0x01
0000282d: PUSH1 0x01
0000282f: PUSH1 0xa0
00002831: SHL
00002832: SUB
00002833: SWAP3
00002834: SWAP1
00002835: SWAP3
00002836: AND
00002837: SWAP2
00002838: DUP3
00002839: OR
0000283a: SWAP1
0000283b: SSTORE
0000283c: PUSH1 0x40
0000283e: MLOAD
0000283f: PUSH32 0x32148f6700000000000000000000000000000000000000000000000000000000
00002860: DUP2
00002861: MSTORE
00002862: PUSH1 0x64
00002864: PUSH1 0x04
00002866: DUP3
00002867: ADD
00002868: MSTORE
00002869: PUSH4 0x32148f67
0000286e: SWAP1
0000286f: PUSH1 0x24
00002871: ADD
00002872: PUSH1 0x00
00002874: PUSH1 0x40
00002876: MLOAD
00002877: DUP1
00002878: DUP4
00002879: SUB
0000287a: DUP2
0000287b: PUSH1 0x00
0000287d: DUP8
0000287e: DUP1
0000287f: EXTCODESIZE
00002880: ISZERO
00002881: DUP1
00002882: ISZERO
00002883: PUSH2 0x288b
00002886: JUMPI
00002887: PUSH1 0x00
00002889: DUP1
0000288a: REVERT
0000288b: JUMPDEST
0000288c: POP
0000288d: GAS
0000288e: CALL
0000288f: ISZERO
00002890: DUP1
00002891: ISZERO
00002892: PUSH2 0x289f
00002895: JUMPI
00002896: RETURNDATASIZE
00002897: PUSH1 0x00
00002899: DUP1
0000289a: RETURNDATACOPY
0000289b: RETURNDATASIZE
0000289c: PUSH1 0x00
0000289e: REVERT
0000289f: JUMPDEST
000028a0: POP
000028a1: POP
000028a2: POP
000028a3: POP
000028a4: POP
000028a5: POP
000028a6: POP
000028a7: POP
000028a8: JUMP
000028a9: JUMPDEST
000028aa: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88
000028bf: PUSH1 0x00
000028c1: DUP1
000028c2: DUP1
000028c3: DUP1
000028c4: PUSH2 0x28cc
000028c7: DUP7
000028c8: PUSH2 0x2e51
000028cb: JUMP
000028cc: JUMPDEST
000028cd: SWAP4
000028ce: POP
000028cf: SWAP4
000028d0: POP
000028d1: SWAP4
000028d2: POP
000028d3: SWAP4
000028d4: POP
000028d5: PUSH1 0x00
000028d7: PUSH1 0x40
000028d9: MLOAD
000028da: DUP1
000028db: PUSH2 0x0160
000028de: ADD
000028df: PUSH1 0x40
000028e1: MSTORE
000028e2: DUP1
000028e3: DUP7
000028e4: PUSH1 0x01
000028e6: PUSH1 0x01
000028e8: PUSH1 0xa0
000028ea: SHL
000028eb: SUB
000028ec: AND
000028ed: DUP2
000028ee: MSTORE
000028ef: PUSH1 0x20
000028f1: ADD
000028f2: DUP6
000028f3: PUSH1 0x01
000028f5: PUSH1 0x01
000028f7: PUSH1 0xa0
000028f9: SHL
000028fa: SUB
000028fb: AND
000028fc: DUP2
000028fd: MSTORE
000028fe: PUSH1 0x20
00002900: ADD
00002901: PUSH2 0x2710
00002904: PUSH3 0xffffff
00002908: AND
00002909: DUP2
0000290a: MSTORE
0000290b: PUSH1 0x20
0000290d: ADD
0000290e: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27660
0000292f: PUSH1 0x02
00002931: SIGNEXTEND
00002932: DUP2
00002933: MSTORE
00002934: PUSH1 0x20
00002936: ADD
00002937: PUSH3 0x0d89a0
0000293b: PUSH1 0x02
0000293d: SIGNEXTEND
0000293e: DUP2
0000293f: MSTORE
00002940: PUSH1 0x20
00002942: ADD
00002943: DUP5
00002944: DUP2
00002945: MSTORE
00002946: PUSH1 0x20
00002948: ADD
00002949: DUP4
0000294a: DUP2
0000294b: MSTORE
0000294c: PUSH1 0x20
0000294e: ADD
0000294f: PUSH1 0x64
00002951: DUP6
00002952: PUSH1 0x5a
00002954: PUSH2 0x295d
00002957: SWAP2
00002958: SWAP1
00002959: PUSH2 0x3289
0000295c: JUMP
0000295d: JUMPDEST
0000295e: PUSH2 0x2967
00002961: SWAP2
00002962: SWAP1
00002963: PUSH2 0x32cf
00002966: JUMP
00002967: JUMPDEST
00002968: DUP2
00002969: MSTORE
0000296a: PUSH1 0x20
0000296c: ADD
0000296d: PUSH1 0x64
0000296f: PUSH2 0x2979
00002972: DUP6
00002973: PUSH1 0x5a
00002975: PUSH2 0x3289
00002978: JUMP
00002979: JUMPDEST
0000297a: PUSH2 0x2983
0000297d: SWAP2
0000297e: SWAP1
0000297f: PUSH2 0x32cf
00002982: JUMP
00002983: JUMPDEST
00002984: DUP2
00002985: MSTORE
00002986: ADDRESS
00002987: PUSH1 0x20
00002989: DUP3
0000298a: ADD
0000298b: MSTORE
0000298c: PUSH1 0x40
0000298e: ADD
0000298f: PUSH2 0x299a
00002992: TIMESTAMP
00002993: PUSH2 0x0258
00002996: PUSH2 0x32e3
00002999: JUMP
0000299a: JUMPDEST
0000299b: DUP2
0000299c: MSTORE
0000299d: POP
0000299e: SWAP1
0000299f: POP
000029a0: PUSH1 0x00
000029a2: DUP1
000029a3: DUP8
000029a4: PUSH1 0x01
000029a6: PUSH1 0x01
000029a8: PUSH1 0xa0
000029aa: SHL
000029ab: SUB
000029ac: AND
000029ad: PUSH4 0x88316456
000029b2: DUP5
000029b3: PUSH1 0x40
000029b5: MLOAD
000029b6: DUP3
000029b7: PUSH4 0xffffffff
000029bc: AND
000029bd: PUSH1 0xe0
000029bf: SHL
000029c0: DUP2
000029c1: MSTORE
000029c2: PUSH1 0x04
000029c4: ADD
000029c5: PUSH2 0x29ce
000029c8: SWAP2
000029c9: SWAP1
000029ca: PUSH2 0x393d
000029cd: JUMP
000029ce: JUMPDEST
000029cf: PUSH1 0x80
000029d1: PUSH1 0x40
000029d3: MLOAD
000029d4: DUP1
000029d5: DUP4
000029d6: SUB
000029d7: DUP2
000029d8: PUSH1 0x00
000029da: DUP8
000029db: GAS
000029dc: CALL
000029dd: ISZERO
000029de: DUP1
000029df: ISZERO
000029e0: PUSH2 0x29ed
000029e3: JUMPI
000029e4: RETURNDATASIZE
000029e5: PUSH1 0x00
000029e7: DUP1
000029e8: RETURNDATACOPY
000029e9: RETURNDATASIZE
000029ea: PUSH1 0x00
000029ec: REVERT
000029ed: JUMPDEST
000029ee: POP
000029ef: POP
000029f0: POP
000029f1: POP
000029f2: PUSH1 0x40
000029f4: MLOAD
000029f5: RETURNDATASIZE
000029f6: PUSH1 0x1f
000029f8: NOT
000029f9: PUSH1 0x1f
000029fb: DUP3
000029fc: ADD
000029fd: AND
000029fe: DUP3
000029ff: ADD
00002a00: DUP1
00002a01: PUSH1 0x40
00002a03: MSTORE
00002a04: POP
00002a05: DUP2
00002a06: ADD
00002a07: SWAP1
00002a08: PUSH2 0x2a11
00002a0b: SWAP2
00002a0c: SWAP1
00002a0d: PUSH2 0x3a01
00002a10: JUMP
00002a11: JUMPDEST
00002a12: POP
00002a13: POP
00002a14: PUSH1 0x0d
00002a16: DUP1
00002a17: SLOAD
00002a18: PUSH10 0xffffffffffffffffffff
00002a23: SWAP4
00002a24: SWAP1
00002a25: SWAP4
00002a26: AND
00002a27: PUSH32 0xffffffffffff0000000000000000000000000000000000000000000000000000
00002a48: SWAP1
00002a49: SWAP4
00002a4a: AND
00002a4b: SWAP3
00002a4c: SWAP1
00002a4d: SWAP3
00002a4e: OR
00002a4f: PUSH16 0xffffffffffffffffffffffffffffffff
00002a60: SWAP2
00002a61: SWAP1
00002a62: SWAP2
00002a63: AND
00002a64: PUSH11 0x0100000000000000000000
00002a70: MUL
00002a71: OR
00002a72: PUSH26 0xffffffffffffffffffffffffffffffffffffffffffffffffffff
00002a8d: AND
00002a8e: PUSH32 0x0d89a0f276600000000000000000000000000000000000000000000000000000
00002aaf: OR
00002ab0: SWAP1
00002ab1: SSTORE
00002ab2: POP
00002ab3: POP
00002ab4: POP
00002ab5: POP
00002ab6: POP
00002ab7: POP
00002ab8: POP
00002ab9: POP
00002aba: POP
00002abb: JUMP
00002abc: JUMPDEST
00002abd: PUSH1 0x01
00002abf: DUP1
00002ac0: SLOAD
00002ac1: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00002ae2: AND
00002ae3: SWAP1
00002ae4: SSTORE
00002ae5: PUSH2 0x1341
00002ae8: DUP2
00002ae9: PUSH2 0x2e8f
00002aec: JUMP
00002aed: JUMPDEST
00002aee: PUSH1 0x40
00002af0: DUP1
00002af1: MLOAD
00002af2: PUSH1 0x80
00002af4: DUP2
00002af5: ADD
00002af6: DUP3
00002af7: MSTORE
00002af8: PUSH1 0x0d
00002afa: SLOAD
00002afb: PUSH10 0xffffffffffffffffffff
00002b06: AND
00002b07: DUP2
00002b08: MSTORE
00002b09: ADDRESS
00002b0a: PUSH1 0x20
00002b0c: DUP3
00002b0d: ADD
00002b0e: SWAP1
00002b0f: DUP2
00002b10: MSTORE
00002b11: PUSH16 0xffffffffffffffffffffffffffffffff
00002b22: DUP3
00002b23: DUP5
00002b24: ADD
00002b25: DUP2
00002b26: DUP2
00002b27: MSTORE
00002b28: PUSH1 0x60
00002b2a: DUP5
00002b2b: ADD
00002b2c: DUP3
00002b2d: DUP2
00002b2e: MSTORE
00002b2f: SWAP5
00002b30: MLOAD
00002b31: PUSH32 0xfc6f786500000000000000000000000000000000000000000000000000000000
00002b52: DUP2
00002b53: MSTORE
00002b54: DUP5
00002b55: MLOAD
00002b56: PUSH1 0x04
00002b58: DUP3
00002b59: ADD
00002b5a: MSTORE
00002b5b: SWAP3
00002b5c: MLOAD
00002b5d: PUSH1 0x01
00002b5f: PUSH1 0x01
00002b61: PUSH1 0xa0
00002b63: SHL
00002b64: SUB
00002b65: AND
00002b66: PUSH1 0x24
00002b68: DUP5
00002b69: ADD
00002b6a: MSTORE
00002b6b: MLOAD
00002b6c: DUP2
00002b6d: AND
00002b6e: PUSH1 0x44
00002b70: DUP4
00002b71: ADD
00002b72: MSTORE
00002b73: SWAP3
00002b74: MLOAD
00002b75: SWAP1
00002b76: SWAP3
00002b77: AND
00002b78: PUSH1 0x64
00002b7a: DUP4
00002b7b: ADD
00002b7c: MSTORE
00002b7d: PUSH1 0x00
00002b7f: SWAP2
00002b80: DUP3
00002b81: SWAP2
00002b82: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88
00002b97: SWAP2
00002b98: DUP3
00002b99: SWAP1
00002b9a: PUSH4 0xfc6f7865
00002b9f: SWAP1
00002ba0: PUSH1 0x84
00002ba2: ADD
00002ba3: PUSH1 0x40
00002ba5: DUP1
00002ba6: MLOAD
00002ba7: DUP1
00002ba8: DUP4
00002ba9: SUB
00002baa: DUP2
00002bab: PUSH1 0x00
00002bad: DUP8
00002bae: GAS
00002baf: CALL
00002bb0: ISZERO
00002bb1: DUP1
00002bb2: ISZERO
00002bb3: PUSH2 0x2bc0
00002bb6: JUMPI
00002bb7: RETURNDATASIZE
00002bb8: PUSH1 0x00
00002bba: DUP1
00002bbb: RETURNDATACOPY
00002bbc: RETURNDATASIZE
00002bbd: PUSH1 0x00
00002bbf: REVERT
00002bc0: JUMPDEST
00002bc1: POP
00002bc2: POP
00002bc3: POP
00002bc4: POP
00002bc5: PUSH1 0x40
00002bc7: MLOAD
00002bc8: RETURNDATASIZE
00002bc9: PUSH1 0x1f
00002bcb: NOT
00002bcc: PUSH1 0x1f
00002bce: DUP3
00002bcf: ADD
00002bd0: AND
00002bd1: DUP3
00002bd2: ADD
00002bd3: DUP1
00002bd4: PUSH1 0x40
00002bd6: MSTORE
00002bd7: POP
00002bd8: DUP2
00002bd9: ADD
00002bda: SWAP1
00002bdb: PUSH2 0x2be4
00002bde: SWAP2
00002bdf: SWAP1
00002be0: PUSH2 0x3a54
00002be3: JUMP
00002be4: JUMPDEST
00002be5: SWAP1
00002be6: SWAP6
00002be7: SWAP1
00002be8: SWAP5
00002be9: POP
00002bea: SWAP3
00002beb: POP
00002bec: POP
00002bed: POP
00002bee: JUMP
00002bef: JUMPDEST
00002bf0: PUSH1 0x40
00002bf2: MLOAD
00002bf3: PUSH1 0x01
00002bf5: PUSH1 0x01
00002bf7: PUSH1 0xa0
00002bf9: SHL
00002bfa: SUB
00002bfb: DUP4
00002bfc: DUP2
00002bfd: AND
00002bfe: PUSH1 0x24
00002c00: DUP4
00002c01: ADD
00002c02: MSTORE
00002c03: PUSH1 0x44
00002c05: DUP3
00002c06: ADD
00002c07: DUP4
00002c08: SWAP1
00002c09: MSTORE
00002c0a: PUSH2 0x26b4
00002c0d: SWAP2
00002c0e: DUP6
00002c0f: SWAP2
00002c10: DUP3
00002c11: AND
00002c12: SWAP1
00002c13: PUSH4 0xa9059cbb
00002c18: SWAP1
00002c19: PUSH1 0x64
00002c1b: ADD
00002c1c: PUSH2 0x26ee
00002c1f: JUMP
00002c20: JUMPDEST
00002c21: PUSH1 0x00
00002c23: DUP4
00002c24: DUP4
00002c25: MUL
00002c26: DUP2
00002c27: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002c48: DUP6
00002c49: DUP8
00002c4a: MULMOD
00002c4b: DUP3
00002c4c: DUP2
00002c4d: LT
00002c4e: DUP4
00002c4f: DUP3
00002c50: SUB
00002c51: SUB
00002c52: SWAP2
00002c53: POP
00002c54: POP
00002c55: DUP1
00002c56: PUSH1 0x00
00002c58: SUB
00002c59: PUSH2 0x2c75
00002c5c: JUMPI
00002c5d: DUP4
00002c5e: DUP3
00002c5f: DUP2
00002c60: PUSH2 0x2c6b
00002c63: JUMPI
00002c64: PUSH2 0x2c6b
00002c67: PUSH2 0x32a0
00002c6a: JUMP
00002c6b: JUMPDEST
00002c6c: DIV
00002c6d: SWAP3
00002c6e: POP
00002c6f: POP
00002c70: POP
00002c71: PUSH2 0x1950
00002c74: JUMP
00002c75: JUMPDEST
00002c76: DUP1
00002c77: DUP5
00002c78: GT
00002c79: PUSH2 0x2cae
00002c7c: JUMPI
00002c7d: PUSH1 0x40
00002c7f: MLOAD
00002c80: PUSH32 0x227bc15300000000000000000000000000000000000000000000000000000000
00002ca1: DUP2
00002ca2: MSTORE
00002ca3: PUSH1 0x04
00002ca5: ADD
00002ca6: PUSH1 0x40
00002ca8: MLOAD
00002ca9: DUP1
00002caa: SWAP2
00002cab: SUB
00002cac: SWAP1
00002cad: REVERT
00002cae: JUMPDEST
00002caf: PUSH1 0x00
00002cb1: DUP5
00002cb2: DUP7
00002cb3: DUP9
00002cb4: MULMOD
00002cb5: PUSH1 0x00
00002cb7: DUP7
00002cb8: DUP2
00002cb9: SUB
00002cba: DUP8
00002cbb: AND
00002cbc: SWAP7
00002cbd: DUP8
00002cbe: SWAP1
00002cbf: DIV
00002cc0: SWAP7
00002cc1: PUSH1 0x02
00002cc3: PUSH1 0x03
00002cc5: DUP10
00002cc6: MUL
00002cc7: DUP2
00002cc8: XOR
00002cc9: DUP1
00002cca: DUP11
00002ccb: MUL
00002ccc: DUP3
00002ccd: SUB
00002cce: MUL
00002ccf: DUP1
00002cd0: DUP11
00002cd1: MUL
00002cd2: DUP3
00002cd3: SUB
00002cd4: MUL
00002cd5: DUP1
00002cd6: DUP11
00002cd7: MUL
00002cd8: DUP3
00002cd9: SUB
00002cda: MUL
00002cdb: DUP1
00002cdc: DUP11
00002cdd: MUL
00002cde: DUP3
00002cdf: SUB
00002ce0: MUL
00002ce1: DUP1
00002ce2: DUP11
00002ce3: MUL
00002ce4: DUP3
00002ce5: SUB
00002ce6: MUL
00002ce7: DUP1
00002ce8: DUP11
00002ce9: MUL
00002cea: SWAP1
00002ceb: SWAP2
00002cec: SUB
00002ced: MUL
00002cee: SWAP2
00002cef: DUP2
00002cf0: SWAP1
00002cf1: SUB
00002cf2: DUP2
00002cf3: SWAP1
00002cf4: DIV
00002cf5: PUSH1 0x01
00002cf7: ADD
00002cf8: DUP7
00002cf9: DUP5
00002cfa: GT
00002cfb: SWAP1
00002cfc: SWAP6
00002cfd: SUB
00002cfe: SWAP5
00002cff: SWAP1
00002d00: SWAP5
00002d01: MUL
00002d02: SWAP2
00002d03: SWAP1
00002d04: SWAP5
00002d05: SUB
00002d06: SWAP3
00002d07: SWAP1
00002d08: SWAP3
00002d09: DIV
00002d0a: SWAP2
00002d0b: SWAP1
00002d0c: SWAP2
00002d0d: OR
00002d0e: SWAP2
00002d0f: SWAP1
00002d10: SWAP2
00002d11: MUL
00002d12: SWAP2
00002d13: POP
00002d14: POP
00002d15: SWAP4
00002d16: SWAP3
00002d17: POP
00002d18: POP
00002d19: POP
00002d1a: JUMP
00002d1b: JUMPDEST
00002d1c: PUSH1 0x40
00002d1e: DUP1
00002d1f: MLOAD
00002d20: PUSH1 0x01
00002d22: PUSH1 0x01
00002d24: PUSH1 0xa0
00002d26: SHL
00002d27: SUB
00002d28: DUP5
00002d29: AND
00002d2a: PUSH1 0x24
00002d2c: DUP3
00002d2d: ADD
00002d2e: MSTORE
00002d2f: PUSH1 0x44
00002d31: DUP1
00002d32: DUP3
00002d33: ADD
00002d34: DUP5
00002d35: SWAP1
00002d36: MSTORE
00002d37: DUP3
00002d38: MLOAD
00002d39: DUP1
00002d3a: DUP4
00002d3b: SUB
00002d3c: SWAP1
00002d3d: SWAP2
00002d3e: ADD
00002d3f: DUP2
00002d40: MSTORE
00002d41: PUSH1 0x64
00002d43: SWAP1
00002d44: SWAP2
00002d45: ADD
00002d46: SWAP1
00002d47: SWAP2
00002d48: MSTORE
00002d49: PUSH1 0x20
00002d4b: DUP2
00002d4c: ADD
00002d4d: DUP1
00002d4e: MLOAD
00002d4f: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002d6c: AND
00002d6d: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000
00002d8e: OR
00002d8f: SWAP1
00002d90: MSTORE
00002d91: PUSH2 0x2d9a
00002d94: DUP5
00002d95: DUP3
00002d96: PUSH2 0x2ef7
00002d99: JUMP
00002d9a: JUMPDEST
00002d9b: PUSH2 0x11b7
00002d9e: JUMPI
00002d9f: PUSH1 0x40
00002da1: MLOAD
00002da2: PUSH1 0x01
00002da4: PUSH1 0x01
00002da6: PUSH1 0xa0
00002da8: SHL
00002da9: SUB
00002daa: DUP5
00002dab: DUP2
00002dac: AND
00002dad: PUSH1 0x24
00002daf: DUP4
00002db0: ADD
00002db1: MSTORE
00002db2: PUSH1 0x00
00002db4: PUSH1 0x44
00002db6: DUP4
00002db7: ADD
00002db8: MSTORE
00002db9: PUSH2 0x2dcf
00002dbc: SWAP2
00002dbd: DUP7
00002dbe: SWAP2
00002dbf: DUP3
00002dc0: AND
00002dc1: SWAP1
00002dc2: PUSH4 0x095ea7b3
00002dc7: SWAP1
00002dc8: PUSH1 0x64
00002dca: ADD
00002dcb: PUSH2 0x26ee
00002dce: JUMP
00002dcf: JUMPDEST
00002dd0: PUSH2 0x11b7
00002dd3: DUP5
00002dd4: DUP3
00002dd5: JUMPDEST
00002dd6: PUSH1 0x00
00002dd8: PUSH2 0x2dea
00002ddb: PUSH1 0x01
00002ddd: PUSH1 0x01
00002ddf: PUSH1 0xa0
00002de1: SHL
00002de2: SUB
00002de3: DUP5
00002de4: AND
00002de5: DUP4
00002de6: PUSH2 0x2fa1
00002de9: JUMP
00002dea: JUMPDEST
00002deb: SWAP1
00002dec: POP
00002ded: DUP1
00002dee: MLOAD
00002def: PUSH1 0x00
00002df1: EQ
00002df2: ISZERO
00002df3: DUP1
00002df4: ISZERO
00002df5: PUSH2 0x2e0f
00002df8: JUMPI
00002df9: POP
00002dfa: DUP1
00002dfb: DUP1
00002dfc: PUSH1 0x20
00002dfe: ADD
00002dff: SWAP1
00002e00: MLOAD
00002e01: DUP2
00002e02: ADD
00002e03: SWAP1
00002e04: PUSH2 0x2e0d
00002e07: SWAP2
00002e08: SWAP1
00002e09: PUSH2 0x3a78
00002e0c: JUMP
00002e0d: JUMPDEST
00002e0e: ISZERO
00002e0f: JUMPDEST
00002e10: ISZERO
00002e11: PUSH2 0x26b4
00002e14: JUMPI
00002e15: PUSH1 0x40
00002e17: MLOAD
00002e18: PUSH32 0x5274afe700000000000000000000000000000000000000000000000000000000
00002e39: DUP2
00002e3a: MSTORE
00002e3b: PUSH1 0x01
00002e3d: PUSH1 0x01
00002e3f: PUSH1 0xa0
00002e41: SHL
00002e42: SUB
00002e43: DUP5
00002e44: AND
00002e45: PUSH1 0x04
00002e47: DUP3
00002e48: ADD
00002e49: MSTORE
00002e4a: PUSH1 0x24
00002e4c: ADD
00002e4d: PUSH2 0x02c7
00002e50: JUMP
00002e51: JUMPDEST
00002e52: PUSH1 0x03
00002e54: SLOAD
00002e55: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1
00002e6a: SWAP1
00002e6b: PUSH1 0x01
00002e6d: PUSH1 0x01
00002e6f: PUSH1 0xa0
00002e71: SHL
00002e72: SUB
00002e73: AND
00002e74: DUP3
00002e75: DUP1
00002e76: DUP3
00002e77: DUP5
00002e78: DUP1
00002e79: DUP3
00002e7a: LT
00002e7b: ISZERO
00002e7c: PUSH2 0x2e86
00002e7f: JUMPI
00002e80: DUP2
00002e81: SWAP6
00002e82: POP
00002e83: DUP1
00002e84: SWAP5
00002e85: POP
00002e86: JUMPDEST
00002e87: POP
00002e88: POP
00002e89: SWAP2
00002e8a: SWAP4
00002e8b: POP
00002e8c: SWAP2
00002e8d: SWAP4
00002e8e: JUMP
00002e8f: JUMPDEST
00002e90: PUSH1 0x00
00002e92: DUP1
00002e93: SLOAD
00002e94: PUSH1 0x01
00002e96: PUSH1 0x01
00002e98: PUSH1 0xa0
00002e9a: SHL
00002e9b: SUB
00002e9c: DUP4
00002e9d: DUP2
00002e9e: AND
00002e9f: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00002ec0: DUP4
00002ec1: AND
00002ec2: DUP2
00002ec3: OR
00002ec4: DUP5
00002ec5: SSTORE
00002ec6: PUSH1 0x40
00002ec8: MLOAD
00002ec9: SWAP2
00002eca: SWAP1
00002ecb: SWAP3
00002ecc: AND
00002ecd: SWAP3
00002ece: DUP4
00002ecf: SWAP2
00002ed0: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00002ef1: SWAP2
00002ef2: SWAP1
00002ef3: LOG3
00002ef4: POP
00002ef5: POP
00002ef6: JUMP
00002ef7: JUMPDEST
00002ef8: PUSH1 0x00
00002efa: DUP1
00002efb: PUSH1 0x00
00002efd: DUP5
00002efe: PUSH1 0x01
00002f00: PUSH1 0x01
00002f02: PUSH1 0xa0
00002f04: SHL
00002f05: SUB
00002f06: AND
00002f07: DUP5
00002f08: PUSH1 0x40
00002f0a: MLOAD
00002f0b: PUSH2 0x2f14
00002f0e: SWAP2
00002f0f: SWAP1
00002f10: PUSH2 0x3a93
00002f13: JUMP
00002f14: JUMPDEST
00002f15: PUSH1 0x00
00002f17: PUSH1 0x40
00002f19: MLOAD
00002f1a: DUP1
00002f1b: DUP4
00002f1c: SUB
00002f1d: DUP2
00002f1e: PUSH1 0x00
00002f20: DUP7
00002f21: GAS
00002f22: CALL
00002f23: SWAP2
00002f24: POP
00002f25: POP
00002f26: RETURNDATASIZE
00002f27: DUP1
00002f28: PUSH1 0x00
00002f2a: DUP2
00002f2b: EQ
00002f2c: PUSH2 0x2f51
00002f2f: JUMPI
00002f30: PUSH1 0x40
00002f32: MLOAD
00002f33: SWAP2
00002f34: POP
00002f35: PUSH1 0x1f
00002f37: NOT
00002f38: PUSH1 0x3f
00002f3a: RETURNDATASIZE
00002f3b: ADD
00002f3c: AND
00002f3d: DUP3
00002f3e: ADD
00002f3f: PUSH1 0x40
00002f41: MSTORE
00002f42: RETURNDATASIZE
00002f43: DUP3
00002f44: MSTORE
00002f45: RETURNDATASIZE
00002f46: PUSH1 0x00
00002f48: PUSH1 0x20
00002f4a: DUP5
00002f4b: ADD
00002f4c: RETURNDATACOPY
00002f4d: PUSH2 0x2f56
00002f50: JUMP
00002f51: JUMPDEST
00002f52: PUSH1 0x60
00002f54: SWAP2
00002f55: POP
00002f56: JUMPDEST
00002f57: POP
00002f58: SWAP2
00002f59: POP
00002f5a: SWAP2
00002f5b: POP
00002f5c: DUP2
00002f5d: DUP1
00002f5e: ISZERO
00002f5f: PUSH2 0x2f80
00002f62: JUMPI
00002f63: POP
00002f64: DUP1
00002f65: MLOAD
00002f66: ISZERO
00002f67: DUP1
00002f68: PUSH2 0x2f80
00002f6b: JUMPI
00002f6c: POP
00002f6d: DUP1
00002f6e: DUP1
00002f6f: PUSH1 0x20
00002f71: ADD
00002f72: SWAP1
00002f73: MLOAD
00002f74: DUP2
00002f75: ADD
00002f76: SWAP1
00002f77: PUSH2 0x2f80
00002f7a: SWAP2
00002f7b: SWAP1
00002f7c: PUSH2 0x3a78
00002f7f: JUMP
00002f80: JUMPDEST
00002f81: DUP1
00002f82: ISZERO
00002f83: PUSH2 0x2f96
00002f86: JUMPI
00002f87: POP
00002f88: PUSH1 0x00
00002f8a: DUP6
00002f8b: PUSH1 0x01
00002f8d: PUSH1 0x01
00002f8f: PUSH1 0xa0
00002f91: SHL
00002f92: SUB
00002f93: AND
00002f94: EXTCODESIZE
00002f95: GT
00002f96: JUMPDEST
00002f97: SWAP3
00002f98: POP
00002f99: POP
00002f9a: POP
00002f9b: JUMPDEST
00002f9c: SWAP3
00002f9d: SWAP2
00002f9e: POP
00002f9f: POP
00002fa0: JUMP
00002fa1: JUMPDEST
00002fa2: PUSH1 0x60
00002fa4: PUSH2 0x1950
00002fa7: DUP4
00002fa8: DUP4
00002fa9: PUSH1 0x00
00002fab: DUP5
00002fac: PUSH1 0x00
00002fae: DUP1
00002faf: DUP6
00002fb0: PUSH1 0x01
00002fb2: PUSH1 0x01
00002fb4: PUSH1 0xa0
00002fb6: SHL
00002fb7: SUB
00002fb8: AND
00002fb9: DUP5
00002fba: DUP7
00002fbb: PUSH1 0x40
00002fbd: MLOAD
00002fbe: PUSH2 0x2fc7
00002fc1: SWAP2
00002fc2: SWAP1
00002fc3: PUSH2 0x3a93
00002fc6: JUMP
00002fc7: JUMPDEST
00002fc8: PUSH1 0x00
00002fca: PUSH1 0x40
00002fcc: MLOAD
00002fcd: DUP1
00002fce: DUP4
00002fcf: SUB
00002fd0: DUP2
00002fd1: DUP6
00002fd2: DUP8
00002fd3: GAS
00002fd4: CALL
00002fd5: SWAP3
00002fd6: POP
00002fd7: POP
00002fd8: POP
00002fd9: RETURNDATASIZE
00002fda: DUP1
00002fdb: PUSH1 0x00
00002fdd: DUP2
00002fde: EQ
00002fdf: PUSH2 0x3004
00002fe2: JUMPI
00002fe3: PUSH1 0x40
00002fe5: MLOAD
00002fe6: SWAP2
00002fe7: POP
00002fe8: PUSH1 0x1f
00002fea: NOT
00002feb: PUSH1 0x3f
00002fed: RETURNDATASIZE
00002fee: ADD
00002fef: AND
00002ff0: DUP3
00002ff1: ADD
00002ff2: PUSH1 0x40
00002ff4: MSTORE
00002ff5: RETURNDATASIZE
00002ff6: DUP3
00002ff7: MSTORE
00002ff8: RETURNDATASIZE
00002ff9: PUSH1 0x00
00002ffb: PUSH1 0x20
00002ffd: DUP5
00002ffe: ADD
00002fff: RETURNDATACOPY
00003000: PUSH2 0x3009
00003003: JUMP
00003004: JUMPDEST
00003005: PUSH1 0x60
00003007: SWAP2
00003008: POP
00003009: JUMPDEST
0000300a: POP
0000300b: SWAP2
0000300c: POP
0000300d: SWAP2
0000300e: POP
0000300f: PUSH2 0x08df
00003012: DUP7
00003013: DUP4
00003014: DUP4
00003015: PUSH1 0x60
00003017: DUP3
00003018: PUSH2 0x3029
0000301b: JUMPI
0000301c: PUSH2 0x3024
0000301f: DUP3
00003020: PUSH2 0x3089
00003023: JUMP
00003024: JUMPDEST
00003025: PUSH2 0x1950
00003028: JUMP
00003029: JUMPDEST
0000302a: DUP2
0000302b: MLOAD
0000302c: ISZERO
0000302d: DUP1
0000302e: ISZERO
0000302f: PUSH2 0x3040
00003032: JUMPI
00003033: POP
00003034: PUSH1 0x01
00003036: PUSH1 0x01
00003038: PUSH1 0xa0
0000303a: SHL
0000303b: SUB
0000303c: DUP5
0000303d: AND
0000303e: EXTCODESIZE
0000303f: ISZERO
00003040: JUMPDEST
00003041: ISZERO
00003042: PUSH2 0x3082
00003045: JUMPI
00003046: PUSH1 0x40
00003048: MLOAD
00003049: PUSH32 0x9996b31500000000000000000000000000000000000000000000000000000000
0000306a: DUP2
0000306b: MSTORE
0000306c: PUSH1 0x01
0000306e: PUSH1 0x01
00003070: PUSH1 0xa0
00003072: SHL
00003073: SUB
00003074: DUP6
00003075: AND
00003076: PUSH1 0x04
00003078: DUP3
00003079: ADD
0000307a: MSTORE
0000307b: PUSH1 0x24
0000307d: ADD
0000307e: PUSH2 0x02c7
00003081: JUMP
00003082: JUMPDEST
00003083: POP
00003084: DUP1
00003085: PUSH2 0x1950
00003088: JUMP
00003089: JUMPDEST
0000308a: DUP1
0000308b: MLOAD
0000308c: ISZERO
0000308d: PUSH2 0x3099
00003090: JUMPI
00003091: DUP1
00003092: MLOAD
00003093: DUP1
00003094: DUP3
00003095: PUSH1 0x20
00003097: ADD
00003098: REVERT
00003099: JUMPDEST
0000309a: PUSH1 0x40
0000309c: MLOAD
0000309d: PUSH32 0x1425ea4200000000000000000000000000000000000000000000000000000000
000030be: DUP2
000030bf: MSTORE
000030c0: PUSH1 0x04
000030c2: ADD
000030c3: PUSH1 0x40
000030c5: MLOAD
000030c6: DUP1
000030c7: SWAP2
000030c8: SUB
000030c9: SWAP1
000030ca: REVERT
000030cb: JUMPDEST
000030cc: PUSH1 0x00
000030ce: PUSH1 0x20
000030d0: DUP3
000030d1: DUP5
000030d2: SUB
000030d3: SLT
000030d4: ISZERO
000030d5: PUSH2 0x30dd
000030d8: JUMPI
000030d9: PUSH1 0x00
000030db: DUP1
000030dc: REVERT
000030dd: JUMPDEST
000030de: POP
000030df: CALLDATALOAD
000030e0: SWAP2
000030e1: SWAP1
000030e2: POP
000030e3: JUMP
000030e4: JUMPDEST
000030e5: PUSH4 0xffffffff
000030ea: DUP2
000030eb: AND
000030ec: DUP2
000030ed: EQ
000030ee: PUSH2 0x1341
000030f1: JUMPI
000030f2: PUSH1 0x00
000030f4: DUP1
000030f5: REVERT
000030f6: JUMPDEST
000030f7: PUSH1 0x00
000030f9: PUSH1 0x20
000030fb: DUP3
000030fc: DUP5
000030fd: SUB
000030fe: SLT
000030ff: ISZERO
00003100: PUSH2 0x3108
00003103: JUMPI
00003104: PUSH1 0x00
00003106: DUP1
00003107: REVERT
00003108: JUMPDEST
00003109: DUP2
0000310a: CALLDATALOAD
0000310b: PUSH2 0x1950
0000310e: DUP2
0000310f: PUSH2 0x30e4
00003112: JUMP
00003113: JUMPDEST
00003114: PUSH1 0x01
00003116: PUSH1 0x01
00003118: PUSH1 0xa0
0000311a: SHL
0000311b: SUB
0000311c: DUP2
0000311d: AND
0000311e: DUP2
0000311f: EQ
00003120: PUSH2 0x1341
00003123: JUMPI
00003124: PUSH1 0x00
00003126: DUP1
00003127: REVERT
00003128: JUMPDEST
00003129: PUSH1 0x00
0000312b: PUSH1 0x20
0000312d: DUP3
0000312e: DUP5
0000312f: SUB
00003130: SLT
00003131: ISZERO
00003132: PUSH2 0x313a
00003135: JUMPI
00003136: PUSH1 0x00
00003138: DUP1
00003139: REVERT
0000313a: JUMPDEST
0000313b: DUP2
0000313c: CALLDATALOAD
0000313d: PUSH2 0x1950
00003140: DUP2
00003141: PUSH2 0x3113
00003144: JUMP
00003145: JUMPDEST
00003146: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003167: PUSH1 0x00
00003169: MSTORE
0000316a: PUSH1 0x11
0000316c: PUSH1 0x04
0000316e: MSTORE
0000316f: PUSH1 0x24
00003171: PUSH1 0x00
00003173: REVERT
00003174: JUMPDEST
00003175: PUSH4 0xffffffff
0000317a: DUP2
0000317b: DUP2
0000317c: AND
0000317d: DUP4
0000317e: DUP3
0000317f: AND
00003180: MUL
00003181: DUP1
00003182: DUP3
00003183: AND
00003184: SWAP2
00003185: SWAP1
00003186: DUP3
00003187: DUP2
00003188: EQ
00003189: PUSH2 0x3194
0000318c: JUMPI
0000318d: PUSH2 0x3194
00003190: PUSH2 0x3145
00003193: JUMP
00003194: JUMPDEST
00003195: POP
00003196: POP
00003197: SWAP3
00003198: SWAP2
00003199: POP
0000319a: POP
0000319b: JUMP
0000319c: JUMPDEST
0000319d: DUP1
0000319e: MLOAD
0000319f: PUSH2 0xffff
000031a2: DUP2
000031a3: AND
000031a4: DUP2
000031a5: EQ
000031a6: PUSH2 0x31ae
000031a9: JUMPI
000031aa: PUSH1 0x00
000031ac: DUP1
000031ad: REVERT
000031ae: JUMPDEST
000031af: SWAP2
000031b0: SWAP1
000031b1: POP
000031b2: JUMP
000031b3: JUMPDEST
000031b4: DUP1
000031b5: MLOAD
000031b6: DUP1
000031b7: ISZERO
000031b8: ISZERO
000031b9: DUP2
000031ba: EQ
000031bb: PUSH2 0x31ae
000031be: JUMPI
000031bf: PUSH1 0x00
000031c1: DUP1
000031c2: REVERT
000031c3: JUMPDEST
000031c4: PUSH1 0x00
000031c6: DUP1
000031c7: PUSH1 0x00
000031c9: DUP1
000031ca: PUSH1 0x00
000031cc: DUP1
000031cd: PUSH1 0x00
000031cf: PUSH1 0xe0
000031d1: DUP9
000031d2: DUP11
000031d3: SUB
000031d4: SLT
000031d5: ISZERO
000031d6: PUSH2 0x31de
000031d9: JUMPI
000031da: PUSH1 0x00
000031dc: DUP1
000031dd: REVERT
000031de: JUMPDEST
000031df: DUP8
000031e0: MLOAD
000031e1: PUSH2 0x31e9
000031e4: DUP2
000031e5: PUSH2 0x3113
000031e8: JUMP
000031e9: JUMPDEST
000031ea: DUP1
000031eb: SWAP8
000031ec: POP
000031ed: POP
000031ee: PUSH1 0x20
000031f0: DUP9
000031f1: ADD
000031f2: MLOAD
000031f3: DUP1
000031f4: PUSH1 0x02
000031f6: SIGNEXTEND
000031f7: DUP2
000031f8: EQ
000031f9: PUSH2 0x3201
000031fc: JUMPI
000031fd: PUSH1 0x00
000031ff: DUP1
00003200: REVERT
00003201: JUMPDEST
00003202: SWAP6
00003203: POP
00003204: PUSH2 0x320f
00003207: PUSH1 0x40
00003209: DUP10
0000320a: ADD
0000320b: PUSH2 0x319c
0000320e: JUMP
0000320f: JUMPDEST
00003210: SWAP5
00003211: POP
00003212: PUSH2 0x321d
00003215: PUSH1 0x60
00003217: DUP10
00003218: ADD
00003219: PUSH2 0x319c
0000321c: JUMP
0000321d: JUMPDEST
0000321e: SWAP4
0000321f: POP
00003220: PUSH2 0x322b
00003223: PUSH1 0x80
00003225: DUP10
00003226: ADD
00003227: PUSH2 0x319c
0000322a: JUMP
0000322b: JUMPDEST
0000322c: SWAP3
0000322d: POP
0000322e: PUSH1 0xa0
00003230: DUP9
00003231: ADD
00003232: MLOAD
00003233: PUSH1 0xff
00003235: DUP2
00003236: AND
00003237: DUP2
00003238: EQ
00003239: PUSH2 0x3241
0000323c: JUMPI
0000323d: PUSH1 0x00
0000323f: DUP1
00003240: REVERT
00003241: JUMPDEST
00003242: SWAP2
00003243: POP
00003244: PUSH2 0x324f
00003247: PUSH1 0xc0
00003249: DUP10
0000324a: ADD
0000324b: PUSH2 0x31b3
0000324e: JUMP
0000324f: JUMPDEST
00003250: SWAP1
00003251: POP
00003252: SWAP3
00003253: SWAP6
00003254: SWAP9
00003255: SWAP2
00003256: SWAP5
00003257: SWAP8
00003258: POP
00003259: SWAP3
0000325a: SWAP6
0000325b: POP
0000325c: JUMP
0000325d: JUMPDEST
0000325e: DUP2
0000325f: DUP2
00003260: SUB
00003261: DUP2
00003262: DUP2
00003263: GT
00003264: ISZERO
00003265: PUSH2 0x2f9b
00003268: JUMPI
00003269: PUSH2 0x2f9b
0000326c: PUSH2 0x3145
0000326f: JUMP
00003270: JUMPDEST
00003271: PUSH1 0x00
00003273: PUSH1 0x20
00003275: DUP3
00003276: DUP5
00003277: SUB
00003278: SLT
00003279: ISZERO
0000327a: PUSH2 0x3282
0000327d: JUMPI
0000327e: PUSH1 0x00
00003280: DUP1
00003281: REVERT
00003282: JUMPDEST
00003283: POP
00003284: MLOAD
00003285: SWAP2
00003286: SWAP1
00003287: POP
00003288: JUMP
00003289: JUMPDEST
0000328a: DUP1
0000328b: DUP3
0000328c: MUL
0000328d: DUP2
0000328e: ISZERO
0000328f: DUP3
00003290: DUP3
00003291: DIV
00003292: DUP5
00003293: EQ
00003294: OR
00003295: PUSH2 0x2f9b
00003298: JUMPI
00003299: PUSH2 0x2f9b
0000329c: PUSH2 0x3145
0000329f: JUMP
000032a0: JUMPDEST
000032a1: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000032c2: PUSH1 0x00
000032c4: MSTORE
000032c5: PUSH1 0x12
000032c7: PUSH1 0x04
000032c9: MSTORE
000032ca: PUSH1 0x24
000032cc: PUSH1 0x00
000032ce: REVERT
000032cf: JUMPDEST
000032d0: PUSH1 0x00
000032d2: DUP3
000032d3: PUSH2 0x32de
000032d6: JUMPI
000032d7: PUSH2 0x32de
000032da: PUSH2 0x32a0
000032dd: JUMP
000032de: JUMPDEST
000032df: POP
000032e0: DIV
000032e1: SWAP1
000032e2: JUMP
000032e3: JUMPDEST
000032e4: DUP1
000032e5: DUP3
000032e6: ADD
000032e7: DUP1
000032e8: DUP3
000032e9: GT
000032ea: ISZERO
000032eb: PUSH2 0x2f9b
000032ee: JUMPI
000032ef: PUSH2 0x2f9b
000032f2: PUSH2 0x3145
000032f5: JUMP
000032f6: JUMPDEST
000032f7: PUSH1 0x00
000032f9: JUMPDEST
000032fa: DUP4
000032fb: DUP2
000032fc: LT
000032fd: ISZERO
000032fe: PUSH2 0x3311
00003301: JUMPI
00003302: DUP2
00003303: DUP2
00003304: ADD
00003305: MLOAD
00003306: DUP4
00003307: DUP3
00003308: ADD
00003309: MSTORE
0000330a: PUSH1 0x20
0000330c: ADD
0000330d: PUSH2 0x32f9
00003310: JUMP
00003311: JUMPDEST
00003312: POP
00003313: POP
00003314: PUSH1 0x00
00003316: SWAP2
00003317: ADD
00003318: MSTORE
00003319: JUMP
0000331a: JUMPDEST
0000331b: PUSH1 0x20
0000331d: DUP2
0000331e: MSTORE
0000331f: PUSH1 0x00
00003321: DUP3
00003322: MLOAD
00003323: PUSH1 0xa0
00003325: PUSH1 0x20
00003327: DUP5
00003328: ADD
00003329: MSTORE
0000332a: DUP1
0000332b: MLOAD
0000332c: DUP1
0000332d: PUSH1 0xc0
0000332f: DUP6
00003330: ADD
00003331: MSTORE
00003332: PUSH2 0x3342
00003335: DUP2
00003336: PUSH1 0xe0
00003338: DUP7
00003339: ADD
0000333a: PUSH1 0x20
0000333c: DUP6
0000333d: ADD
0000333e: PUSH2 0x32f6
00003341: JUMP
00003342: JUMPDEST
00003343: PUSH1 0x01
00003345: PUSH1 0x01
00003347: PUSH1 0xa0
00003349: SHL
0000334a: SUB
0000334b: PUSH1 0x20
0000334d: DUP7
0000334e: ADD
0000334f: MLOAD
00003350: AND
00003351: PUSH1 0x40
00003353: DUP6
00003354: ADD
00003355: MSTORE
00003356: PUSH1 0x40
00003358: DUP6
00003359: ADD
0000335a: MLOAD
0000335b: PUSH1 0x60
0000335d: DUP6
0000335e: ADD
0000335f: MSTORE
00003360: PUSH1 0x60
00003362: DUP6
00003363: ADD
00003364: MLOAD
00003365: PUSH1 0x80
00003367: DUP6
00003368: ADD
00003369: MSTORE
0000336a: PUSH1 0x80
0000336c: DUP6
0000336d: ADD
0000336e: MLOAD
0000336f: PUSH1 0xa0
00003371: DUP6
00003372: ADD
00003373: MSTORE
00003374: PUSH1 0xe0
00003376: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00003397: PUSH1 0x1f
00003399: DUP4
0000339a: ADD
0000339b: AND
0000339c: DUP6
0000339d: ADD
0000339e: ADD
0000339f: SWAP3
000033a0: POP
000033a1: POP
000033a2: POP
000033a3: SWAP3
000033a4: SWAP2
000033a5: POP
000033a6: POP
000033a7: JUMP
000033a8: JUMPDEST
000033a9: PUSH2 0xffff
000033ac: DUP2
000033ad: DUP2
000033ae: AND
000033af: DUP4
000033b0: DUP3
000033b1: AND
000033b2: ADD
000033b3: SWAP1
000033b4: DUP1
000033b5: DUP3
000033b6: GT
000033b7: ISZERO
000033b8: PUSH2 0x33c3
000033bb: JUMPI
000033bc: PUSH2 0x33c3
000033bf: PUSH2 0x3145
000033c2: JUMP
000033c3: JUMPDEST
000033c4: POP
000033c5: SWAP3
000033c6: SWAP2
000033c7: POP
000033c8: POP
000033c9: JUMP
000033ca: JUMPDEST
000033cb: PUSH1 0x00
000033cd: PUSH2 0xffff
000033d0: DUP1
000033d1: DUP5
000033d2: AND
000033d3: DUP1
000033d4: PUSH2 0x33df
000033d7: JUMPI
000033d8: PUSH2 0x33df
000033db: PUSH2 0x32a0
000033de: JUMP
000033df: JUMPDEST
000033e0: SWAP3
000033e1: AND
000033e2: SWAP2
000033e3: SWAP1
000033e4: SWAP2
000033e5: MOD
000033e6: SWAP3
000033e7: SWAP2
000033e8: POP
000033e9: POP
000033ea: JUMP
000033eb: JUMPDEST
000033ec: DUP1
000033ed: MLOAD
000033ee: PUSH1 0x06
000033f0: DUP2
000033f1: SWAP1
000033f2: SIGNEXTEND
000033f3: DUP2
000033f4: EQ
000033f5: PUSH2 0x31ae
000033f8: JUMPI
000033f9: PUSH1 0x00
000033fb: DUP1
000033fc: REVERT
000033fd: JUMPDEST
000033fe: PUSH1 0x00
00003400: DUP1
00003401: PUSH1 0x00
00003403: DUP1
00003404: PUSH1 0x80
00003406: DUP6
00003407: DUP8
00003408: SUB
00003409: SLT
0000340a: ISZERO
0000340b: PUSH2 0x3413
0000340e: JUMPI
0000340f: PUSH1 0x00
00003411: DUP1
00003412: REVERT
00003413: JUMPDEST
00003414: DUP5
00003415: MLOAD
00003416: PUSH2 0x341e
00003419: DUP2
0000341a: PUSH2 0x30e4
0000341d: JUMP
0000341e: JUMPDEST
0000341f: SWAP4
00003420: POP
00003421: PUSH2 0x342c
00003424: PUSH1 0x20
00003426: DUP7
00003427: ADD
00003428: PUSH2 0x33eb
0000342b: JUMP
0000342c: JUMPDEST
0000342d: SWAP3
0000342e: POP
0000342f: PUSH1 0x40
00003431: DUP6
00003432: ADD
00003433: MLOAD
00003434: PUSH2 0x343c
00003437: DUP2
00003438: PUSH2 0x3113
0000343b: JUMP
0000343c: JUMPDEST
0000343d: SWAP2
0000343e: POP
0000343f: PUSH2 0x344a
00003442: PUSH1 0x60
00003444: DUP7
00003445: ADD
00003446: PUSH2 0x31b3
00003449: JUMP
0000344a: JUMPDEST
0000344b: SWAP1
0000344c: POP
0000344d: SWAP3
0000344e: SWAP6
0000344f: SWAP2
00003450: SWAP5
00003451: POP
00003452: SWAP3
00003453: POP
00003454: JUMP
00003455: JUMPDEST
00003456: PUSH4 0xffffffff
0000345b: DUP3
0000345c: DUP2
0000345d: AND
0000345e: DUP3
0000345f: DUP3
00003460: AND
00003461: SUB
00003462: SWAP1
00003463: DUP1
00003464: DUP3
00003465: GT
00003466: ISZERO
00003467: PUSH2 0x33c3
0000346a: JUMPI
0000346b: PUSH2 0x33c3
0000346e: PUSH2 0x3145
00003471: JUMP
00003472: JUMPDEST
00003473: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003494: PUSH1 0x00
00003496: MSTORE
00003497: PUSH1 0x41
00003499: PUSH1 0x04
0000349b: MSTORE
0000349c: PUSH1 0x24
0000349e: PUSH1 0x00
000034a0: REVERT
000034a1: JUMPDEST
000034a2: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000034c3: PUSH1 0x00
000034c5: MSTORE
000034c6: PUSH1 0x32
000034c8: PUSH1 0x04
000034ca: MSTORE
000034cb: PUSH1 0x24
000034cd: PUSH1 0x00
000034cf: REVERT
000034d0: JUMPDEST
000034d1: PUSH1 0x20
000034d3: DUP1
000034d4: DUP3
000034d5: MSTORE
000034d6: DUP3
000034d7: MLOAD
000034d8: DUP3
000034d9: DUP3
000034da: ADD
000034db: DUP2
000034dc: SWAP1
000034dd: MSTORE
000034de: PUSH1 0x00
000034e0: SWAP2
000034e1: SWAP1
000034e2: DUP5
000034e3: DUP3
000034e4: ADD
000034e5: SWAP1
000034e6: PUSH1 0x40
000034e8: DUP6
000034e9: ADD
000034ea: SWAP1
000034eb: DUP5
000034ec: JUMPDEST
000034ed: DUP2
000034ee: DUP2
000034ef: LT
000034f0: ISZERO
000034f1: PUSH2 0x350e
000034f4: JUMPI
000034f5: DUP4
000034f6: MLOAD
000034f7: PUSH4 0xffffffff
000034fc: AND
000034fd: DUP4
000034fe: MSTORE
000034ff: SWAP3
00003500: DUP5
00003501: ADD
00003502: SWAP3
00003503: SWAP2
00003504: DUP5
00003505: ADD
00003506: SWAP2
00003507: PUSH1 0x01
00003509: ADD
0000350a: PUSH2 0x34ec
0000350d: JUMP
0000350e: JUMPDEST
0000350f: POP
00003510: SWAP1
00003511: SWAP7
00003512: SWAP6
00003513: POP
00003514: POP
00003515: POP
00003516: POP
00003517: POP
00003518: POP
00003519: JUMP
0000351a: JUMPDEST
0000351b: PUSH1 0x40
0000351d: MLOAD
0000351e: PUSH1 0x1f
00003520: DUP3
00003521: ADD
00003522: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00003543: AND
00003544: DUP2
00003545: ADD
00003546: PUSH8 0xffffffffffffffff
0000354f: DUP2
00003550: GT
00003551: DUP3
00003552: DUP3
00003553: LT
00003554: OR
00003555: ISZERO
00003556: PUSH2 0x3561
00003559: JUMPI
0000355a: PUSH2 0x3561
0000355d: PUSH2 0x3472
00003560: JUMP
00003561: JUMPDEST
00003562: PUSH1 0x40
00003564: MSTORE
00003565: SWAP2
00003566: SWAP1
00003567: POP
00003568: JUMP
00003569: JUMPDEST
0000356a: PUSH1 0x00
0000356c: PUSH8 0xffffffffffffffff
00003575: DUP3
00003576: GT
00003577: ISZERO
00003578: PUSH2 0x3583
0000357b: JUMPI
0000357c: PUSH2 0x3583
0000357f: PUSH2 0x3472
00003582: JUMP
00003583: JUMPDEST
00003584: POP
00003585: PUSH1 0x05
00003587: SHL
00003588: PUSH1 0x20
0000358a: ADD
0000358b: SWAP1
0000358c: JUMP
0000358d: JUMPDEST
0000358e: PUSH1 0x00
00003590: DUP3
00003591: PUSH1 0x1f
00003593: DUP4
00003594: ADD
00003595: SLT
00003596: PUSH2 0x359e
00003599: JUMPI
0000359a: PUSH1 0x00
0000359c: DUP1
0000359d: REVERT
0000359e: JUMPDEST
0000359f: DUP2
000035a0: MLOAD
000035a1: PUSH1 0x20
000035a3: PUSH2 0x35b3
000035a6: PUSH2 0x35ae
000035a9: DUP4
000035aa: PUSH2 0x3569
000035ad: JUMP
000035ae: JUMPDEST
000035af: PUSH2 0x351a
000035b2: JUMP
000035b3: JUMPDEST
000035b4: DUP3
000035b5: DUP2
000035b6: MSTORE
000035b7: PUSH1 0x05
000035b9: SWAP3
000035ba: SWAP1
000035bb: SWAP3
000035bc: SHL
000035bd: DUP5
000035be: ADD
000035bf: DUP2
000035c0: ADD
000035c1: SWAP2
000035c2: DUP2
000035c3: DUP2
000035c4: ADD
000035c5: SWAP1
000035c6: DUP7
000035c7: DUP5
000035c8: GT
000035c9: ISZERO
000035ca: PUSH2 0x35d2
000035cd: JUMPI
000035ce: PUSH1 0x00
000035d0: DUP1
000035d1: REVERT
000035d2: JUMPDEST
000035d3: DUP3
000035d4: DUP7
000035d5: ADD
000035d6: JUMPDEST
000035d7: DUP5
000035d8: DUP2
000035d9: LT
000035da: ISZERO
000035db: PUSH2 0x35f6
000035de: JUMPI
000035df: DUP1
000035e0: MLOAD
000035e1: PUSH2 0x35e9
000035e4: DUP2
000035e5: PUSH2 0x3113
000035e8: JUMP
000035e9: JUMPDEST
000035ea: DUP4
000035eb: MSTORE
000035ec: SWAP2
000035ed: DUP4
000035ee: ADD
000035ef: SWAP2
000035f0: DUP4
000035f1: ADD
000035f2: PUSH2 0x35d6
000035f5: JUMP
000035f6: JUMPDEST
000035f7: POP
000035f8: SWAP7
000035f9: SWAP6
000035fa: POP
000035fb: POP
000035fc: POP
000035fd: POP
000035fe: POP
000035ff: POP
00003600: JUMP
00003601: JUMPDEST
00003602: PUSH1 0x00
00003604: DUP1
00003605: PUSH1 0x40
00003607: DUP4
00003608: DUP6
00003609: SUB
0000360a: SLT
0000360b: ISZERO
0000360c: PUSH2 0x3614
0000360f: JUMPI
00003610: PUSH1 0x00
00003612: DUP1
00003613: REVERT
00003614: JUMPDEST
00003615: DUP3
00003616: MLOAD
00003617: PUSH8 0xffffffffffffffff
00003620: DUP1
00003621: DUP3
00003622: GT
00003623: ISZERO
00003624: PUSH2 0x362c
00003627: JUMPI
00003628: PUSH1 0x00
0000362a: DUP1
0000362b: REVERT
0000362c: JUMPDEST
0000362d: DUP2
0000362e: DUP6
0000362f: ADD
00003630: SWAP2
00003631: POP
00003632: DUP6
00003633: PUSH1 0x1f
00003635: DUP4
00003636: ADD
00003637: SLT
00003638: PUSH2 0x3640
0000363b: JUMPI
0000363c: PUSH1 0x00
0000363e: DUP1
0000363f: REVERT
00003640: JUMPDEST
00003641: DUP2
00003642: MLOAD
00003643: PUSH1 0x20
00003645: PUSH2 0x3650
00003648: PUSH2 0x35ae
0000364b: DUP4
0000364c: PUSH2 0x3569
0000364f: JUMP
00003650: JUMPDEST
00003651: DUP3
00003652: DUP2
00003653: MSTORE
00003654: PUSH1 0x05
00003656: SWAP3
00003657: SWAP1
00003658: SWAP3
00003659: SHL
0000365a: DUP5
0000365b: ADD
0000365c: DUP2
0000365d: ADD
0000365e: SWAP2
0000365f: DUP2
00003660: DUP2
00003661: ADD
00003662: SWAP1
00003663: DUP10
00003664: DUP5
00003665: GT
00003666: ISZERO
00003667: PUSH2 0x366f
0000366a: JUMPI
0000366b: PUSH1 0x00
0000366d: DUP1
0000366e: REVERT
0000366f: JUMPDEST
00003670: SWAP5
00003671: DUP3
00003672: ADD
00003673: SWAP5
00003674: JUMPDEST
00003675: DUP4
00003676: DUP7
00003677: LT
00003678: ISZERO
00003679: PUSH2 0x3694
0000367c: JUMPI
0000367d: PUSH2 0x3685
00003680: DUP7
00003681: PUSH2 0x33eb
00003684: JUMP
00003685: JUMPDEST
00003686: DUP3
00003687: MSTORE
00003688: SWAP5
00003689: DUP3
0000368a: ADD
0000368b: SWAP5
0000368c: SWAP1
0000368d: DUP3
0000368e: ADD
0000368f: SWAP1
00003690: PUSH2 0x3674
00003693: JUMP
00003694: JUMPDEST
00003695: SWAP2
00003696: DUP9
00003697: ADD
00003698: MLOAD
00003699: SWAP2
0000369a: SWAP7
0000369b: POP
0000369c: SWAP1
0000369d: SWAP4
0000369e: POP
0000369f: POP
000036a0: POP
000036a1: DUP1
000036a2: DUP3
000036a3: GT
000036a4: ISZERO
000036a5: PUSH2 0x36ad
000036a8: JUMPI
000036a9: PUSH1 0x00
000036ab: DUP1
000036ac: REVERT
000036ad: JUMPDEST
000036ae: POP
000036af: PUSH2 0x36ba
000036b2: DUP6
000036b3: DUP3
000036b4: DUP7
000036b5: ADD
000036b6: PUSH2 0x358d
000036b9: JUMP
000036ba: JUMPDEST
000036bb: SWAP2
000036bc: POP
000036bd: POP
000036be: SWAP3
000036bf: POP
000036c0: SWAP3
000036c1: SWAP1
000036c2: POP
000036c3: JUMP
000036c4: JUMPDEST
000036c5: PUSH1 0x06
000036c7: DUP3
000036c8: DUP2
000036c9: SIGNEXTEND
000036ca: SWAP1
000036cb: DUP3
000036cc: SWAP1
000036cd: SIGNEXTEND
000036ce: SUB
000036cf: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000
000036f0: DUP2
000036f1: SLT
000036f2: PUSH7 0x7fffffffffffff
000036fa: DUP3
000036fb: SGT
000036fc: OR
000036fd: ISZERO
000036fe: PUSH2 0x2f9b
00003701: JUMPI
00003702: PUSH2 0x2f9b
00003705: PUSH2 0x3145
00003708: JUMP
00003709: JUMPDEST
0000370a: PUSH1 0x01
0000370c: PUSH1 0x01
0000370e: PUSH1 0xa0
00003710: SHL
00003711: SUB
00003712: DUP3
00003713: DUP2
00003714: AND
00003715: DUP3
00003716: DUP3
00003717: AND
00003718: SUB
00003719: SWAP1
0000371a: DUP1
0000371b: DUP3
0000371c: GT
0000371d: ISZERO
0000371e: PUSH2 0x33c3
00003721: JUMPI
00003722: PUSH2 0x33c3
00003725: PUSH2 0x3145
00003728: JUMP
00003729: JUMPDEST
0000372a: PUSH1 0x00
0000372c: DUP2
0000372d: PUSH1 0x06
0000372f: SIGNEXTEND
00003730: DUP4
00003731: PUSH1 0x06
00003733: SIGNEXTEND
00003734: DUP1
00003735: PUSH2 0x3740
00003738: JUMPI
00003739: PUSH2 0x3740
0000373c: PUSH2 0x32a0
0000373f: JUMP
00003740: JUMPDEST
00003741: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003762: DUP2
00003763: EQ
00003764: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000
00003785: DUP4
00003786: EQ
00003787: AND
00003788: ISZERO
00003789: PUSH2 0x3794
0000378c: JUMPI
0000378d: PUSH2 0x3794
00003790: PUSH2 0x3145
00003793: JUMP
00003794: JUMPDEST
00003795: SWAP1
00003796: SDIV
00003797: SWAP4
00003798: SWAP3
00003799: POP
0000379a: POP
0000379b: POP
0000379c: JUMP
0000379d: JUMPDEST
0000379e: PUSH1 0x00
000037a0: DUP3
000037a1: PUSH1 0x06
000037a3: SIGNEXTEND
000037a4: DUP1
000037a5: PUSH2 0x37b0
000037a8: JUMPI
000037a9: PUSH2 0x37b0
000037ac: PUSH2 0x32a0
000037af: JUMP
000037b0: JUMPDEST
000037b1: DUP1
000037b2: DUP4
000037b3: PUSH1 0x06
000037b5: SIGNEXTEND
000037b6: SMOD
000037b7: SWAP2
000037b8: POP
000037b9: POP
000037ba: SWAP3
000037bb: SWAP2
000037bc: POP
000037bd: POP
000037be: JUMP
000037bf: JUMPDEST
000037c0: PUSH1 0x00
000037c2: DUP2
000037c3: PUSH1 0x02
000037c5: SIGNEXTEND
000037c6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000
000037e7: DUP2
000037e8: SUB
000037e9: PUSH2 0x37f4
000037ec: JUMPI
000037ed: PUSH2 0x37f4
000037f0: PUSH2 0x3145
000037f3: JUMP
000037f4: JUMPDEST
000037f5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003816: ADD
00003817: SWAP3
00003818: SWAP2
00003819: POP
0000381a: POP
0000381b: JUMP
0000381c: JUMPDEST
0000381d: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff
00003836: DUP3
00003837: DUP2
00003838: AND
00003839: DUP3
0000383a: DUP3
0000383b: AND
0000383c: DUP2
0000383d: DUP2
0000383e: MUL
0000383f: DUP4
00003840: AND
00003841: SWAP3
00003842: SWAP2
00003843: DUP2
00003844: ISZERO
00003845: DUP3
00003846: DUP6
00003847: DIV
00003848: DUP3
00003849: EQ
0000384a: OR
0000384b: PUSH2 0x3856
0000384e: JUMPI
0000384f: PUSH2 0x3856
00003852: PUSH2 0x3145
00003855: JUMP
00003856: JUMPDEST
00003857: POP
00003858: POP
00003859: POP
0000385a: SWAP3
0000385b: SWAP2
0000385c: POP
0000385d: POP
0000385e: JUMP
0000385f: JUMPDEST
00003860: PUSH1 0x00
00003862: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff
0000387b: DUP1
0000387c: DUP5
0000387d: AND
0000387e: DUP1
0000387f: PUSH2 0x388a
00003882: JUMPI
00003883: PUSH2 0x388a
00003886: PUSH2 0x32a0
00003889: JUMP
0000388a: JUMPDEST
0000388b: SWAP3
0000388c: AND
0000388d: SWAP2
0000388e: SWAP1
0000388f: SWAP2
00003890: DIV
00003891: SWAP3
00003892: SWAP2
00003893: POP
00003894: POP
00003895: JUMP
00003896: JUMPDEST
00003897: PUSH1 0x00
00003899: PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000
000038ba: DUP3
000038bb: SUB
000038bc: PUSH2 0x38c7
000038bf: JUMPI
000038c0: PUSH2 0x38c7
000038c3: PUSH2 0x3145
000038c6: JUMP
000038c7: JUMPDEST
000038c8: POP
000038c9: PUSH1 0x00
000038cb: SUB
000038cc: SWAP1
000038cd: JUMP
000038ce: JUMPDEST
000038cf: PUSH1 0x00
000038d1: DUP2
000038d2: PUSH1 0x02
000038d4: SIGNEXTEND
000038d5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000
000038f6: DUP2
000038f7: SUB
000038f8: PUSH2 0x3903
000038fb: JUMPI
000038fc: PUSH2 0x3903
000038ff: PUSH2 0x3145
00003902: JUMP
00003903: JUMPDEST
00003904: PUSH1 0x00
00003906: SUB
00003907: SWAP3
00003908: SWAP2
00003909: POP
0000390a: POP
0000390b: JUMP
0000390c: JUMPDEST
0000390d: PUSH1 0x00
0000390f: DUP3
00003910: PUSH2 0x391b
00003913: JUMPI
00003914: PUSH2 0x391b
00003917: PUSH2 0x32a0
0000391a: JUMP
0000391b: JUMPDEST
0000391c: POP
0000391d: MOD
0000391e: SWAP1
0000391f: JUMP
00003920: JUMPDEST
00003921: PUSH1 0x00
00003923: PUSH1 0x20
00003925: DUP3
00003926: DUP5
00003927: SUB
00003928: SLT
00003929: ISZERO
0000392a: PUSH2 0x3932
0000392d: JUMPI
0000392e: PUSH1 0x00
00003930: DUP1
00003931: REVERT
00003932: JUMPDEST
00003933: DUP2
00003934: MLOAD
00003935: PUSH2 0x1950
00003938: DUP2
00003939: PUSH2 0x3113
0000393c: JUMP
0000393d: JUMPDEST
0000393e: DUP2
0000393f: MLOAD
00003940: PUSH1 0x01
00003942: PUSH1 0x01
00003944: PUSH1 0xa0
00003946: SHL
00003947: SUB
00003948: AND
00003949: DUP2
0000394a: MSTORE
0000394b: PUSH2 0x0160
0000394e: DUP2
0000394f: ADD
00003950: PUSH1 0x20
00003952: DUP4
00003953: ADD
00003954: MLOAD
00003955: PUSH2 0x3969
00003958: PUSH1 0x20
0000395a: DUP5
0000395b: ADD
0000395c: DUP3
0000395d: PUSH1 0x01
0000395f: PUSH1 0x01
00003961: PUSH1 0xa0
00003963: SHL
00003964: SUB
00003965: AND
00003966: SWAP1
00003967: MSTORE
00003968: JUMP
00003969: JUMPDEST
0000396a: POP
0000396b: PUSH1 0x40
0000396d: DUP4
0000396e: ADD
0000396f: MLOAD
00003970: PUSH2 0x3980
00003973: PUSH1 0x40
00003975: DUP5
00003976: ADD
00003977: DUP3
00003978: PUSH3 0xffffff
0000397c: AND
0000397d: SWAP1
0000397e: MSTORE
0000397f: JUMP
00003980: JUMPDEST
00003981: POP
00003982: PUSH1 0x60
00003984: DUP4
00003985: ADD
00003986: MLOAD
00003987: PUSH2 0x3995
0000398a: PUSH1 0x60
0000398c: DUP5
0000398d: ADD
0000398e: DUP3
0000398f: PUSH1 0x02
00003991: SIGNEXTEND
00003992: SWAP1
00003993: MSTORE
00003994: JUMP
00003995: JUMPDEST
00003996: POP
00003997: PUSH1 0x80
00003999: DUP4
0000399a: ADD
0000399b: MLOAD
0000399c: PUSH2 0x39aa
0000399f: PUSH1 0x80
000039a1: DUP5
000039a2: ADD
000039a3: DUP3
000039a4: PUSH1 0x02
000039a6: SIGNEXTEND
000039a7: SWAP1
000039a8: MSTORE
000039a9: JUMP
000039aa: JUMPDEST
000039ab: POP
000039ac: PUSH1 0xa0
000039ae: DUP4
000039af: ADD
000039b0: MLOAD
000039b1: PUSH1 0xa0
000039b3: DUP4
000039b4: ADD
000039b5: MSTORE
000039b6: PUSH1 0xc0
000039b8: DUP4
000039b9: ADD
000039ba: MLOAD
000039bb: PUSH1 0xc0
000039bd: DUP4
000039be: ADD
000039bf: MSTORE
000039c0: PUSH1 0xe0
000039c2: DUP4
000039c3: ADD
000039c4: MLOAD
000039c5: PUSH1 0xe0
000039c7: DUP4
000039c8: ADD
000039c9: MSTORE
000039ca: PUSH2 0x0100
000039cd: DUP1
000039ce: DUP5
000039cf: ADD
000039d0: MLOAD
000039d1: DUP2
000039d2: DUP5
000039d3: ADD
000039d4: MSTORE
000039d5: POP
000039d6: PUSH2 0x0120
000039d9: DUP1
000039da: DUP5
000039db: ADD
000039dc: MLOAD
000039dd: PUSH2 0x39f0
000039e0: DUP3
000039e1: DUP6
000039e2: ADD
000039e3: DUP3
000039e4: PUSH1 0x01
000039e6: PUSH1 0x01
000039e8: PUSH1 0xa0
000039ea: SHL
000039eb: SUB
000039ec: AND
000039ed: SWAP1
000039ee: MSTORE
000039ef: JUMP
000039f0: JUMPDEST
000039f1: POP
000039f2: POP
000039f3: PUSH2 0x0140
000039f6: SWAP3
000039f7: DUP4
000039f8: ADD
000039f9: MLOAD
000039fa: SWAP2
000039fb: SWAP1
000039fc: SWAP3
000039fd: ADD
000039fe: MSTORE
000039ff: SWAP1
00003a00: JUMP
00003a01: JUMPDEST
00003a02: PUSH1 0x00
00003a04: DUP1
00003a05: PUSH1 0x00
00003a07: DUP1
00003a08: PUSH1 0x80
00003a0a: DUP6
00003a0b: DUP8
00003a0c: SUB
00003a0d: SLT
00003a0e: ISZERO
00003a0f: PUSH2 0x3a17
00003a12: JUMPI
00003a13: PUSH1 0x00
00003a15: DUP1
00003a16: REVERT
00003a17: JUMPDEST
00003a18: DUP5
00003a19: MLOAD
00003a1a: SWAP4
00003a1b: POP
00003a1c: PUSH1 0x20
00003a1e: DUP6
00003a1f: ADD
00003a20: MLOAD
00003a21: PUSH16 0xffffffffffffffffffffffffffffffff
00003a32: DUP2
00003a33: AND
00003a34: DUP2
00003a35: EQ
00003a36: PUSH2 0x3a3e
00003a39: JUMPI
00003a3a: PUSH1 0x00
00003a3c: DUP1
00003a3d: REVERT
00003a3e: JUMPDEST
00003a3f: PUSH1 0x40
00003a41: DUP7
00003a42: ADD
00003a43: MLOAD
00003a44: PUSH1 0x60
00003a46: SWAP1
00003a47: SWAP7
00003a48: ADD
00003a49: MLOAD
00003a4a: SWAP5
00003a4b: SWAP8
00003a4c: SWAP1
00003a4d: SWAP7
00003a4e: POP
00003a4f: SWAP3
00003a50: POP
00003a51: POP
00003a52: POP
00003a53: JUMP
00003a54: JUMPDEST
00003a55: PUSH1 0x00
00003a57: DUP1
00003a58: PUSH1 0x40
00003a5a: DUP4
00003a5b: DUP6
00003a5c: SUB
00003a5d: SLT
00003a5e: ISZERO
00003a5f: PUSH2 0x3a67
00003a62: JUMPI
00003a63: PUSH1 0x00
00003a65: DUP1
00003a66: REVERT
00003a67: JUMPDEST
00003a68: POP
00003a69: POP
00003a6a: DUP1
00003a6b: MLOAD
00003a6c: PUSH1 0x20
00003a6e: SWAP1
00003a6f: SWAP2
00003a70: ADD
00003a71: MLOAD
00003a72: SWAP1
00003a73: SWAP3
00003a74: SWAP1
00003a75: SWAP2
00003a76: POP
00003a77: JUMP
00003a78: JUMPDEST
00003a79: PUSH1 0x00
00003a7b: PUSH1 0x20
00003a7d: DUP3
00003a7e: DUP5
00003a7f: SUB
00003a80: SLT
00003a81: ISZERO
00003a82: PUSH2 0x3a8a
00003a85: JUMPI
00003a86: PUSH1 0x00
00003a88: DUP1
00003a89: REVERT
00003a8a: JUMPDEST
00003a8b: PUSH2 0x1950
00003a8e: DUP3
00003a8f: PUSH2 0x31b3
00003a92: JUMP
00003a93: JUMPDEST
00003a94: PUSH1 0x00
00003a96: DUP3
00003a97: MLOAD
00003a98: PUSH2 0x3aa5
00003a9b: DUP2
00003a9c: DUP5
00003a9d: PUSH1 0x20
00003a9f: DUP8
00003aa0: ADD
00003aa1: PUSH2 0x32f6
00003aa4: JUMP
00003aa5: JUMPDEST
00003aa6: SWAP2
00003aa7: SWAP1
00003aa8: SWAP2
00003aa9: ADD
00003aaa: SWAP3
00003aab: SWAP2
00003aac: POP
00003aad: POP
00003aae: JUMP
00003aaf: INVALID
00003ab0: LOG1
00003ab1: PUSH5 0x736f6c6343
00003ab7: STOP
00003ab8: ADDMOD
00003ab9: EQ
00003aba: STOP
00003abb: EXP

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xe70b7d09",
            "selector": "0xe70b7d09",
            "calldata_variants": [
                "0xe70b7d09",
                "0xe70b7d090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xefdcbe6c",
            "selector": "0xefdcbe6c",
            "calldata_variants": [
                "0xefdcbe6c",
                "0xefdcbe6c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf0fa55a9",
            "selector": "0xf0fa55a9",
            "calldata_variants": [
                "0xf0fa55a9",
                "0xf0fa55a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd43e158c",
            "selector": "0xd43e158c",
            "calldata_variants": [
                "0xd43e158c",
                "0xd43e158c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd8186458",
            "selector": "0xd8186458",
            "calldata_variants": [
                "0xd8186458",
                "0xd81864580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf79d752",
            "selector": "0xdf79d752",
            "calldata_variants": [
                "0xdf79d752",
                "0xdf79d7520000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 493,
            "type": "msg_sender_eq_const",
            "value": 1.0970776880180083e+48
        },
        {
            "pc": 2361,
            "type": "tx_origin_used"
        },
        {
            "pc": 471,
            "type": "msg_sender_eq_const",
            "value": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
        },
        {
            "pc": 2360,
            "type": "tx_origin_used"
        }
    ]
}
medium oracle codex Spot-price fallback in TWAP quotes enables sandwiching of buybacks when observations are insufficient 75 no
view
evidence_json
{
    "evidence": "Both buy contracts clamp the TWAP window to the oldest observation and fall back to spot price when `secondsAgo == 0`, which then feeds the minimum-out calculations for swaps.",
    "locations": [
        "contracts/contracts/DragonBuyAndBurn.sol:561",
        "contracts/contracts/DragonBuyAndBurn.sol:623",
        "contracts/contracts/TitanBuy.sol:378",
        "contracts/contracts/TitanBuy.sol:389"
    ],
    "recommendation": "Require a minimum observation age (e.g., revert if `oldestObservation < minTwa`) and only allow swaps once TWAP history is available. Alternatively, enforce a hard minimum TWAP window, add a secondary oracle/sanity check, or use `sqrtPriceLimitX96`/price-impact caps to prevent spot-price manipulation.",
    "exploit_scenario": "If the pool is newly initialized or observation history is too short, `oldestObservation` can be zero, causing the quote to fall back to the current `slot0` price. An attacker can manipulate the pool price within the block, call `buyTitanX()` or `buyAndBurnDragonX()` from an EOA, and then back-run to restore price, profiting from the protocol\u2019s WETH spent at the manipulated price (bounded per swap but repeatable each interval)."
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x57c01f302e5cb9cc5fdf6bcf80d8960b5a8d3962d438c125598673b6a62d73b6
call_targets: 0x1a4330eaf13869d15014abca69516fc6ab36e54d
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x57c01f302e5cb9cc5fdf6bcf80d8960b5a8d3962d438c125598673b6a62d73b6",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x1a4330eaf13869d15014abca69516fc6ab36e54d"
    ],
    "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": "0xe70b7d09",
            "selector": "0xe70b7d09",
            "calldata_variants": [
                "0xe70b7d09",
                "0xe70b7d090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xefdcbe6c",
            "selector": "0xefdcbe6c",
            "calldata_variants": [
                "0xefdcbe6c",
                "0xefdcbe6c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf0fa55a9",
            "selector": "0xf0fa55a9",
            "calldata_variants": [
                "0xf0fa55a9",
                "0xf0fa55a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd43e158c",
            "selector": "0xd43e158c",
            "calldata_variants": [
                "0xd43e158c",
                "0xd43e158c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd8186458",
            "selector": "0xd8186458",
            "calldata_variants": [
                "0xd8186458",
                "0xd81864580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf79d752",
            "selector": "0xdf79d752",
            "calldata_variants": [
                "0xdf79d752",
                "0xdf79d7520000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 579,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2799,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3223,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 14,
    "guards_detected": [
        {
            "pc": 493,
            "type": "msg_sender_eq_const",
            "value": 1.0970776880180083e+48
        },
        {
            "pc": 2361,
            "type": "tx_origin_used"
        },
        {
            "pc": 471,
            "type": "msg_sender_eq_const",
            "value": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
        },
        {
            "pc": 2360,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 14
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x57c01f302e5cb9cc5fdf6bcf80d8960b5a8d3962d438c125598673b6a62d73b6
call_targets: 0x1a4330eaf13869d15014abca69516fc6ab36e54d
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x57c01f302e5cb9cc5fdf6bcf80d8960b5a8d3962d438c125598673b6a62d73b6",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x1a4330eaf13869d15014abca69516fc6ab36e54d"
    ],
    "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": "0xe70b7d09",
            "selector": "0xe70b7d09",
            "calldata_variants": [
                "0xe70b7d09",
                "0xe70b7d090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xefdcbe6c",
            "selector": "0xefdcbe6c",
            "calldata_variants": [
                "0xefdcbe6c",
                "0xefdcbe6c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf0fa55a9",
            "selector": "0xf0fa55a9",
            "calldata_variants": [
                "0xf0fa55a9",
                "0xf0fa55a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd43e158c",
            "selector": "0xd43e158c",
            "calldata_variants": [
                "0xd43e158c",
                "0xd43e158c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd8186458",
            "selector": "0xd8186458",
            "calldata_variants": [
                "0xd8186458",
                "0xd81864580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf79d752",
            "selector": "0xdf79d752",
            "calldata_variants": [
                "0xdf79d752",
                "0xdf79d7520000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 579,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2799,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3223,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 14,
    "guards_detected": [
        {
            "pc": 493,
            "type": "msg_sender_eq_const",
            "value": 1.0970776880180083e+48
        },
        {
            "pc": 2361,
            "type": "tx_origin_used"
        },
        {
            "pc": 471,
            "type": "msg_sender_eq_const",
            "value": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
        },
        {
            "pc": 2360,
            "type": "tx_origin_used"
        }
    ]
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 9
}
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": 26
}