ec13adc9-d3c5-410d-a84d-202d987a4dca
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 30287 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 73906 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 73907 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 73908 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 73909 | capability.graph | complete | 1 / 3 | 1 week ago |
| 73910 | detector.run | complete | 1 / 3 | 1 week ago |
| 73911 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1380276] OpenAI Codex v0.77.0 (research preview)
[codex:1380276] --------
[codex:1380276] workdir: /tmp/codex-multi-46mjyx8g
[codex:1380276] model: gpt-5.2-codex
[codex:1380276] provider: openai
[codex:1380276] approval: never
[codex:1380276] sandbox: read-only
[codex:1380276] reasoning effort: xhigh
[codex:1380276] reasoning summaries: auto
[codex:1380276] session id: 019b64f3-1c11-73f1-bd4b-5e3628113671
[codex:1380276] --------
[codex:1380276] user
[codex:1380276] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1380276] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1380276] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1380276]
[codex:1380276] Scope rules:
[codex:1380276] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1380276] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1380276]
[codex:1380276] Output MUST be valid JSON matching the provided schema.
[codex:1380276] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1380276] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1380276]
[codex:1380276] Output constraints (IMPORTANT):
[codex:1380276] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1380276] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1380276] mcp startup: no servers
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Preparing to read audit file**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc ls in /tmp/codex-multi-46mjyx8g succeeded in 5ms:
[codex:1380276] AUDIT_BUNDLE.txt
[codex:1380276] codex-output-schema.json
[codex:1380276] contracts
[codex:1380276] exec
[codex:1380276] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1380276]
[codex:1380276] ================================================================================
[codex:1380276] FILE: contracts/contracts/infiniteProxy/interfaces/iProxy.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: MIT
[codex:1380276] pragma solidity >=0.8.21 <=0.8.29;
[codex:1380276]
[codex:1380276] interface IProxy {
[codex:1380276] function setAdmin(address newAdmin_) external;
[codex:1380276]
[codex:1380276] function setDummyImplementation(address newDummyImplementation_) external;
[codex:1380276]
[codex:1380276] function addImplementation(address implementation_, bytes4[] calldata sigs_) external;
[codex:1380276]
[codex:1380276] function removeImplementation(address implementation_) external;
[codex:1380276]
[codex:1380276] function getAdmin() external view returns (address);
[codex:1380276]
[codex:1380276] function getDummyImplementation() external view returns (address);
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Analyzing large audit file**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] 4:FILE: contracts/contracts/infiniteProxy/interfaces/iProxy.sol
[codex:1380276] 30:FILE: contracts/contracts/libraries/addressCalcs.sol
[codex:1380276] 69:FILE: contracts/contracts/libraries/bigMathMinified.sol
[codex:1380276] 288:FILE: contracts/contracts/libraries/dexLiteSlotsLink.sol
[codex:1380276] 364:FILE: contracts/contracts/libraries/errorTypes.sol
[codex:1380276] 402:FILE: contracts/contracts/libraries/reentrancyLock.sol
[codex:1380276] 424:FILE: contracts/contracts/libraries/safeTransfer.sol
[codex:1380276] 525:FILE: contracts/contracts/liquidity/adminModule/structs.sol
[codex:1380276] 674:FILE: contracts/contracts/liquidity/interfaces/iLiquidity.sol
[codex:1380276] 807:FILE: contracts/contracts/protocols/dexLite/core/coreInternals.sol
[codex:1380276] 1097:FILE: contracts/contracts/protocols/dexLite/core/errors.sol
[codex:1380276] 1126:FILE: contracts/contracts/protocols/dexLite/core/helpers.sol
[codex:1380276] 1665:FILE: contracts/contracts/protocols/dexLite/core/main.sol
[codex:1380276] 1882:FILE: contracts/contracts/protocols/dexLite/other/commonImport.sol
[codex:1380276] 1892:FILE: contracts/contracts/protocols/dexLite/other/constantVariables.sol
[codex:1380276] 1959:FILE: contracts/contracts/protocols/dexLite/other/events.sol
[codex:1380276] 1977:FILE: contracts/contracts/protocols/dexLite/other/immutableVariables.sol
[codex:1380276] 2001:FILE: contracts/contracts/protocols/dexLite/other/interfaces.sol
[codex:1380276] 2027:FILE: contracts/contracts/protocols/dexLite/other/structs.sol
[codex:1380276] 2048:FILE: contracts/contracts/protocols/dexLite/other/variables.sol
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Reviewing core contracts**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '424,524p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] FILE: contracts/contracts/libraries/safeTransfer.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1380276] pragma solidity >=0.8.21 <=0.8.29;
[codex:1380276]
[codex:1380276] import { LibsErrorTypes as ErrorTypes } from "./errorTypes.sol";
[codex:1380276]
[codex:1380276] /// @notice provides minimalistic methods for safe transfers, e.g. ERC20 safeTransferFrom
[codex:1380276] library SafeTransfer {
[codex:1380276] uint256 internal constant MAX_NATIVE_TRANSFER_GAS = 20000; // pass max. 20k gas for native transfers
[codex:1380276]
[codex:1380276] error FluidSafeTransferError(uint256 errorId_);
[codex:1380276]
[codex:1380276] /// @dev Transfer `amount_` of `token_` from `from_` to `to_`, spending the approval given by `from_` to the
[codex:1380276] /// calling contract. If `token_` returns no value, non-reverting calls are assumed to be successful.
[codex:1380276] /// Minimally modified from Solmate SafeTransferLib (address as input param for token, Custom Error):
[codex:1380276] /// https://github.com/transmissions11/solmate/blob/50e15bb566f98b7174da9b0066126a4c3e75e0fd/src/utils/SafeTransferLib.sol#L31-L63
[codex:1380276] function safeTransferFrom(address token_, address from_, address to_, uint256 amount_) internal {
[codex:1380276] bool success_;
[codex:1380276]
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Browsing core contract files**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '807,1096p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] FILE: contracts/contracts/protocols/dexLite/core/coreInternals.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] pragma solidity 0.8.29;
[codex:1380276]
[codex:1380276] import "./helpers.sol";
[codex:1380276]
[codex:1380276] abstract contract CoreInternals is Helpers {
[codex:1380276] function _swapIn(
[codex:1380276] DexKey calldata dexKey_,
[codex:1380276] bool swap0To1_,
[codex:1380276] uint256 amountIn_
[codex:1380276] ) internal returns (uint256 amountOut_) {
[codex:1380276] bytes8 dexId_ = bytes8(keccak256(abi.encode(dexKey_)));
[codex:1380276] uint256 dexVariables_ = _dexVariables[dexId_];
[codex:1380276]
[codex:1380276] if (dexVariables_ == 0) {
[codex:1380276] revert DexNotInitialized(dexId_);
[codex:1380276] }
[codex:1380276]
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Reviewing CoreInternals for reentrancy**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '1126,1664p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] FILE: contracts/contracts/protocols/dexLite/core/helpers.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] pragma solidity 0.8.29;
[codex:1380276] import "./errors.sol";
[codex:1380276] import { DexLiteSlotsLink as DSL } from "../../../libraries/dexLiteSlotsLink.sol";
[codex:1380276] import { FixedPointMathLib } from "solmate/src/utils/FixedPointMathLib.sol";
[codex:1380276] import { AddressCalcs } from "../../../libraries/addressCalcs.sol";
[codex:1380276] import { BigMathMinified } from "../../../libraries/bigMathMinified.sol";
[codex:1380276] import { ReentrancyLock } from "../../../libraries/reentrancyLock.sol";
[codex:1380276] import { SafeTransfer } from "../../../libraries/safeTransfer.sol";
[codex:1380276]
[codex:1380276] abstract contract Helpers is CommonImport {
[codex:1380276] using BigMathMinified for uint256;
[codex:1380276]
[codex:1380276] modifier _reentrancyLock() {
[codex:1380276] ReentrancyLock.lock();
[codex:1380276] _;
[codex:1380276] ReentrancyLock.unlock();
[codex:1380276] }
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Reviewing token transfer and reentrancy risks**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '1665,1881p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 5ms:
[codex:1380276] FILE: contracts/contracts/protocols/dexLite/core/main.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] pragma solidity 0.8.29;
[codex:1380276]
[codex:1380276] import "./coreInternals.sol";
[codex:1380276]
[codex:1380276] /// @title FluidDexLite
[codex:1380276] contract FluidDexLite is CoreInternals {
[codex:1380276] constructor(address auth_, address liquidity_, address deployerContract_) {
[codex:1380276] _isAuth[auth_] = 1;
[codex:1380276] LIQUIDITY = IFluidLiquidity(liquidity_);
[codex:1380276] DEPLOYER_CONTRACT = deployerContract_;
[codex:1380276] }
[codex:1380276]
[codex:1380276] /// @notice Swap through a single dex pool
[codex:1380276] /// @dev Uses _swapIn for positive amountSpecified_ (user provides input), _swapOut for negative (user receives output).
[codex:1380276] /// @param dexKey_ The dex pool to swap through.
[codex:1380276] /// @param swap0To1_ Whether to swap from token0 to token1 or vice versa.
[codex:1380276] /// @param amountSpecified_ The amount to swap (positive for exact input, negative for exact output).
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Checking for error definitions**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '1097,1125p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] FILE: contracts/contracts/protocols/dexLite/core/errors.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] pragma solidity 0.8.29;
[codex:1380276] import "../other/commonImport.sol";
[codex:1380276]
[codex:1380276] // --- Custom Errors ---
[codex:1380276] error EstimateSwap(uint256 amountUnspecified);
[codex:1380276] error AmountLimitExceeded(uint256 amountUnspecified, uint256 amountLimit);
[codex:1380276] error AmountLimitNotMet(uint256 amountUnspecified, uint256 amountLimit);
[codex:1380276] error EmptyDexKeysArray();
[codex:1380276] error InvalidPathLength(uint256 pathLength, uint256 dexKeysLength);
[codex:1380276] error InvalidAmountLimitsLength(uint256 dexKeysLength, uint256 amountLimitsLength);
[codex:1380276] error InvalidPathTokenOrder();
[codex:1380276] error UnauthorizedCaller(address caller);
[codex:1380276] error DexNotInitialized(bytes32 dexId);
[codex:1380276] error AdjustedSupplyOverflow(bytes32 dexId, uint256 token0AdjustedSupply, uint256 token1AdjustedSupply);
[codex:1380276] error ZeroAddress();
[codex:1380276] error InvalidPower(uint256 power);
[codex:1380276] error InvalidSwapAmounts(uint256 adjustedAmount);
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Inspecting commonImport file**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '1882,1976p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] FILE: contracts/contracts/protocols/dexLite/other/commonImport.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] pragma solidity 0.8.29;
[codex:1380276]
[codex:1380276] import "./variables.sol";
[codex:1380276]
[codex:1380276] abstract contract CommonImport is Variables {}
[codex:1380276]
[codex:1380276] ================================================================================
[codex:1380276] FILE: contracts/contracts/protocols/dexLite/other/constantVariables.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] pragma solidity 0.8.29;
[codex:1380276]
[codex:1380276] import "./events.sol";
[codex:1380276]
[codex:1380276] abstract contract ConstantVariables {
[codex:1380276] /*//////////////////////////////////////////////////////////////
[codex:1380276] CONSTANTS
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Inspecting liquidity interfaces**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '674,806p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] FILE: contracts/contracts/liquidity/interfaces/iLiquidity.sol
[codex:1380276] ================================================================================
[codex:1380276] //SPDX-License-Identifier: MIT
[codex:1380276] pragma solidity >=0.8.21 <=0.8.29;
[codex:1380276]
[codex:1380276] import { IProxy } from "../../infiniteProxy/interfaces/iProxy.sol";
[codex:1380276] import { Structs as AdminModuleStructs } from "../adminModule/structs.sol";
[codex:1380276]
[codex:1380276] interface IFluidLiquidityAdmin {
[codex:1380276] /// @notice adds/removes auths. Auths generally could be contracts which can have restricted actions defined on contract.
[codex:1380276] /// auths can be helpful in reducing governance overhead where it's not needed.
[codex:1380276] /// @param authsStatus_ array of structs setting allowed status for an address.
[codex:1380276] /// status true => add auth, false => remove auth
[codex:1380276] function updateAuths(AdminModuleStructs.AddressBool[] calldata authsStatus_) external;
[codex:1380276]
[codex:1380276] /// @notice adds/removes guardians. Only callable by Governance.
[codex:1380276] /// @param guardiansStatus_ array of structs setting allowed status for an address.
[codex:1380276] /// status true => add guardian, false => remove guardian
[codex:1380276] function updateGuardians(AdminModuleStructs.AddressBool[] calldata guardiansStatus_) external;
[codex:1380276]
[codex:1380276]
[codex:1380276]
[codex:1380276]
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Evaluating complex reentrancy and oracle risks**
[codex:1380276]
[codex:1380276] I’m carefully examining reentrancy protections involving transient storage and delegatecalls, noting how the fallback’s powerful delegatecall to governance-controlled modules could risk state corruption if those modules are compromised. Additionally, I’m inspecting risks tied to external oracle calls, including potential price manipulation and unchecked big number operations that could lead to overflow or invariant breaches. Overall, I’m weighing contract assumptions, upgradeability, and access controls to spot any subtle vulnerabilities.
[codex:1380276] thinking
[codex:1380276] **Analyzing initialization, delegatecall, and hash collision concerns**
[codex:1380276]
[codex:1380276] I'm reviewing edge cases around contract deployment nonces, transient storage lock behavior when delegatecalls modify it, and how the powerful delegatecall fallback enables admin upgrades. I’m also considering risks from truncated 64-bit hashes used as dex IDs that might allow rare collisions, plus the implications of unvalidated swap parameters and interaction with external oracles. These nuanced details help me gauge subtle avenues for problems or misconfigurations.
[codex:1380276] thinking
[codex:1380276] **Evaluating swap logic, delegatecall risk, and numeric edge cases**
[codex:1380276]
[codex:1380276] I'm digging into how swap initialization and key validation happen, noting that delegatecalls triggered by extraData create a high-trust plugin surface with potential for state changes or destruction if the module is compromised. I’m also checking numeric edge cases like division by zero or overflow in price calculations and how reentrancy and callbacks interplay with token transfers, shaping a careful view of subtle risks versus intended safeguards.
[codex:1380276] thinking
[codex:1380276] **Identifying key risks in oracle use and delegatecall design**
[codex:1380276]
[codex:1380276] I'm focusing on potential attack vectors including oracle price manipulation via a direct external call, and a risky delegatecall path triggered by user-controlled extraData that delegates to an admin-set contract with full access to internal state. I’m also noting subtle numerical edge cases and how internal accounting updates without token transfers could desynchronize pool state if the extraData module is improperly implemented.
[codex:1380276] exec
[codex:1380276] /bin/bash -lc 'rg -n "EXTRA_DATA_SLOT" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-46mjyx8g succeeded in 8ms:
[codex:1380276] 1149: extraDataAddress_ := sload(EXTRA_DATA_SLOT)
[codex:1380276] 1905: bytes32 internal constant EXTRA_DATA_SLOT = 0x7e8134afb5ed35d36cb65e24b9a4712a52bb77d952806c1acf50970d2107797f;
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Evaluating potential security risks**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc 'ls contracts/contracts/protocols/dexLite/core' in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] coreInternals.sol
[codex:1380276] errors.sol
[codex:1380276] helpers.sol
[codex:1380276] main.sol
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Locating line numbers for delegatecall in main.sol**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "nl -ba contracts/contracts/protocols/dexLite/core/main.sol | sed -n '1,220p'" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] 1 // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] 2 pragma solidity 0.8.29;
[codex:1380276] 3
[codex:1380276] 4 import "./coreInternals.sol";
[codex:1380276] 5
[codex:1380276] 6 /// @title FluidDexLite
[codex:1380276] 7 contract FluidDexLite is CoreInternals {
[codex:1380276] 8 constructor(address auth_, address liquidity_, address deployerContract_) {
[codex:1380276] 9 _isAuth[auth_] = 1;
[codex:1380276] 10 LIQUIDITY = IFluidLiquidity(liquidity_);
[codex:1380276] 11 DEPLOYER_CONTRACT = deployerContract_;
[codex:1380276] 12 }
[codex:1380276] 13
[codex:1380276] 14 /// @notice Swap through a single dex pool
[codex:1380276] 15 /// @dev Uses _swapIn for positive amountSpecified_ (user provides input), _swapOut for negative (user receives output).
[codex:1380276] 16 /// @param dexKey_ The dex pool to swap through.
[codex:1380276] 17 /// @param swap0To1_ Whether to swap from token0 to token1 or vice versa.
[codex:1380276] 18 /// @param amountSpecified_ The amount to swap (positive for exact input, negative for exact output).
[codex:1380276] 19 /// @param amountLimit_ The minimum/maximum amount for the unspecified side.
[codex:1380276] 20 /// @param to_ The recipient address.
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Identifying delegatecall occurrences**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "nl -ba contracts/contracts/protocols/dexLite/core/helpers.sol | sed -n '1,260p'" in /tmp/codex-multi-46mjyx8g succeeded in 7ms:
[codex:1380276] 1 // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] 2 pragma solidity 0.8.29;
[codex:1380276] 3 import "./errors.sol";
[codex:1380276] 4 import { DexLiteSlotsLink as DSL } from "../../../libraries/dexLiteSlotsLink.sol";
[codex:1380276] 5 import { FixedPointMathLib } from "solmate/src/utils/FixedPointMathLib.sol";
[codex:1380276] 6 import { AddressCalcs } from "../../../libraries/addressCalcs.sol";
[codex:1380276] 7 import { BigMathMinified } from "../../../libraries/bigMathMinified.sol";
[codex:1380276] 8 import { ReentrancyLock } from "../../../libraries/reentrancyLock.sol";
[codex:1380276] 9 import { SafeTransfer } from "../../../libraries/safeTransfer.sol";
[codex:1380276] 10
[codex:1380276] 11 abstract contract Helpers is CommonImport {
[codex:1380276] 12 using BigMathMinified for uint256;
[codex:1380276] 13
[codex:1380276] 14 modifier _reentrancyLock() {
[codex:1380276] 15 ReentrancyLock.lock();
[codex:1380276] 16 _;
[codex:1380276] 17 ReentrancyLock.unlock();
[codex:1380276] 18 }
[codex:1380276] 19
[codex:1380276] 20 function _getExtraDataSlot() internal view returns (address extraDataAddress_) {
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Investigating _getPricesAndReserves calls**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "nl -ba contracts/contracts/protocols/dexLite/core/helpers.sol | sed -n '220,460p'" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] 220 ) internal returns (uint256 newCenterPrice_) {
[codex:1380276] 221 uint256 oldCenterPrice_ = (dexVariables_ >> DSL.BITS_DEX_LITE_DEX_VARIABLES_CENTER_PRICE) & X40;
[codex:1380276] 222 oldCenterPrice_ = (oldCenterPrice_ >> DEFAULT_EXPONENT_SIZE) << (oldCenterPrice_ & DEFAULT_EXPONENT_MASK);
[codex:1380276] 223 uint256 centerPriceShift_ = _centerPriceShift[dexId_];
[codex:1380276] 224 uint256 startTimeStamp_ = (centerPriceShift_ >> DSL.BITS_DEX_LITE_CENTER_PRICE_SHIFT_TIMESTAMP) & X33;
[codex:1380276] 225
[codex:1380276] 226 uint256 fromTimeStamp_ = (centerPriceShift_ >> DSL.BITS_DEX_LITE_CENTER_PRICE_SHIFT_LAST_INTERACTION_TIMESTAMP) & X33;
[codex:1380276] 227 fromTimeStamp_ = fromTimeStamp_ > startTimeStamp_ ? fromTimeStamp_ : startTimeStamp_;
[codex:1380276] 228
[codex:1380276] 229 newCenterPrice_ = ICenterPrice(
[codex:1380276] 230 AddressCalcs.addressCalc(DEPLOYER_CONTRACT, ((dexVariables_ >> DSL.BITS_DEX_LITE_DEX_VARIABLES_CENTER_PRICE_CONTRACT_ADDRESS) & X19)))
[codex:1380276] 231 .centerPrice(dexKey_.token0, dexKey_.token1);
[codex:1380276] 232
[codex:1380276] 233 unchecked {
[codex:1380276] 234 uint256 priceShift_ = (oldCenterPrice_ * ((centerPriceShift_ >> DSL.BITS_DEX_LITE_CENTER_PRICE_SHIFT_PERCENT) & X20) * (block.timestamp - fromTimeStamp_))
[codex:1380276] 235 / (((centerPriceShift_ >> DSL.BITS_DEX_LITE_CENTER_PRICE_SHIFT_TIME_TO_SHIFT) & X20) * SIX_DECIMALS);
[codex:1380276] 236
[codex:1380276] 237 if (newCenterPrice_ > oldCenterPrice_) {
[codex:1380276] 238 // shift on positive side
[codex:1380276] 239 oldCenterPrice_ += priceShift_;
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Searching for dexId line numbers**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "nl -ba contracts/contracts/protocols/dexLite/core/coreInternals.sol | sed -n '1,200p'" in /tmp/codex-multi-46mjyx8g succeeded in 8ms:
[codex:1380276] 1 // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] 2 pragma solidity 0.8.29;
[codex:1380276] 3
[codex:1380276] 4 import "./helpers.sol";
[codex:1380276] 5
[codex:1380276] 6 abstract contract CoreInternals is Helpers {
[codex:1380276] 7 function _swapIn(
[codex:1380276] 8 DexKey calldata dexKey_,
[codex:1380276] 9 bool swap0To1_,
[codex:1380276] 10 uint256 amountIn_
[codex:1380276] 11 ) internal returns (uint256 amountOut_) {
[codex:1380276] 12 bytes8 dexId_ = bytes8(keccak256(abi.encode(dexKey_)));
[codex:1380276] 13 uint256 dexVariables_ = _dexVariables[dexId_];
[codex:1380276] 14
[codex:1380276] 15 if (dexVariables_ == 0) {
[codex:1380276] 16 revert DexNotInitialized(dexId_);
[codex:1380276] 17 }
[codex:1380276] 18
[codex:1380276] 19 uint256 token0AdjustedSupply_ = (dexVariables_ >> DSL.BITS_DEX_LITE_DEX_VARIABLES_TOKEN_0_TOTAL_SUPPLY_ADJUSTED) & X60;
[codex:1380276] 20 uint256 token1AdjustedSupply_ = (dexVariables_ >> DSL.BITS_DEX_LITE_DEX_VARIABLES_TOKEN_1_TOTAL_SUPPLY_ADJUSTED) & X60;
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Identifying key code sections**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc 'rg -n "_spell" -n contracts/contracts/protocols/dexLite/core/helpers.sol' in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] 35: _spell(extraDataAddress_, data_);
[codex:1380276] 518: function _spell(address target_, bytes memory data_) internal returns (bytes memory response_) {
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "nl -ba contracts/contracts/protocols/dexLite/core/helpers.sol | sed -n '500,560p'" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] 500 if (msg.value > 0) {
[codex:1380276] 501 revert InvalidMsgValue(); // msg.value should be 0 for non native tokens
[codex:1380276] 502 }
[codex:1380276] 503 if (isCallback_) {
[codex:1380276] 504 uint256 tokenInBalance_ = IERC20(tokenIn_).balanceOf(address(this));
[codex:1380276] 505 IDexLiteCallback(msg.sender).dexCallback(tokenIn_, amountIn_, callbackData_);
[codex:1380276] 506 if ((IERC20(tokenIn_).balanceOf(address(this)) - tokenInBalance_) < amountIn_) {
[codex:1380276] 507 revert InsufficientERC20Received(IERC20(tokenIn_).balanceOf(address(this)) - tokenInBalance_, amountIn_);
[codex:1380276] 508 }
[codex:1380276] 509 } else {
[codex:1380276] 510 SafeTransfer.safeTransferFrom(tokenIn_, msg.sender, address(this), amountIn_);
[codex:1380276] 511 }
[codex:1380276] 512 }
[codex:1380276] 513 }
[codex:1380276] 514
[codex:1380276] 515 /// @dev do any arbitrary call
[codex:1380276] 516 /// @param target_ Address to which the call needs to be delegated
[codex:1380276] 517 /// @param data_ Data to execute at the delegated address
[codex:1380276] 518 function _spell(address target_, bytes memory data_) internal returns (bytes memory response_) {
[codex:1380276] 519 assembly {
[codex:1380276]
[codex:1380276] thinking
[codex:1380276] **Summarizing vulnerability findings and crafting JSON**
[codex:1380276]
[codex:1380276] I'm organizing and categorizing three security findings related to user-triggerable delegatecall risks, oracle price manipulation, and pool ID hash collisions. I'm preparing a detailed JSON output with severity levels, exploit scenarios, recommendations, evidence, and file locations to provide a clear audit report as requested.
[codex:1380276] codex
[codex:1380276] {"no_findings":false,"summary":"Found 3 issues: user-triggerable delegatecall hook via extraData, oracle-manipulable center price, and 64-bit pool ID collisions.","findings":[{"severity":"medium","category":"upgradeability","title":"User-triggerable delegatecall hook enables full-state execution if extension is compromised","exploit_scenario":"Governance sets `EXTRA_DATA_SLOT` to an upgradeable module. An attacker exploits a bug or unprotected function in that module and calls `swapSingle`/`swapHop` with non-empty `extraData_`, causing the module to execute via `delegatecall` in DexLite’s context and overwrite `_dexVariables`/balances or even selfdestruct the contract.","recommendation":"Avoid `delegatecall` for user-triggerable hooks; use an external-call interface with explicit allowed selectors, or restrict `extraData_` usage to trusted callers and keep the extension immutable and tightly audited.","evidence":"`swapSingle`/`swapHop` route non-empty `extraData_` into `_callExtraDataSlot`, which performs a `delegatecall` via `_spell`.","locations":["contracts/contracts/protocols/dexLite/core/main.sol:38","contracts/contracts/protocols/dexLite/core/main.sol:129","contracts/contracts/protocols/dexLite/core/helpers.sol:30","contracts/contracts/protocols/dexLite/core/helpers.sol:518"]},{"severity":"medium","category":"oracle","title":"Center price uses external oracle without manipulation bounds","exploit_scenario":"If the `ICenterPrice` implementation relies on manipulable spot prices (e.g., AMM reserves), an attacker can skew the oracle in the same block, then call `swapSingle`/`swapHop` to trade against an artificial center price and extract value, leaving the pool with bad inventory once the oracle normalizes.","recommendation":"Use a manipulation-resistant oracle (TWAP/Chainlink), add sanity bounds against sudden price jumps, and/or cache prices and enforce minimum update intervals.","evidence":"`ICenterPrice.centerPrice` is called during swap pricing and its return value is used directly to compute reserves and swap amounts.","locations":["contracts/contracts/protocols/dexLite/core/helpers.sol:229","contracts/contracts/protocols/dexLite/core/helpers.sol:284"]},{"severity":"low","category":"other","title":"Dex pool ID truncation to 64 bits allows hash collisions","exploit_scenario":"A sufficiently resourced attacker can search for a `DexKey` whose `keccak256` prefix collides with an existing pool’s `bytes8` ID. Swaps using the colliding key would operate on the victim pool’s `dexVariables` while transferring attacker-chosen tokens, potentially corrupting accounting or draining any held balances of those tokens.","recommendation":"Use `bytes32` (full `keccak256`) as the mapping key or otherwise include the full hash to avoid collision risk.","evidence":"Pool IDs are derived as `bytes8(keccak256(abi.encode(dexKey_)))`.","locations":["contracts/contracts/protocols/dexLite/core/coreInternals.sol:12","contracts/contracts/protocols/dexLite/core/coreInternals.sol:153"]}]}
[codex:1380276] tokens used
[codex:1380276] 70,852
[codex:1380276] {"no_findings":false,"summary":"Found 3 issues: user-triggerable delegatecall hook via extraData, oracle-manipulable center price, and 64-bit pool ID collisions.","findings":[{"severity":"medium","category":"upgradeability","title":"User-triggerable delegatecall hook enables full-state execution if extension is compromised","exploit_scenario":"Governance sets `EXTRA_DATA_SLOT` to an upgradeable module. An attacker exploits a bug or unprotected function in that module and calls `swapSingle`/`swapHop` with non-empty `extraData_`, causing the module to execute via `delegatecall` in DexLite’s context and overwrite `_dexVariables`/balances or even selfdestruct the contract.","recommendation":"Avoid `delegatecall` for user-triggerable hooks; use an external-call interface with explicit allowed selectors, or restrict `extraData_` usage to trusted callers and keep the extension immutable and tightly audited.","evidence":"`swapSingle`/`swapHop` route non-empty `extraData_` into `_callExtraDataSlot`, which performs a `delegatecall` via `_spell`.","locations":["contracts/contracts/protocols/dexLite/core/main.sol:38","contracts/contracts/protocols/dexLite/core/main.sol:129","contracts/contracts/protocols/dexLite/core/helpers.sol:30","contracts/contracts/protocols/dexLite/core/helpers.sol:518"]},{"severity":"medium","category":"oracle","title":"Center price uses external oracle without manipulation bounds","exploit_scenario":"If the `ICenterPrice` implementation relies on manipulable spot prices (e.g., AMM reserves), an attacker can skew the oracle in the same block, then call `swapSingle`/`swapHop` to trade against an artificial center price and extract value, leaving the pool with bad inventory once the oracle normalizes.","recommendation":"Use a manipulation-resistant oracle (TWAP/Chainlink), add sanity bounds against sudden price jumps, and/or cache prices and enforce minimum update intervals.","evidence":"`ICenterPrice.centerPrice` is called during swap pricing and its return value is used directly to compute reserves and swap amounts.","locations":["contracts/contracts/protocols/dexLite/core/helpers.sol:229","contracts/contracts/protocols/dexLite/core/helpers.sol:284"]},{"severity":"low","category":"other","title":"Dex pool ID truncation to 64 bits allows hash collisions","exploit_scenario":"A sufficiently resourced attacker can search for a `DexKey` whose `keccak256` prefix collides with an existing pool’s `bytes8` ID. Swaps using the colliding key would operate on the victim pool’s `dexVariables` while transferring attacker-chosen tokens, potentially corrupting accounting or draining any held balances of those tokens.","recommendation":"Use `bytes32` (full `keccak256`) as the mapping key or otherwise include the full hash to avoid collision risk.","evidence":"Pool IDs are derived as `bytes8(keccak256(abi.encode(dexKey_)))`.","locations":["contracts/contracts/protocols/dexLite/core/coreInternals.sol:12","contracts/contracts/protocols/dexLite/core/coreInternals.sol:153"]}]}
{
"codex": {
"ran_at": "2025-12-28T12:40:11.921175+00:00",
"returncode": 0
},
"summary": "Found 3 issues: user-triggerable delegatecall hook via extraData, oracle-manipulable center price, and 64-bit pool ID collisions.",
"raw_final": {
"summary": "Found 3 issues: user-triggerable delegatecall hook via extraData, oracle-manipulable center price, and 64-bit pool ID collisions.",
"findings": [
{
"title": "User-triggerable delegatecall hook enables full-state execution if extension is compromised",
"category": "upgradeability",
"evidence": "`swapSingle`/`swapHop` route non-empty `extraData_` into `_callExtraDataSlot`, which performs a `delegatecall` via `_spell`.",
"severity": "medium",
"locations": [
"contracts/contracts/protocols/dexLite/core/main.sol:38",
"contracts/contracts/protocols/dexLite/core/main.sol:129",
"contracts/contracts/protocols/dexLite/core/helpers.sol:30",
"contracts/contracts/protocols/dexLite/core/helpers.sol:518"
],
"recommendation": "Avoid `delegatecall` for user-triggerable hooks; use an external-call interface with explicit allowed selectors, or restrict `extraData_` usage to trusted callers and keep the extension immutable and tightly audited.",
"exploit_scenario": "Governance sets `EXTRA_DATA_SLOT` to an upgradeable module. An attacker exploits a bug or unprotected function in that module and calls `swapSingle`/`swapHop` with non-empty `extraData_`, causing the module to execute via `delegatecall` in DexLite\u2019s context and overwrite `_dexVariables`/balances or even selfdestruct the contract."
},
{
"title": "Center price uses external oracle without manipulation bounds",
"category": "oracle",
"evidence": "`ICenterPrice.centerPrice` is called during swap pricing and its return value is used directly to compute reserves and swap amounts.",
"severity": "medium",
"locations": [
"contracts/contracts/protocols/dexLite/core/helpers.sol:229",
"contracts/contracts/protocols/dexLite/core/helpers.sol:284"
],
"recommendation": "Use a manipulation-resistant oracle (TWAP/Chainlink), add sanity bounds against sudden price jumps, and/or cache prices and enforce minimum update intervals.",
"exploit_scenario": "If the `ICenterPrice` implementation relies on manipulable spot prices (e.g., AMM reserves), an attacker can skew the oracle in the same block, then call `swapSingle`/`swapHop` to trade against an artificial center price and extract value, leaving the pool with bad inventory once the oracle normalizes."
},
{
"title": "Dex pool ID truncation to 64 bits allows hash collisions",
"category": "other",
"evidence": "Pool IDs are derived as `bytes8(keccak256(abi.encode(dexKey_)))`.",
"severity": "low",
"locations": [
"contracts/contracts/protocols/dexLite/core/coreInternals.sol:12",
"contracts/contracts/protocols/dexLite/core/coreInternals.sol:153"
],
"recommendation": "Use `bytes32` (full `keccak256`) as the mapping key or otherwise include the full hash to avoid collision risk.",
"exploit_scenario": "A sufficiently resourced attacker can search for a `DexKey` whose `keccak256` prefix collides with an existing pool\u2019s `bytes8` ID. Swaps using the colliding key would operate on the victim pool\u2019s `dexVariables` while transferring attacker-chosen tokens, potentially corrupting accounting or draining any held balances of those tokens."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0037 0000000c: JUMPI 0000000d: PUSH0 0000000e: CALLDATALOAD 0000000f: PUSH1 0xe0 00000011: SHR 00000012: DUP1 00000013: PUSH4 0x7fc9d4ad 00000018: EQ 00000019: PUSH2 0x00f7 0000001c: JUMPI 0000001d: DUP1 0000001e: PUSH4 0xa3c779fd 00000023: EQ 00000024: PUSH2 0x011c 00000027: JUMPI 00000028: DUP1 00000029: PUSH4 0xb5c736e4 0000002e: EQ 0000002f: PUSH2 0x012f 00000032: JUMPI 00000033: PUSH2 0x003e 00000036: JUMP 00000037: JUMPDEST 00000038: CALLDATASIZE 00000039: PUSH2 0x003e 0000003c: JUMPI 0000003d: STOP 0000003e: JUMPDEST 0000003f: PUSH0 00000040: CALLDATASIZE 00000041: PUSH1 0x60 00000043: PUSH2 0x004a 00000046: PUSH2 0x014d 00000049: JUMP 0000004a: JUMPDEST 0000004b: CALLER 0000004c: PUSH0 0000004d: SWAP1 0000004e: DUP2 0000004f: MSTORE 00000050: PUSH1 0x20 00000052: DUP2 00000053: SWAP1 00000054: MSTORE 00000055: PUSH1 0x40 00000057: SWAP1 00000058: KECCAK256 00000059: SLOAD 0000005a: PUSH1 0x01 0000005c: EQ 0000005d: DUP1 0000005e: ISZERO 0000005f: SWAP1 00000060: PUSH2 0x0086 00000063: JUMPI 00000064: POP 00000065: CALLER 00000066: PUSH2 0x006d 00000069: PUSH2 0x019e 0000006c: JUMP 0000006d: JUMPDEST 0000006e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000083: AND 00000084: EQ 00000085: ISZERO 00000086: JUMPDEST 00000087: ISZERO 00000088: PUSH2 0x00c4 0000008b: JUMPI 0000008c: PUSH1 0x40 0000008e: MLOAD 0000008f: PUSH32 0xd86ad9cf00000000000000000000000000000000000000000000000000000000 000000b0: DUP2 000000b1: MSTORE 000000b2: CALLER 000000b3: PUSH1 0x04 000000b5: DUP3 000000b6: ADD 000000b7: MSTORE 000000b8: PUSH1 0x24 000000ba: ADD 000000bb: JUMPDEST 000000bc: PUSH1 0x40 000000be: MLOAD 000000bf: DUP1 000000c0: SWAP2 000000c1: SUB 000000c2: SWAP1 000000c3: REVERT 000000c4: JUMPDEST 000000c5: PUSH0 000000c6: DUP1 000000c7: PUSH2 0x00d2 000000ca: DUP5 000000cb: DUP7 000000cc: ADD 000000cd: DUP7 000000ce: PUSH2 0x37f8 000000d1: JUMP 000000d2: JUMPDEST 000000d3: SWAP2 000000d4: POP 000000d5: SWAP2 000000d6: POP 000000d7: PUSH2 0x00e0 000000da: DUP3 000000db: DUP3 000000dc: PUSH2 0x0271 000000df: JUMP 000000e0: JUMPDEST 000000e1: SWAP3 000000e2: POP 000000e3: POP 000000e4: POP 000000e5: PUSH2 0x00ec 000000e8: PUSH2 0x02b3 000000eb: JUMP 000000ec: JUMPDEST 000000ed: SWAP2 000000ee: POP 000000ef: POP 000000f0: DUP1 000000f1: MLOAD 000000f2: SWAP1 000000f3: PUSH1 0x20 000000f5: ADD 000000f6: RETURN 000000f7: JUMPDEST 000000f8: PUSH2 0x010a 000000fb: PUSH2 0x0105 000000fe: CALLDATASIZE 000000ff: PUSH1 0x04 00000101: PUSH2 0x395f 00000104: JUMP 00000105: JUMPDEST 00000106: PUSH2 0x02d8 00000109: JUMP 0000010a: JUMPDEST 0000010b: PUSH1 0x40 0000010d: MLOAD 0000010e: SWAP1 0000010f: DUP2 00000110: MSTORE 00000111: PUSH1 0x20 00000113: ADD 00000114: PUSH1 0x40 00000116: MLOAD 00000117: DUP1 00000118: SWAP2 00000119: SUB 0000011a: SWAP1 0000011b: RETURN 0000011c: JUMPDEST 0000011d: PUSH2 0x010a 00000120: PUSH2 0x012a 00000123: CALLDATASIZE 00000124: PUSH1 0x04 00000126: PUSH2 0x3a85 00000129: JUMP 0000012a: JUMPDEST 0000012b: PUSH2 0x0634 0000012e: JUMP 0000012f: JUMPDEST 00000130: CALLVALUE 00000131: DUP1 00000132: ISZERO 00000133: PUSH2 0x013a 00000136: JUMPI 00000137: PUSH0 00000138: PUSH0 00000139: REVERT 0000013a: JUMPDEST 0000013b: POP 0000013c: PUSH2 0x010a 0000013f: PUSH2 0x0149 00000142: CALLDATASIZE 00000143: PUSH1 0x04 00000145: PUSH2 0x3b88 00000148: JUMP 00000149: JUMPDEST 0000014a: SLOAD 0000014b: SWAP1 0000014c: JUMP 0000014d: JUMPDEST 0000014e: PUSH32 0xb9cde754d19acfff2b3ccabc66f256d3563a0bc5805da4205f01a9bda38a2df7 0000016f: TLOAD 00000170: ISZERO 00000171: PUSH2 0x0178 00000174: JUMPI 00000175: PUSH0 00000176: PUSH0 00000177: REVERT 00000178: JUMPDEST 00000179: PUSH1 0x01 0000017b: PUSH32 0xb9cde754d19acfff2b3ccabc66f256d3563a0bc5805da4205f01a9bda38a2df7 0000019c: TSTORE 0000019d: JUMP 0000019e: JUMPDEST 0000019f: PUSH1 0x40 000001a1: MLOAD 000001a2: PUSH32 0xb5c736e400000000000000000000000000000000000000000000000000000000 000001c3: DUP2 000001c4: MSTORE 000001c5: PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 000001e6: PUSH1 0x04 000001e8: DUP3 000001e9: ADD 000001ea: MSTORE 000001eb: PUSH0 000001ec: SWAP1 000001ed: PUSH32 0x00000000000000000000000052aa899454998be5b000ad077a46bbe360f4e497 0000020e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000223: AND 00000224: SWAP1 00000225: PUSH4 0xb5c736e4 0000022a: SWAP1 0000022b: PUSH1 0x24 0000022d: ADD 0000022e: PUSH1 0x20 00000230: PUSH1 0x40 00000232: MLOAD 00000233: DUP1 00000234: DUP4 00000235: SUB 00000236: DUP2 00000237: DUP7 00000238: GAS 00000239: STATICCALL 0000023a: ISZERO 0000023b: DUP1 0000023c: ISZERO 0000023d: PUSH2 0x0248 00000240: JUMPI 00000241: RETURNDATASIZE 00000242: PUSH0 00000243: PUSH0 00000244: RETURNDATACOPY 00000245: RETURNDATASIZE 00000246: PUSH0 00000247: REVERT 00000248: JUMPDEST 00000249: POP 0000024a: POP 0000024b: POP 0000024c: POP 0000024d: PUSH1 0x40 0000024f: MLOAD 00000250: RETURNDATASIZE 00000251: PUSH1 0x1f 00000253: NOT 00000254: PUSH1 0x1f 00000256: DUP3 00000257: ADD 00000258: AND 00000259: DUP3 0000025a: ADD 0000025b: DUP1 0000025c: PUSH1 0x40 0000025e: MSTORE 0000025f: POP 00000260: DUP2 00000261: ADD 00000262: SWAP1 00000263: PUSH2 0x026c 00000266: SWAP2 00000267: SWAP1 00000268: PUSH2 0x3b9f 0000026b: JUMP 0000026c: JUMPDEST 0000026d: SWAP1 0000026e: POP 0000026f: SWAP1 00000270: JUMP 00000271: JUMPDEST 00000272: PUSH1 0x60 00000274: PUSH0 00000275: PUSH0 00000276: DUP4 00000277: MLOAD 00000278: PUSH1 0x20 0000027a: DUP6 0000027b: ADD 0000027c: DUP7 0000027d: GAS 0000027e: DELEGATECALL 0000027f: RETURNDATASIZE 00000280: PUSH1 0x40 00000282: MLOAD 00000283: SWAP3 00000284: POP 00000285: PUSH1 0x1f 00000287: NOT 00000288: PUSH1 0x1f 0000028a: PUSH1 0x20 0000028c: DUP4 0000028d: ADD 0000028e: ADD 0000028f: AND 00000290: DUP4 00000291: ADD 00000292: PUSH1 0x40 00000294: MSTORE 00000295: DUP1 00000296: DUP4 00000297: MSTORE 00000298: DUP1 00000299: PUSH0 0000029a: PUSH1 0x20 0000029c: DUP6 0000029d: ADD 0000029e: RETURNDATACOPY 0000029f: DUP2 000002a0: PUSH2 0x02ab 000002a3: JUMPI 000002a4: DUP1 000002a5: PUSH0 000002a6: PUSH0 000002a7: RETURNDATACOPY 000002a8: DUP1 000002a9: PUSH0 000002aa: REVERT 000002ab: JUMPDEST 000002ac: POP 000002ad: POP 000002ae: SWAP3 000002af: SWAP2 000002b0: POP 000002b1: POP 000002b2: JUMP 000002b3: JUMPDEST 000002b4: PUSH0 000002b5: PUSH32 0xb9cde754d19acfff2b3ccabc66f256d3563a0bc5805da4205f01a9bda38a2df7 000002d6: TSTORE 000002d7: JUMP 000002d8: JUMPDEST 000002d9: PUSH0 000002da: PUSH2 0x02e1 000002dd: PUSH2 0x014d 000002e0: JUMP 000002e1: JUMPDEST 000002e2: PUSH0 000002e3: DUP10 000002e4: SGT 000002e5: ISZERO 000002e6: PUSH2 0x04a6 000002e9: JUMPI 000002ea: PUSH2 0x02f4 000002ed: DUP12 000002ee: DUP12 000002ef: DUP12 000002f0: PUSH2 0x0ff5 000002f3: JUMP 000002f4: JUMPDEST 000002f5: SWAP1 000002f6: POP 000002f7: DUP8 000002f8: DUP2 000002f9: LT 000002fa: ISZERO 000002fb: PUSH2 0x033a 000002fe: JUMPI 000002ff: PUSH1 0x40 00000301: MLOAD 00000302: PUSH32 0x552ac31300000000000000000000000000000000000000000000000000000000 00000323: DUP2 00000324: MSTORE 00000325: PUSH1 0x04 00000327: DUP2 00000328: ADD 00000329: DUP3 0000032a: SWAP1 0000032b: MSTORE 0000032c: PUSH1 0x24 0000032e: DUP2 0000032f: ADD 00000330: DUP10 00000331: SWAP1 00000332: MSTORE 00000333: PUSH1 0x44 00000335: ADD 00000336: PUSH2 0x00bb 00000339: JUMP 0000033a: JUMPDEST 0000033b: PUSH0 0000033c: DUP3 0000033d: SWAP1 0000033e: SUB 0000033f: PUSH2 0x039c 00000342: JUMPI 00000343: DUP10 00000344: ISZERO 00000345: PUSH2 0x037b 00000348: JUMPI 00000349: PUSH2 0x0376 0000034c: PUSH2 0x0358 0000034f: PUSH1 0x20 00000351: DUP14 00000352: ADD 00000353: DUP14 00000354: PUSH2 0x3bb6 00000357: JUMP 00000358: JUMPDEST 00000359: DUP11 0000035a: DUP14 0000035b: PUSH1 0x20 0000035d: ADD 0000035e: PUSH1 0x20 00000360: DUP2 00000361: ADD 00000362: SWAP1 00000363: PUSH2 0x036c 00000366: SWAP2 00000367: SWAP1 00000368: PUSH2 0x3bb6 0000036b: JUMP 0000036c: JUMPDEST 0000036d: DUP5 0000036e: DUP12 0000036f: DUP12 00000370: DUP12 00000371: DUP12 00000372: PUSH2 0x1794 00000375: JUMP 00000376: JUMPDEST 00000377: PUSH2 0x061e 0000037a: JUMP 0000037b: JUMPDEST 0000037c: PUSH2 0x0376 0000037f: PUSH2 0x038e 00000382: PUSH1 0x40 00000384: DUP14 00000385: ADD 00000386: PUSH1 0x20 00000388: DUP15 00000389: ADD 0000038a: PUSH2 0x3bb6 0000038d: JUMP 0000038e: JUMPDEST 0000038f: DUP11 00000390: PUSH2 0x036c 00000393: PUSH1 0x20 00000395: DUP16 00000396: ADD 00000397: DUP16 00000398: PUSH2 0x3bb6 0000039b: JUMP 0000039c: JUMPDEST 0000039d: PUSH1 0x40 0000039f: DUP1 000003a0: MLOAD 000003a1: DUP1 000003a2: DUP3 000003a3: ADD 000003a4: SWAP1 000003a5: SWAP2 000003a6: MSTORE 000003a7: PUSH1 0x0d 000003a9: DUP2 000003aa: MSTORE 000003ab: PUSH32 0x455354494d4154455f5357415000000000000000000000000000000000000000 000003cc: PUSH1 0x20 000003ce: SWAP1 000003cf: SWAP2 000003d0: ADD 000003d1: MSTORE 000003d2: PUSH32 0x9fbe8fb0ae8f68c4e90aaac8dee895c5ba9596470c68a601101c9d65a103a943 000003f3: PUSH2 0x03fc 000003f6: DUP4 000003f7: DUP6 000003f8: PUSH2 0x3bd8 000003fb: JUMP 000003fc: JUMPDEST 000003fd: SUB 000003fe: PUSH2 0x0436 00000401: JUMPI 00000402: PUSH1 0x40 00000404: MLOAD 00000405: PUSH32 0x5fea03c900000000000000000000000000000000000000000000000000000000 00000426: DUP2 00000427: MSTORE 00000428: PUSH1 0x04 0000042a: DUP2 0000042b: ADD 0000042c: DUP3 0000042d: SWAP1 0000042e: MSTORE 0000042f: PUSH1 0x24 00000431: ADD 00000432: PUSH2 0x00bb 00000435: JUMP 00000436: JUMPDEST 00000437: PUSH2 0x0376 0000043a: PUSH1 0x01 0000043c: DUP13 0000043d: DUP13 0000043e: DUP13 0000043f: DUP6 00000440: DUP9 00000441: DUP9 00000442: PUSH1 0x40 00000444: MLOAD 00000445: PUSH1 0x20 00000447: ADD 00000448: PUSH2 0x0456 0000044b: SWAP7 0000044c: SWAP6 0000044d: SWAP5 0000044e: SWAP4 0000044f: SWAP3 00000450: SWAP2 00000451: SWAP1 00000452: PUSH2 0x3cb2 00000455: JUMP 00000456: JUMPDEST 00000457: PUSH1 0x40 00000459: DUP1 0000045a: MLOAD 0000045b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000047c: DUP2 0000047d: DUP5 0000047e: SUB 0000047f: ADD 00000480: DUP2 00000481: MSTORE 00000482: SWAP1 00000483: DUP3 00000484: SWAP1 00000485: MSTORE 00000486: PUSH2 0x0492 00000489: SWAP3 0000048a: SWAP2 0000048b: PUSH1 0x20 0000048d: ADD 0000048e: PUSH2 0x3ce6 00000491: JUMP 00000492: JUMPDEST 00000493: PUSH1 0x40 00000495: MLOAD 00000496: PUSH1 0x20 00000498: DUP2 00000499: DUP4 0000049a: SUB 0000049b: SUB 0000049c: DUP2 0000049d: MSTORE 0000049e: SWAP1 0000049f: PUSH1 0x40 000004a1: MSTORE 000004a2: PUSH2 0x1c54 000004a5: JUMP 000004a6: JUMPDEST 000004a7: PUSH2 0x04b9 000004aa: DUP12 000004ab: DUP12 000004ac: PUSH2 0x04b4 000004af: DUP13 000004b0: PUSH2 0x3d6f 000004b3: JUMP 000004b4: JUMPDEST 000004b5: PUSH2 0x1cdb 000004b8: JUMP 000004b9: JUMPDEST 000004ba: SWAP1 000004bb: POP 000004bc: DUP8 000004bd: DUP2 000004be: GT 000004bf: ISZERO 000004c0: PUSH2 0x04ff 000004c3: JUMPI 000004c4: PUSH1 0x40 000004c6: MLOAD 000004c7: PUSH32 0x97121c2100000000000000000000000000000000000000000000000000000000 000004e8: DUP2 000004e9: MSTORE 000004ea: PUSH1 0x04 000004ec: DUP2 000004ed: ADD 000004ee: DUP3 000004ef: SWAP1 000004f0: MSTORE 000004f1: PUSH1 0x24 000004f3: DUP2 000004f4: ADD 000004f5: DUP10 000004f6: SWAP1 000004f7: MSTORE 000004f8: PUSH1 0x44 000004fa: ADD 000004fb: PUSH2 0x00bb 000004fe: JUMP 000004ff: JUMPDEST 00000500: PUSH0 00000501: DUP3 00000502: SWAP1 00000503: SUB 00000504: PUSH2 0x0564 00000507: JUMPI 00000508: DUP10 00000509: ISZERO 0000050a: PUSH2 0x0543 0000050d: JUMPI 0000050e: PUSH2 0x0376 00000511: PUSH2 0x051d 00000514: PUSH1 0x20 00000516: DUP14 00000517: ADD 00000518: DUP14 00000519: PUSH2 0x3bb6 0000051c: JUMP 0000051d: JUMPDEST 0000051e: DUP3 0000051f: DUP14 00000520: PUSH1 0x20 00000522: ADD 00000523: PUSH1 0x20 00000525: DUP2 00000526: ADD 00000527: SWAP1 00000528: PUSH2 0x0531 0000052b: SWAP2 0000052c: SWAP1 0000052d: PUSH2 0x3bb6 00000530: JUMP 00000531: JUMPDEST 00000532: PUSH2 0x053a 00000535: DUP14 00000536: PUSH2 0x3d6f 00000539: JUMP 0000053a: JUMPDEST 0000053b: DUP12 0000053c: DUP12 0000053d: DUP12 0000053e: DUP12 0000053f: PUSH2 0x1794 00000542: JUMP 00000543: JUMPDEST 00000544: PUSH2 0x0376 00000547: PUSH2 0x0556 0000054a: PUSH1 0x40 0000054c: DUP14 0000054d: ADD 0000054e: PUSH1 0x20 00000550: DUP15 00000551: ADD 00000552: PUSH2 0x3bb6 00000555: JUMP 00000556: JUMPDEST 00000557: DUP3 00000558: PUSH2 0x0531 0000055b: PUSH1 0x20 0000055d: DUP16 0000055e: ADD 0000055f: DUP16 00000560: PUSH2 0x3bb6 00000563: JUMP 00000564: JUMPDEST 00000565: PUSH1 0x40 00000567: DUP1 00000568: MLOAD 00000569: DUP1 0000056a: DUP3 0000056b: ADD 0000056c: SWAP1 0000056d: SWAP2 0000056e: MSTORE 0000056f: PUSH1 0x0d 00000571: DUP2 00000572: MSTORE 00000573: PUSH32 0x455354494d4154455f5357415000000000000000000000000000000000000000 00000594: PUSH1 0x20 00000596: SWAP1 00000597: SWAP2 00000598: ADD 00000599: MSTORE 0000059a: PUSH32 0x9fbe8fb0ae8f68c4e90aaac8dee895c5ba9596470c68a601101c9d65a103a943 000005bb: PUSH2 0x05c4 000005be: DUP4 000005bf: DUP6 000005c0: PUSH2 0x3bd8 000005c3: JUMP 000005c4: JUMPDEST 000005c5: SUB 000005c6: PUSH2 0x05fe 000005c9: JUMPI 000005ca: PUSH1 0x40 000005cc: MLOAD 000005cd: PUSH32 0x5fea03c900000000000000000000000000000000000000000000000000000000 000005ee: DUP2 000005ef: MSTORE 000005f0: PUSH1 0x04 000005f2: DUP2 000005f3: ADD 000005f4: DUP3 000005f5: SWAP1 000005f6: MSTORE 000005f7: PUSH1 0x24 000005f9: ADD 000005fa: PUSH2 0x00bb 000005fd: JUMP 000005fe: JUMPDEST 000005ff: PUSH2 0x061e 00000602: PUSH1 0x01 00000604: DUP13 00000605: DUP13 00000606: DUP13 00000607: DUP6 00000608: DUP9 00000609: DUP9 0000060a: PUSH1 0x40 0000060c: MLOAD 0000060d: PUSH1 0x20 0000060f: ADD 00000610: PUSH2 0x0456 00000613: SWAP7 00000614: SWAP6 00000615: SWAP5 00000616: SWAP4 00000617: SWAP3 00000618: SWAP2 00000619: SWAP1 0000061a: PUSH2 0x3cb2 0000061d: JUMP 0000061e: JUMPDEST 0000061f: PUSH2 0x0626 00000622: PUSH2 0x02b3 00000625: JUMP 00000626: JUMPDEST 00000627: SWAP11 00000628: SWAP10 00000629: POP 0000062a: POP 0000062b: POP 0000062c: POP 0000062d: POP 0000062e: POP 0000062f: POP 00000630: POP 00000631: POP 00000632: POP 00000633: JUMP 00000634: JUMPDEST 00000635: PUSH0 00000636: PUSH2 0x063d 00000639: PUSH2 0x014d 0000063c: JUMP 0000063d: JUMPDEST 0000063e: PUSH0 0000063f: DUP7 00000640: SWAP1 00000641: SUB 00000642: PUSH2 0x0677 00000645: JUMPI 00000646: PUSH1 0x40 00000648: MLOAD 00000649: PUSH32 0xd15d5eeb00000000000000000000000000000000000000000000000000000000 0000066a: DUP2 0000066b: MSTORE 0000066c: PUSH1 0x04 0000066e: ADD 0000066f: PUSH1 0x40 00000671: MLOAD 00000672: DUP1 00000673: SWAP2 00000674: SUB 00000675: SWAP1 00000676: REVERT 00000677: JUMPDEST 00000678: DUP6 00000679: PUSH2 0x0683 0000067c: PUSH1 0x01 0000067e: DUP11 0000067f: PUSH2 0x3da5 00000682: JUMP 00000683: JUMPDEST 00000684: EQ 00000685: PUSH2 0x06c4 00000688: JUMPI 00000689: PUSH1 0x40 0000068b: MLOAD 0000068c: PUSH32 0x88b3170e00000000000000000000000000000000000000000000000000000000 000006ad: DUP2 000006ae: MSTORE 000006af: PUSH1 0x04 000006b1: DUP2 000006b2: ADD 000006b3: DUP10 000006b4: SWAP1 000006b5: MSTORE 000006b6: PUSH1 0x24 000006b8: DUP2 000006b9: ADD 000006ba: DUP8 000006bb: SWAP1 000006bc: MSTORE 000006bd: PUSH1 0x44 000006bf: ADD 000006c0: PUSH2 0x00bb 000006c3: JUMP 000006c4: JUMPDEST 000006c5: DUP3 000006c6: DUP7 000006c7: EQ 000006c8: PUSH2 0x0707 000006cb: JUMPI 000006cc: PUSH1 0x40 000006ce: MLOAD 000006cf: PUSH32 0xb932f13700000000000000000000000000000000000000000000000000000000 000006f0: DUP2 000006f1: MSTORE 000006f2: PUSH1 0x04 000006f4: DUP2 000006f5: ADD 000006f6: DUP5 000006f7: SWAP1 000006f8: MSTORE 000006f9: PUSH1 0x24 000006fb: DUP2 000006fc: ADD 000006fd: DUP8 000006fe: SWAP1 000006ff: MSTORE 00000700: PUSH1 0x44 00000702: ADD 00000703: PUSH2 0x00bb 00000706: JUMP 00000707: JUMPDEST 00000708: PUSH0 00000709: DUP6 0000070a: SGT 0000070b: ISZERO 0000070c: PUSH2 0x0b86 0000070f: JUMPI 00000710: POP 00000711: DUP4 00000712: PUSH0 00000713: JUMPDEST 00000714: DUP7 00000715: DUP2 00000716: LT 00000717: ISZERO 00000718: PUSH2 0x0a15 0000071b: JUMPI 0000071c: PUSH0 0000071d: DUP9 0000071e: DUP9 0000071f: DUP4 00000720: DUP2 00000721: DUP2 00000722: LT 00000723: PUSH2 0x072e 00000726: JUMPI 00000727: PUSH2 0x072e 0000072a: PUSH2 0x3db8 0000072d: JUMP 0000072e: JUMPDEST 0000072f: PUSH2 0x0744 00000732: SWAP3 00000733: PUSH1 0x20 00000735: PUSH1 0x60 00000737: SWAP1 00000738: SWAP3 00000739: MUL 0000073a: ADD 0000073b: SWAP1 0000073c: DUP2 0000073d: ADD 0000073e: SWAP2 0000073f: POP 00000740: PUSH2 0x3bb6 00000743: JUMP 00000744: JUMPDEST 00000745: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000075a: AND 0000075b: DUP12 0000075c: DUP12 0000075d: DUP5 0000075e: DUP2 0000075f: DUP2 00000760: LT 00000761: PUSH2 0x076c 00000764: JUMPI 00000765: PUSH2 0x076c 00000768: PUSH2 0x3db8 0000076b: JUMP 0000076c: JUMPDEST 0000076d: SWAP1 0000076e: POP 0000076f: PUSH1 0x20 00000771: MUL 00000772: ADD 00000773: PUSH1 0x20 00000775: DUP2 00000776: ADD 00000777: SWAP1 00000778: PUSH2 0x0781 0000077b: SWAP2 0000077c: SWAP1 0000077d: PUSH2 0x3bb6 00000780: JUMP 00000781: JUMPDEST 00000782: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000797: AND 00000798: EQ 00000799: DUP1 0000079a: ISZERO 0000079b: PUSH2 0x0821 0000079e: JUMPI 0000079f: POP 000007a0: DUP9 000007a1: DUP9 000007a2: DUP4 000007a3: DUP2 000007a4: DUP2 000007a5: LT 000007a6: PUSH2 0x07b1 000007a9: JUMPI 000007aa: PUSH2 0x07b1 000007ad: PUSH2 0x3db8 000007b0: JUMP 000007b1: JUMPDEST 000007b2: SWAP1 000007b3: POP 000007b4: PUSH1 0x60 000007b6: MUL 000007b7: ADD 000007b8: PUSH1 0x20 000007ba: ADD 000007bb: PUSH1 0x20 000007bd: DUP2 000007be: ADD 000007bf: SWAP1 000007c0: PUSH2 0x07c9 000007c3: SWAP2 000007c4: SWAP1 000007c5: PUSH2 0x3bb6 000007c8: JUMP 000007c9: JUMPDEST 000007ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007df: AND 000007e0: DUP12 000007e1: DUP12 000007e2: DUP5 000007e3: PUSH1 0x01 000007e5: ADD 000007e6: DUP2 000007e7: DUP2 000007e8: LT 000007e9: PUSH2 0x07f4 000007ec: JUMPI 000007ed: PUSH2 0x07f4 000007f0: PUSH2 0x3db8 000007f3: JUMP 000007f4: JUMPDEST 000007f5: SWAP1 000007f6: POP 000007f7: PUSH1 0x20 000007f9: MUL 000007fa: ADD 000007fb: PUSH1 0x20 000007fd: DUP2 000007fe: ADD 000007ff: SWAP1 00000800: PUSH2 0x0809 00000803: SWAP2 00000804: SWAP1 00000805: PUSH2 0x3bb6 00000808: JUMP 00000809: JUMPDEST 0000080a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000081f: AND 00000820: EQ 00000821: JUMPDEST 00000822: ISZERO 00000823: PUSH2 0x082e 00000826: JUMPI 00000827: POP 00000828: PUSH1 0x01 0000082a: PUSH2 0x0971 0000082d: JUMP 0000082e: JUMPDEST 0000082f: DUP9 00000830: DUP9 00000831: DUP4 00000832: DUP2 00000833: DUP2 00000834: LT 00000835: PUSH2 0x0840 00000838: JUMPI 00000839: PUSH2 0x0840 0000083c: PUSH2 0x3db8 0000083f: JUMP 00000840: JUMPDEST 00000841: SWAP1 00000842: POP 00000843: PUSH1 0x60 00000845: MUL 00000846: ADD 00000847: PUSH1 0x20 00000849: ADD 0000084a: PUSH1 0x20 0000084c: DUP2 0000084d: ADD 0000084e: SWAP1 0000084f: PUSH2 0x0858 00000852: SWAP2 00000853: SWAP1 00000854: PUSH2 0x3bb6 00000857: JUMP 00000858: JUMPDEST 00000859: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000086e: AND 0000086f: DUP12 00000870: DUP12 00000871: DUP5 00000872: DUP2 00000873: DUP2 00000874: LT 00000875: PUSH2 0x0880 00000878: JUMPI 00000879: PUSH2 0x0880 0000087c: PUSH2 0x3db8 0000087f: JUMP 00000880: JUMPDEST 00000881: SWAP1 00000882: POP 00000883: PUSH1 0x20 00000885: MUL 00000886: ADD 00000887: PUSH1 0x20 00000889: DUP2 0000088a: ADD 0000088b: SWAP1 0000088c: PUSH2 0x0895 0000088f: SWAP2 00000890: SWAP1 00000891: PUSH2 0x3bb6 00000894: JUMP 00000895: JUMPDEST 00000896: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008ab: AND 000008ac: EQ 000008ad: DUP1 000008ae: ISZERO 000008af: PUSH2 0x0933 000008b2: JUMPI 000008b3: POP 000008b4: DUP9 000008b5: DUP9 000008b6: DUP4 000008b7: DUP2 000008b8: DUP2 000008b9: LT 000008ba: PUSH2 0x08c5 000008bd: JUMPI 000008be: PUSH2 0x08c5 000008c1: PUSH2 0x3db8 000008c4: JUMP 000008c5: JUMPDEST 000008c6: PUSH2 0x08db 000008c9: SWAP3 000008ca: PUSH1 0x20 000008cc: PUSH1 0x60 000008ce: SWAP1 000008cf: SWAP3 000008d0: MUL 000008d1: ADD 000008d2: SWAP1 000008d3: DUP2 000008d4: ADD 000008d5: SWAP2 000008d6: POP 000008d7: PUSH2 0x3bb6 000008da: JUMP 000008db: JUMPDEST 000008dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008f1: AND 000008f2: DUP12 000008f3: DUP12 000008f4: DUP5 000008f5: PUSH1 0x01 000008f7: ADD 000008f8: DUP2 000008f9: DUP2 000008fa: LT 000008fb: PUSH2 0x0906 000008fe: JUMPI 000008ff: PUSH2 0x0906 00000902: PUSH2 0x3db8 00000905: JUMP 00000906: JUMPDEST 00000907: SWAP1 00000908: POP 00000909: PUSH1 0x20 0000090b: MUL 0000090c: ADD 0000090d: PUSH1 0x20 0000090f: DUP2 00000910: ADD 00000911: SWAP1 00000912: PUSH2 0x091b 00000915: SWAP2 00000916: SWAP1 00000917: PUSH2 0x3bb6 0000091a: JUMP 0000091b: JUMPDEST 0000091c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000931: AND 00000932: EQ 00000933: JUMPDEST 00000934: ISZERO 00000935: PUSH2 0x093f 00000938: JUMPI 00000939: POP 0000093a: PUSH0 0000093b: PUSH2 0x0971 0000093e: JUMP 0000093f: JUMPDEST 00000940: PUSH1 0x40 00000942: MLOAD 00000943: PUSH32 0x0a33bc9500000000000000000000000000000000000000000000000000000000 00000964: DUP2 00000965: MSTORE 00000966: PUSH1 0x04 00000968: ADD 00000969: PUSH1 0x40 0000096b: MLOAD 0000096c: DUP1 0000096d: SWAP2 0000096e: SUB 0000096f: SWAP1 00000970: REVERT 00000971: JUMPDEST 00000972: PUSH2 0x0993 00000975: DUP10 00000976: DUP10 00000977: DUP5 00000978: DUP2 00000979: DUP2 0000097a: LT 0000097b: PUSH2 0x0986 0000097e: JUMPI 0000097f: PUSH2 0x0986 00000982: PUSH2 0x3db8 00000985: JUMP 00000986: JUMPDEST 00000987: SWAP1 00000988: POP 00000989: PUSH1 0x60 0000098b: MUL 0000098c: ADD 0000098d: DUP3 0000098e: DUP6 0000098f: PUSH2 0x0ff5 00000992: JUMP 00000993: JUMPDEST 00000994: SWAP3 00000995: POP 00000996: DUP6 00000997: DUP6 00000998: DUP4 00000999: DUP2 0000099a: DUP2 0000099b: LT 0000099c: PUSH2 0x09a7 0000099f: JUMPI 000009a0: PUSH2 0x09a7 000009a3: PUSH2 0x3db8 000009a6: JUMP 000009a7: JUMPDEST 000009a8: SWAP1 000009a9: POP 000009aa: PUSH1 0x20 000009ac: MUL 000009ad: ADD 000009ae: CALLDATALOAD 000009af: DUP4 000009b0: LT 000009b1: ISZERO 000009b2: PUSH2 0x0a0c 000009b5: JUMPI 000009b6: DUP3 000009b7: DUP7 000009b8: DUP7 000009b9: DUP5 000009ba: DUP2 000009bb: DUP2 000009bc: LT 000009bd: PUSH2 0x09c8 000009c0: JUMPI 000009c1: PUSH2 0x09c8 000009c4: PUSH2 0x3db8 000009c7: JUMP 000009c8: JUMPDEST 000009c9: SWAP1 000009ca: POP 000009cb: PUSH1 0x20 000009cd: MUL 000009ce: ADD 000009cf: CALLDATALOAD 000009d0: PUSH1 0x40 000009d2: MLOAD 000009d3: PUSH32 0x552ac31300000000000000000000000000000000000000000000000000000000 000009f4: DUP2 000009f5: MSTORE 000009f6: PUSH1 0x04 000009f8: ADD 000009f9: PUSH2 0x00bb 000009fc: SWAP3 000009fd: SWAP2 000009fe: SWAP1 000009ff: SWAP2 00000a00: DUP3 00000a01: MSTORE 00000a02: PUSH1 0x20 00000a04: DUP3 00000a05: ADD 00000a06: MSTORE 00000a07: PUSH1 0x40 00000a09: ADD 00000a0a: SWAP1 00000a0b: JUMP 00000a0c: JUMPDEST 00000a0d: POP 00000a0e: PUSH1 0x01 00000a10: ADD 00000a11: PUSH2 0x0713 00000a14: JUMP 00000a15: JUMPDEST 00000a16: POP 00000a17: PUSH2 0x0a23 00000a1a: PUSH1 0x60 00000a1c: DUP4 00000a1d: ADD 00000a1e: DUP4 00000a1f: PUSH2 0x3de5 00000a22: JUMP 00000a23: JUMPDEST 00000a24: SWAP1 00000a25: POP 00000a26: PUSH0 00000a27: SUB 00000a28: PUSH2 0x0ab2 00000a2b: JUMPI 00000a2c: PUSH2 0x0aad 00000a2f: DUP10 00000a30: DUP10 00000a31: PUSH0 00000a32: DUP2 00000a33: DUP2 00000a34: LT 00000a35: PUSH2 0x0a40 00000a38: JUMPI 00000a39: PUSH2 0x0a40 00000a3c: PUSH2 0x3db8 00000a3f: JUMP 00000a40: JUMPDEST 00000a41: SWAP1 00000a42: POP 00000a43: PUSH1 0x20 00000a45: MUL 00000a46: ADD 00000a47: PUSH1 0x20 00000a49: DUP2 00000a4a: ADD 00000a4b: SWAP1 00000a4c: PUSH2 0x0a55 00000a4f: SWAP2 00000a50: SWAP1 00000a51: PUSH2 0x3bb6 00000a54: JUMP 00000a55: JUMPDEST 00000a56: DUP7 00000a57: DUP12 00000a58: DUP12 00000a59: DUP11 00000a5a: DUP2 00000a5b: DUP2 00000a5c: LT 00000a5d: PUSH2 0x0a68 00000a60: JUMPI 00000a61: PUSH2 0x0a68 00000a64: PUSH2 0x3db8 00000a67: JUMP 00000a68: JUMPDEST 00000a69: SWAP1 00000a6a: POP 00000a6b: PUSH1 0x20 00000a6d: MUL 00000a6e: ADD 00000a6f: PUSH1 0x20 00000a71: DUP2 00000a72: ADD 00000a73: SWAP1 00000a74: PUSH2 0x0a7d 00000a77: SWAP2 00000a78: SWAP1 00000a79: PUSH2 0x3bb6 00000a7c: JUMP 00000a7d: JUMPDEST 00000a7e: DUP5 00000a7f: PUSH2 0x0a8b 00000a82: PUSH1 0x20 00000a84: DUP9 00000a85: ADD 00000a86: DUP9 00000a87: PUSH2 0x3bb6 00000a8a: JUMP 00000a8b: JUMPDEST 00000a8c: PUSH2 0x0a9b 00000a8f: PUSH1 0x40 00000a91: DUP10 00000a92: ADD 00000a93: PUSH1 0x20 00000a95: DUP11 00000a96: ADD 00000a97: PUSH2 0x3e46 00000a9a: JUMP 00000a9b: JUMPDEST 00000a9c: PUSH2 0x0aa8 00000a9f: PUSH1 0x40 00000aa1: DUP11 00000aa2: ADD 00000aa3: DUP11 00000aa4: PUSH2 0x3de5 00000aa7: JUMP 00000aa8: JUMPDEST 00000aa9: PUSH2 0x1794 00000aac: JUMP 00000aad: JUMPDEST 00000aae: PUSH2 0x0fe1 00000ab1: JUMP 00000ab2: JUMPDEST 00000ab3: PUSH1 0x40 00000ab5: DUP1 00000ab6: MLOAD 00000ab7: DUP1 00000ab8: DUP3 00000ab9: ADD 00000aba: SWAP1 00000abb: SWAP2 00000abc: MSTORE 00000abd: PUSH1 0x0d 00000abf: DUP2 00000ac0: MSTORE 00000ac1: PUSH32 0x455354494d4154455f5357415000000000000000000000000000000000000000 00000ae2: PUSH1 0x20 00000ae4: SWAP1 00000ae5: SWAP2 00000ae6: ADD 00000ae7: MSTORE 00000ae8: PUSH32 0x9fbe8fb0ae8f68c4e90aaac8dee895c5ba9596470c68a601101c9d65a103a943 00000b09: PUSH2 0x0b15 00000b0c: PUSH1 0x60 00000b0e: DUP5 00000b0f: ADD 00000b10: DUP5 00000b11: PUSH2 0x3de5 00000b14: JUMP 00000b15: JUMPDEST 00000b16: PUSH2 0x0b1e 00000b19: SWAP2 00000b1a: PUSH2 0x3bd8 00000b1d: JUMP 00000b1e: JUMPDEST 00000b1f: SUB 00000b20: PUSH2 0x0b58 00000b23: JUMPI 00000b24: PUSH1 0x40 00000b26: MLOAD 00000b27: PUSH32 0x5fea03c900000000000000000000000000000000000000000000000000000000 00000b48: DUP2 00000b49: MSTORE 00000b4a: PUSH1 0x04 00000b4c: DUP2 00000b4d: ADD 00000b4e: DUP3 00000b4f: SWAP1 00000b50: MSTORE 00000b51: PUSH1 0x24 00000b53: ADD 00000b54: PUSH2 0x00bb 00000b57: JUMP 00000b58: JUMPDEST 00000b59: PUSH2 0x0aad 00000b5c: PUSH0 00000b5d: DUP11 00000b5e: DUP11 00000b5f: DUP11 00000b60: DUP11 00000b61: DUP11 00000b62: DUP8 00000b63: PUSH2 0x0b6f 00000b66: PUSH1 0x60 00000b68: DUP12 00000b69: ADD 00000b6a: DUP12 00000b6b: PUSH2 0x3de5 00000b6e: JUMP 00000b6f: JUMPDEST 00000b70: PUSH1 0x40 00000b72: MLOAD 00000b73: PUSH1 0x20 00000b75: ADD 00000b76: PUSH2 0x0456 00000b79: SWAP9 00000b7a: SWAP8 00000b7b: SWAP7 00000b7c: SWAP6 00000b7d: SWAP5 00000b7e: SWAP4 00000b7f: SWAP3 00000b80: SWAP2 00000b81: SWAP1 00000b82: PUSH2 0x3e5f 00000b85: JUMP 00000b86: JUMPDEST 00000b87: PUSH2 0x0b8f 00000b8a: DUP6 00000b8b: PUSH2 0x3d6f 00000b8e: JUMP 00000b8f: JUMPDEST 00000b90: SWAP1 00000b91: POP 00000b92: DUP6 00000b93: JUMPDEST 00000b94: DUP1 00000b95: ISZERO 00000b96: PUSH2 0x0ea6 00000b99: JUMPI 00000b9a: PUSH0 00000b9b: DUP9 00000b9c: DUP9 00000b9d: PUSH1 0x01 00000b9f: DUP5 00000ba0: SUB 00000ba1: DUP2 00000ba2: DUP2 00000ba3: LT 00000ba4: PUSH2 0x0baf 00000ba7: JUMPI 00000ba8: PUSH2 0x0baf 00000bab: PUSH2 0x3db8 00000bae: JUMP 00000baf: JUMPDEST 00000bb0: PUSH2 0x0bc5 00000bb3: SWAP3 00000bb4: PUSH1 0x20 00000bb6: PUSH1 0x60 00000bb8: SWAP1 00000bb9: SWAP3 00000bba: MUL 00000bbb: ADD 00000bbc: SWAP1 00000bbd: DUP2 00000bbe: ADD 00000bbf: SWAP2 00000bc0: POP 00000bc1: PUSH2 0x3bb6 00000bc4: JUMP 00000bc5: JUMPDEST 00000bc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bdb: AND 00000bdc: DUP12 00000bdd: DUP12 00000bde: PUSH1 0x01 00000be0: DUP6 00000be1: SUB 00000be2: DUP2 00000be3: DUP2 00000be4: LT 00000be5: PUSH2 0x0bf0 00000be8: JUMPI 00000be9: PUSH2 0x0bf0 00000bec: PUSH2 0x3db8 00000bef: JUMP 00000bf0: JUMPDEST 00000bf1: SWAP1 00000bf2: POP 00000bf3: PUSH1 0x20 00000bf5: MUL 00000bf6: ADD 00000bf7: PUSH1 0x20 00000bf9: DUP2 00000bfa: ADD 00000bfb: SWAP1 00000bfc: PUSH2 0x0c05 00000bff: SWAP2 00000c00: SWAP1 00000c01: PUSH2 0x3bb6 00000c04: JUMP 00000c05: JUMPDEST 00000c06: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c1b: AND 00000c1c: EQ 00000c1d: DUP1 00000c1e: ISZERO 00000c1f: PUSH2 0x0ca5 00000c22: JUMPI 00000c23: POP 00000c24: DUP9 00000c25: DUP9 00000c26: PUSH1 0x01 00000c28: DUP5 00000c29: SUB 00000c2a: DUP2 00000c2b: DUP2 00000c2c: LT 00000c2d: PUSH2 0x0c38 00000c30: JUMPI 00000c31: PUSH2 0x0c38 00000c34: PUSH2 0x3db8 00000c37: JUMP 00000c38: JUMPDEST 00000c39: SWAP1 00000c3a: POP 00000c3b: PUSH1 0x60 00000c3d: MUL 00000c3e: ADD 00000c3f: PUSH1 0x20 00000c41: ADD 00000c42: PUSH1 0x20 00000c44: DUP2 00000c45: ADD 00000c46: SWAP1 00000c47: PUSH2 0x0c50 00000c4a: SWAP2 00000c4b: SWAP1 00000c4c: PUSH2 0x3bb6 00000c4f: JUMP 00000c50: JUMPDEST 00000c51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c66: AND 00000c67: DUP12 00000c68: DUP12 00000c69: DUP5 00000c6a: DUP2 00000c6b: DUP2 00000c6c: LT 00000c6d: PUSH2 0x0c78 00000c70: JUMPI 00000c71: PUSH2 0x0c78 00000c74: PUSH2 0x3db8 00000c77: JUMP 00000c78: JUMPDEST 00000c79: SWAP1 00000c7a: POP 00000c7b: PUSH1 0x20 00000c7d: MUL 00000c7e: ADD 00000c7f: PUSH1 0x20 00000c81: DUP2 00000c82: ADD 00000c83: SWAP1 00000c84: PUSH2 0x0c8d 00000c87: SWAP2 00000c88: SWAP1 00000c89: PUSH2 0x3bb6 00000c8c: JUMP 00000c8d: JUMPDEST 00000c8e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ca3: AND 00000ca4: EQ 00000ca5: JUMPDEST 00000ca6: ISZERO 00000ca7: PUSH2 0x0cb2 00000caa: JUMPI 00000cab: POP 00000cac: PUSH1 0x01 00000cae: PUSH2 0x0dc5 00000cb1: JUMP 00000cb2: JUMPDEST 00000cb3: DUP9 00000cb4: DUP9 00000cb5: PUSH1 0x01 00000cb7: DUP5 00000cb8: SUB 00000cb9: DUP2 00000cba: DUP2 00000cbb: LT 00000cbc: PUSH2 0x0cc7 00000cbf: JUMPI 00000cc0: PUSH2 0x0cc7 00000cc3: PUSH2 0x3db8 00000cc6: JUMP 00000cc7: JUMPDEST 00000cc8: SWAP1 00000cc9: POP 00000cca: PUSH1 0x60 00000ccc: MUL 00000ccd: ADD 00000cce: PUSH1 0x20 00000cd0: ADD 00000cd1: PUSH1 0x20 00000cd3: DUP2 00000cd4: ADD 00000cd5: SWAP1 00000cd6: PUSH2 0x0cdf 00000cd9: SWAP2 00000cda: SWAP1 00000cdb: PUSH2 0x3bb6 00000cde: JUMP 00000cdf: JUMPDEST 00000ce0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cf5: AND 00000cf6: DUP12 00000cf7: DUP12 00000cf8: PUSH1 0x01 00000cfa: DUP6 00000cfb: SUB 00000cfc: DUP2 00000cfd: DUP2 00000cfe: LT 00000cff: PUSH2 0x0d0a 00000d02: JUMPI 00000d03: PUSH2 0x0d0a 00000d06: PUSH2 0x3db8 00000d09: JUMP 00000d0a: JUMPDEST 00000d0b: SWAP1 00000d0c: POP 00000d0d: PUSH1 0x20 00000d0f: MUL 00000d10: ADD 00000d11: PUSH1 0x20 00000d13: DUP2 00000d14: ADD 00000d15: SWAP1 00000d16: PUSH2 0x0d1f 00000d19: SWAP2 00000d1a: SWAP1 00000d1b: PUSH2 0x3bb6 00000d1e: JUMP 00000d1f: JUMPDEST 00000d20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d35: AND 00000d36: EQ 00000d37: DUP1 00000d38: ISZERO 00000d39: PUSH2 0x0dbd 00000d3c: JUMPI 00000d3d: POP 00000d3e: DUP9 00000d3f: DUP9 00000d40: PUSH1 0x01 00000d42: DUP5 00000d43: SUB 00000d44: DUP2 00000d45: DUP2 00000d46: LT 00000d47: PUSH2 0x0d52 00000d4a: JUMPI 00000d4b: PUSH2 0x0d52 00000d4e: PUSH2 0x3db8 00000d51: JUMP 00000d52: JUMPDEST 00000d53: PUSH2 0x0d68 00000d56: SWAP3 00000d57: PUSH1 0x20 00000d59: PUSH1 0x60 00000d5b: SWAP1 00000d5c: SWAP3 00000d5d: MUL 00000d5e: ADD 00000d5f: SWAP1 00000d60: DUP2 00000d61: ADD 00000d62: SWAP2 00000d63: POP 00000d64: PUSH2 0x3bb6 00000d67: JUMP 00000d68: JUMPDEST 00000d69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d7e: AND 00000d7f: DUP12 00000d80: DUP12 00000d81: DUP5 00000d82: DUP2 00000d83: DUP2 00000d84: LT 00000d85: PUSH2 0x0d90 00000d88: JUMPI 00000d89: PUSH2 0x0d90 00000d8c: PUSH2 0x3db8 00000d8f: JUMP 00000d90: JUMPDEST 00000d91: SWAP1 00000d92: POP 00000d93: PUSH1 0x20 00000d95: MUL 00000d96: ADD 00000d97: PUSH1 0x20 00000d99: DUP2 00000d9a: ADD 00000d9b: SWAP1 00000d9c: PUSH2 0x0da5 00000d9f: SWAP2 00000da0: SWAP1 00000da1: PUSH2 0x3bb6 00000da4: JUMP 00000da5: JUMPDEST 00000da6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dbb: AND 00000dbc: EQ 00000dbd: JUMPDEST 00000dbe: ISZERO 00000dbf: PUSH2 0x093f 00000dc2: JUMPI 00000dc3: POP 00000dc4: PUSH0 00000dc5: JUMPDEST 00000dc6: PUSH2 0x0df1 00000dc9: DUP10 00000dca: DUP10 00000dcb: PUSH2 0x0dd5 00000dce: PUSH1 0x01 00000dd0: DUP7 00000dd1: PUSH2 0x3da5 00000dd4: JUMP 00000dd5: JUMPDEST 00000dd6: DUP2 00000dd7: DUP2 00000dd8: LT 00000dd9: PUSH2 0x0de4 00000ddc: JUMPI 00000ddd: PUSH2 0x0de4 00000de0: PUSH2 0x3db8 00000de3: JUMP 00000de4: JUMPDEST 00000de5: SWAP1 00000de6: POP 00000de7: PUSH1 0x60 00000de9: MUL 00000dea: ADD 00000deb: DUP3 00000dec: DUP6 00000ded: PUSH2 0x1cdb 00000df0: JUMP 00000df1: JUMPDEST 00000df2: SWAP3 00000df3: POP 00000df4: DUP6 00000df5: DUP6 00000df6: PUSH2 0x0e00 00000df9: PUSH1 0x01 00000dfb: DUP6 00000dfc: PUSH2 0x3da5 00000dff: JUMP 00000e00: JUMPDEST 00000e01: DUP2 00000e02: DUP2 00000e03: LT 00000e04: PUSH2 0x0e0f 00000e07: JUMPI 00000e08: PUSH2 0x0e0f 00000e0b: PUSH2 0x3db8 00000e0e: JUMP 00000e0f: JUMPDEST 00000e10: SWAP1 00000e11: POP 00000e12: PUSH1 0x20 00000e14: MUL 00000e15: ADD 00000e16: CALLDATALOAD 00000e17: DUP4 00000e18: GT 00000e19: ISZERO 00000e1a: PUSH2 0x0e7e 00000e1d: JUMPI 00000e1e: DUP3 00000e1f: DUP7 00000e20: DUP7 00000e21: PUSH2 0x0e2b 00000e24: PUSH1 0x01 00000e26: DUP7 00000e27: PUSH2 0x3da5 00000e2a: JUMP 00000e2b: JUMPDEST 00000e2c: DUP2 00000e2d: DUP2 00000e2e: LT 00000e2f: PUSH2 0x0e3a 00000e32: JUMPI 00000e33: PUSH2 0x0e3a 00000e36: PUSH2 0x3db8 00000e39: JUMP 00000e3a: JUMPDEST 00000e3b: SWAP1 00000e3c: POP 00000e3d: PUSH1 0x20 00000e3f: MUL 00000e40: ADD 00000e41: CALLDATALOAD 00000e42: PUSH1 0x40 00000e44: MLOAD 00000e45: PUSH32 0x97121c2100000000000000000000000000000000000000000000000000000000 00000e66: DUP2 00000e67: MSTORE 00000e68: PUSH1 0x04 00000e6a: ADD 00000e6b: PUSH2 0x00bb 00000e6e: SWAP3 00000e6f: SWAP2 00000e70: SWAP1 00000e71: SWAP2 00000e72: DUP3 00000e73: MSTORE 00000e74: PUSH1 0x20 00000e76: DUP3 00000e77: ADD 00000e78: MSTORE 00000e79: PUSH1 0x40 00000e7b: ADD 00000e7c: SWAP1 00000e7d: JUMP 00000e7e: JUMPDEST 00000e7f: POP 00000e80: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000ea1: ADD 00000ea2: PUSH2 0x0b93 00000ea5: JUMP 00000ea6: JUMPDEST 00000ea7: POP 00000ea8: PUSH2 0x0eb4 00000eab: PUSH1 0x60 00000ead: DUP4 00000eae: ADD 00000eaf: DUP4 00000eb0: PUSH2 0x3de5 00000eb3: JUMP 00000eb4: JUMPDEST 00000eb5: SWAP1 00000eb6: POP 00000eb7: PUSH0 00000eb8: SUB 00000eb9: PUSH2 0x0f24 00000ebc: JUMPI 00000ebd: PUSH2 0x0aad 00000ec0: DUP10 00000ec1: DUP10 00000ec2: PUSH0 00000ec3: DUP2 00000ec4: DUP2 00000ec5: LT 00000ec6: PUSH2 0x0ed1 00000ec9: JUMPI 00000eca: PUSH2 0x0ed1 00000ecd: PUSH2 0x3db8 00000ed0: JUMP 00000ed1: JUMPDEST 00000ed2: SWAP1 00000ed3: POP 00000ed4: PUSH1 0x20 00000ed6: MUL 00000ed7: ADD 00000ed8: PUSH1 0x20 00000eda: DUP2 00000edb: ADD 00000edc: SWAP1 00000edd: PUSH2 0x0ee6 00000ee0: SWAP2 00000ee1: SWAP1 00000ee2: PUSH2 0x3bb6 00000ee5: JUMP 00000ee6: JUMPDEST 00000ee7: DUP3 00000ee8: DUP12 00000ee9: DUP12 00000eea: DUP11 00000eeb: DUP2 00000eec: DUP2 00000eed: LT 00000eee: PUSH2 0x0ef9 00000ef1: JUMPI 00000ef2: PUSH2 0x0ef9 00000ef5: PUSH2 0x3db8 00000ef8: JUMP 00000ef9: JUMPDEST 00000efa: SWAP1 00000efb: POP 00000efc: PUSH1 0x20 00000efe: MUL 00000eff: ADD 00000f00: PUSH1 0x20 00000f02: DUP2 00000f03: ADD 00000f04: SWAP1 00000f05: PUSH2 0x0f0e 00000f08: SWAP2 00000f09: SWAP1 00000f0a: PUSH2 0x3bb6 00000f0d: JUMP 00000f0e: JUMPDEST 00000f0f: PUSH2 0x0f17 00000f12: DUP10 00000f13: PUSH2 0x3d6f 00000f16: JUMP 00000f17: JUMPDEST 00000f18: PUSH2 0x0a8b 00000f1b: PUSH1 0x20 00000f1d: DUP9 00000f1e: ADD 00000f1f: DUP9 00000f20: PUSH2 0x3bb6 00000f23: JUMP 00000f24: JUMPDEST 00000f25: PUSH1 0x40 00000f27: DUP1 00000f28: MLOAD 00000f29: DUP1 00000f2a: DUP3 00000f2b: ADD 00000f2c: SWAP1 00000f2d: SWAP2 00000f2e: MSTORE 00000f2f: PUSH1 0x0d 00000f31: DUP2 00000f32: MSTORE 00000f33: PUSH32 0x455354494d4154455f5357415000000000000000000000000000000000000000 00000f54: PUSH1 0x20 00000f56: SWAP1 00000f57: SWAP2 00000f58: ADD 00000f59: MSTORE 00000f5a: PUSH32 0x9fbe8fb0ae8f68c4e90aaac8dee895c5ba9596470c68a601101c9d65a103a943 00000f7b: PUSH2 0x0f87 00000f7e: PUSH1 0x60 00000f80: DUP5 00000f81: ADD 00000f82: DUP5 00000f83: PUSH2 0x3de5 00000f86: JUMP 00000f87: JUMPDEST 00000f88: PUSH2 0x0f90 00000f8b: SWAP2 00000f8c: PUSH2 0x3bd8 00000f8f: JUMP 00000f90: JUMPDEST 00000f91: SUB 00000f92: PUSH2 0x0fca 00000f95: JUMPI 00000f96: PUSH1 0x40 00000f98: MLOAD 00000f99: PUSH32 0x5fea03c900000000000000000000000000000000000000000000000000000000 00000fba: DUP2 00000fbb: MSTORE 00000fbc: PUSH1 0x04 00000fbe: DUP2 00000fbf: ADD 00000fc0: DUP3 00000fc1: SWAP1 00000fc2: MSTORE 00000fc3: PUSH1 0x24 00000fc5: ADD 00000fc6: PUSH2 0x00bb 00000fc9: JUMP 00000fca: JUMPDEST 00000fcb: PUSH2 0x0fe1 00000fce: PUSH0 00000fcf: DUP11 00000fd0: DUP11 00000fd1: DUP11 00000fd2: DUP11 00000fd3: DUP11 00000fd4: DUP8 00000fd5: PUSH2 0x0b6f 00000fd8: PUSH1 0x60 00000fda: DUP12 00000fdb: ADD 00000fdc: DUP12 00000fdd: PUSH2 0x3de5 00000fe0: JUMP 00000fe1: JUMPDEST 00000fe2: PUSH2 0x0fe9 00000fe5: PUSH2 0x02b3 00000fe8: JUMP 00000fe9: JUMPDEST 00000fea: SWAP9 00000feb: SWAP8 00000fec: POP 00000fed: POP 00000fee: POP 00000fef: POP 00000ff0: POP 00000ff1: POP 00000ff2: POP 00000ff3: POP 00000ff4: JUMP 00000ff5: JUMPDEST 00000ff6: PUSH0 00000ff7: PUSH0 00000ff8: DUP5 00000ff9: PUSH1 0x40 00000ffb: MLOAD 00000ffc: PUSH1 0x20 00000ffe: ADD 00000fff: PUSH2 0x1008 00001002: SWAP2 00001003: SWAP1 00001004: PUSH2 0x3f1d 00001007: JUMP 00001008: JUMPDEST 00001009: PUSH1 0x40 0000100b: DUP1 0000100c: MLOAD 0000100d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000102e: DUP2 0000102f: DUP5 00001030: SUB 00001031: ADD 00001032: DUP2 00001033: MSTORE 00001034: SWAP2 00001035: DUP2 00001036: MSTORE 00001037: DUP2 00001038: MLOAD 00001039: PUSH1 0x20 0000103b: SWAP3 0000103c: DUP4 0000103d: ADD 0000103e: KECCAK256 0000103f: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 00001060: DUP2 00001061: AND 00001062: PUSH0 00001063: SWAP1 00001064: DUP2 00001065: MSTORE 00001066: PUSH1 0x02 00001068: SWAP1 00001069: SWAP4 0000106a: MSTORE 0000106b: SWAP1 0000106c: DUP3 0000106d: KECCAK256 0000106e: SLOAD 0000106f: SWAP1 00001070: SWAP3 00001071: POP 00001072: SWAP1 00001073: DUP2 00001074: SWAP1 00001075: SUB 00001076: PUSH2 0x10cf 00001079: JUMPI 0000107a: PUSH1 0x40 0000107c: MLOAD 0000107d: PUSH32 0x7229481100000000000000000000000000000000000000000000000000000000 0000109e: DUP2 0000109f: MSTORE 000010a0: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 000010c1: DUP4 000010c2: AND 000010c3: PUSH1 0x04 000010c5: DUP3 000010c6: ADD 000010c7: MSTORE 000010c8: PUSH1 0x24 000010ca: ADD 000010cb: PUSH2 0x00bb 000010ce: JUMP 000010cf: JUMPDEST 000010d0: PUSH1 0x88 000010d2: DUP2 000010d3: SWAP1 000010d4: SHR 000010d5: PUSH8 0x0fffffffffffffff 000010de: AND 000010df: PUSH1 0xc4 000010e1: DUP3 000010e2: SWAP1 000010e3: SHR 000010e4: PUSH0 000010e5: DUP1 000010e6: DUP1 000010e7: PUSH2 0x10f3 000010ea: DUP12 000010eb: DUP8 000010ec: DUP10 000010ed: DUP9 000010ee: DUP9 000010ef: PUSH2 0x2435 000010f2: JUMP 000010f3: JUMPDEST 000010f4: SWAP3 000010f5: POP 000010f6: SWAP3 000010f7: POP 000010f8: SWAP3 000010f9: POP 000010fa: DUP10 000010fb: ISZERO 000010fc: PUSH2 0x12b8 000010ff: JUMPI 00001100: PUSH1 0x7e 00001102: DUP7 00001103: SWAP1 00001104: SHR 00001105: PUSH1 0x1f 00001107: AND 00001108: PUSH1 0x09 0000110a: DUP2 0000110b: GT 0000110c: ISZERO 0000110d: PUSH2 0x1132 00001110: JUMPI 00001111: PUSH2 0x111c 00001114: PUSH1 0x09 00001116: DUP3 00001117: SUB 00001118: PUSH2 0x2844 0000111b: JUMP 0000111c: JUMPDEST 0000111d: DUP11 0000111e: DUP2 0000111f: PUSH2 0x112a 00001122: JUMPI 00001123: PUSH2 0x112a 00001126: PUSH2 0x3f2b 00001129: JUMP 0000112a: JUMPDEST 0000112b: DIV 0000112c: SWAP10 0000112d: POP 0000112e: PUSH2 0x1143 00001131: JUMP 00001132: JUMPDEST 00001133: PUSH2 0x113e 00001136: DUP2 00001137: PUSH1 0x09 00001139: SUB 0000113a: PUSH2 0x2844 0000113d: JUMP 0000113e: JUMPDEST 0000113f: DUP11 00001140: MUL 00001141: SWAP10 00001142: POP 00001143: JUMPDEST 00001144: PUSH2 0x2710 00001147: DUP11 00001148: LT 00001149: DUP1 0000114a: PUSH2 0x115a 0000114d: JUMPI 0000114e: POP 0000114f: PUSH8 0x0fffffffffffffff 00001158: DUP11 00001159: GT 0000115a: JUMPDEST 0000115b: ISZERO 0000115c: PUSH2 0x1194 0000115f: JUMPI 00001160: PUSH1 0x40 00001162: MLOAD 00001163: PUSH32 0x17d5c4d200000000000000000000000000000000000000000000000000000000 00001184: DUP2 00001185: MSTORE 00001186: PUSH1 0x04 00001188: DUP2 00001189: ADD 0000118a: DUP12 0000118b: SWAP1 0000118c: MSTORE 0000118d: PUSH1 0x24 0000118f: ADD 00001190: PUSH2 0x00bb 00001193: JUMP 00001194: JUMPDEST 00001195: PUSH1 0x02 00001197: DUP4 00001198: DIV 00001199: DUP11 0000119a: GT 0000119b: ISZERO 0000119c: PUSH2 0x11db 0000119f: JUMPI 000011a0: PUSH1 0x40 000011a2: MLOAD 000011a3: PUSH32 0xfecbb38c00000000000000000000000000000000000000000000000000000000 000011c4: DUP2 000011c5: MSTORE 000011c6: PUSH1 0x04 000011c8: DUP2 000011c9: ADD 000011ca: DUP12 000011cb: SWAP1 000011cc: MSTORE 000011cd: PUSH1 0x24 000011cf: DUP2 000011d0: ADD 000011d1: DUP5 000011d2: SWAP1 000011d3: MSTORE 000011d4: PUSH1 0x44 000011d6: ADD 000011d7: PUSH2 0x00bb 000011da: JUMP 000011db: JUMPDEST 000011dc: PUSH3 0x0f4240 000011e0: PUSH2 0x1fff 000011e3: DUP9 000011e4: AND 000011e5: DUP12 000011e6: MUL 000011e7: DIV 000011e8: DUP1 000011e9: DUP12 000011ea: SUB 000011eb: DUP5 000011ec: DUP2 000011ed: ADD 000011ee: SWAP1 000011ef: DUP5 000011f0: MUL 000011f1: DUP2 000011f2: PUSH2 0x11fd 000011f5: JUMPI 000011f6: PUSH2 0x11fd 000011f9: PUSH2 0x3f2b 000011fc: JUMP 000011fd: JUMPDEST 000011fe: DIV 000011ff: SWAP10 00001200: POP 00001201: PUSH1 0x64 00001203: PUSH1 0x0d 00001205: DUP10 00001206: SWAP1 00001207: SHR 00001208: PUSH1 0x7f 0000120a: AND 0000120b: DUP3 0000120c: MUL 0000120d: DIV 0000120e: DUP12 0000120f: SUB 00001210: DUP8 00001211: ADD 00001212: SWAP7 00001213: POP 00001214: DUP10 00001215: DUP7 00001216: LT 00001217: ISZERO 00001218: PUSH2 0x1257 0000121b: JUMPI 0000121c: PUSH1 0x40 0000121e: MLOAD 0000121f: PUSH32 0x473f499f00000000000000000000000000000000000000000000000000000000 00001240: DUP2 00001241: MSTORE 00001242: PUSH1 0x04 00001244: DUP2 00001245: ADD 00001246: DUP12 00001247: SWAP1 00001248: MSTORE 00001249: PUSH1 0x24 0000124b: DUP2 0000124c: ADD 0000124d: DUP8 0000124e: SWAP1 0000124f: MSTORE 00001250: PUSH1 0x44 00001252: ADD 00001253: PUSH2 0x00bb 00001256: JUMP 00001257: JUMPDEST 00001258: SWAP5 00001259: DUP10 0000125a: SWAP1 0000125b: SUB 0000125c: SWAP5 0000125d: PUSH13 0x7e37be2022c0914b2680000000 0000126b: DUP8 0000126c: DUP7 0000126d: MUL 0000126e: DIV 0000126f: DUP7 00001270: LT 00001271: ISZERO 00001272: PUSH2 0x12b1 00001275: JUMPI 00001276: PUSH1 0x40 00001278: MLOAD 00001279: PUSH32 0xb499466c00000000000000000000000000000000000000000000000000000000 0000129a: DUP2 0000129b: MSTORE 0000129c: PUSH1 0x04 0000129e: DUP2 0000129f: ADD 000012a0: DUP9 000012a1: SWAP1 000012a2: MSTORE 000012a3: PUSH1 0x24 000012a5: DUP2 000012a6: ADD 000012a7: DUP8 000012a8: SWAP1 000012a9: MSTORE 000012aa: PUSH1 0x44 000012ac: ADD 000012ad: PUSH2 0x00bb 000012b0: JUMP 000012b1: JUMPDEST 000012b2: POP 000012b3: POP 000012b4: PUSH2 0x147d 000012b7: JUMP 000012b8: JUMPDEST 000012b9: PUSH1 0x83 000012bb: DUP7 000012bc: SWAP1 000012bd: SHR 000012be: PUSH1 0x1f 000012c0: AND 000012c1: PUSH1 0x09 000012c3: DUP2 000012c4: GT 000012c5: ISZERO 000012c6: PUSH2 0x12eb 000012c9: JUMPI 000012ca: PUSH2 0x12d5 000012cd: PUSH1 0x09 000012cf: DUP3 000012d0: SUB 000012d1: PUSH2 0x2844 000012d4: JUMP 000012d5: JUMPDEST 000012d6: DUP11 000012d7: DUP2 000012d8: PUSH2 0x12e3 000012db: JUMPI 000012dc: PUSH2 0x12e3 000012df: PUSH2 0x3f2b 000012e2: JUMP 000012e3: JUMPDEST 000012e4: DIV 000012e5: SWAP10 000012e6: POP 000012e7: PUSH2 0x12fc 000012ea: JUMP 000012eb: JUMPDEST 000012ec: PUSH2 0x12f7 000012ef: DUP2 000012f0: PUSH1 0x09 000012f2: SUB 000012f3: PUSH2 0x2844 000012f6: JUMP 000012f7: JUMPDEST 000012f8: DUP11 000012f9: MUL 000012fa: SWAP10 000012fb: POP 000012fc: JUMPDEST 000012fd: PUSH2 0x2710 00001300: DUP11 00001301: LT 00001302: DUP1 00001303: PUSH2 0x1313 00001306: JUMPI 00001307: POP 00001308: PUSH8 0x0fffffffffffffff 00001311: DUP11 00001312: GT 00001313: JUMPDEST 00001314: ISZERO 00001315: PUSH2 0x134d 00001318: JUMPI 00001319: PUSH1 0x40 0000131b: MLOAD 0000131c: PUSH32 0x17d5c4d200000000000000000000000000000000000000000000000000000000 0000133d: DUP2 0000133e: MSTORE 0000133f: PUSH1 0x04 00001341: DUP2 00001342: ADD 00001343: DUP12 00001344: SWAP1 00001345: MSTORE 00001346: PUSH1 0x24 00001348: ADD 00001349: PUSH2 0x00bb 0000134c: JUMP 0000134d: JUMPDEST 0000134e: PUSH1 0x02 00001350: DUP3 00001351: DIV 00001352: DUP11 00001353: GT 00001354: ISZERO 00001355: PUSH2 0x1394 00001358: JUMPI 00001359: PUSH1 0x40 0000135b: MLOAD 0000135c: PUSH32 0xfecbb38c00000000000000000000000000000000000000000000000000000000 0000137d: DUP2 0000137e: MSTORE 0000137f: PUSH1 0x04 00001381: DUP2 00001382: ADD 00001383: DUP12 00001384: SWAP1 00001385: MSTORE 00001386: PUSH1 0x24 00001388: DUP2 00001389: ADD 0000138a: DUP4 0000138b: SWAP1 0000138c: MSTORE 0000138d: PUSH1 0x44 0000138f: ADD 00001390: PUSH2 0x00bb 00001393: JUMP 00001394: JUMPDEST 00001395: PUSH3 0x0f4240 00001399: PUSH2 0x1fff 0000139c: DUP9 0000139d: AND 0000139e: DUP12 0000139f: MUL 000013a0: DIV 000013a1: DUP1 000013a2: DUP12 000013a3: SUB 000013a4: DUP4 000013a5: DUP2 000013a6: ADD 000013a7: SWAP1 000013a8: DUP6 000013a9: MUL 000013aa: DUP2 000013ab: PUSH2 0x13b6 000013ae: JUMPI 000013af: PUSH2 0x13b6 000013b2: PUSH2 0x3f2b 000013b5: JUMP 000013b6: JUMPDEST 000013b7: DIV 000013b8: SWAP10 000013b9: POP 000013ba: PUSH1 0x64 000013bc: PUSH1 0x0d 000013be: DUP10 000013bf: SWAP1 000013c0: SHR 000013c1: PUSH1 0x7f 000013c3: AND 000013c4: DUP3 000013c5: MUL 000013c6: DIV 000013c7: DUP12 000013c8: SUB 000013c9: DUP7 000013ca: ADD 000013cb: SWAP6 000013cc: POP 000013cd: DUP10 000013ce: DUP8 000013cf: LT 000013d0: ISZERO 000013d1: PUSH2 0x1410 000013d4: JUMPI 000013d5: PUSH1 0x40 000013d7: MLOAD 000013d8: PUSH32 0x473f499f00000000000000000000000000000000000000000000000000000000 000013f9: DUP2 000013fa: MSTORE 000013fb: PUSH1 0x04 000013fd: DUP2 000013fe: ADD 000013ff: DUP12 00001400: SWAP1 00001401: MSTORE 00001402: PUSH1 0x24 00001404: DUP2 00001405: ADD 00001406: DUP9 00001407: SWAP1 00001408: MSTORE 00001409: PUSH1 0x44 0000140b: ADD 0000140c: PUSH2 0x00bb 0000140f: JUMP 00001410: JUMPDEST 00001411: DUP10 00001412: DUP8 00001413: SUB 00001414: SWAP7 00001415: POP 00001416: PUSH2 0x2710 00001419: DUP6 0000141a: MUL 0000141b: PUSH12 0x033b2e3c9fd0803ce8000000 00001428: DUP8 00001429: MUL 0000142a: DUP2 0000142b: PUSH2 0x1436 0000142e: JUMPI 0000142f: PUSH2 0x1436 00001432: PUSH2 0x3f2b 00001435: JUMP 00001436: JUMPDEST 00001437: DIV 00001438: DUP8 00001439: LT 0000143a: ISZERO 0000143b: PUSH2 0x147a 0000143e: JUMPI 0000143f: PUSH1 0x40 00001441: MLOAD 00001442: PUSH32 0xb499466c00000000000000000000000000000000000000000000000000000000 00001463: DUP2 00001464: MSTORE 00001465: PUSH1 0x04 00001467: DUP2 00001468: ADD 00001469: DUP9 0000146a: SWAP1 0000146b: MSTORE 0000146c: PUSH1 0x24 0000146e: DUP2 0000146f: ADD 00001470: DUP8 00001471: SWAP1 00001472: MSTORE 00001473: PUSH1 0x44 00001475: ADD 00001476: PUSH2 0x00bb 00001479: JUMP 0000147a: JUMPDEST 0000147b: POP 0000147c: POP 0000147d: JUMPDEST 0000147e: PUSH1 0x14 00001480: DUP7 00001481: SWAP1 00001482: SHR 00001483: PUSH1 0x03 00001485: AND 00001486: DUP1 00001487: ISZERO 00001488: PUSH2 0x14ee 0000148b: JUMPI 0000148c: PUSH0 0000148d: DUP12 0000148e: PUSH2 0x14b8 00001491: JUMPI 00001492: DUP10 00001493: DUP5 00001494: SUB 00001495: PUSH12 0x033b2e3c9fd0803ce8000000 000014a2: DUP13 000014a3: DUP6 000014a4: ADD 000014a5: MUL 000014a6: DUP2 000014a7: PUSH2 0x14b2 000014aa: JUMPI 000014ab: PUSH2 0x14b2 000014ae: PUSH2 0x3f2b 000014b1: JUMP 000014b2: JUMPDEST 000014b3: DIV 000014b4: PUSH2 0x14db 000014b7: JUMP 000014b8: JUMPDEST 000014b9: DUP11 000014ba: DUP5 000014bb: ADD 000014bc: PUSH12 0x033b2e3c9fd0803ce8000000 000014c9: DUP12 000014ca: DUP6 000014cb: SUB 000014cc: MUL 000014cd: DUP2 000014ce: PUSH2 0x14d9 000014d1: JUMPI 000014d2: PUSH2 0x14d9 000014d5: PUSH2 0x3f2b 000014d8: JUMP 000014d9: JUMPDEST 000014da: DIV 000014db: JUMPDEST 000014dc: SWAP1 000014dd: POP 000014de: PUSH2 0x14ea 000014e1: DUP9 000014e2: DUP11 000014e3: DUP5 000014e4: DUP5 000014e5: DUP10 000014e6: PUSH2 0x2927 000014e9: JUMP 000014ea: JUMPDEST 000014eb: SWAP2 000014ec: POP 000014ed: POP 000014ee: JUMPDEST 000014ef: PUSH1 0x01 000014f1: DUP2 000014f2: GT 000014f3: DUP1 000014f4: PUSH2 0x1504 000014f7: JUMPI 000014f8: POP 000014f9: PUSH1 0x01 000014fb: PUSH1 0x16 000014fd: DUP9 000014fe: SWAP1 000014ff: SHR 00001500: AND 00001501: PUSH1 0x01 00001503: EQ 00001504: JUMPDEST 00001505: ISZERO 00001506: PUSH2 0x1562 00001509: JUMPI 0000150a: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 0000152b: DUP9 0000152c: AND 0000152d: PUSH0 0000152e: SWAP1 0000152f: DUP2 00001530: MSTORE 00001531: PUSH1 0x03 00001533: PUSH1 0x20 00001535: MSTORE 00001536: PUSH1 0x40 00001538: SWAP1 00001539: KECCAK256 0000153a: DUP1 0000153b: SLOAD 0000153c: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000 0000155d: AND 0000155e: TIMESTAMP 0000155f: OR 00001560: SWAP1 00001561: SSTORE 00001562: JUMPDEST 00001563: POP 00001564: PUSH8 0x0fffffffffffffff 0000156d: DUP6 0000156e: GT 0000156f: DUP1 00001570: PUSH2 0x1580 00001573: JUMPI 00001574: POP 00001575: PUSH8 0x0fffffffffffffff 0000157e: DUP5 0000157f: GT 00001580: JUMPDEST 00001581: ISZERO 00001582: PUSH2 0x15e9 00001585: JUMPI 00001586: PUSH1 0x40 00001588: MLOAD 00001589: PUSH32 0x9e0db87800000000000000000000000000000000000000000000000000000000 000015aa: DUP2 000015ab: MSTORE 000015ac: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 000015cd: DUP9 000015ce: AND 000015cf: PUSH1 0x04 000015d1: DUP3 000015d2: ADD 000015d3: MSTORE 000015d4: PUSH1 0x24 000015d6: DUP2 000015d7: ADD 000015d8: DUP7 000015d9: SWAP1 000015da: MSTORE 000015db: PUSH1 0x44 000015dd: DUP2 000015de: ADD 000015df: DUP6 000015e0: SWAP1 000015e1: MSTORE 000015e2: PUSH1 0x64 000015e4: ADD 000015e5: PUSH2 0x00bb 000015e8: JUMP 000015e9: JUMPDEST 000015ea: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 0000160b: DUP8 0000160c: AND 0000160d: PUSH0 0000160e: SWAP1 0000160f: DUP2 00001610: MSTORE 00001611: PUSH1 0x02 00001613: PUSH1 0x20 00001615: MSTORE 00001616: PUSH1 0x40 00001618: SWAP1 00001619: KECCAK256 0000161a: DUP1 0000161b: SLOAD 0000161c: PUSH17 0xffffffffffffffffffffffffffffffffff 0000162e: AND 0000162f: PUSH1 0x88 00001631: DUP8 00001632: SWAP1 00001633: SHL 00001634: OR 00001635: PUSH1 0xc4 00001637: DUP7 00001638: SWAP1 00001639: SHL 0000163a: OR 0000163b: SWAP1 0000163c: DUP2 0000163d: SWAP1 0000163e: SSTORE 0000163f: SWAP6 00001640: POP 00001641: DUP10 00001642: ISZERO 00001643: PUSH2 0x16f0 00001646: JUMPI 00001647: PUSH1 0x40 00001649: DUP1 0000164a: MLOAD 0000164b: PUSH9 0x010000000000000000 00001655: PUSH1 0x7d 00001657: DUP12 00001658: SWAP1 00001659: SHL 0000165a: PUSH1 0x41 0000165c: DUP14 0000165d: SWAP1 0000165e: SHL 0000165f: PUSH1 0xc0 00001661: DUP13 00001662: SWAP1 00001663: SHR 00001664: OR 00001665: OR 00001666: OR 00001667: DUP2 00001668: MSTORE 00001669: PUSH1 0x20 0000166b: DUP2 0000166c: ADD 0000166d: DUP9 0000166e: SWAP1 0000166f: MSTORE 00001670: PUSH32 0xfbce846c23a724e6e61161894819ec46c90a8d3dd96e90e7342c6ef49ffb539c 00001691: SWAP2 00001692: ADD 00001693: PUSH1 0x40 00001695: MLOAD 00001696: DUP1 00001697: SWAP2 00001698: SUB 00001699: SWAP1 0000169a: LOG1 0000169b: PUSH1 0x83 0000169d: DUP7 0000169e: SWAP1 0000169f: SHR 000016a0: PUSH1 0x1f 000016a2: AND 000016a3: PUSH1 0x09 000016a5: DUP2 000016a6: GT 000016a7: ISZERO 000016a8: PUSH2 0x16cf 000016ab: JUMPI 000016ac: PUSH2 0x16be 000016af: PUSH2 0x16b9 000016b2: PUSH1 0x09 000016b4: DUP4 000016b5: PUSH2 0x3da5 000016b8: JUMP 000016b9: JUMPDEST 000016ba: PUSH2 0x2844 000016bd: JUMP 000016be: JUMPDEST 000016bf: PUSH2 0x16c8 000016c2: SWAP1 000016c3: DUP11 000016c4: PUSH2 0x3f58 000016c7: JUMP 000016c8: JUMPDEST 000016c9: SWAP9 000016ca: POP 000016cb: PUSH2 0x16ea 000016ce: JUMP 000016cf: JUMPDEST 000016d0: PUSH2 0x16dd 000016d3: PUSH2 0x16b9 000016d6: DUP3 000016d7: PUSH1 0x09 000016d9: PUSH2 0x3da5 000016dc: JUMP 000016dd: JUMPDEST 000016de: PUSH2 0x16e7 000016e1: SWAP1 000016e2: DUP11 000016e3: PUSH2 0x3f6f 000016e6: JUMP 000016e7: JUMPDEST 000016e8: SWAP9 000016e9: POP 000016ea: JUMPDEST 000016eb: POP 000016ec: PUSH2 0x1786 000016ef: JUMP 000016f0: JUMPDEST 000016f1: PUSH1 0x40 000016f3: DUP1 000016f4: MLOAD 000016f5: PUSH1 0x7d 000016f7: DUP11 000016f8: SWAP1 000016f9: SHL 000016fa: PUSH1 0x41 000016fc: DUP13 000016fd: SWAP1 000016fe: SHL 000016ff: PUSH1 0xc0 00001701: DUP12 00001702: SWAP1 00001703: SHR 00001704: OR 00001705: OR 00001706: DUP2 00001707: MSTORE 00001708: PUSH1 0x20 0000170a: DUP2 0000170b: ADD 0000170c: DUP9 0000170d: SWAP1 0000170e: MSTORE 0000170f: PUSH32 0xfbce846c23a724e6e61161894819ec46c90a8d3dd96e90e7342c6ef49ffb539c 00001730: SWAP2 00001731: ADD 00001732: PUSH1 0x40 00001734: MLOAD 00001735: DUP1 00001736: SWAP2 00001737: SUB 00001738: SWAP1 00001739: LOG1 0000173a: PUSH1 0x7e 0000173c: DUP7 0000173d: SWAP1 0000173e: SHR 0000173f: PUSH1 0x1f 00001741: AND 00001742: PUSH1 0x09 00001744: DUP2 00001745: GT 00001746: ISZERO 00001747: PUSH2 0x1769 0000174a: JUMPI 0000174b: PUSH2 0x1758 0000174e: PUSH2 0x16b9 00001751: PUSH1 0x09 00001753: DUP4 00001754: PUSH2 0x3da5 00001757: JUMP 00001758: JUMPDEST 00001759: PUSH2 0x1762 0000175c: SWAP1 0000175d: DUP11 0000175e: PUSH2 0x3f58 00001761: JUMP 00001762: JUMPDEST 00001763: SWAP9 00001764: POP 00001765: PUSH2 0x1784 00001768: JUMP 00001769: JUMPDEST 0000176a: PUSH2 0x1777 0000176d: PUSH2 0x16b9 00001770: DUP3 00001771: PUSH1 0x09 00001773: PUSH2 0x3da5 00001776: JUMP 00001777: JUMPDEST 00001778: PUSH2 0x1781 0000177b: SWAP1 0000177c: DUP11 0000177d: PUSH2 0x3f6f 00001780: JUMP 00001781: JUMPDEST 00001782: SWAP9 00001783: POP 00001784: JUMPDEST 00001785: POP 00001786: JUMPDEST 00001787: POP 00001788: POP 00001789: POP 0000178a: POP 0000178b: POP 0000178c: POP 0000178d: POP 0000178e: SWAP4 0000178f: SWAP3 00001790: POP 00001791: POP 00001792: POP 00001793: JUMP 00001794: JUMPDEST 00001795: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017aa: DUP5 000017ab: AND 000017ac: PUSH2 0x17b3 000017af: JUMPI 000017b0: CALLER 000017b1: SWAP4 000017b2: POP 000017b3: JUMPDEST 000017b4: PUSH32 0xffffffffffffffffffffffff1111111111111111111111111111111111111112 000017d5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017ea: DUP8 000017eb: AND 000017ec: ADD 000017ed: PUSH2 0x17ff 000017f0: JUMPI 000017f1: PUSH2 0x17fa 000017f4: DUP5 000017f5: DUP7 000017f6: PUSH2 0x2b3f 000017f9: JUMP 000017fa: JUMPDEST 000017fb: PUSH2 0x180a 000017fe: JUMP 000017ff: JUMPDEST 00001800: PUSH2 0x180a 00001803: DUP7 00001804: DUP6 00001805: DUP8 00001806: PUSH2 0x2b88 00001809: JUMP 0000180a: JUMPDEST 0000180b: PUSH32 0xffffffffffffffffffffffff1111111111111111111111111111111111111112 0000182c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001841: DUP10 00001842: AND 00001843: ADD 00001844: PUSH2 0x198b 00001847: JUMPI 00001848: DUP3 00001849: DUP1 0000184a: ISZERO 0000184b: PUSH2 0x1852 0000184e: JUMPI 0000184f: POP 00001850: CALLVALUE 00001851: ISZERO 00001852: JUMPDEST 00001853: ISZERO 00001854: PUSH2 0x1928 00001857: JUMPI 00001858: PUSH1 0x40 0000185a: MLOAD 0000185b: PUSH32 0xb6a5454800000000000000000000000000000000000000000000000000000000 0000187c: DUP2 0000187d: MSTORE 0000187e: SELFBALANCE 0000187f: SWAP1 00001880: CALLER 00001881: SWAP1 00001882: PUSH4 0xb6a54548 00001887: SWAP1 00001888: PUSH2 0x189b 0000188b: SWAP1 0000188c: DUP13 0000188d: SWAP1 0000188e: DUP13 0000188f: SWAP1 00001890: DUP9 00001891: SWAP1 00001892: DUP9 00001893: SWAP1 00001894: PUSH1 0x04 00001896: ADD 00001897: PUSH2 0x3fa7 0000189a: JUMP 0000189b: JUMPDEST 0000189c: PUSH0 0000189d: PUSH1 0x40 0000189f: MLOAD 000018a0: DUP1 000018a1: DUP4 000018a2: SUB 000018a3: DUP2 000018a4: PUSH0 000018a5: DUP8 000018a6: DUP1 000018a7: EXTCODESIZE 000018a8: ISZERO 000018a9: DUP1 000018aa: ISZERO 000018ab: PUSH2 0x18b2 000018ae: JUMPI 000018af: PUSH0 000018b0: PUSH0 000018b1: REVERT 000018b2: JUMPDEST 000018b3: POP 000018b4: GAS 000018b5: CALL 000018b6: ISZERO 000018b7: DUP1 000018b8: ISZERO 000018b9: PUSH2 0x18c4 000018bc: JUMPI 000018bd: RETURNDATASIZE 000018be: PUSH0 000018bf: PUSH0 000018c0: RETURNDATACOPY 000018c1: RETURNDATASIZE 000018c2: PUSH0 000018c3: REVERT 000018c4: JUMPDEST 000018c5: POP 000018c6: POP 000018c7: POP 000018c8: POP 000018c9: DUP8 000018ca: DUP2 000018cb: SELFBALANCE 000018cc: PUSH2 0x18d5 000018cf: SWAP2 000018d0: SWAP1 000018d1: PUSH2 0x3da5 000018d4: JUMP 000018d5: JUMPDEST 000018d6: LT 000018d7: ISZERO 000018d8: PUSH2 0x1922 000018db: JUMPI 000018dc: PUSH2 0x18e5 000018df: DUP2 000018e0: SELFBALANCE 000018e1: PUSH2 0x3da5 000018e4: JUMP 000018e5: JUMPDEST 000018e6: PUSH1 0x40 000018e8: MLOAD 000018e9: PUSH32 0xbdd289ca00000000000000000000000000000000000000000000000000000000 0000190a: DUP2 0000190b: MSTORE 0000190c: PUSH1 0x04 0000190e: DUP2 0000190f: ADD 00001910: SWAP2 00001911: SWAP1 00001912: SWAP2 00001913: MSTORE 00001914: PUSH1 0x24 00001916: DUP2 00001917: ADD 00001918: DUP10 00001919: SWAP1 0000191a: MSTORE 0000191b: PUSH1 0x44 0000191d: ADD 0000191e: PUSH2 0x00bb 00001921: JUMP 00001922: JUMPDEST 00001923: POP 00001924: PUSH2 0x1c4a 00001927: JUMP 00001928: JUMPDEST 00001929: DUP7 0000192a: CALLVALUE 0000192b: LT 0000192c: ISZERO 0000192d: PUSH2 0x196b 00001930: JUMPI 00001931: PUSH1 0x40 00001933: MLOAD 00001934: PUSH32 0xbdd289ca00000000000000000000000000000000000000000000000000000000 00001955: DUP2 00001956: MSTORE 00001957: CALLVALUE 00001958: PUSH1 0x04 0000195a: DUP3 0000195b: ADD 0000195c: MSTORE 0000195d: PUSH1 0x24 0000195f: DUP2 00001960: ADD 00001961: DUP9 00001962: SWAP1 00001963: MSTORE 00001964: PUSH1 0x44 00001966: ADD 00001967: PUSH2 0x00bb 0000196a: JUMP 0000196b: JUMPDEST 0000196c: DUP7 0000196d: CALLVALUE 0000196e: GT 0000196f: ISZERO 00001970: PUSH2 0x1986 00001973: JUMPI 00001974: PUSH2 0x1986 00001977: CALLER 00001978: PUSH2 0x1981 0000197b: DUP10 0000197c: CALLVALUE 0000197d: PUSH2 0x3da5 00001980: JUMP 00001981: JUMPDEST 00001982: PUSH2 0x2b3f 00001985: JUMP 00001986: JUMPDEST 00001987: PUSH2 0x1c4a 0000198a: JUMP 0000198b: JUMPDEST 0000198c: CALLVALUE 0000198d: ISZERO 0000198e: PUSH2 0x19c3 00001991: JUMPI 00001992: PUSH1 0x40 00001994: MLOAD 00001995: PUSH32 0x1841b4e100000000000000000000000000000000000000000000000000000000 000019b6: DUP2 000019b7: MSTORE 000019b8: PUSH1 0x04 000019ba: ADD 000019bb: PUSH1 0x40 000019bd: MLOAD 000019be: DUP1 000019bf: SWAP2 000019c0: SUB 000019c1: SWAP1 000019c2: REVERT 000019c3: JUMPDEST 000019c4: DUP3 000019c5: ISZERO 000019c6: PUSH2 0x1c3e 000019c9: JUMPI 000019ca: PUSH1 0x40 000019cc: MLOAD 000019cd: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 000019ee: DUP2 000019ef: MSTORE 000019f0: ADDRESS 000019f1: PUSH1 0x04 000019f3: DUP3 000019f4: ADD 000019f5: MSTORE 000019f6: PUSH0 000019f7: SWAP1 000019f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a0d: DUP11 00001a0e: AND 00001a0f: SWAP1 00001a10: PUSH4 0x70a08231 00001a15: SWAP1 00001a16: PUSH1 0x24 00001a18: ADD 00001a19: PUSH1 0x20 00001a1b: PUSH1 0x40 00001a1d: MLOAD 00001a1e: DUP1 00001a1f: DUP4 00001a20: SUB 00001a21: DUP2 00001a22: DUP7 00001a23: GAS 00001a24: STATICCALL 00001a25: ISZERO 00001a26: DUP1 00001a27: ISZERO 00001a28: PUSH2 0x1a33 00001a2b: JUMPI 00001a2c: RETURNDATASIZE 00001a2d: PUSH0 00001a2e: PUSH0 00001a2f: RETURNDATACOPY 00001a30: RETURNDATASIZE 00001a31: PUSH0 00001a32: REVERT 00001a33: JUMPDEST 00001a34: POP 00001a35: POP 00001a36: POP 00001a37: POP 00001a38: PUSH1 0x40 00001a3a: MLOAD 00001a3b: RETURNDATASIZE 00001a3c: PUSH1 0x1f 00001a3e: NOT 00001a3f: PUSH1 0x1f 00001a41: DUP3 00001a42: ADD 00001a43: AND 00001a44: DUP3 00001a45: ADD 00001a46: DUP1 00001a47: PUSH1 0x40 00001a49: MSTORE 00001a4a: POP 00001a4b: DUP2 00001a4c: ADD 00001a4d: SWAP1 00001a4e: PUSH2 0x1a57 00001a51: SWAP2 00001a52: SWAP1 00001a53: PUSH2 0x3b9f 00001a56: JUMP 00001a57: JUMPDEST 00001a58: PUSH1 0x40 00001a5a: MLOAD 00001a5b: PUSH32 0xb6a5454800000000000000000000000000000000000000000000000000000000 00001a7c: DUP2 00001a7d: MSTORE 00001a7e: SWAP1 00001a7f: SWAP2 00001a80: POP 00001a81: CALLER 00001a82: SWAP1 00001a83: PUSH4 0xb6a54548 00001a88: SWAP1 00001a89: PUSH2 0x1a9c 00001a8c: SWAP1 00001a8d: DUP13 00001a8e: SWAP1 00001a8f: DUP13 00001a90: SWAP1 00001a91: DUP9 00001a92: SWAP1 00001a93: DUP9 00001a94: SWAP1 00001a95: PUSH1 0x04 00001a97: ADD 00001a98: PUSH2 0x3fa7 00001a9b: JUMP 00001a9c: JUMPDEST 00001a9d: PUSH0 00001a9e: PUSH1 0x40 00001aa0: MLOAD 00001aa1: DUP1 00001aa2: DUP4 00001aa3: SUB 00001aa4: DUP2 00001aa5: PUSH0 00001aa6: DUP8 00001aa7: DUP1 00001aa8: EXTCODESIZE 00001aa9: ISZERO 00001aaa: DUP1 00001aab: ISZERO 00001aac: PUSH2 0x1ab3 00001aaf: JUMPI 00001ab0: PUSH0 00001ab1: PUSH0 00001ab2: REVERT 00001ab3: JUMPDEST 00001ab4: POP 00001ab5: GAS 00001ab6: CALL 00001ab7: ISZERO 00001ab8: DUP1 00001ab9: ISZERO 00001aba: PUSH2 0x1ac5 00001abd: JUMPI 00001abe: RETURNDATASIZE 00001abf: PUSH0 00001ac0: PUSH0 00001ac1: RETURNDATACOPY 00001ac2: RETURNDATASIZE 00001ac3: PUSH0 00001ac4: REVERT 00001ac5: JUMPDEST 00001ac6: POP 00001ac7: POP 00001ac8: PUSH1 0x40 00001aca: MLOAD 00001acb: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00001aec: DUP2 00001aed: MSTORE 00001aee: ADDRESS 00001aef: PUSH1 0x04 00001af1: DUP3 00001af2: ADD 00001af3: MSTORE 00001af4: DUP11 00001af5: SWAP3 00001af6: POP 00001af7: DUP4 00001af8: SWAP2 00001af9: POP 00001afa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b0f: DUP13 00001b10: AND 00001b11: SWAP1 00001b12: PUSH4 0x70a08231 00001b17: SWAP1 00001b18: PUSH1 0x24 00001b1a: ADD 00001b1b: PUSH1 0x20 00001b1d: PUSH1 0x40 00001b1f: MLOAD 00001b20: DUP1 00001b21: DUP4 00001b22: SUB 00001b23: DUP2 00001b24: DUP7 00001b25: GAS 00001b26: STATICCALL 00001b27: ISZERO 00001b28: DUP1 00001b29: ISZERO 00001b2a: PUSH2 0x1b35 00001b2d: JUMPI 00001b2e: RETURNDATASIZE 00001b2f: PUSH0 00001b30: PUSH0 00001b31: RETURNDATACOPY 00001b32: RETURNDATASIZE 00001b33: PUSH0 00001b34: REVERT 00001b35: JUMPDEST 00001b36: POP 00001b37: POP 00001b38: POP 00001b39: POP 00001b3a: PUSH1 0x40 00001b3c: MLOAD 00001b3d: RETURNDATASIZE 00001b3e: PUSH1 0x1f 00001b40: NOT 00001b41: PUSH1 0x1f 00001b43: DUP3 00001b44: ADD 00001b45: AND 00001b46: DUP3 00001b47: ADD 00001b48: DUP1 00001b49: PUSH1 0x40 00001b4b: MSTORE 00001b4c: POP 00001b4d: DUP2 00001b4e: ADD 00001b4f: SWAP1 00001b50: PUSH2 0x1b59 00001b53: SWAP2 00001b54: SWAP1 00001b55: PUSH2 0x3b9f 00001b58: JUMP 00001b59: JUMPDEST 00001b5a: PUSH2 0x1b63 00001b5d: SWAP2 00001b5e: SWAP1 00001b5f: PUSH2 0x3da5 00001b62: JUMP 00001b63: JUMPDEST 00001b64: LT 00001b65: ISZERO 00001b66: PUSH2 0x1922 00001b69: JUMPI 00001b6a: PUSH1 0x40 00001b6c: MLOAD 00001b6d: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00001b8e: DUP2 00001b8f: MSTORE 00001b90: ADDRESS 00001b91: PUSH1 0x04 00001b93: DUP3 00001b94: ADD 00001b95: MSTORE 00001b96: DUP2 00001b97: SWAP1 00001b98: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bad: DUP12 00001bae: AND 00001baf: SWAP1 00001bb0: PUSH4 0x70a08231 00001bb5: SWAP1 00001bb6: PUSH1 0x24 00001bb8: ADD 00001bb9: PUSH1 0x20 00001bbb: PUSH1 0x40 00001bbd: MLOAD 00001bbe: DUP1 00001bbf: DUP4 00001bc0: SUB 00001bc1: DUP2 00001bc2: DUP7 00001bc3: GAS 00001bc4: STATICCALL 00001bc5: ISZERO 00001bc6: DUP1 00001bc7: ISZERO 00001bc8: PUSH2 0x1bd3 00001bcb: JUMPI 00001bcc: RETURNDATASIZE 00001bcd: PUSH0 00001bce: PUSH0 00001bcf: RETURNDATACOPY 00001bd0: RETURNDATASIZE 00001bd1: PUSH0 00001bd2: REVERT 00001bd3: JUMPDEST 00001bd4: POP 00001bd5: POP 00001bd6: POP 00001bd7: POP 00001bd8: PUSH1 0x40 00001bda: MLOAD 00001bdb: RETURNDATASIZE 00001bdc: PUSH1 0x1f 00001bde: NOT 00001bdf: PUSH1 0x1f 00001be1: DUP3 00001be2: ADD 00001be3: AND 00001be4: DUP3 00001be5: ADD 00001be6: DUP1 00001be7: PUSH1 0x40 00001be9: MSTORE 00001bea: POP 00001beb: DUP2 00001bec: ADD 00001bed: SWAP1 00001bee: PUSH2 0x1bf7 00001bf1: SWAP2 00001bf2: SWAP1 00001bf3: PUSH2 0x3b9f 00001bf6: JUMP 00001bf7: JUMPDEST 00001bf8: PUSH2 0x1c01 00001bfb: SWAP2 00001bfc: SWAP1 00001bfd: PUSH2 0x3da5 00001c00: JUMP 00001c01: JUMPDEST 00001c02: PUSH1 0x40 00001c04: MLOAD 00001c05: PUSH32 0xaf35ea9e00000000000000000000000000000000000000000000000000000000 00001c26: DUP2 00001c27: MSTORE 00001c28: PUSH1 0x04 00001c2a: DUP2 00001c2b: ADD 00001c2c: SWAP2 00001c2d: SWAP1 00001c2e: SWAP2 00001c2f: MSTORE 00001c30: PUSH1 0x24 00001c32: DUP2 00001c33: ADD 00001c34: DUP10 00001c35: SWAP1 00001c36: MSTORE 00001c37: PUSH1 0x44 00001c39: ADD 00001c3a: PUSH2 0x00bb 00001c3d: JUMP 00001c3e: JUMPDEST 00001c3f: PUSH2 0x1c4a 00001c42: DUP9 00001c43: CALLER 00001c44: ADDRESS 00001c45: DUP11 00001c46: PUSH2 0x2c2e 00001c49: JUMP 00001c4a: JUMPDEST 00001c4b: POP 00001c4c: POP 00001c4d: POP 00001c4e: POP 00001c4f: POP 00001c50: POP 00001c51: POP 00001c52: POP 00001c53: JUMP 00001c54: JUMPDEST 00001c55: PUSH0 00001c56: PUSH2 0x1c7d 00001c59: PUSH32 0x7e8134afb5ed35d36cb65e24b9a4712a52bb77d952806c1acf50970d2107797f 00001c7a: SLOAD 00001c7b: SWAP1 00001c7c: JUMP 00001c7d: JUMPDEST 00001c7e: SWAP1 00001c7f: POP 00001c80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c95: DUP2 00001c96: AND 00001c97: PUSH2 0x1ccc 00001c9a: JUMPI 00001c9b: PUSH1 0x40 00001c9d: MLOAD 00001c9e: PUSH32 0xd92e233d00000000000000000000000000000000000000000000000000000000 00001cbf: DUP2 00001cc0: MSTORE 00001cc1: PUSH1 0x04 00001cc3: ADD 00001cc4: PUSH1 0x40 00001cc6: MLOAD 00001cc7: DUP1 00001cc8: SWAP2 00001cc9: SUB 00001cca: SWAP1 00001ccb: REVERT 00001ccc: JUMPDEST 00001ccd: PUSH2 0x1cd6 00001cd0: DUP2 00001cd1: DUP4 00001cd2: PUSH2 0x0271 00001cd5: JUMP 00001cd6: JUMPDEST 00001cd7: POP 00001cd8: POP 00001cd9: POP 00001cda: JUMP 00001cdb: JUMPDEST 00001cdc: PUSH0 00001cdd: PUSH0 00001cde: DUP5 00001cdf: PUSH1 0x40 00001ce1: MLOAD 00001ce2: PUSH1 0x20 00001ce4: ADD 00001ce5: PUSH2 0x1cee 00001ce8: SWAP2 00001ce9: SWAP1 00001cea: PUSH2 0x3f1d 00001ced: JUMP 00001cee: JUMPDEST 00001cef: PUSH1 0x40 00001cf1: DUP1 00001cf2: MLOAD 00001cf3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001d14: DUP2 00001d15: DUP5 00001d16: SUB 00001d17: ADD 00001d18: DUP2 00001d19: MSTORE 00001d1a: SWAP2 00001d1b: DUP2 00001d1c: MSTORE 00001d1d: DUP2 00001d1e: MLOAD 00001d1f: PUSH1 0x20 00001d21: SWAP3 00001d22: DUP4 00001d23: ADD 00001d24: KECCAK256 00001d25: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 00001d46: DUP2 00001d47: AND 00001d48: PUSH0 00001d49: SWAP1 00001d4a: DUP2 00001d4b: MSTORE 00001d4c: PUSH1 0x02 00001d4e: SWAP1 00001d4f: SWAP4 00001d50: MSTORE 00001d51: SWAP1 00001d52: DUP3 00001d53: KECCAK256 00001d54: SLOAD 00001d55: SWAP1 00001d56: SWAP3 00001d57: POP 00001d58: SWAP1 00001d59: DUP2 00001d5a: SWAP1 00001d5b: SUB 00001d5c: PUSH2 0x1db5 00001d5f: JUMPI 00001d60: PUSH1 0x40 00001d62: MLOAD 00001d63: PUSH32 0x7229481100000000000000000000000000000000000000000000000000000000 00001d84: DUP2 00001d85: MSTORE 00001d86: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 00001da7: DUP4 00001da8: AND 00001da9: PUSH1 0x04 00001dab: DUP3 00001dac: ADD 00001dad: MSTORE 00001dae: PUSH1 0x24 00001db0: ADD 00001db1: PUSH2 0x00bb 00001db4: JUMP 00001db5: JUMPDEST 00001db6: PUSH1 0x88 00001db8: DUP2 00001db9: SWAP1 00001dba: SHR 00001dbb: PUSH8 0x0fffffffffffffff 00001dc4: AND 00001dc5: PUSH1 0xc4 00001dc7: DUP3 00001dc8: SWAP1 00001dc9: SHR 00001dca: PUSH0 00001dcb: DUP1 00001dcc: DUP1 00001dcd: PUSH2 0x1dd9 00001dd0: DUP12 00001dd1: DUP8 00001dd2: DUP10 00001dd3: DUP9 00001dd4: DUP9 00001dd5: PUSH2 0x2435 00001dd8: JUMP 00001dd9: JUMPDEST 00001dda: SWAP3 00001ddb: POP 00001ddc: SWAP3 00001ddd: POP 00001dde: SWAP3 00001ddf: POP 00001de0: DUP10 00001de1: ISZERO 00001de2: PUSH2 0x1fb5 00001de5: JUMPI 00001de6: PUSH1 0x83 00001de8: DUP7 00001de9: SWAP1 00001dea: SHR 00001deb: PUSH1 0x1f 00001ded: AND 00001dee: PUSH1 0x09 00001df0: DUP2 00001df1: GT 00001df2: ISZERO 00001df3: PUSH2 0x1e18 00001df6: JUMPI 00001df7: PUSH2 0x1e02 00001dfa: PUSH1 0x09 00001dfc: DUP3 00001dfd: SUB 00001dfe: PUSH2 0x2844 00001e01: JUMP 00001e02: JUMPDEST 00001e03: DUP11 00001e04: DUP2 00001e05: PUSH2 0x1e10 00001e08: JUMPI 00001e09: PUSH2 0x1e10 00001e0c: PUSH2 0x3f2b 00001e0f: JUMP 00001e10: JUMPDEST 00001e11: DIV 00001e12: SWAP10 00001e13: POP 00001e14: PUSH2 0x1e29 00001e17: JUMP 00001e18: JUMPDEST 00001e19: PUSH2 0x1e24 00001e1c: DUP2 00001e1d: PUSH1 0x09 00001e1f: SUB 00001e20: PUSH2 0x2844 00001e23: JUMP 00001e24: JUMPDEST 00001e25: DUP11 00001e26: MUL 00001e27: SWAP10 00001e28: POP 00001e29: JUMPDEST 00001e2a: PUSH2 0x2710 00001e2d: DUP11 00001e2e: LT 00001e2f: DUP1 00001e30: PUSH2 0x1e40 00001e33: JUMPI 00001e34: POP 00001e35: PUSH8 0x0fffffffffffffff 00001e3e: DUP11 00001e3f: GT 00001e40: JUMPDEST 00001e41: ISZERO 00001e42: PUSH2 0x1e7a 00001e45: JUMPI 00001e46: PUSH1 0x40 00001e48: MLOAD 00001e49: PUSH32 0x17d5c4d200000000000000000000000000000000000000000000000000000000 00001e6a: DUP2 00001e6b: MSTORE 00001e6c: PUSH1 0x04 00001e6e: DUP2 00001e6f: ADD 00001e70: DUP12 00001e71: SWAP1 00001e72: MSTORE 00001e73: PUSH1 0x24 00001e75: ADD 00001e76: PUSH2 0x00bb 00001e79: JUMP 00001e7a: JUMPDEST 00001e7b: PUSH1 0x02 00001e7d: DUP3 00001e7e: DIV 00001e7f: DUP11 00001e80: GT 00001e81: ISZERO 00001e82: PUSH2 0x1ec1 00001e85: JUMPI 00001e86: PUSH1 0x40 00001e88: MLOAD 00001e89: PUSH32 0xfecbb38c00000000000000000000000000000000000000000000000000000000 00001eaa: DUP2 00001eab: MSTORE 00001eac: PUSH1 0x04 00001eae: DUP2 00001eaf: ADD 00001eb0: DUP12 00001eb1: SWAP1 00001eb2: MSTORE 00001eb3: PUSH1 0x24 00001eb5: DUP2 00001eb6: ADD 00001eb7: DUP4 00001eb8: SWAP1 00001eb9: MSTORE 00001eba: PUSH1 0x44 00001ebc: ADD 00001ebd: PUSH2 0x00bb 00001ec0: JUMP 00001ec1: JUMPDEST 00001ec2: DUP10 00001ec3: DUP3 00001ec4: SUB 00001ec5: DUP4 00001ec6: DUP12 00001ec7: MUL 00001ec8: DUP2 00001ec9: PUSH2 0x1ed4 00001ecc: JUMPI 00001ecd: PUSH2 0x1ed4 00001ed0: PUSH2 0x3f2b 00001ed3: JUMP 00001ed4: JUMPDEST 00001ed5: DIV 00001ed6: SWAP9 00001ed7: POP 00001ed8: PUSH0 00001ed9: DUP10 00001eda: PUSH2 0x1fff 00001edd: DUP10 00001ede: AND 00001edf: PUSH3 0x0f4240 00001ee3: SWAP1 00001ee4: DUP2 00001ee5: SUB 00001ee6: SWAP1 00001ee7: DUP3 00001ee8: MUL 00001ee9: DUP2 00001eea: PUSH2 0x1ef5 00001eed: JUMPI 00001eee: PUSH2 0x1ef5 00001ef1: PUSH2 0x3f2b 00001ef4: JUMP 00001ef5: JUMPDEST 00001ef6: DIV 00001ef7: SUB 00001ef8: SWAP10 00001ef9: DUP11 00001efa: ADD 00001efb: SWAP10 00001efc: SWAP1 00001efd: POP 00001efe: PUSH1 0x64 00001f00: PUSH1 0x0d 00001f02: DUP10 00001f03: SWAP1 00001f04: SHR 00001f05: PUSH1 0x7f 00001f07: AND 00001f08: DUP3 00001f09: MUL 00001f0a: DIV 00001f0b: DUP11 00001f0c: SUB 00001f0d: DUP8 00001f0e: ADD 00001f0f: SWAP7 00001f10: POP 00001f11: DUP11 00001f12: DUP7 00001f13: LT 00001f14: ISZERO 00001f15: PUSH2 0x1f54 00001f18: JUMPI 00001f19: PUSH1 0x40 00001f1b: MLOAD 00001f1c: PUSH32 0x473f499f00000000000000000000000000000000000000000000000000000000 00001f3d: DUP2 00001f3e: MSTORE 00001f3f: PUSH1 0x04 00001f41: DUP2 00001f42: ADD 00001f43: DUP13 00001f44: SWAP1 00001f45: MSTORE 00001f46: PUSH1 0x24 00001f48: DUP2 00001f49: ADD 00001f4a: DUP8 00001f4b: SWAP1 00001f4c: MSTORE 00001f4d: PUSH1 0x44 00001f4f: ADD 00001f50: PUSH2 0x00bb 00001f53: JUMP 00001f54: JUMPDEST 00001f55: SWAP5 00001f56: DUP11 00001f57: SWAP1 00001f58: SUB 00001f59: SWAP5 00001f5a: PUSH13 0x7e37be2022c0914b2680000000 00001f68: DUP8 00001f69: DUP7 00001f6a: MUL 00001f6b: DIV 00001f6c: DUP7 00001f6d: LT 00001f6e: ISZERO 00001f6f: PUSH2 0x1fae 00001f72: JUMPI 00001f73: PUSH1 0x40 00001f75: MLOAD 00001f76: PUSH32 0xb499466c00000000000000000000000000000000000000000000000000000000 00001f97: DUP2 00001f98: MSTORE 00001f99: PUSH1 0x04 00001f9b: DUP2 00001f9c: ADD 00001f9d: DUP9 00001f9e: SWAP1 00001f9f: MSTORE 00001fa0: PUSH1 0x24 00001fa2: DUP2 00001fa3: ADD 00001fa4: DUP8 00001fa5: SWAP1 00001fa6: MSTORE 00001fa7: PUSH1 0x44 00001fa9: ADD 00001faa: PUSH2 0x00bb 00001fad: JUMP 00001fae: JUMPDEST 00001faf: POP 00001fb0: POP 00001fb1: PUSH2 0x2191 00001fb4: JUMP 00001fb5: JUMPDEST 00001fb6: PUSH1 0x7e 00001fb8: DUP7 00001fb9: SWAP1 00001fba: SHR 00001fbb: PUSH1 0x1f 00001fbd: AND 00001fbe: PUSH1 0x09 00001fc0: DUP2 00001fc1: GT 00001fc2: ISZERO 00001fc3: PUSH2 0x1fe8 00001fc6: JUMPI 00001fc7: PUSH2 0x1fd2 00001fca: PUSH1 0x09 00001fcc: DUP3 00001fcd: SUB 00001fce: PUSH2 0x2844 00001fd1: JUMP 00001fd2: JUMPDEST 00001fd3: DUP11 00001fd4: DUP2 00001fd5: PUSH2 0x1fe0 00001fd8: JUMPI 00001fd9: PUSH2 0x1fe0 00001fdc: PUSH2 0x3f2b 00001fdf: JUMP 00001fe0: JUMPDEST 00001fe1: DIV 00001fe2: SWAP10 00001fe3: POP 00001fe4: PUSH2 0x1ff9 00001fe7: JUMP 00001fe8: JUMPDEST 00001fe9: PUSH2 0x1ff4 00001fec: DUP2 00001fed: PUSH1 0x09 00001fef: SUB 00001ff0: PUSH2 0x2844 00001ff3: JUMP 00001ff4: JUMPDEST 00001ff5: DUP11 00001ff6: MUL 00001ff7: SWAP10 00001ff8: POP 00001ff9: JUMPDEST 00001ffa: PUSH2 0x2710 00001ffd: DUP11 00001ffe: LT 00001fff: DUP1 00002000: PUSH2 0x2010 00002003: JUMPI 00002004: POP 00002005: PUSH8 0x0fffffffffffffff 0000200e: DUP11 0000200f: GT 00002010: JUMPDEST 00002011: ISZERO 00002012: PUSH2 0x204a 00002015: JUMPI 00002016: PUSH1 0x40 00002018: MLOAD 00002019: PUSH32 0x17d5c4d200000000000000000000000000000000000000000000000000000000 0000203a: DUP2 0000203b: MSTORE 0000203c: PUSH1 0x04 0000203e: DUP2 0000203f: ADD 00002040: DUP12 00002041: SWAP1 00002042: MSTORE 00002043: PUSH1 0x24 00002045: ADD 00002046: PUSH2 0x00bb 00002049: JUMP 0000204a: JUMPDEST 0000204b: PUSH1 0x02 0000204d: DUP4 0000204e: DIV 0000204f: DUP11 00002050: GT 00002051: ISZERO 00002052: PUSH2 0x2091 00002055: JUMPI 00002056: PUSH1 0x40 00002058: MLOAD 00002059: PUSH32 0xfecbb38c00000000000000000000000000000000000000000000000000000000 0000207a: DUP2 0000207b: MSTORE 0000207c: PUSH1 0x04 0000207e: DUP2 0000207f: ADD 00002080: DUP12 00002081: SWAP1 00002082: MSTORE 00002083: PUSH1 0x24 00002085: DUP2 00002086: ADD 00002087: DUP5 00002088: SWAP1 00002089: MSTORE 0000208a: PUSH1 0x44 0000208c: ADD 0000208d: PUSH2 0x00bb 00002090: JUMP 00002091: JUMPDEST 00002092: DUP10 00002093: DUP4 00002094: SUB 00002095: DUP3 00002096: DUP12 00002097: MUL 00002098: DUP2 00002099: PUSH2 0x20a4 0000209c: JUMPI 0000209d: PUSH2 0x20a4 000020a0: PUSH2 0x3f2b 000020a3: JUMP 000020a4: JUMPDEST 000020a5: DIV 000020a6: SWAP9 000020a7: POP 000020a8: PUSH0 000020a9: DUP10 000020aa: PUSH2 0x1fff 000020ad: DUP10 000020ae: AND 000020af: PUSH3 0x0f4240 000020b3: SWAP1 000020b4: DUP2 000020b5: SUB 000020b6: SWAP1 000020b7: DUP3 000020b8: MUL 000020b9: DUP2 000020ba: PUSH2 0x20c5 000020bd: JUMPI 000020be: PUSH2 0x20c5 000020c1: PUSH2 0x3f2b 000020c4: JUMP 000020c5: JUMPDEST 000020c6: DIV 000020c7: SUB 000020c8: SWAP10 000020c9: DUP11 000020ca: ADD 000020cb: SWAP10 000020cc: SWAP1 000020cd: POP 000020ce: PUSH1 0x64 000020d0: PUSH1 0x0d 000020d2: DUP10 000020d3: SWAP1 000020d4: SHR 000020d5: PUSH1 0x7f 000020d7: AND 000020d8: DUP3 000020d9: MUL 000020da: DIV 000020db: DUP11 000020dc: SUB 000020dd: DUP7 000020de: ADD 000020df: SWAP6 000020e0: POP 000020e1: DUP11 000020e2: DUP8 000020e3: LT 000020e4: ISZERO 000020e5: PUSH2 0x2124 000020e8: JUMPI 000020e9: PUSH1 0x40 000020eb: MLOAD 000020ec: PUSH32 0x473f499f00000000000000000000000000000000000000000000000000000000 0000210d: DUP2 0000210e: MSTORE 0000210f: PUSH1 0x04 00002111: DUP2 00002112: ADD 00002113: DUP13 00002114: SWAP1 00002115: MSTORE 00002116: PUSH1 0x24 00002118: DUP2 00002119: ADD 0000211a: DUP9 0000211b: SWAP1 0000211c: MSTORE 0000211d: PUSH1 0x44 0000211f: ADD 00002120: PUSH2 0x00bb 00002123: JUMP 00002124: JUMPDEST 00002125: DUP11 00002126: DUP8 00002127: SUB 00002128: SWAP7 00002129: POP 0000212a: PUSH2 0x2710 0000212d: DUP6 0000212e: MUL 0000212f: PUSH12 0x033b2e3c9fd0803ce8000000 0000213c: DUP8 0000213d: MUL 0000213e: DUP2 0000213f: PUSH2 0x214a 00002142: JUMPI 00002143: PUSH2 0x214a 00002146: PUSH2 0x3f2b 00002149: JUMP 0000214a: JUMPDEST 0000214b: DIV 0000214c: DUP8 0000214d: LT 0000214e: ISZERO 0000214f: PUSH2 0x218e 00002152: JUMPI 00002153: PUSH1 0x40 00002155: MLOAD 00002156: PUSH32 0xb499466c00000000000000000000000000000000000000000000000000000000 00002177: DUP2 00002178: MSTORE 00002179: PUSH1 0x04 0000217b: DUP2 0000217c: ADD 0000217d: DUP9 0000217e: SWAP1 0000217f: MSTORE 00002180: PUSH1 0x24 00002182: DUP2 00002183: ADD 00002184: DUP8 00002185: SWAP1 00002186: MSTORE 00002187: PUSH1 0x44 00002189: ADD 0000218a: PUSH2 0x00bb 0000218d: JUMP 0000218e: JUMPDEST 0000218f: POP 00002190: POP 00002191: JUMPDEST 00002192: PUSH1 0x14 00002194: DUP7 00002195: SWAP1 00002196: SHR 00002197: PUSH1 0x03 00002199: AND 0000219a: DUP1 0000219b: ISZERO 0000219c: PUSH2 0x2202 0000219f: JUMPI 000021a0: PUSH0 000021a1: DUP12 000021a2: PUSH2 0x21cc 000021a5: JUMPI 000021a6: DUP11 000021a7: DUP5 000021a8: SUB 000021a9: PUSH12 0x033b2e3c9fd0803ce8000000 000021b6: DUP12 000021b7: DUP6 000021b8: ADD 000021b9: MUL 000021ba: DUP2 000021bb: PUSH2 0x21c6 000021be: JUMPI 000021bf: PUSH2 0x21c6 000021c2: PUSH2 0x3f2b 000021c5: JUMP 000021c6: JUMPDEST 000021c7: DIV 000021c8: PUSH2 0x21ef 000021cb: JUMP 000021cc: JUMPDEST 000021cd: DUP10 000021ce: DUP5 000021cf: ADD 000021d0: PUSH12 0x033b2e3c9fd0803ce8000000 000021dd: DUP13 000021de: DUP6 000021df: SUB 000021e0: MUL 000021e1: DUP2 000021e2: PUSH2 0x21ed 000021e5: JUMPI 000021e6: PUSH2 0x21ed 000021e9: PUSH2 0x3f2b 000021ec: JUMP 000021ed: JUMPDEST 000021ee: DIV 000021ef: JUMPDEST 000021f0: SWAP1 000021f1: POP 000021f2: PUSH2 0x21fe 000021f5: DUP9 000021f6: DUP11 000021f7: DUP5 000021f8: DUP5 000021f9: DUP10 000021fa: PUSH2 0x2927 000021fd: JUMP 000021fe: JUMPDEST 000021ff: SWAP2 00002200: POP 00002201: POP 00002202: JUMPDEST 00002203: PUSH1 0x01 00002205: DUP2 00002206: GT 00002207: DUP1 00002208: PUSH2 0x2218 0000220b: JUMPI 0000220c: POP 0000220d: PUSH1 0x01 0000220f: PUSH1 0x16 00002211: DUP9 00002212: SWAP1 00002213: SHR 00002214: AND 00002215: PUSH1 0x01 00002217: EQ 00002218: JUMPDEST 00002219: ISZERO 0000221a: PUSH2 0x2276 0000221d: JUMPI 0000221e: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 0000223f: DUP9 00002240: AND 00002241: PUSH0 00002242: SWAP1 00002243: DUP2 00002244: MSTORE 00002245: PUSH1 0x03 00002247: PUSH1 0x20 00002249: MSTORE 0000224a: PUSH1 0x40 0000224c: SWAP1 0000224d: KECCAK256 0000224e: DUP1 0000224f: SLOAD 00002250: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000 00002271: AND 00002272: TIMESTAMP 00002273: OR 00002274: SWAP1 00002275: SSTORE 00002276: JUMPDEST 00002277: POP 00002278: PUSH8 0x0fffffffffffffff 00002281: DUP6 00002282: GT 00002283: DUP1 00002284: PUSH2 0x2294 00002287: JUMPI 00002288: POP 00002289: PUSH8 0x0fffffffffffffff 00002292: DUP5 00002293: GT 00002294: JUMPDEST 00002295: ISZERO 00002296: PUSH2 0x22fd 00002299: JUMPI 0000229a: PUSH1 0x40 0000229c: MLOAD 0000229d: PUSH32 0x9e0db87800000000000000000000000000000000000000000000000000000000 000022be: DUP2 000022bf: MSTORE 000022c0: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 000022e1: DUP9 000022e2: AND 000022e3: PUSH1 0x04 000022e5: DUP3 000022e6: ADD 000022e7: MSTORE 000022e8: PUSH1 0x24 000022ea: DUP2 000022eb: ADD 000022ec: DUP7 000022ed: SWAP1 000022ee: MSTORE 000022ef: PUSH1 0x44 000022f1: DUP2 000022f2: ADD 000022f3: DUP6 000022f4: SWAP1 000022f5: MSTORE 000022f6: PUSH1 0x64 000022f8: ADD 000022f9: PUSH2 0x00bb 000022fc: JUMP 000022fd: JUMPDEST 000022fe: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 0000231f: DUP8 00002320: AND 00002321: PUSH0 00002322: SWAP1 00002323: DUP2 00002324: MSTORE 00002325: PUSH1 0x02 00002327: PUSH1 0x20 00002329: MSTORE 0000232a: PUSH1 0x40 0000232c: SWAP1 0000232d: KECCAK256 0000232e: DUP1 0000232f: SLOAD 00002330: PUSH17 0xffffffffffffffffffffffffffffffffff 00002342: AND 00002343: PUSH1 0x88 00002345: DUP8 00002346: SWAP1 00002347: SHL 00002348: OR 00002349: PUSH1 0xc4 0000234b: DUP7 0000234c: SWAP1 0000234d: SHL 0000234e: OR 0000234f: SWAP1 00002350: DUP2 00002351: SWAP1 00002352: SSTORE 00002353: SWAP6 00002354: POP 00002355: DUP10 00002356: ISZERO 00002357: PUSH2 0x23cd 0000235a: JUMPI 0000235b: PUSH1 0x40 0000235d: DUP1 0000235e: MLOAD 0000235f: PUSH9 0x010000000000000000 00002369: PUSH1 0x7d 0000236b: DUP13 0000236c: SWAP1 0000236d: SHL 0000236e: PUSH1 0x41 00002370: DUP13 00002371: SWAP1 00002372: SHL 00002373: PUSH1 0xc0 00002375: DUP13 00002376: SWAP1 00002377: SHR 00002378: OR 00002379: OR 0000237a: OR 0000237b: DUP2 0000237c: MSTORE 0000237d: PUSH1 0x20 0000237f: DUP2 00002380: ADD 00002381: DUP9 00002382: SWAP1 00002383: MSTORE 00002384: PUSH32 0xfbce846c23a724e6e61161894819ec46c90a8d3dd96e90e7342c6ef49ffb539c 000023a5: SWAP2 000023a6: ADD 000023a7: PUSH1 0x40 000023a9: MLOAD 000023aa: DUP1 000023ab: SWAP2 000023ac: SUB 000023ad: SWAP1 000023ae: LOG1 000023af: PUSH1 0x7e 000023b1: DUP7 000023b2: SWAP1 000023b3: SHR 000023b4: PUSH1 0x1f 000023b6: AND 000023b7: PUSH1 0x09 000023b9: DUP2 000023ba: GT 000023bb: ISZERO 000023bc: PUSH2 0x16cf 000023bf: JUMPI 000023c0: PUSH2 0x16be 000023c3: PUSH2 0x16b9 000023c6: PUSH1 0x09 000023c8: DUP4 000023c9: PUSH2 0x3da5 000023cc: JUMP 000023cd: JUMPDEST 000023ce: PUSH1 0x40 000023d0: DUP1 000023d1: MLOAD 000023d2: PUSH1 0x7d 000023d4: DUP12 000023d5: SWAP1 000023d6: SHL 000023d7: PUSH1 0x41 000023d9: DUP12 000023da: SWAP1 000023db: SHL 000023dc: PUSH1 0xc0 000023de: DUP12 000023df: SWAP1 000023e0: SHR 000023e1: OR 000023e2: OR 000023e3: DUP2 000023e4: MSTORE 000023e5: PUSH1 0x20 000023e7: DUP2 000023e8: ADD 000023e9: DUP9 000023ea: SWAP1 000023eb: MSTORE 000023ec: PUSH32 0xfbce846c23a724e6e61161894819ec46c90a8d3dd96e90e7342c6ef49ffb539c 0000240d: SWAP2 0000240e: ADD 0000240f: PUSH1 0x40 00002411: MLOAD 00002412: DUP1 00002413: SWAP2 00002414: SUB 00002415: SWAP1 00002416: LOG1 00002417: PUSH1 0x83 00002419: DUP7 0000241a: SWAP1 0000241b: SHR 0000241c: PUSH1 0x1f 0000241e: AND 0000241f: PUSH1 0x09 00002421: DUP2 00002422: GT 00002423: ISZERO 00002424: PUSH2 0x1769 00002427: JUMPI 00002428: PUSH2 0x1758 0000242b: PUSH2 0x16b9 0000242e: PUSH1 0x09 00002430: DUP4 00002431: PUSH2 0x3da5 00002434: JUMP 00002435: JUMPDEST 00002436: PUSH0 00002437: PUSH0 00002438: PUSH0 00002439: PUSH1 0x01 0000243b: PUSH1 0x16 0000243d: DUP9 0000243e: SWAP1 0000243f: SHR 00002440: AND 00002441: PUSH0 00002442: SUB 00002443: PUSH2 0x2570 00002446: JUMPI 00002447: PUSH3 0x07ffff 0000244b: PUSH1 0x3f 0000244d: DUP9 0000244e: SWAP1 0000244f: SHR 00002450: AND 00002451: SWAP3 00002452: POP 00002453: DUP3 00002454: PUSH0 00002455: SUB 00002456: PUSH2 0x2474 00002459: JUMPI 0000245a: PUSH4 0xffffffff 0000245f: PUSH1 0x1f 00002461: DUP9 00002462: SWAP1 00002463: SHR 00002464: AND 00002465: PUSH1 0xff 00002467: PUSH1 0x17 00002469: DUP10 0000246a: SWAP1 0000246b: SHR 0000246c: AND 0000246d: SHL 0000246e: SWAP3 0000246f: POP 00002470: PUSH2 0x257e 00002473: JUMP 00002474: JUMPDEST 00002475: PUSH2 0x249e 00002478: PUSH32 0x0000000000000000000000004ec7b668baf70d4a4b0fc7941a7708a07b6d45be 00002499: DUP5 0000249a: PUSH2 0x2cf1 0000249d: JUMP 0000249e: JUMPDEST 0000249f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024b4: AND 000024b5: PUSH4 0x02c59a68 000024ba: PUSH2 0x24c6 000024bd: PUSH1 0x20 000024bf: DUP12 000024c0: ADD 000024c1: DUP12 000024c2: PUSH2 0x3bb6 000024c5: JUMP 000024c6: JUMPDEST 000024c7: PUSH2 0x24d6 000024ca: PUSH1 0x40 000024cc: DUP13 000024cd: ADD 000024ce: PUSH1 0x20 000024d0: DUP14 000024d1: ADD 000024d2: PUSH2 0x3bb6 000024d5: JUMP 000024d6: JUMPDEST 000024d7: PUSH1 0x40 000024d9: MLOAD 000024da: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000024fb: PUSH1 0xe0 000024fd: DUP6 000024fe: SWAP1 000024ff: SHL 00002500: AND 00002501: DUP2 00002502: MSTORE 00002503: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002518: SWAP3 00002519: DUP4 0000251a: AND 0000251b: PUSH1 0x04 0000251d: DUP3 0000251e: ADD 0000251f: MSTORE 00002520: SWAP2 00002521: AND 00002522: PUSH1 0x24 00002524: DUP3 00002525: ADD 00002526: MSTORE 00002527: PUSH1 0x44 00002529: ADD 0000252a: PUSH1 0x20 0000252c: PUSH1 0x40 0000252e: MLOAD 0000252f: DUP1 00002530: DUP4 00002531: SUB 00002532: DUP2 00002533: PUSH0 00002534: DUP8 00002535: GAS 00002536: CALL 00002537: ISZERO 00002538: DUP1 00002539: ISZERO 0000253a: PUSH2 0x2545 0000253d: JUMPI 0000253e: RETURNDATASIZE 0000253f: PUSH0 00002540: PUSH0 00002541: RETURNDATACOPY 00002542: RETURNDATASIZE 00002543: PUSH0 00002544: REVERT 00002545: JUMPDEST 00002546: POP 00002547: POP 00002548: POP 00002549: POP 0000254a: PUSH1 0x40 0000254c: MLOAD 0000254d: RETURNDATASIZE 0000254e: PUSH1 0x1f 00002550: NOT 00002551: PUSH1 0x1f 00002553: DUP3 00002554: ADD 00002555: AND 00002556: DUP3 00002557: ADD 00002558: DUP1 00002559: PUSH1 0x40 0000255b: MSTORE 0000255c: POP 0000255d: DUP2 0000255e: ADD 0000255f: SWAP1 00002560: PUSH2 0x2569 00002563: SWAP2 00002564: SWAP1 00002565: PUSH2 0x3b9f 00002568: JUMP 00002569: JUMPDEST 0000256a: SWAP3 0000256b: POP 0000256c: PUSH2 0x257e 0000256f: JUMP 00002570: JUMPDEST 00002571: PUSH2 0x257b 00002574: DUP9 00002575: DUP9 00002576: DUP9 00002577: PUSH2 0x315a 0000257a: JUMP 0000257b: JUMPDEST 0000257c: SWAP3 0000257d: POP 0000257e: JUMPDEST 0000257f: PUSH2 0x3fff 00002582: PUSH1 0x53 00002584: DUP9 00002585: SWAP1 00002586: SHR 00002587: DUP2 00002588: AND 00002589: SWAP1 0000258a: PUSH1 0x61 0000258c: DUP10 0000258d: SWAP1 0000258e: SHR 0000258f: AND 00002590: PUSH1 0x01 00002592: PUSH1 0x52 00002594: DUP11 00002595: SWAP1 00002596: SHR 00002597: DUP2 00002598: AND 00002599: SWAP1 0000259a: SUB 0000259b: PUSH2 0x25af 0000259e: JUMPI 0000259f: PUSH2 0x25a9 000025a2: DUP3 000025a3: DUP3 000025a4: DUP11 000025a5: PUSH2 0x344e 000025a8: JUMP 000025a9: JUMPDEST 000025aa: SWAP1 000025ab: SWAP3 000025ac: POP 000025ad: SWAP1 000025ae: POP 000025af: JUMPDEST 000025b0: PUSH0 000025b1: PUSH0 000025b2: DUP4 000025b3: PUSH2 0x2710 000025b6: SUB 000025b7: PUSH2 0x2710 000025ba: DUP9 000025bb: MUL 000025bc: DUP2 000025bd: PUSH2 0x25c8 000025c0: JUMPI 000025c1: PUSH2 0x25c8 000025c4: PUSH2 0x3f2b 000025c7: JUMP 000025c8: JUMPDEST 000025c9: DIV 000025ca: SWAP2 000025cb: POP 000025cc: POP 000025cd: PUSH2 0x2710 000025d0: DUP3 000025d1: DUP2 000025d2: SUB 000025d3: DUP8 000025d4: MUL 000025d5: DIV 000025d6: PUSH1 0x03 000025d8: PUSH1 0x14 000025da: DUP13 000025db: SWAP1 000025dc: SHR 000025dd: AND 000025de: PUSH0 000025df: PUSH1 0x01 000025e1: DUP3 000025e2: GT 000025e3: ISZERO 000025e4: PUSH2 0x2751 000025e7: JUMPI 000025e8: DUP2 000025e9: PUSH1 0x02 000025eb: SUB 000025ec: PUSH2 0x2665 000025ef: JUMPI 000025f0: POP 000025f1: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 00002612: DUP12 00002613: AND 00002614: PUSH0 00002615: SWAP1 00002616: DUP2 00002617: MSTORE 00002618: PUSH1 0x03 0000261a: PUSH1 0x20 0000261c: MSTORE 0000261d: PUSH1 0x40 0000261f: SWAP1 00002620: KECCAK256 00002621: SLOAD 00002622: PUSH1 0x21 00002624: DUP2 00002625: SWAP1 00002626: SHR 00002627: PUSH3 0xffffff 0000262b: AND 0000262c: PUSH5 0x01ffffffff 00002632: DUP3 00002633: AND 00002634: TIMESTAMP 00002635: SUB 00002636: DUP2 00002637: DUP2 00002638: LT 00002639: ISZERO 0000263a: PUSH2 0x265a 0000263d: JUMPI 0000263e: DUP2 0000263f: DUP2 00002640: DUP13 00002641: DUP9 00002642: SUB 00002643: MUL 00002644: DUP2 00002645: PUSH2 0x2650 00002648: JUMPI 00002649: PUSH2 0x2650 0000264c: PUSH2 0x3f2b 0000264f: JUMP 00002650: JUMPDEST 00002651: DIV 00002652: DUP12 00002653: ADD 00002654: SWAP11 00002655: POP 00002656: PUSH2 0x265e 00002659: JUMP 0000265a: JUMPDEST 0000265b: DUP6 0000265c: SWAP11 0000265d: POP 0000265e: JUMPDEST 0000265f: POP 00002660: POP 00002661: PUSH2 0x26df 00002664: JUMP 00002665: JUMPDEST 00002666: DUP2 00002667: PUSH1 0x03 00002669: SUB 0000266a: PUSH2 0x26df 0000266d: JUMPI 0000266e: POP 0000266f: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 00002690: DUP12 00002691: AND 00002692: PUSH0 00002693: SWAP1 00002694: DUP2 00002695: MSTORE 00002696: PUSH1 0x03 00002698: PUSH1 0x20 0000269a: MSTORE 0000269b: PUSH1 0x40 0000269d: SWAP1 0000269e: KECCAK256 0000269f: SLOAD 000026a0: PUSH1 0x21 000026a2: DUP2 000026a3: SWAP1 000026a4: SHR 000026a5: PUSH3 0xffffff 000026a9: AND 000026aa: PUSH5 0x01ffffffff 000026b0: DUP3 000026b1: AND 000026b2: TIMESTAMP 000026b3: SUB 000026b4: DUP2 000026b5: DUP2 000026b6: LT 000026b7: ISZERO 000026b8: PUSH2 0x26d8 000026bb: JUMPI 000026bc: DUP2 000026bd: DUP2 000026be: DUP7 000026bf: DUP14 000026c0: SUB 000026c1: MUL 000026c2: DUP2 000026c3: PUSH2 0x26ce 000026c6: JUMPI 000026c7: PUSH2 0x26ce 000026ca: PUSH2 0x3f2b 000026cd: JUMP 000026ce: JUMPDEST 000026cf: DIV 000026d0: DUP12 000026d1: SUB 000026d2: SWAP11 000026d3: POP 000026d4: PUSH2 0x26dc 000026d7: JUMP 000026d8: JUMPDEST 000026d9: DUP5 000026da: SWAP11 000026db: POP 000026dc: JUMPDEST 000026dd: POP 000026de: POP 000026df: JUMPDEST 000026e0: DUP1 000026e1: ISZERO 000026e2: PUSH2 0x2751 000026e5: JUMPI 000026e6: PUSH3 0x0fffff 000026ea: PUSH1 0x41 000026ec: DUP3 000026ed: SWAP1 000026ee: SHR 000026ef: AND 000026f0: PUSH1 0xff 000026f2: PUSH1 0x39 000026f4: DUP4 000026f5: SWAP1 000026f6: SHR 000026f7: AND 000026f8: SHL 000026f9: SWAP2 000026fa: POP 000026fb: DUP2 000026fc: DUP10 000026fd: GT 000026fe: ISZERO 000026ff: PUSH2 0x270a 00002702: JUMPI 00002703: DUP2 00002704: SWAP9 00002705: POP 00002706: PUSH2 0x272b 00002709: JUMP 0000270a: JUMPDEST 0000270b: PUSH3 0x0fffff 0000270f: PUSH1 0x5d 00002711: DUP3 00002712: SWAP1 00002713: SHR 00002714: AND 00002715: PUSH1 0xff 00002717: PUSH1 0x55 00002719: DUP4 0000271a: SWAP1 0000271b: SHR 0000271c: AND 0000271d: SHL 0000271e: SWAP2 0000271f: POP 00002720: DUP2 00002721: DUP10 00002722: LT 00002723: ISZERO 00002724: PUSH2 0x272b 00002727: JUMPI 00002728: DUP2 00002729: SWAP9 0000272a: POP 0000272b: JUMPDEST 0000272c: DUP6 0000272d: PUSH2 0x2710 00002730: SUB 00002731: PUSH2 0x2710 00002734: DUP11 00002735: MUL 00002736: DUP2 00002737: PUSH2 0x2742 0000273a: JUMPI 0000273b: PUSH2 0x2742 0000273e: PUSH2 0x3f2b 00002741: JUMP 00002742: JUMPDEST 00002743: DIV 00002744: SWAP4 00002745: POP 00002746: PUSH2 0x2710 00002749: DUP6 0000274a: DUP2 0000274b: SUB 0000274c: DUP11 0000274d: MUL 0000274e: DIV 0000274f: SWAP3 00002750: POP 00002751: JUMPDEST 00002752: PUSH16 0x4b3b4ca85a86c47a098a224000000000 00002763: DUP5 00002764: LT 00002765: ISZERO 00002766: PUSH2 0x277b 00002769: JUMPI 0000276a: PUSH2 0x2774 0000276d: DUP4 0000276e: DUP6 0000276f: MUL 00002770: PUSH2 0x354d 00002773: JUMP 00002774: JUMPDEST 00002775: SWAP2 00002776: POP 00002777: PUSH2 0x27a7 0000277a: JUMP 0000277b: JUMPDEST 0000277c: PUSH2 0x279a 0000277f: PUSH8 0x0de0b6b3a7640000 00002788: DUP5 00002789: DIV 0000278a: PUSH8 0x0de0b6b3a7640000 00002793: DUP7 00002794: DIV 00002795: MUL 00002796: PUSH2 0x354d 00002799: JUMP 0000279a: JUMPDEST 0000279b: PUSH8 0x0de0b6b3a7640000 000027a4: MUL 000027a5: SWAP2 000027a6: POP 000027a7: JUMPDEST 000027a8: PUSH12 0x033b2e3c9fd0803ce8000000 000027b5: DUP3 000027b6: LT 000027b7: ISZERO 000027b8: PUSH2 0x27d1 000027bb: JUMPI 000027bc: PUSH2 0x27c7 000027bf: DUP3 000027c0: DUP6 000027c1: DUP14 000027c2: DUP14 000027c3: PUSH2 0x35ff 000027c6: JUMP 000027c7: JUMPDEST 000027c8: SWAP1 000027c9: SWAP9 000027ca: POP 000027cb: SWAP7 000027cc: POP 000027cd: PUSH2 0x282e 000027d0: JUMP 000027d1: JUMPDEST 000027d2: PUSH2 0x2829 000027d5: DUP3 000027d6: PUSH23 0x0a70c3c40a64e6c51999090b65f67d9240000000000000 000027ee: DUP2 000027ef: PUSH2 0x27fa 000027f2: JUMPI 000027f3: PUSH2 0x27fa 000027f6: PUSH2 0x3f2b 000027f9: JUMP 000027fa: JUMPDEST 000027fb: DIV 000027fc: DUP5 000027fd: PUSH23 0x0a70c3c40a64e6c51999090b65f67d9240000000000000 00002815: DUP2 00002816: PUSH2 0x2821 00002819: JUMPI 0000281a: PUSH2 0x2821 0000281d: PUSH2 0x3f2b 00002820: JUMP 00002821: JUMPDEST 00002822: DIV 00002823: DUP13 00002824: DUP15 00002825: PUSH2 0x35ff 00002828: JUMP 00002829: JUMPDEST 0000282a: SWAP9 0000282b: POP 0000282c: SWAP7 0000282d: POP 0000282e: JUMPDEST 0000282f: POP 00002830: SWAP7 00002831: SWAP13 00002832: SWAP6 00002833: SWAP1 00002834: SWAP9 00002835: ADD 00002836: SWAP11 00002837: POP 00002838: POP 00002839: POP 0000283a: SWAP4 0000283b: ADD 0000283c: SWAP6 0000283d: POP 0000283e: SWAP4 0000283f: POP 00002840: POP 00002841: POP 00002842: POP 00002843: JUMP 00002844: JUMPDEST 00002845: PUSH0 00002846: DUP2 00002847: PUSH1 0x03 00002849: SUB 0000284a: PUSH2 0x2856 0000284d: JUMPI 0000284e: POP 0000284f: PUSH2 0x03e8 00002852: SWAP2 00002853: SWAP1 00002854: POP 00002855: JUMP 00002856: JUMPDEST 00002857: DUP2 00002858: PUSH1 0x09 0000285a: SUB 0000285b: PUSH2 0x2869 0000285e: JUMPI 0000285f: POP 00002860: PUSH4 0x3b9aca00 00002865: SWAP2 00002866: SWAP1 00002867: POP 00002868: JUMP 00002869: JUMPDEST 0000286a: DUP2 0000286b: PUSH1 0x01 0000286d: SUB 0000286e: PUSH2 0x2879 00002871: JUMPI 00002872: POP 00002873: PUSH1 0x0a 00002875: SWAP2 00002876: SWAP1 00002877: POP 00002878: JUMP 00002879: JUMPDEST 0000287a: DUP2 0000287b: PUSH0 0000287c: SUB 0000287d: PUSH2 0x2888 00002880: JUMPI 00002881: POP 00002882: PUSH1 0x01 00002884: SWAP2 00002885: SWAP1 00002886: POP 00002887: JUMP 00002888: JUMPDEST 00002889: DUP2 0000288a: PUSH1 0x02 0000288c: SUB 0000288d: PUSH2 0x2898 00002890: JUMPI 00002891: POP 00002892: PUSH1 0x64 00002894: SWAP2 00002895: SWAP1 00002896: POP 00002897: JUMP 00002898: JUMPDEST 00002899: DUP2 0000289a: PUSH1 0x04 0000289c: SUB 0000289d: PUSH2 0x28a9 000028a0: JUMPI 000028a1: POP 000028a2: PUSH2 0x2710 000028a5: SWAP2 000028a6: SWAP1 000028a7: POP 000028a8: JUMP 000028a9: JUMPDEST 000028aa: DUP2 000028ab: PUSH1 0x05 000028ad: SUB 000028ae: PUSH2 0x28bb 000028b1: JUMPI 000028b2: POP 000028b3: PUSH3 0x0186a0 000028b7: SWAP2 000028b8: SWAP1 000028b9: POP 000028ba: JUMP 000028bb: JUMPDEST 000028bc: DUP2 000028bd: PUSH1 0x06 000028bf: SUB 000028c0: PUSH2 0x28cd 000028c3: JUMPI 000028c4: POP 000028c5: PUSH3 0x0f4240 000028c9: SWAP2 000028ca: SWAP1 000028cb: POP 000028cc: JUMP 000028cd: JUMPDEST 000028ce: DUP2 000028cf: PUSH1 0x07 000028d1: SUB 000028d2: PUSH2 0x28df 000028d5: JUMPI 000028d6: POP 000028d7: PUSH3 0x989680 000028db: SWAP2 000028dc: SWAP1 000028dd: POP 000028de: JUMP 000028df: JUMPDEST 000028e0: DUP2 000028e1: PUSH1 0x08 000028e3: SUB 000028e4: PUSH2 0x28f2 000028e7: JUMPI 000028e8: POP 000028e9: PUSH4 0x05f5e100 000028ee: SWAP2 000028ef: SWAP1 000028f0: POP 000028f1: JUMP 000028f2: JUMPDEST 000028f3: PUSH1 0x40 000028f5: MLOAD 000028f6: PUSH32 0x42cfde2500000000000000000000000000000000000000000000000000000000 00002917: DUP2 00002918: MSTORE 00002919: PUSH1 0x04 0000291b: DUP2 0000291c: ADD 0000291d: DUP4 0000291e: SWAP1 0000291f: MSTORE 00002920: PUSH1 0x24 00002922: ADD 00002923: PUSH2 0x00bb 00002926: JUMP 00002927: JUMPDEST 00002928: PUSH0 00002929: PUSH2 0x3fff 0000292c: PUSH1 0x53 0000292e: DUP8 0000292f: SWAP1 00002930: SHR 00002931: DUP2 00002932: AND 00002933: SWAP1 00002934: PUSH1 0x61 00002936: DUP9 00002937: SWAP1 00002938: SHR 00002939: AND 0000293a: PUSH1 0x01 0000293c: PUSH1 0x52 0000293e: DUP10 0000293f: SWAP1 00002940: SHR 00002941: DUP2 00002942: AND 00002943: SWAP1 00002944: SUB 00002945: PUSH2 0x2959 00002948: JUMPI 00002949: PUSH2 0x2953 0000294c: DUP3 0000294d: DUP3 0000294e: DUP10 0000294f: PUSH2 0x344e 00002952: JUMP 00002953: JUMPDEST 00002954: SWAP1 00002955: SWAP3 00002956: POP 00002957: SWAP1 00002958: POP 00002959: JUMPDEST 0000295a: DUP2 0000295b: PUSH2 0x2710 0000295e: SUB 0000295f: PUSH2 0x2710 00002962: DUP6 00002963: MUL 00002964: DUP2 00002965: PUSH2 0x2970 00002968: JUMPI 00002969: PUSH2 0x2970 0000296c: PUSH2 0x3f2b 0000296f: JUMP 00002970: JUMPDEST 00002971: DIV 00002972: SWAP2 00002973: POP 00002974: PUSH2 0x2710 00002977: DUP2 00002978: DUP2 00002979: SUB 0000297a: DUP6 0000297b: MUL 0000297c: DIV 0000297d: SWAP1 0000297e: POP 0000297f: PUSH1 0x7f 00002981: PUSH1 0x70 00002983: DUP10 00002984: SWAP1 00002985: SHR 00002986: DUP2 00002987: AND 00002988: SWAP1 00002989: PUSH1 0x77 0000298b: DUP11 0000298c: SWAP1 0000298d: SHR 0000298e: AND 0000298f: PUSH1 0x01 00002991: PUSH1 0x6f 00002993: DUP12 00002994: SWAP1 00002995: SHR 00002996: DUP2 00002997: AND 00002998: SWAP1 00002999: SUB 0000299a: PUSH2 0x29ae 0000299d: JUMPI 0000299e: PUSH2 0x29a8 000029a1: DUP3 000029a2: DUP3 000029a3: DUP12 000029a4: PUSH2 0x3678 000029a7: JUMP 000029a8: JUMPDEST 000029a9: SWAP1 000029aa: SWAP3 000029ab: POP 000029ac: SWAP1 000029ad: POP 000029ae: JUMPDEST 000029af: PUSH1 0x64 000029b1: SWAP2 000029b2: DUP3 000029b3: SUB 000029b4: DUP7 000029b5: DUP6 000029b6: SUB 000029b7: MUL 000029b8: DUP3 000029b9: SWAP1 000029ba: DIV 000029bb: DUP7 000029bc: ADD 000029bd: SWAP2 000029be: SWAP1 000029bf: DUP2 000029c0: SUB 000029c1: DUP4 000029c2: DUP8 000029c3: SUB 000029c4: MUL 000029c5: DIV 000029c6: DUP6 000029c7: SUB 000029c8: DUP2 000029c9: DUP8 000029ca: GT 000029cb: ISZERO 000029cc: PUSH2 0x2a46 000029cf: JUMPI 000029d0: DUP8 000029d1: PUSH1 0x02 000029d3: EQ 000029d4: PUSH2 0x2a41 000029d7: JUMPI 000029d8: POP 000029d9: POP 000029da: POP 000029db: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 000029fc: DUP7 000029fd: AND 000029fe: PUSH0 000029ff: SWAP1 00002a00: DUP2 00002a01: MSTORE 00002a02: PUSH1 0x02 00002a04: PUSH1 0x20 00002a06: DUP2 00002a07: SWAP1 00002a08: MSTORE 00002a09: PUSH1 0x40 00002a0b: SWAP1 00002a0c: SWAP2 00002a0d: KECCAK256 00002a0e: DUP1 00002a0f: SLOAD 00002a10: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffff 00002a31: AND 00002a32: PUSH3 0x200000 00002a36: OR 00002a37: SWAP1 00002a38: SSTORE 00002a39: SWAP2 00002a3a: POP 00002a3b: PUSH2 0x2b36 00002a3e: SWAP1 00002a3f: POP 00002a40: JUMP 00002a41: JUMPDEST 00002a42: PUSH2 0x2b2e 00002a45: JUMP 00002a46: JUMPDEST 00002a47: DUP1 00002a48: DUP8 00002a49: LT 00002a4a: ISZERO 00002a4b: PUSH2 0x2abe 00002a4e: JUMPI 00002a4f: DUP8 00002a50: PUSH1 0x03 00002a52: EQ 00002a53: PUSH2 0x2a41 00002a56: JUMPI 00002a57: POP 00002a58: POP 00002a59: POP 00002a5a: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 00002a7b: DUP7 00002a7c: AND 00002a7d: PUSH0 00002a7e: SWAP1 00002a7f: DUP2 00002a80: MSTORE 00002a81: PUSH1 0x02 00002a83: PUSH1 0x20 00002a85: MSTORE 00002a86: PUSH1 0x40 00002a88: SWAP1 00002a89: KECCAK256 00002a8a: DUP1 00002a8b: SLOAD 00002a8c: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffff 00002aad: AND 00002aae: PUSH3 0x300000 00002ab2: OR 00002ab3: SWAP1 00002ab4: SSTORE 00002ab5: POP 00002ab6: PUSH1 0x03 00002ab8: SWAP1 00002ab9: POP 00002aba: PUSH2 0x2b36 00002abd: JUMP 00002abe: JUMPDEST 00002abf: DUP8 00002ac0: PUSH1 0x01 00002ac2: EQ 00002ac3: PUSH2 0x2b2e 00002ac6: JUMPI 00002ac7: POP 00002ac8: POP 00002ac9: POP 00002aca: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 00002aeb: DUP7 00002aec: AND 00002aed: PUSH0 00002aee: SWAP1 00002aef: DUP2 00002af0: MSTORE 00002af1: PUSH1 0x02 00002af3: PUSH1 0x20 00002af5: MSTORE 00002af6: PUSH1 0x40 00002af8: SWAP1 00002af9: KECCAK256 00002afa: DUP1 00002afb: SLOAD 00002afc: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffff 00002b1d: AND 00002b1e: PUSH3 0x100000 00002b22: OR 00002b23: SWAP1 00002b24: SSTORE 00002b25: POP 00002b26: PUSH1 0x01 00002b28: SWAP1 00002b29: POP 00002b2a: PUSH2 0x2b36 00002b2d: JUMP 00002b2e: JUMPDEST 00002b2f: DUP8 00002b30: SWAP5 00002b31: POP 00002b32: POP 00002b33: POP 00002b34: POP 00002b35: POP 00002b36: JUMPDEST 00002b37: SWAP6 00002b38: SWAP5 00002b39: POP 00002b3a: POP 00002b3b: POP 00002b3c: POP 00002b3d: POP 00002b3e: JUMP 00002b3f: JUMPDEST 00002b40: PUSH0 00002b41: PUSH0 00002b42: PUSH0 00002b43: PUSH0 00002b44: PUSH0 00002b45: DUP6 00002b46: DUP8 00002b47: PUSH2 0x4e20 00002b4a: CALL 00002b4b: SWAP1 00002b4c: POP 00002b4d: DUP1 00002b4e: PUSH2 0x1cd6 00002b51: JUMPI 00002b52: PUSH1 0x40 00002b54: MLOAD 00002b55: PUSH32 0xdee51a8a00000000000000000000000000000000000000000000000000000000 00002b76: DUP2 00002b77: MSTORE 00002b78: PUSH3 0x01155a 00002b7c: PUSH1 0x04 00002b7e: DUP3 00002b7f: ADD 00002b80: MSTORE 00002b81: PUSH1 0x24 00002b83: ADD 00002b84: PUSH2 0x00bb 00002b87: JUMP 00002b88: JUMPDEST 00002b89: PUSH0 00002b8a: PUSH1 0x40 00002b8c: MLOAD 00002b8d: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 00002bae: DUP2 00002baf: MSTORE 00002bb0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bc5: DUP5 00002bc6: AND 00002bc7: PUSH1 0x04 00002bc9: DUP3 00002bca: ADD 00002bcb: MSTORE 00002bcc: DUP3 00002bcd: PUSH1 0x24 00002bcf: DUP3 00002bd0: ADD 00002bd1: MSTORE 00002bd2: PUSH1 0x20 00002bd4: PUSH0 00002bd5: PUSH1 0x44 00002bd7: DUP4 00002bd8: PUSH0 00002bd9: DUP10 00002bda: GAS 00002bdb: CALL 00002bdc: RETURNDATASIZE 00002bdd: ISZERO 00002bde: PUSH1 0x1f 00002be0: RETURNDATASIZE 00002be1: GT 00002be2: PUSH1 0x01 00002be4: PUSH0 00002be5: MLOAD 00002be6: EQ 00002be7: AND 00002be8: OR 00002be9: AND 00002bea: SWAP2 00002beb: POP 00002bec: POP 00002bed: DUP1 00002bee: PUSH2 0x2c28 00002bf1: JUMPI 00002bf2: PUSH1 0x40 00002bf4: MLOAD 00002bf5: PUSH32 0xdee51a8a00000000000000000000000000000000000000000000000000000000 00002c16: DUP2 00002c17: MSTORE 00002c18: PUSH3 0x01155a 00002c1c: PUSH1 0x04 00002c1e: DUP3 00002c1f: ADD 00002c20: MSTORE 00002c21: PUSH1 0x24 00002c23: ADD 00002c24: PUSH2 0x00bb 00002c27: JUMP 00002c28: JUMPDEST 00002c29: POP 00002c2a: POP 00002c2b: POP 00002c2c: POP 00002c2d: JUMP 00002c2e: JUMPDEST 00002c2f: PUSH0 00002c30: PUSH1 0x40 00002c32: MLOAD 00002c33: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 00002c54: DUP2 00002c55: MSTORE 00002c56: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c6b: DUP6 00002c6c: AND 00002c6d: PUSH1 0x04 00002c6f: DUP3 00002c70: ADD 00002c71: MSTORE 00002c72: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c87: DUP5 00002c88: AND 00002c89: PUSH1 0x24 00002c8b: DUP3 00002c8c: ADD 00002c8d: MSTORE 00002c8e: DUP3 00002c8f: PUSH1 0x44 00002c91: DUP3 00002c92: ADD 00002c93: MSTORE 00002c94: PUSH1 0x20 00002c96: PUSH0 00002c97: PUSH1 0x64 00002c99: DUP4 00002c9a: PUSH0 00002c9b: DUP11 00002c9c: GAS 00002c9d: CALL 00002c9e: RETURNDATASIZE 00002c9f: ISZERO 00002ca0: PUSH1 0x1f 00002ca2: RETURNDATASIZE 00002ca3: GT 00002ca4: PUSH1 0x01 00002ca6: PUSH0 00002ca7: MLOAD 00002ca8: EQ 00002ca9: AND 00002caa: OR 00002cab: AND 00002cac: SWAP2 00002cad: POP 00002cae: POP 00002caf: DUP1 00002cb0: PUSH2 0x2cea 00002cb3: JUMPI 00002cb4: PUSH1 0x40 00002cb6: MLOAD 00002cb7: PUSH32 0xdee51a8a00000000000000000000000000000000000000000000000000000000 00002cd8: DUP2 00002cd9: MSTORE 00002cda: PUSH3 0x011559 00002cde: PUSH1 0x04 00002ce0: DUP3 00002ce1: ADD 00002ce2: MSTORE 00002ce3: PUSH1 0x24 00002ce5: ADD 00002ce6: PUSH2 0x00bb 00002ce9: JUMP 00002cea: JUMPDEST 00002ceb: POP 00002cec: POP 00002ced: POP 00002cee: POP 00002cef: POP 00002cf0: JUMP 00002cf1: JUMPDEST 00002cf2: PUSH0 00002cf3: PUSH1 0x60 00002cf5: DUP3 00002cf6: PUSH0 00002cf7: SUB 00002cf8: PUSH2 0x2d04 00002cfb: JUMPI 00002cfc: PUSH0 00002cfd: SWAP2 00002cfe: POP 00002cff: POP 00002d00: PUSH2 0x3154 00002d03: JUMP 00002d04: JUMPDEST 00002d05: PUSH1 0x7f 00002d07: DUP4 00002d08: GT 00002d09: PUSH2 0x2dcd 00002d0c: JUMPI 00002d0d: PUSH1 0x40 00002d0f: MLOAD 00002d10: PUSH32 0xd600000000000000000000000000000000000000000000000000000000000000 00002d31: PUSH1 0x20 00002d33: DUP3 00002d34: ADD 00002d35: MSTORE 00002d36: PUSH32 0x9400000000000000000000000000000000000000000000000000000000000000 00002d57: PUSH1 0x21 00002d59: DUP3 00002d5a: ADD 00002d5b: MSTORE 00002d5c: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00002d7d: PUSH1 0x60 00002d7f: DUP7 00002d80: SWAP1 00002d81: SHL 00002d82: AND 00002d83: PUSH1 0x22 00002d85: DUP3 00002d86: ADD 00002d87: MSTORE 00002d88: PUSH1 0xf8 00002d8a: DUP5 00002d8b: SWAP1 00002d8c: SHL 00002d8d: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000 00002dae: AND 00002daf: PUSH1 0x36 00002db1: DUP3 00002db2: ADD 00002db3: MSTORE 00002db4: PUSH1 0x37 00002db6: ADD 00002db7: JUMPDEST 00002db8: PUSH1 0x40 00002dba: MLOAD 00002dbb: PUSH1 0x20 00002dbd: DUP2 00002dbe: DUP4 00002dbf: SUB 00002dc0: SUB 00002dc1: DUP2 00002dc2: MSTORE 00002dc3: SWAP1 00002dc4: PUSH1 0x40 00002dc6: MSTORE 00002dc7: SWAP1 00002dc8: POP 00002dc9: PUSH2 0x3149 00002dcc: JUMP 00002dcd: JUMPDEST 00002dce: PUSH1 0xff 00002dd0: DUP4 00002dd1: GT 00002dd2: PUSH2 0x2eaa 00002dd5: JUMPI 00002dd6: PUSH1 0x40 00002dd8: MLOAD 00002dd9: PUSH32 0xd700000000000000000000000000000000000000000000000000000000000000 00002dfa: PUSH1 0x20 00002dfc: DUP3 00002dfd: ADD 00002dfe: MSTORE 00002dff: PUSH32 0x9400000000000000000000000000000000000000000000000000000000000000 00002e20: PUSH1 0x21 00002e22: DUP3 00002e23: ADD 00002e24: MSTORE 00002e25: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00002e46: PUSH1 0x60 00002e48: DUP7 00002e49: SWAP1 00002e4a: SHL 00002e4b: AND 00002e4c: PUSH1 0x22 00002e4e: DUP3 00002e4f: ADD 00002e50: MSTORE 00002e51: PUSH32 0x8100000000000000000000000000000000000000000000000000000000000000 00002e72: PUSH1 0x36 00002e74: DUP3 00002e75: ADD 00002e76: MSTORE 00002e77: PUSH1 0xf8 00002e79: DUP5 00002e7a: SWAP1 00002e7b: SHL 00002e7c: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000 00002e9d: AND 00002e9e: PUSH1 0x37 00002ea0: DUP3 00002ea1: ADD 00002ea2: MSTORE 00002ea3: PUSH1 0x38 00002ea5: ADD 00002ea6: PUSH2 0x2db7 00002ea9: JUMP 00002eaa: JUMPDEST 00002eab: PUSH2 0xffff 00002eae: DUP4 00002eaf: GT 00002eb0: PUSH2 0x2f88 00002eb3: JUMPI 00002eb4: PUSH1 0x40 00002eb6: MLOAD 00002eb7: PUSH32 0xd800000000000000000000000000000000000000000000000000000000000000 00002ed8: PUSH1 0x20 00002eda: DUP3 00002edb: ADD 00002edc: MSTORE 00002edd: PUSH32 0x9400000000000000000000000000000000000000000000000000000000000000 00002efe: PUSH1 0x21 00002f00: DUP3 00002f01: ADD 00002f02: MSTORE 00002f03: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00002f24: PUSH1 0x60 00002f26: DUP7 00002f27: SWAP1 00002f28: SHL 00002f29: AND 00002f2a: PUSH1 0x22 00002f2c: DUP3 00002f2d: ADD 00002f2e: MSTORE 00002f2f: PUSH32 0x8200000000000000000000000000000000000000000000000000000000000000 00002f50: PUSH1 0x36 00002f52: DUP3 00002f53: ADD 00002f54: MSTORE 00002f55: PUSH32 0xffff000000000000000000000000000000000000000000000000000000000000 00002f76: PUSH1 0xf0 00002f78: DUP6 00002f79: SWAP1 00002f7a: SHL 00002f7b: AND 00002f7c: PUSH1 0x37 00002f7e: DUP3 00002f7f: ADD 00002f80: MSTORE 00002f81: PUSH1 0x39 00002f83: ADD 00002f84: PUSH2 0x2db7 00002f87: JUMP 00002f88: JUMPDEST 00002f89: PUSH3 0xffffff 00002f8d: DUP4 00002f8e: GT 00002f8f: PUSH2 0x3067 00002f92: JUMPI 00002f93: PUSH1 0x40 00002f95: MLOAD 00002f96: PUSH32 0xd900000000000000000000000000000000000000000000000000000000000000 00002fb7: PUSH1 0x20 00002fb9: DUP3 00002fba: ADD 00002fbb: MSTORE 00002fbc: PUSH32 0x9400000000000000000000000000000000000000000000000000000000000000 00002fdd: PUSH1 0x21 00002fdf: DUP3 00002fe0: ADD 00002fe1: MSTORE 00002fe2: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00003003: PUSH1 0x60 00003005: DUP7 00003006: SWAP1 00003007: SHL 00003008: AND 00003009: PUSH1 0x22 0000300b: DUP3 0000300c: ADD 0000300d: MSTORE 0000300e: PUSH32 0x8300000000000000000000000000000000000000000000000000000000000000 0000302f: PUSH1 0x36 00003031: DUP3 00003032: ADD 00003033: MSTORE 00003034: PUSH32 0xffffff0000000000000000000000000000000000000000000000000000000000 00003055: PUSH1 0xe8 00003057: DUP6 00003058: SWAP1 00003059: SHL 0000305a: AND 0000305b: PUSH1 0x37 0000305d: DUP3 0000305e: ADD 0000305f: MSTORE 00003060: PUSH1 0x3a 00003062: ADD 00003063: PUSH2 0x2db7 00003066: JUMP 00003067: JUMPDEST 00003068: PUSH1 0x40 0000306a: MLOAD 0000306b: PUSH32 0xda00000000000000000000000000000000000000000000000000000000000000 0000308c: PUSH1 0x20 0000308e: DUP3 0000308f: ADD 00003090: MSTORE 00003091: PUSH32 0x9400000000000000000000000000000000000000000000000000000000000000 000030b2: PUSH1 0x21 000030b4: DUP3 000030b5: ADD 000030b6: MSTORE 000030b7: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 000030d8: PUSH1 0x60 000030da: DUP7 000030db: SWAP1 000030dc: SHL 000030dd: AND 000030de: PUSH1 0x22 000030e0: DUP3 000030e1: ADD 000030e2: MSTORE 000030e3: PUSH32 0x8400000000000000000000000000000000000000000000000000000000000000 00003104: PUSH1 0x36 00003106: DUP3 00003107: ADD 00003108: MSTORE 00003109: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000312a: PUSH1 0xe0 0000312c: DUP6 0000312d: SWAP1 0000312e: SHL 0000312f: AND 00003130: PUSH1 0x37 00003132: DUP3 00003133: ADD 00003134: MSTORE 00003135: PUSH1 0x3b 00003137: ADD 00003138: PUSH1 0x40 0000313a: MLOAD 0000313b: PUSH1 0x20 0000313d: DUP2 0000313e: DUP4 0000313f: SUB 00003140: SUB 00003141: DUP2 00003142: MSTORE 00003143: SWAP1 00003144: PUSH1 0x40 00003146: MSTORE 00003147: SWAP1 00003148: POP 00003149: JUMPDEST 0000314a: DUP1 0000314b: MLOAD 0000314c: PUSH1 0x20 0000314e: SWAP1 0000314f: SWAP2 00003150: ADD 00003151: KECCAK256 00003152: SWAP1 00003153: POP 00003154: JUMPDEST 00003155: SWAP3 00003156: SWAP2 00003157: POP 00003158: POP 00003159: JUMP 0000315a: JUMPDEST 0000315b: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 0000317c: DUP2 0000317d: AND 0000317e: PUSH0 0000317f: SWAP1 00003180: DUP2 00003181: MSTORE 00003182: PUSH1 0x03 00003184: PUSH1 0x20 00003186: MSTORE 00003187: PUSH1 0x40 00003189: DUP2 0000318a: KECCAK256 0000318b: SLOAD 0000318c: PUSH1 0x1f 0000318e: DUP5 0000318f: SWAP1 00003190: SHR 00003191: PUSH4 0xffffffff 00003196: AND 00003197: PUSH1 0x17 00003199: DUP6 0000319a: SWAP1 0000319b: SHR 0000319c: PUSH1 0xff 0000319e: AND 0000319f: SHL 000031a0: SWAP1 000031a1: PUSH5 0x01ffffffff 000031a7: PUSH1 0x99 000031a9: DUP3 000031aa: SWAP1 000031ab: SHR 000031ac: DUP2 000031ad: AND 000031ae: SWAP1 000031af: DUP3 000031b0: AND 000031b1: DUP2 000031b2: DUP2 000031b3: GT 000031b4: PUSH2 0x31bd 000031b7: JUMPI 000031b8: DUP2 000031b9: PUSH2 0x31bf 000031bc: JUMP 000031bd: JUMPDEST 000031be: DUP1 000031bf: JUMPDEST 000031c0: SWAP1 000031c1: POP 000031c2: PUSH2 0x31f4 000031c5: PUSH32 0x0000000000000000000000004ec7b668baf70d4a4b0fc7941a7708a07b6d45be 000031e6: PUSH3 0x07ffff 000031ea: PUSH1 0x3f 000031ec: DUP11 000031ed: SWAP1 000031ee: SHR 000031ef: AND 000031f0: PUSH2 0x2cf1 000031f3: JUMP 000031f4: JUMPDEST 000031f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000320a: AND 0000320b: PUSH4 0x02c59a68 00003210: PUSH2 0x321c 00003213: PUSH1 0x20 00003215: DUP12 00003216: ADD 00003217: DUP12 00003218: PUSH2 0x3bb6 0000321b: JUMP 0000321c: JUMPDEST 0000321d: PUSH2 0x322c 00003220: PUSH1 0x40 00003222: DUP13 00003223: ADD 00003224: PUSH1 0x20 00003226: DUP14 00003227: ADD 00003228: PUSH2 0x3bb6 0000322b: JUMP 0000322c: JUMPDEST 0000322d: PUSH1 0x40 0000322f: MLOAD 00003230: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00003251: PUSH1 0xe0 00003253: DUP6 00003254: SWAP1 00003255: SHL 00003256: AND 00003257: DUP2 00003258: MSTORE 00003259: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000326e: SWAP3 0000326f: DUP4 00003270: AND 00003271: PUSH1 0x04 00003273: DUP3 00003274: ADD 00003275: MSTORE 00003276: SWAP2 00003277: AND 00003278: PUSH1 0x24 0000327a: DUP3 0000327b: ADD 0000327c: MSTORE 0000327d: PUSH1 0x44 0000327f: ADD 00003280: PUSH1 0x20 00003282: PUSH1 0x40 00003284: MLOAD 00003285: DUP1 00003286: DUP4 00003287: SUB 00003288: DUP2 00003289: PUSH0 0000328a: DUP8 0000328b: GAS 0000328c: CALL 0000328d: ISZERO 0000328e: DUP1 0000328f: ISZERO 00003290: PUSH2 0x329b 00003293: JUMPI 00003294: RETURNDATASIZE 00003295: PUSH0 00003296: PUSH0 00003297: RETURNDATACOPY 00003298: RETURNDATASIZE 00003299: PUSH0 0000329a: REVERT 0000329b: JUMPDEST 0000329c: POP 0000329d: POP 0000329e: POP 0000329f: POP 000032a0: PUSH1 0x40 000032a2: MLOAD 000032a3: RETURNDATASIZE 000032a4: PUSH1 0x1f 000032a6: NOT 000032a7: PUSH1 0x1f 000032a9: DUP3 000032aa: ADD 000032ab: AND 000032ac: DUP3 000032ad: ADD 000032ae: DUP1 000032af: PUSH1 0x40 000032b1: MSTORE 000032b2: POP 000032b3: DUP2 000032b4: ADD 000032b5: SWAP1 000032b6: PUSH2 0x32bf 000032b9: SWAP2 000032ba: SWAP1 000032bb: PUSH2 0x3b9f 000032be: JUMP 000032bf: JUMPDEST 000032c0: SWAP5 000032c1: POP 000032c2: PUSH0 000032c3: PUSH3 0x0f4240 000032c7: PUSH3 0x0fffff 000032cb: PUSH1 0x85 000032cd: DUP7 000032ce: SWAP1 000032cf: SHR 000032d0: AND 000032d1: MUL 000032d2: DUP3 000032d3: TIMESTAMP 000032d4: SUB 000032d5: PUSH3 0x0fffff 000032d9: PUSH1 0x71 000032db: DUP8 000032dc: SWAP1 000032dd: SHR 000032de: AND 000032df: DUP8 000032e0: MUL 000032e1: MUL 000032e2: DUP2 000032e3: PUSH2 0x32ee 000032e6: JUMPI 000032e7: PUSH2 0x32ee 000032ea: PUSH2 0x3f2b 000032ed: JUMP 000032ee: JUMPDEST 000032ef: DIV 000032f0: SWAP1 000032f1: POP 000032f2: DUP5 000032f3: DUP7 000032f4: GT 000032f5: ISZERO 000032f6: PUSH2 0x3398 000032f9: JUMPI 000032fa: SWAP4 000032fb: DUP5 000032fc: ADD 000032fd: SWAP4 000032fe: DUP5 000032ff: DUP7 00003300: GT 00003301: ISZERO 00003302: PUSH2 0x330d 00003305: JUMPI 00003306: DUP5 00003307: SWAP6 00003308: POP 00003309: PUSH2 0x3442 0000330c: JUMP 0000330d: JUMPDEST 0000330e: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 0000332f: DUP8 00003330: AND 00003331: PUSH0 00003332: SWAP1 00003333: DUP2 00003334: MSTORE 00003335: PUSH1 0x03 00003337: PUSH1 0x20 00003339: SWAP1 0000333a: DUP2 0000333b: MSTORE 0000333c: PUSH1 0x40 0000333e: DUP1 0000333f: DUP4 00003340: KECCAK256 00003341: DUP1 00003342: SLOAD 00003343: PUSH32 0xfffffffffffffffffc000000000000000001ffffffffffffffffffffffffffff 00003364: AND 00003365: SWAP1 00003366: SSTORE 00003367: PUSH1 0x02 00003369: SWAP1 0000336a: SWAP2 0000336b: MSTORE 0000336c: SWAP1 0000336d: KECCAK256 0000336e: DUP1 0000336f: SLOAD 00003370: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffff 00003391: AND 00003392: SWAP1 00003393: SSTORE 00003394: PUSH2 0x3442 00003397: JUMP 00003398: JUMPDEST 00003399: DUP1 0000339a: DUP6 0000339b: GT 0000339c: PUSH2 0x33a5 0000339f: JUMPI 000033a0: PUSH0 000033a1: PUSH2 0x33a9 000033a4: JUMP 000033a5: JUMPDEST 000033a6: DUP1 000033a7: DUP6 000033a8: SUB 000033a9: JUMPDEST 000033aa: SWAP5 000033ab: POP 000033ac: DUP5 000033ad: DUP7 000033ae: LT 000033af: ISZERO 000033b0: PUSH2 0x33bb 000033b3: JUMPI 000033b4: DUP5 000033b5: SWAP6 000033b6: POP 000033b7: PUSH2 0x3442 000033ba: JUMP 000033bb: JUMPDEST 000033bc: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 000033dd: DUP8 000033de: AND 000033df: PUSH0 000033e0: SWAP1 000033e1: DUP2 000033e2: MSTORE 000033e3: PUSH1 0x03 000033e5: PUSH1 0x20 000033e7: SWAP1 000033e8: DUP2 000033e9: MSTORE 000033ea: PUSH1 0x40 000033ec: DUP1 000033ed: DUP4 000033ee: KECCAK256 000033ef: DUP1 000033f0: SLOAD 000033f1: PUSH32 0xfffffffffffffffffc000000000000000001ffffffffffffffffffffffffffff 00003412: AND 00003413: SWAP1 00003414: SSTORE 00003415: PUSH1 0x02 00003417: SWAP1 00003418: SWAP2 00003419: MSTORE 0000341a: SWAP1 0000341b: KECCAK256 0000341c: DUP1 0000341d: SLOAD 0000341e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffff 0000343f: AND 00003440: SWAP1 00003441: SSTORE 00003442: JUMPDEST 00003443: POP 00003444: POP 00003445: POP 00003446: POP 00003447: POP 00003448: SWAP4 00003449: SWAP3 0000344a: POP 0000344b: POP 0000344c: POP 0000344d: JUMP 0000344e: JUMPDEST 0000344f: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 00003470: DUP2 00003471: AND 00003472: PUSH0 00003473: SWAP1 00003474: DUP2 00003475: MSTORE 00003476: PUSH1 0x04 00003478: PUSH1 0x20 0000347a: MSTORE 0000347b: PUSH1 0x40 0000347d: DUP2 0000347e: KECCAK256 0000347f: SLOAD 00003480: DUP2 00003481: SWAP1 00003482: PUSH1 0x1c 00003484: DUP2 00003485: SWAP1 00003486: SHR 00003487: PUSH3 0x0fffff 0000348b: AND 0000348c: PUSH1 0x30 0000348e: DUP3 0000348f: SWAP1 00003490: SHR 00003491: PUSH5 0x01ffffffff 00003497: AND 00003498: DUP4 00003499: TIMESTAMP 0000349a: DUP3 0000349b: DUP5 0000349c: ADD 0000349d: LT 0000349e: ISZERO 0000349f: PUSH2 0x3513 000034a2: JUMPI 000034a3: POP 000034a4: POP 000034a5: POP 000034a6: POP 000034a7: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 000034c8: DUP4 000034c9: AND 000034ca: PUSH0 000034cb: SWAP1 000034cc: DUP2 000034cd: MSTORE 000034ce: PUSH1 0x04 000034d0: PUSH1 0x20 000034d2: SWAP1 000034d3: DUP2 000034d4: MSTORE 000034d5: PUSH1 0x40 000034d7: DUP1 000034d8: DUP4 000034d9: KECCAK256 000034da: DUP4 000034db: SWAP1 000034dc: SSTORE 000034dd: PUSH1 0x02 000034df: SWAP1 000034e0: SWAP2 000034e1: MSTORE 000034e2: SWAP1 000034e3: KECCAK256 000034e4: DUP1 000034e5: SLOAD 000034e6: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffbffffffffffffffffffff 00003507: AND 00003508: SWAP1 00003509: SSTORE 0000350a: POP 0000350b: DUP4 0000350c: SWAP1 0000350d: POP 0000350e: DUP3 0000350f: PUSH2 0x3545 00003512: JUMP 00003513: JUMPDEST 00003514: POP 00003515: TIMESTAMP 00003516: DUP2 00003517: SWAP1 00003518: SUB 00003519: PUSH2 0x3528 0000351c: DUP10 0000351d: PUSH2 0x3fff 00003520: DUP7 00003521: AND 00003522: DUP4 00003523: DUP7 00003524: PUSH2 0x3760 00003527: JUMP 00003528: JUMPDEST 00003529: PUSH2 0x353c 0000352c: DUP10 0000352d: PUSH2 0x3fff 00003530: PUSH1 0x0e 00003532: DUP9 00003533: SWAP1 00003534: SHR 00003535: AND 00003536: DUP5 00003537: DUP8 00003538: PUSH2 0x3760 0000353b: JUMP 0000353c: JUMPDEST 0000353d: SWAP6 0000353e: POP 0000353f: SWAP6 00003540: POP 00003541: POP 00003542: POP 00003543: POP 00003544: POP 00003545: JUMPDEST 00003546: SWAP4 00003547: POP 00003548: SWAP4 00003549: SWAP2 0000354a: POP 0000354b: POP 0000354c: JUMP 0000354d: JUMPDEST 0000354e: PUSH1 0xb5 00003550: DUP2 00003551: PUSH18 0x010000000000000000000000000000000000 00003564: DUP2 00003565: LT 00003566: PUSH2 0x3574 00003569: JUMPI 0000356a: PUSH1 0x40 0000356c: SWAP2 0000356d: SWAP1 0000356e: SWAP2 0000356f: SHL 00003570: SWAP1 00003571: PUSH1 0x80 00003573: SHR 00003574: JUMPDEST 00003575: PUSH10 0x01000000000000000000 00003580: DUP2 00003581: LT 00003582: PUSH2 0x3590 00003585: JUMPI 00003586: PUSH1 0x20 00003588: SWAP2 00003589: SWAP1 0000358a: SWAP2 0000358b: SHL 0000358c: SWAP1 0000358d: PUSH1 0x40 0000358f: SHR 00003590: JUMPDEST 00003591: PUSH6 0x010000000000 00003598: DUP2 00003599: LT 0000359a: PUSH2 0x35a8 0000359d: JUMPI 0000359e: PUSH1 0x10 000035a0: SWAP2 000035a1: SWAP1 000035a2: SWAP2 000035a3: SHL 000035a4: SWAP1 000035a5: PUSH1 0x20 000035a7: SHR 000035a8: JUMPDEST 000035a9: PUSH4 0x01000000 000035ae: DUP2 000035af: LT 000035b0: PUSH2 0x35be 000035b3: JUMPI 000035b4: PUSH1 0x08 000035b6: SWAP2 000035b7: SWAP1 000035b8: SWAP2 000035b9: SHL 000035ba: SWAP1 000035bb: PUSH1 0x10 000035bd: SHR 000035be: JUMPDEST 000035bf: PUSH3 0x010000 000035c3: ADD 000035c4: MUL 000035c5: PUSH1 0x12 000035c7: SHR 000035c8: DUP1 000035c9: DUP3 000035ca: DIV 000035cb: ADD 000035cc: PUSH1 0x01 000035ce: SWAP1 000035cf: DUP2 000035d0: SHR 000035d1: DUP1 000035d2: DUP4 000035d3: DIV 000035d4: ADD 000035d5: DUP2 000035d6: SHR 000035d7: DUP1 000035d8: DUP4 000035d9: DIV 000035da: ADD 000035db: DUP2 000035dc: SHR 000035dd: DUP1 000035de: DUP4 000035df: DIV 000035e0: ADD 000035e1: DUP2 000035e2: SHR 000035e3: DUP1 000035e4: DUP4 000035e5: DIV 000035e6: ADD 000035e7: DUP2 000035e8: SHR 000035e9: DUP1 000035ea: DUP4 000035eb: DIV 000035ec: ADD 000035ed: DUP2 000035ee: SHR 000035ef: DUP1 000035f0: DUP4 000035f1: DIV 000035f2: ADD 000035f3: SWAP1 000035f4: SHR 000035f5: SWAP1 000035f6: DUP2 000035f7: SWAP1 000035f8: DIV 000035f9: DUP2 000035fa: GT 000035fb: SWAP1 000035fc: SUB 000035fd: SWAP1 000035fe: JUMP 000035ff: JUMPDEST 00003600: PUSH0 00003601: DUP1 00003602: DUP6 00003603: DUP6 00003604: SUB 00003605: DUP2 00003606: PUSH1 0x02 00003608: DUP3 00003609: MUL 0000360a: DUP7 0000360b: DUP10 0000360c: MUL 0000360d: PUSH12 0x033b2e3c9fd0803ce8000000 0000361a: DUP8 0000361b: MUL 0000361c: ADD 0000361d: DUP2 0000361e: PUSH2 0x3629 00003621: JUMPI 00003622: PUSH2 0x3629 00003625: PUSH2 0x3f2b 00003628: JUMP 00003629: JUMPDEST 0000362a: DIV 0000362b: SWAP1 0000362c: POP 0000362d: PUSH2 0x3658 00003630: DUP2 00003631: DUP3 00003632: MUL 00003633: DUP4 00003634: PUSH12 0x033b2e3c9fd0803ce8000000 00003641: DUP9 00003642: DUP11 00003643: MUL 00003644: MUL 00003645: DUP2 00003646: PUSH2 0x3651 00003649: JUMPI 0000364a: PUSH2 0x3651 0000364d: PUSH2 0x3f2b 00003650: JUMP 00003651: JUMPDEST 00003652: DIV 00003653: ADD 00003654: PUSH2 0x354d 00003657: JUMP 00003658: JUMPDEST 00003659: ADD 0000365a: SWAP8 0000365b: PUSH12 0x033b2e3c9fd0803ce8000000 00003668: SWAP8 00003669: DUP10 0000366a: MUL 0000366b: SWAP8 0000366c: SWAP1 0000366d: SWAP8 0000366e: DIV 0000366f: SWAP7 00003670: SWAP6 00003671: POP 00003672: POP 00003673: POP 00003674: POP 00003675: POP 00003676: POP 00003677: JUMP 00003678: JUMPDEST 00003679: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 0000369a: DUP2 0000369b: AND 0000369c: PUSH0 0000369d: SWAP1 0000369e: DUP2 0000369f: MSTORE 000036a0: PUSH1 0x05 000036a2: PUSH1 0x20 000036a4: MSTORE 000036a5: PUSH1 0x40 000036a7: DUP2 000036a8: KECCAK256 000036a9: SLOAD 000036aa: DUP2 000036ab: SWAP1 000036ac: PUSH1 0x0e 000036ae: DUP2 000036af: SWAP1 000036b0: SHR 000036b1: PUSH3 0x0fffff 000036b5: AND 000036b6: PUSH1 0x22 000036b8: DUP3 000036b9: SWAP1 000036ba: SHR 000036bb: PUSH5 0x01ffffffff 000036c1: AND 000036c2: DUP4 000036c3: TIMESTAMP 000036c4: DUP3 000036c5: DUP5 000036c6: ADD 000036c7: LT 000036c8: ISZERO 000036c9: PUSH2 0x373d 000036cc: JUMPI 000036cd: POP 000036ce: POP 000036cf: POP 000036d0: POP 000036d1: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 000036f2: DUP4 000036f3: AND 000036f4: PUSH0 000036f5: SWAP1 000036f6: DUP2 000036f7: MSTORE 000036f8: PUSH1 0x05 000036fa: PUSH1 0x20 000036fc: SWAP1 000036fd: DUP2 000036fe: MSTORE 000036ff: PUSH1 0x40 00003701: DUP1 00003702: DUP4 00003703: KECCAK256 00003704: DUP4 00003705: SWAP1 00003706: SSTORE 00003707: PUSH1 0x02 00003709: SWAP1 0000370a: SWAP2 0000370b: MSTORE 0000370c: SWAP1 0000370d: KECCAK256 0000370e: DUP1 0000370f: SLOAD 00003710: PUSH32 0xffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffff 00003731: AND 00003732: SWAP1 00003733: SSTORE 00003734: POP 00003735: DUP4 00003736: SWAP1 00003737: POP 00003738: DUP3 00003739: PUSH2 0x3545 0000373c: JUMP 0000373d: JUMPDEST 0000373e: POP 0000373f: TIMESTAMP 00003740: DUP2 00003741: SWAP1 00003742: SUB 00003743: PUSH2 0x3751 00003746: DUP10 00003747: PUSH1 0x7f 00003749: DUP7 0000374a: AND 0000374b: DUP4 0000374c: DUP7 0000374d: PUSH2 0x3760 00003750: JUMP 00003751: JUMPDEST 00003752: PUSH2 0x353c 00003755: DUP10 00003756: PUSH1 0x7f 00003758: PUSH1 0x07 0000375a: DUP9 0000375b: SWAP1 0000375c: SHR 0000375d: AND 0000375e: DUP5 0000375f: DUP8 00003760: JUMPDEST 00003761: PUSH0 00003762: DUP4 00003763: DUP6 00003764: GT 00003765: ISZERO 00003766: PUSH2 0x3786 00003769: JUMPI 0000376a: DUP2 0000376b: DUP4 0000376c: DUP6 0000376d: DUP8 0000376e: SUB 0000376f: MUL 00003770: DUP2 00003771: PUSH2 0x377c 00003774: JUMPI 00003775: PUSH2 0x377c 00003778: PUSH2 0x3f2b 0000377b: JUMP 0000377c: JUMPDEST 0000377d: DIV 0000377e: DUP5 0000377f: ADD 00003780: SWAP1 00003781: POP 00003782: PUSH2 0x379f 00003785: JUMP 00003786: JUMPDEST 00003787: DUP2 00003788: DUP4 00003789: DUP7 0000378a: DUP7 0000378b: SUB 0000378c: MUL 0000378d: DUP2 0000378e: PUSH2 0x3799 00003791: JUMPI 00003792: PUSH2 0x3799 00003795: PUSH2 0x3f2b 00003798: JUMP 00003799: JUMPDEST 0000379a: DIV 0000379b: DUP5 0000379c: SUB 0000379d: SWAP1 0000379e: POP 0000379f: JUMPDEST 000037a0: SWAP5 000037a1: SWAP4 000037a2: POP 000037a3: POP 000037a4: POP 000037a5: POP 000037a6: JUMP 000037a7: JUMPDEST 000037a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000037bd: DUP2 000037be: AND 000037bf: DUP2 000037c0: EQ 000037c1: PUSH2 0x37c8 000037c4: JUMPI 000037c5: PUSH0 000037c6: PUSH0 000037c7: REVERT 000037c8: JUMPDEST 000037c9: POP 000037ca: JUMP 000037cb: JUMPDEST 000037cc: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000037ed: PUSH0 000037ee: MSTORE 000037ef: PUSH1 0x41 000037f1: PUSH1 0x04 000037f3: MSTORE 000037f4: PUSH1 0x24 000037f6: PUSH0 000037f7: REVERT 000037f8: JUMPDEST 000037f9: PUSH0 000037fa: PUSH0 000037fb: PUSH1 0x40 000037fd: DUP4 000037fe: DUP6 000037ff: SUB 00003800: SLT 00003801: ISZERO 00003802: PUSH2 0x3809 00003805: JUMPI 00003806: PUSH0 00003807: PUSH0 00003808: REVERT 00003809: JUMPDEST 0000380a: DUP3 0000380b: CALLDATALOAD 0000380c: PUSH2 0x3814 0000380f: DUP2 00003810: PUSH2 0x37a7 00003813: JUMP 00003814: JUMPDEST 00003815: SWAP2 00003816: POP 00003817: PUSH1 0x20 00003819: DUP4 0000381a: ADD 0000381b: CALLDATALOAD 0000381c: PUSH8 0xffffffffffffffff 00003825: DUP2 00003826: GT 00003827: ISZERO 00003828: PUSH2 0x382f 0000382b: JUMPI 0000382c: PUSH0 0000382d: PUSH0 0000382e: REVERT 0000382f: JUMPDEST 00003830: DUP4 00003831: ADD 00003832: PUSH1 0x1f 00003834: DUP2 00003835: ADD 00003836: DUP6 00003837: SGT 00003838: PUSH2 0x383f 0000383b: JUMPI 0000383c: PUSH0 0000383d: PUSH0 0000383e: REVERT 0000383f: JUMPDEST 00003840: DUP1 00003841: CALLDATALOAD 00003842: PUSH8 0xffffffffffffffff 0000384b: DUP2 0000384c: GT 0000384d: ISZERO 0000384e: PUSH2 0x3859 00003851: JUMPI 00003852: PUSH2 0x3859 00003855: PUSH2 0x37cb 00003858: JUMP 00003859: JUMPDEST 0000385a: PUSH1 0x40 0000385c: MLOAD 0000385d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000387e: PUSH1 0x3f 00003880: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000038a1: PUSH1 0x1f 000038a3: DUP6 000038a4: ADD 000038a5: AND 000038a6: ADD 000038a7: AND 000038a8: DUP2 000038a9: ADD 000038aa: DUP2 000038ab: DUP2 000038ac: LT 000038ad: PUSH8 0xffffffffffffffff 000038b6: DUP3 000038b7: GT 000038b8: OR 000038b9: ISZERO 000038ba: PUSH2 0x38c5 000038bd: JUMPI 000038be: PUSH2 0x38c5 000038c1: PUSH2 0x37cb 000038c4: JUMP 000038c5: JUMPDEST 000038c6: PUSH1 0x40 000038c8: MSTORE 000038c9: DUP2 000038ca: DUP2 000038cb: MSTORE 000038cc: DUP3 000038cd: DUP3 000038ce: ADD 000038cf: PUSH1 0x20 000038d1: ADD 000038d2: DUP8 000038d3: LT 000038d4: ISZERO 000038d5: PUSH2 0x38dc 000038d8: JUMPI 000038d9: PUSH0 000038da: PUSH0 000038db: REVERT 000038dc: JUMPDEST 000038dd: DUP2 000038de: PUSH1 0x20 000038e0: DUP5 000038e1: ADD 000038e2: PUSH1 0x20 000038e4: DUP4 000038e5: ADD 000038e6: CALLDATACOPY 000038e7: PUSH0 000038e8: PUSH1 0x20 000038ea: DUP4 000038eb: DUP4 000038ec: ADD 000038ed: ADD 000038ee: MSTORE 000038ef: DUP1 000038f0: SWAP4 000038f1: POP 000038f2: POP 000038f3: POP 000038f4: POP 000038f5: SWAP3 000038f6: POP 000038f7: SWAP3 000038f8: SWAP1 000038f9: POP 000038fa: JUMP 000038fb: JUMPDEST 000038fc: DUP1 000038fd: CALLDATALOAD 000038fe: DUP1 000038ff: ISZERO 00003900: ISZERO 00003901: DUP2 00003902: EQ 00003903: PUSH2 0x390a 00003906: JUMPI 00003907: PUSH0 00003908: PUSH0 00003909: REVERT 0000390a: JUMPDEST 0000390b: SWAP2 0000390c: SWAP1 0000390d: POP 0000390e: JUMP 0000390f: JUMPDEST 00003910: DUP1 00003911: CALLDATALOAD 00003912: PUSH2 0x390a 00003915: DUP2 00003916: PUSH2 0x37a7 00003919: JUMP 0000391a: JUMPDEST 0000391b: PUSH0 0000391c: PUSH0 0000391d: DUP4 0000391e: PUSH1 0x1f 00003920: DUP5 00003921: ADD 00003922: SLT 00003923: PUSH2 0x392a 00003926: JUMPI 00003927: PUSH0 00003928: PUSH0 00003929: REVERT 0000392a: JUMPDEST 0000392b: POP 0000392c: DUP2 0000392d: CALLDATALOAD 0000392e: PUSH8 0xffffffffffffffff 00003937: DUP2 00003938: GT 00003939: ISZERO 0000393a: PUSH2 0x3941 0000393d: JUMPI 0000393e: PUSH0 0000393f: PUSH0 00003940: REVERT 00003941: JUMPDEST 00003942: PUSH1 0x20 00003944: DUP4 00003945: ADD 00003946: SWAP2 00003947: POP 00003948: DUP4 00003949: PUSH1 0x20 0000394b: DUP3 0000394c: DUP6 0000394d: ADD 0000394e: ADD 0000394f: GT 00003950: ISZERO 00003951: PUSH2 0x3958 00003954: JUMPI 00003955: PUSH0 00003956: PUSH0 00003957: REVERT 00003958: JUMPDEST 00003959: SWAP3 0000395a: POP 0000395b: SWAP3 0000395c: SWAP1 0000395d: POP 0000395e: JUMP 0000395f: JUMPDEST 00003960: PUSH0 00003961: PUSH0 00003962: PUSH0 00003963: PUSH0 00003964: PUSH0 00003965: PUSH0 00003966: PUSH0 00003967: PUSH0 00003968: PUSH0 00003969: PUSH0 0000396a: DUP11 0000396b: DUP13 0000396c: SUB 0000396d: PUSH2 0x0140 00003970: DUP2 00003971: SLT 00003972: ISZERO 00003973: PUSH2 0x397a 00003976: JUMPI 00003977: PUSH0 00003978: PUSH0 00003979: REVERT 0000397a: JUMPDEST 0000397b: PUSH1 0x60 0000397d: DUP2 0000397e: SLT 0000397f: ISZERO 00003980: PUSH2 0x3987 00003983: JUMPI 00003984: PUSH0 00003985: PUSH0 00003986: REVERT 00003987: JUMPDEST 00003988: POP 00003989: DUP11 0000398a: SWAP10 0000398b: POP 0000398c: PUSH2 0x3997 0000398f: PUSH1 0x60 00003991: DUP13 00003992: ADD 00003993: PUSH2 0x38fb 00003996: JUMP 00003997: JUMPDEST 00003998: SWAP9 00003999: POP 0000399a: PUSH1 0x80 0000399c: DUP12 0000399d: ADD 0000399e: CALLDATALOAD 0000399f: SWAP8 000039a0: POP 000039a1: PUSH1 0xa0 000039a3: DUP12 000039a4: ADD 000039a5: CALLDATALOAD 000039a6: SWAP7 000039a7: POP 000039a8: PUSH2 0x39b3 000039ab: PUSH1 0xc0 000039ad: DUP13 000039ae: ADD 000039af: PUSH2 0x390f 000039b2: JUMP 000039b3: JUMPDEST 000039b4: SWAP6 000039b5: POP 000039b6: PUSH2 0x39c1 000039b9: PUSH1 0xe0 000039bb: DUP13 000039bc: ADD 000039bd: PUSH2 0x38fb 000039c0: JUMP 000039c1: JUMPDEST 000039c2: SWAP5 000039c3: POP 000039c4: PUSH2 0x0100 000039c7: DUP12 000039c8: ADD 000039c9: CALLDATALOAD 000039ca: PUSH8 0xffffffffffffffff 000039d3: DUP2 000039d4: GT 000039d5: ISZERO 000039d6: PUSH2 0x39dd 000039d9: JUMPI 000039da: PUSH0 000039db: PUSH0 000039dc: REVERT 000039dd: JUMPDEST 000039de: PUSH2 0x39e9 000039e1: DUP14 000039e2: DUP3 000039e3: DUP15 000039e4: ADD 000039e5: PUSH2 0x391a 000039e8: JUMP 000039e9: JUMPDEST 000039ea: SWAP1 000039eb: SWAP6 000039ec: POP 000039ed: SWAP4 000039ee: POP 000039ef: POP 000039f0: PUSH2 0x0120 000039f3: DUP12 000039f4: ADD 000039f5: CALLDATALOAD 000039f6: PUSH8 0xffffffffffffffff 000039ff: DUP2 00003a00: GT 00003a01: ISZERO 00003a02: PUSH2 0x3a09 00003a05: JUMPI 00003a06: PUSH0 00003a07: PUSH0 00003a08: REVERT 00003a09: JUMPDEST 00003a0a: PUSH2 0x3a15 00003a0d: DUP14 00003a0e: DUP3 00003a0f: DUP15 00003a10: ADD 00003a11: PUSH2 0x391a 00003a14: JUMP 00003a15: JUMPDEST 00003a16: SWAP2 00003a17: POP 00003a18: DUP1 00003a19: SWAP4 00003a1a: POP 00003a1b: POP 00003a1c: DUP1 00003a1d: SWAP2 00003a1e: POP 00003a1f: POP 00003a20: SWAP3 00003a21: SWAP6 00003a22: SWAP9 00003a23: SWAP12 00003a24: SWAP2 00003a25: SWAP5 00003a26: SWAP8 00003a27: SWAP11 00003a28: POP 00003a29: SWAP3 00003a2a: SWAP6 00003a2b: SWAP9 00003a2c: POP 00003a2d: JUMP 00003a2e: JUMPDEST 00003a2f: PUSH0 00003a30: PUSH0 00003a31: DUP4 00003a32: PUSH1 0x1f 00003a34: DUP5 00003a35: ADD 00003a36: SLT 00003a37: PUSH2 0x3a3e 00003a3a: JUMPI 00003a3b: PUSH0 00003a3c: PUSH0 00003a3d: REVERT 00003a3e: JUMPDEST 00003a3f: POP 00003a40: DUP2 00003a41: CALLDATALOAD 00003a42: PUSH8 0xffffffffffffffff 00003a4b: DUP2 00003a4c: GT 00003a4d: ISZERO 00003a4e: PUSH2 0x3a55 00003a51: JUMPI 00003a52: PUSH0 00003a53: PUSH0 00003a54: REVERT 00003a55: JUMPDEST 00003a56: PUSH1 0x20 00003a58: DUP4 00003a59: ADD 00003a5a: SWAP2 00003a5b: POP 00003a5c: DUP4 00003a5d: PUSH1 0x20 00003a5f: DUP3 00003a60: PUSH1 0x05 00003a62: SHL 00003a63: DUP6 00003a64: ADD 00003a65: ADD 00003a66: GT 00003a67: ISZERO 00003a68: PUSH2 0x3958 00003a6b: JUMPI 00003a6c: PUSH0 00003a6d: PUSH0 00003a6e: REVERT 00003a6f: JUMPDEST 00003a70: PUSH0 00003a71: PUSH1 0x80 00003a73: DUP3 00003a74: DUP5 00003a75: SUB 00003a76: SLT 00003a77: ISZERO 00003a78: PUSH2 0x3a7f 00003a7b: JUMPI 00003a7c: PUSH0 00003a7d: PUSH0 00003a7e: REVERT 00003a7f: JUMPDEST 00003a80: POP 00003a81: SWAP2 00003a82: SWAP1 00003a83: POP 00003a84: JUMP 00003a85: JUMPDEST 00003a86: PUSH0 00003a87: PUSH0 00003a88: PUSH0 00003a89: PUSH0 00003a8a: PUSH0 00003a8b: PUSH0 00003a8c: PUSH0 00003a8d: PUSH0 00003a8e: PUSH1 0xa0 00003a90: DUP10 00003a91: DUP12 00003a92: SUB 00003a93: SLT 00003a94: ISZERO 00003a95: PUSH2 0x3a9c 00003a98: JUMPI 00003a99: PUSH0 00003a9a: PUSH0 00003a9b: REVERT 00003a9c: JUMPDEST 00003a9d: DUP9 00003a9e: CALLDATALOAD 00003a9f: PUSH8 0xffffffffffffffff 00003aa8: DUP2 00003aa9: GT 00003aaa: ISZERO 00003aab: PUSH2 0x3ab2 00003aae: JUMPI 00003aaf: PUSH0 00003ab0: PUSH0 00003ab1: REVERT 00003ab2: JUMPDEST 00003ab3: PUSH2 0x3abe 00003ab6: DUP12 00003ab7: DUP3 00003ab8: DUP13 00003ab9: ADD 00003aba: PUSH2 0x3a2e 00003abd: JUMP 00003abe: JUMPDEST 00003abf: SWAP1 00003ac0: SWAP10 00003ac1: POP 00003ac2: SWAP8 00003ac3: POP 00003ac4: POP 00003ac5: PUSH1 0x20 00003ac7: DUP10 00003ac8: ADD 00003ac9: CALLDATALOAD 00003aca: PUSH8 0xffffffffffffffff 00003ad3: DUP2 00003ad4: GT 00003ad5: ISZERO 00003ad6: PUSH2 0x3add 00003ad9: JUMPI 00003ada: PUSH0 00003adb: PUSH0 00003adc: REVERT 00003add: JUMPDEST 00003ade: DUP10 00003adf: ADD 00003ae0: PUSH1 0x1f 00003ae2: DUP2 00003ae3: ADD 00003ae4: DUP12 00003ae5: SGT 00003ae6: PUSH2 0x3aed 00003ae9: JUMPI 00003aea: PUSH0 00003aeb: PUSH0 00003aec: REVERT 00003aed: JUMPDEST 00003aee: DUP1 00003aef: CALLDATALOAD 00003af0: PUSH8 0xffffffffffffffff 00003af9: DUP2 00003afa: GT 00003afb: ISZERO 00003afc: PUSH2 0x3b03 00003aff: JUMPI 00003b00: PUSH0 00003b01: PUSH0 00003b02: REVERT 00003b03: JUMPDEST 00003b04: DUP12 00003b05: PUSH1 0x20 00003b07: PUSH1 0x60 00003b09: DUP4 00003b0a: MUL 00003b0b: DUP5 00003b0c: ADD 00003b0d: ADD 00003b0e: GT 00003b0f: ISZERO 00003b10: PUSH2 0x3b17 00003b13: JUMPI 00003b14: PUSH0 00003b15: PUSH0 00003b16: REVERT 00003b17: JUMPDEST 00003b18: PUSH1 0x20 00003b1a: SWAP2 00003b1b: SWAP1 00003b1c: SWAP2 00003b1d: ADD 00003b1e: SWAP7 00003b1f: POP 00003b20: SWAP5 00003b21: POP 00003b22: PUSH1 0x40 00003b24: DUP10 00003b25: ADD 00003b26: CALLDATALOAD 00003b27: SWAP4 00003b28: POP 00003b29: PUSH1 0x60 00003b2b: DUP10 00003b2c: ADD 00003b2d: CALLDATALOAD 00003b2e: PUSH8 0xffffffffffffffff 00003b37: DUP2 00003b38: GT 00003b39: ISZERO 00003b3a: PUSH2 0x3b41 00003b3d: JUMPI 00003b3e: PUSH0 00003b3f: PUSH0 00003b40: REVERT 00003b41: JUMPDEST 00003b42: PUSH2 0x3b4d 00003b45: DUP12 00003b46: DUP3 00003b47: DUP13 00003b48: ADD 00003b49: PUSH2 0x3a2e 00003b4c: JUMP 00003b4d: JUMPDEST 00003b4e: SWAP1 00003b4f: SWAP5 00003b50: POP 00003b51: SWAP3 00003b52: POP 00003b53: POP 00003b54: PUSH1 0x80 00003b56: DUP10 00003b57: ADD 00003b58: CALLDATALOAD 00003b59: PUSH8 0xffffffffffffffff 00003b62: DUP2 00003b63: GT 00003b64: ISZERO 00003b65: PUSH2 0x3b6c 00003b68: JUMPI 00003b69: PUSH0 00003b6a: PUSH0 00003b6b: REVERT 00003b6c: JUMPDEST 00003b6d: PUSH2 0x3b78 00003b70: DUP12 00003b71: DUP3 00003b72: DUP13 00003b73: ADD 00003b74: PUSH2 0x3a6f 00003b77: JUMP 00003b78: JUMPDEST 00003b79: SWAP2 00003b7a: POP 00003b7b: POP 00003b7c: SWAP3 00003b7d: SWAP6 00003b7e: SWAP9 00003b7f: POP 00003b80: SWAP3 00003b81: SWAP6 00003b82: SWAP9 00003b83: SWAP1 00003b84: SWAP4 00003b85: SWAP7 00003b86: POP 00003b87: JUMP 00003b88: JUMPDEST 00003b89: PUSH0 00003b8a: PUSH1 0x20 00003b8c: DUP3 00003b8d: DUP5 00003b8e: SUB 00003b8f: SLT 00003b90: ISZERO 00003b91: PUSH2 0x3b98 00003b94: JUMPI 00003b95: PUSH0 00003b96: PUSH0 00003b97: REVERT 00003b98: JUMPDEST 00003b99: POP 00003b9a: CALLDATALOAD 00003b9b: SWAP2 00003b9c: SWAP1 00003b9d: POP 00003b9e: JUMP 00003b9f: JUMPDEST 00003ba0: PUSH0 00003ba1: PUSH1 0x20 00003ba3: DUP3 00003ba4: DUP5 00003ba5: SUB 00003ba6: SLT 00003ba7: ISZERO 00003ba8: PUSH2 0x3baf 00003bab: JUMPI 00003bac: PUSH0 00003bad: PUSH0 00003bae: REVERT 00003baf: JUMPDEST 00003bb0: POP 00003bb1: MLOAD 00003bb2: SWAP2 00003bb3: SWAP1 00003bb4: POP 00003bb5: JUMP 00003bb6: JUMPDEST 00003bb7: PUSH0 00003bb8: PUSH1 0x20 00003bba: DUP3 00003bbb: DUP5 00003bbc: SUB 00003bbd: SLT 00003bbe: ISZERO 00003bbf: PUSH2 0x3bc6 00003bc2: JUMPI 00003bc3: PUSH0 00003bc4: PUSH0 00003bc5: REVERT 00003bc6: JUMPDEST 00003bc7: DUP2 00003bc8: CALLDATALOAD 00003bc9: PUSH2 0x3bd1 00003bcc: DUP2 00003bcd: PUSH2 0x37a7 00003bd0: JUMP 00003bd1: JUMPDEST 00003bd2: SWAP4 00003bd3: SWAP3 00003bd4: POP 00003bd5: POP 00003bd6: POP 00003bd7: JUMP 00003bd8: JUMPDEST 00003bd9: DUP1 00003bda: CALLDATALOAD 00003bdb: PUSH1 0x20 00003bdd: DUP4 00003bde: LT 00003bdf: ISZERO 00003be0: PUSH2 0x3154 00003be3: JUMPI 00003be4: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003c05: PUSH1 0x20 00003c07: DUP5 00003c08: SWAP1 00003c09: SUB 00003c0a: PUSH1 0x03 00003c0c: SHL 00003c0d: SHL 00003c0e: AND 00003c0f: SWAP3 00003c10: SWAP2 00003c11: POP 00003c12: POP 00003c13: JUMP 00003c14: JUMPDEST 00003c15: DUP1 00003c16: CALLDATALOAD 00003c17: PUSH2 0x3c1f 00003c1a: DUP2 00003c1b: PUSH2 0x37a7 00003c1e: JUMP 00003c1f: JUMPDEST 00003c20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003c35: AND 00003c36: DUP3 00003c37: MSTORE 00003c38: PUSH1 0x20 00003c3a: DUP2 00003c3b: ADD 00003c3c: CALLDATALOAD 00003c3d: PUSH2 0x3c45 00003c40: DUP2 00003c41: PUSH2 0x37a7 00003c44: JUMP 00003c45: JUMPDEST 00003c46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003c5b: AND 00003c5c: PUSH1 0x20 00003c5e: DUP4 00003c5f: ADD 00003c60: MSTORE 00003c61: PUSH1 0x40 00003c63: SWAP1 00003c64: DUP2 00003c65: ADD 00003c66: CALLDATALOAD 00003c67: SWAP2 00003c68: ADD 00003c69: MSTORE 00003c6a: JUMP 00003c6b: JUMPDEST 00003c6c: DUP2 00003c6d: DUP4 00003c6e: MSTORE 00003c6f: DUP2 00003c70: DUP2 00003c71: PUSH1 0x20 00003c73: DUP6 00003c74: ADD 00003c75: CALLDATACOPY 00003c76: POP 00003c77: PUSH0 00003c78: PUSH1 0x20 00003c7a: DUP3 00003c7b: DUP5 00003c7c: ADD 00003c7d: ADD 00003c7e: MSTORE 00003c7f: PUSH0 00003c80: PUSH1 0x20 00003c82: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00003ca3: PUSH1 0x1f 00003ca5: DUP5 00003ca6: ADD 00003ca7: AND 00003ca8: DUP5 00003ca9: ADD 00003caa: ADD 00003cab: SWAP1 00003cac: POP 00003cad: SWAP3 00003cae: SWAP2 00003caf: POP 00003cb0: POP 00003cb1: JUMP 00003cb2: JUMPDEST 00003cb3: PUSH2 0x3cbc 00003cb6: DUP2 00003cb7: DUP9 00003cb8: PUSH2 0x3c14 00003cbb: JUMP 00003cbc: JUMPDEST 00003cbd: DUP6 00003cbe: ISZERO 00003cbf: ISZERO 00003cc0: PUSH1 0x60 00003cc2: DUP3 00003cc3: ADD 00003cc4: MSTORE 00003cc5: DUP5 00003cc6: PUSH1 0x80 00003cc8: DUP3 00003cc9: ADD 00003cca: MSTORE 00003ccb: DUP4 00003ccc: PUSH1 0xa0 00003cce: DUP3 00003ccf: ADD 00003cd0: MSTORE 00003cd1: PUSH1 0xe0 00003cd3: PUSH1 0xc0 00003cd5: DUP3 00003cd6: ADD 00003cd7: MSTORE 00003cd8: PUSH0 00003cd9: PUSH2 0x0fe9 00003cdc: PUSH1 0xe0 00003cde: DUP4 00003cdf: ADD 00003ce0: DUP5 00003ce1: DUP7 00003ce2: PUSH2 0x3c6b 00003ce5: JUMP 00003ce6: JUMPDEST 00003ce7: DUP3 00003ce8: ISZERO 00003ce9: ISZERO 00003cea: DUP2 00003ceb: MSTORE 00003cec: PUSH1 0x40 00003cee: PUSH1 0x20 00003cf0: DUP3 00003cf1: ADD 00003cf2: MSTORE 00003cf3: PUSH0 00003cf4: DUP3 00003cf5: MLOAD 00003cf6: DUP1 00003cf7: PUSH1 0x40 00003cf9: DUP5 00003cfa: ADD 00003cfb: MSTORE 00003cfc: DUP1 00003cfd: PUSH1 0x20 00003cff: DUP6 00003d00: ADD 00003d01: PUSH1 0x60 00003d03: DUP6 00003d04: ADD 00003d05: MCOPY 00003d06: PUSH0 00003d07: PUSH1 0x60 00003d09: DUP3 00003d0a: DUP6 00003d0b: ADD 00003d0c: ADD 00003d0d: MSTORE 00003d0e: PUSH1 0x60 00003d10: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00003d31: PUSH1 0x1f 00003d33: DUP4 00003d34: ADD 00003d35: AND 00003d36: DUP5 00003d37: ADD 00003d38: ADD 00003d39: SWAP2 00003d3a: POP 00003d3b: POP 00003d3c: SWAP4 00003d3d: SWAP3 00003d3e: POP 00003d3f: POP 00003d40: POP 00003d41: JUMP 00003d42: JUMPDEST 00003d43: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003d64: PUSH0 00003d65: MSTORE 00003d66: PUSH1 0x11 00003d68: PUSH1 0x04 00003d6a: MSTORE 00003d6b: PUSH1 0x24 00003d6d: PUSH0 00003d6e: REVERT 00003d6f: JUMPDEST 00003d70: PUSH0 00003d71: PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 00003d92: DUP3 00003d93: SUB 00003d94: PUSH2 0x3d9f 00003d97: JUMPI 00003d98: PUSH2 0x3d9f 00003d9b: PUSH2 0x3d42 00003d9e: JUMP 00003d9f: JUMPDEST 00003da0: POP 00003da1: PUSH0 00003da2: SUB 00003da3: SWAP1 00003da4: JUMP 00003da5: JUMPDEST 00003da6: DUP2 00003da7: DUP2 00003da8: SUB 00003da9: DUP2 00003daa: DUP2 00003dab: GT 00003dac: ISZERO 00003dad: PUSH2 0x3154 00003db0: JUMPI 00003db1: PUSH2 0x3154 00003db4: PUSH2 0x3d42 00003db7: JUMP 00003db8: JUMPDEST 00003db9: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003dda: PUSH0 00003ddb: MSTORE 00003ddc: PUSH1 0x32 00003dde: PUSH1 0x04 00003de0: MSTORE 00003de1: PUSH1 0x24 00003de3: PUSH0 00003de4: REVERT 00003de5: JUMPDEST 00003de6: PUSH0 00003de7: PUSH0 00003de8: DUP4 00003de9: CALLDATALOAD 00003dea: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1 00003e0b: DUP5 00003e0c: CALLDATASIZE 00003e0d: SUB 00003e0e: ADD 00003e0f: DUP2 00003e10: SLT 00003e11: PUSH2 0x3e18 00003e14: JUMPI 00003e15: PUSH0 00003e16: PUSH0 00003e17: REVERT 00003e18: JUMPDEST 00003e19: DUP4 00003e1a: ADD 00003e1b: DUP1 00003e1c: CALLDATALOAD 00003e1d: SWAP2 00003e1e: POP 00003e1f: PUSH8 0xffffffffffffffff 00003e28: DUP3 00003e29: GT 00003e2a: ISZERO 00003e2b: PUSH2 0x3e32 00003e2e: JUMPI 00003e2f: PUSH0 00003e30: PUSH0 00003e31: REVERT 00003e32: JUMPDEST 00003e33: PUSH1 0x20 00003e35: ADD 00003e36: SWAP2 00003e37: POP 00003e38: CALLDATASIZE 00003e39: DUP2 00003e3a: SWAP1 00003e3b: SUB 00003e3c: DUP3 00003e3d: SGT 00003e3e: ISZERO 00003e3f: PUSH2 0x3958 00003e42: JUMPI 00003e43: PUSH0 00003e44: PUSH0 00003e45: REVERT 00003e46: JUMPDEST 00003e47: PUSH0 00003e48: PUSH1 0x20 00003e4a: DUP3 00003e4b: DUP5 00003e4c: SUB 00003e4d: SLT 00003e4e: ISZERO 00003e4f: PUSH2 0x3e56 00003e52: JUMPI 00003e53: PUSH0 00003e54: PUSH0 00003e55: REVERT 00003e56: JUMPDEST 00003e57: PUSH2 0x3bd1 00003e5a: DUP3 00003e5b: PUSH2 0x38fb 00003e5e: JUMP 00003e5f: JUMPDEST 00003e60: PUSH1 0xa0 00003e62: DUP1 00003e63: DUP3 00003e64: MSTORE 00003e65: DUP2 00003e66: ADD 00003e67: DUP9 00003e68: SWAP1 00003e69: MSTORE 00003e6a: PUSH0 00003e6b: DUP10 00003e6c: PUSH1 0xc0 00003e6e: DUP4 00003e6f: ADD 00003e70: DUP3 00003e71: JUMPDEST 00003e72: DUP12 00003e73: DUP2 00003e74: LT 00003e75: ISZERO 00003e76: PUSH2 0x3eae 00003e79: JUMPI 00003e7a: DUP3 00003e7b: CALLDATALOAD 00003e7c: PUSH2 0x3e84 00003e7f: DUP2 00003e80: PUSH2 0x37a7 00003e83: JUMP 00003e84: JUMPDEST 00003e85: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003e9a: AND 00003e9b: DUP3 00003e9c: MSTORE 00003e9d: PUSH1 0x20 00003e9f: SWAP3 00003ea0: DUP4 00003ea1: ADD 00003ea2: SWAP3 00003ea3: SWAP1 00003ea4: SWAP2 00003ea5: ADD 00003ea6: SWAP1 00003ea7: PUSH1 0x01 00003ea9: ADD 00003eaa: PUSH2 0x3e71 00003ead: JUMP 00003eae: JUMPDEST 00003eaf: POP 00003eb0: DUP4 00003eb1: DUP2 00003eb2: SUB 00003eb3: PUSH1 0x20 00003eb5: DUP1 00003eb6: DUP7 00003eb7: ADD 00003eb8: SWAP2 00003eb9: SWAP1 00003eba: SWAP2 00003ebb: MSTORE 00003ebc: DUP10 00003ebd: DUP3 00003ebe: MSTORE 00003ebf: ADD 00003ec0: SWAP1 00003ec1: POP 00003ec2: DUP9 00003ec3: PUSH0 00003ec4: DUP1 00003ec5: JUMPDEST 00003ec6: DUP11 00003ec7: DUP2 00003ec8: LT 00003ec9: ISZERO 00003eca: PUSH2 0x3eea 00003ecd: JUMPI 00003ece: PUSH2 0x3ed7 00003ed1: DUP5 00003ed2: DUP5 00003ed3: PUSH2 0x3c14 00003ed6: JUMP 00003ed7: JUMPDEST 00003ed8: PUSH1 0x60 00003eda: SWAP4 00003edb: DUP5 00003edc: ADD 00003edd: SWAP4 00003ede: SWAP3 00003edf: SWAP1 00003ee0: SWAP3 00003ee1: ADD 00003ee2: SWAP2 00003ee3: PUSH1 0x01 00003ee5: ADD 00003ee6: PUSH2 0x3ec5 00003ee9: JUMP 00003eea: JUMPDEST 00003eeb: POP 00003eec: POP 00003eed: POP 00003eee: PUSH1 0x40 00003ef0: DUP4 00003ef1: ADD 00003ef2: DUP8 00003ef3: SWAP1 00003ef4: MSTORE 00003ef5: PUSH1 0x60 00003ef7: DUP4 00003ef8: ADD 00003ef9: DUP7 00003efa: SWAP1 00003efb: MSTORE 00003efc: DUP3 00003efd: DUP2 00003efe: SUB 00003eff: PUSH1 0x80 00003f01: DUP5 00003f02: ADD 00003f03: MSTORE 00003f04: PUSH2 0x3f0e 00003f07: DUP2 00003f08: DUP6 00003f09: DUP8 00003f0a: PUSH2 0x3c6b 00003f0d: JUMP 00003f0e: JUMPDEST 00003f0f: SWAP12 00003f10: SWAP11 00003f11: POP 00003f12: POP 00003f13: POP 00003f14: POP 00003f15: POP 00003f16: POP 00003f17: POP 00003f18: POP 00003f19: POP 00003f1a: POP 00003f1b: POP 00003f1c: JUMP 00003f1d: JUMPDEST 00003f1e: PUSH1 0x60 00003f20: DUP2 00003f21: ADD 00003f22: PUSH2 0x3154 00003f25: DUP3 00003f26: DUP5 00003f27: PUSH2 0x3c14 00003f2a: JUMP 00003f2b: JUMPDEST 00003f2c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003f4d: PUSH0 00003f4e: MSTORE 00003f4f: PUSH1 0x12 00003f51: PUSH1 0x04 00003f53: MSTORE 00003f54: PUSH1 0x24 00003f56: PUSH0 00003f57: REVERT 00003f58: JUMPDEST 00003f59: DUP1 00003f5a: DUP3 00003f5b: MUL 00003f5c: DUP2 00003f5d: ISZERO 00003f5e: DUP3 00003f5f: DUP3 00003f60: DIV 00003f61: DUP5 00003f62: EQ 00003f63: OR 00003f64: PUSH2 0x3154 00003f67: JUMPI 00003f68: PUSH2 0x3154 00003f6b: PUSH2 0x3d42 00003f6e: JUMP 00003f6f: JUMPDEST 00003f70: PUSH0 00003f71: DUP3 00003f72: PUSH2 0x3fa2 00003f75: JUMPI 00003f76: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003f97: PUSH0 00003f98: MSTORE 00003f99: PUSH1 0x12 00003f9b: PUSH1 0x04 00003f9d: MSTORE 00003f9e: PUSH1 0x24 00003fa0: PUSH0 00003fa1: REVERT 00003fa2: JUMPDEST 00003fa3: POP 00003fa4: DIV 00003fa5: SWAP1 00003fa6: JUMP 00003fa7: JUMPDEST 00003fa8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003fbd: DUP6 00003fbe: AND 00003fbf: DUP2 00003fc0: MSTORE 00003fc1: DUP4 00003fc2: PUSH1 0x20 00003fc4: DUP3 00003fc5: ADD 00003fc6: MSTORE 00003fc7: PUSH1 0x60 00003fc9: PUSH1 0x40 00003fcb: DUP3 00003fcc: ADD 00003fcd: MSTORE 00003fce: PUSH0 00003fcf: PUSH2 0x3fdc 00003fd2: PUSH1 0x60 00003fd4: DUP4 00003fd5: ADD 00003fd6: DUP5 00003fd7: DUP7 00003fd8: PUSH2 0x3c6b 00003fdb: JUMP 00003fdc: JUMPDEST 00003fdd: SWAP7 00003fde: SWAP6 00003fdf: POP 00003fe0: POP 00003fe1: POP 00003fe2: POP 00003fe3: POP 00003fe4: POP 00003fe5: JUMP 00003fe6: INVALID 00003fe7: LOG2 00003fe8: PUSH5 0x6970667358 00003fee: UNKNOWN(0x22) 00003fef: SLT 00003ff0: KECCAK256 00003ff1: BASEFEE 00003ff2: BALANCE 00003ff3: UNKNOWN(0x4B) 00003ff4: DUP14 00003ff5: UNKNOWN(0xEC) 00003ff6: ISZERO 00003ff7: UNKNOWN(0xE7) 00003ff8: SWAP7 00003ff9: UNKNOWN(0xDE) 00003ffa: UNKNOWN(0xCF) 00003ffb: CALLDATASIZE 00003ffc: UNKNOWN(0xEB) 00003ffd: PUSH4 0x6ff0c093 00004002: ADDRESS 00004003: MUL 00004004: OR 00004005: DUP2 00004006: UNKNOWN(0xB5) 00004007: DUP14 00004008: UNKNOWN(0xFC) 00004009: UNKNOWN(0xE7) 0000400a: COINBASE 0000400b: UNKNOWN(0xAA) 0000400c: PUSH17
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0xa83f315e32a84b867235a442f619b4332dd404b14be40b6ba87f67c2f8dacce8
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 36,
"trace_id": "0xa83f315e32a84b867235a442f619b4332dd404b14be40b6ba87f67c2f8dacce8",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x7fc9d4ad",
"selector": "0x7fc9d4ad",
"calldata_variants": [
"0x7fc9d4ad",
"0x7fc9d4ad0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa3c779fd",
"selector": "0xa3c779fd",
"calldata_variants": [
"0xa3c779fd",
"0xa3c779fd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb5c736e4",
"selector": "0xb5c736e4",
"calldata_variants": [
"0xb5c736e4",
"0xb5c736e40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 638,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x8b0f763becc80e5a645ae12fffddd2700f96b58d32eeb0add0b7971bcbd12117
call_targets:
0xbbcb91440523216e2b87052a99f69c604a7b6e00
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x8b0f763becc80e5a645ae12fffddd2700f96b58d32eeb0add0b7971bcbd12117",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xbbcb91440523216e2b87052a99f69c604a7b6e00"
],
"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": "0x7fc9d4ad",
"selector": "0x7fc9d4ad",
"calldata_variants": [
"0x7fc9d4ad",
"0x7fc9d4ad0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa3c779fd",
"selector": "0xa3c779fd",
"calldata_variants": [
"0xa3c779fd",
"0xa3c779fd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb5c736e4",
"selector": "0xb5c736e4",
"calldata_variants": [
"0xb5c736e4",
"0xb5c736e40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 6325,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6838,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9526,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 7,
"guards_detected": [],
"untrusted_call_count": 6
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x8b0f763becc80e5a645ae12fffddd2700f96b58d32eeb0add0b7971bcbd12117
call_targets:
0xbbcb91440523216e2b87052a99f69c604a7b6e00
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x8b0f763becc80e5a645ae12fffddd2700f96b58d32eeb0add0b7971bcbd12117",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xbbcb91440523216e2b87052a99f69c604a7b6e00"
],
"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": "0x7fc9d4ad",
"selector": "0x7fc9d4ad",
"calldata_variants": [
"0x7fc9d4ad",
"0x7fc9d4ad0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa3c779fd",
"selector": "0xa3c779fd",
"calldata_variants": [
"0xa3c779fd",
"0xa3c779fd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb5c736e4",
"selector": "0xb5c736e4",
"calldata_variants": [
"0xb5c736e4",
"0xb5c736e40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 6325,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6838,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9526,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 6,
"guards_detected": []
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| medium | upgradeability | codex | User-triggerable delegatecall hook enables full-state execution if extension is compromised | 75 | no | — |
viewevidence_json{
"evidence": "`swapSingle`/`swapHop` route non-empty `extraData_` into `_callExtraDataSlot`, which performs a `delegatecall` via `_spell`.",
"locations": [
"contracts/contracts/protocols/dexLite/core/main.sol:38",
"contracts/contracts/protocols/dexLite/core/main.sol:129",
"contracts/contracts/protocols/dexLite/core/helpers.sol:30",
"contracts/contracts/protocols/dexLite/core/helpers.sol:518"
],
"recommendation": "Avoid `delegatecall` for user-triggerable hooks; use an external-call interface with explicit allowed selectors, or restrict `extraData_` usage to trusted callers and keep the extension immutable and tightly audited.",
"exploit_scenario": "Governance sets `EXTRA_DATA_SLOT` to an upgradeable module. An attacker exploits a bug or unprotected function in that module and calls `swapSingle`/`swapHop` with non-empty `extraData_`, causing the module to execute via `delegatecall` in DexLite\u2019s context and overwrite `_dexVariables`/balances or even selfdestruct the contract."
}
|
| medium | oracle | codex | Center price uses external oracle without manipulation bounds | 75 | no | — |
viewevidence_json{
"evidence": "`ICenterPrice.centerPrice` is called during swap pricing and its return value is used directly to compute reserves and swap amounts.",
"locations": [
"contracts/contracts/protocols/dexLite/core/helpers.sol:229",
"contracts/contracts/protocols/dexLite/core/helpers.sol:284"
],
"recommendation": "Use a manipulation-resistant oracle (TWAP/Chainlink), add sanity bounds against sudden price jumps, and/or cache prices and enforce minimum update intervals.",
"exploit_scenario": "If the `ICenterPrice` implementation relies on manipulable spot prices (e.g., AMM reserves), an attacker can skew the oracle in the same block, then call `swapSingle`/`swapHop` to trade against an artificial center price and extract value, leaving the pool with bad inventory once the oracle normalizes."
}
|
| low | other | codex | Dex pool ID truncation to 64 bits allows hash collisions | 65 | no | — |
viewevidence_json{
"evidence": "Pool IDs are derived as `bytes8(keccak256(abi.encode(dexKey_)))`.",
"locations": [
"contracts/contracts/protocols/dexLite/core/coreInternals.sol:12",
"contracts/contracts/protocols/dexLite/core/coreInternals.sol:153"
],
"recommendation": "Use `bytes32` (full `keccak256`) as the mapping key or otherwise include the full hash to avoid collision risk.",
"exploit_scenario": "A sufficiently resourced attacker can search for a `DexKey` whose `keccak256` prefix collides with an existing pool\u2019s `bytes8` ID. Swaps using the colliding key would operate on the victim pool\u2019s `dexVariables` while transferring attacker-chosen tokens, potentially corrupting accounting or draining any held balances of those tokens."
}
|