3430da73-4891-4fc2-bd51-e14bb3caa70e
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 |
|---|---|---|---|---|
| 31128 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 76582 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 76583 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 76584 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 76585 | capability.graph | complete | 1 / 3 | 1 week ago |
| 76586 | detector.run | complete | 1 / 3 | 1 week ago |
| 76587 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1007142] OpenAI Codex v0.77.0 (research preview)
[codex:1007142] --------
[codex:1007142] workdir: /tmp/codex-multi-uerlweg4
[codex:1007142] model: gpt-5.2-codex
[codex:1007142] provider: openai
[codex:1007142] approval: never
[codex:1007142] sandbox: read-only
[codex:1007142] reasoning effort: xhigh
[codex:1007142] reasoning summaries: auto
[codex:1007142] session id: 019b7b51-9329-7a71-9c37-55bedc437a68
[codex:1007142] --------
[codex:1007142] user
[codex:1007142] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1007142]
[codex:1007142] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1007142]
[codex:1007142] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1007142] - Gas inefficiency, code quality, naming, or best practices
[codex:1007142] - Theoretical vulnerabilities without a clear extraction path
[codex:1007142] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1007142] - Front-running unless it enables theft beyond MEV
[codex:1007142] - DoS, griefing, or issues that don't result in attacker profit
[codex:1007142] - Missing events, view function issues, or informational findings
[codex:1007142]
[codex:1007142] HIGH-VALUE PATTERNS TO HUNT:
[codex:1007142] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1007142] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1007142] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1007142] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1007142] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1007142] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1007142] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1007142] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1007142] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1007142]
[codex:1007142] For each finding, you MUST provide:
[codex:1007142] 1. Exact file and line numbers of vulnerable code
[codex:1007142] 2. Step-by-step exploit transaction sequence
[codex:1007142] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1007142]
[codex:1007142] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1007142]
[codex:1007142] Output MUST be valid JSON matching the provided schema.
[codex:1007142] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1007142] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1007142] mcp startup: no servers
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Preparing to read AUDIT_BUNDLE.txt**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc ls in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] AUDIT_BUNDLE.txt
[codex:1007142] codex-output-schema.json
[codex:1007142] contracts
[codex:1007142] exec
[codex:1007142] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1007142]
[codex:1007142] ================================================================================
[codex:1007142] FILE: contracts/contracts/base/Multicall.sol
[codex:1007142] ================================================================================
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {Address} from "@openzeppelin/contracts/utils/Address.sol";
[codex:1007142] import "../interfaces/IMulticall.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title Multicall
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice Enables calling multiple methods in a single call to the contract
[codex:1007142] */
[codex:1007142] abstract contract Multicall is IMulticall {
[codex:1007142] /// @inheritdoc IMulticall
[codex:1007142] function multicall(bytes[] calldata data) external override returns (bytes[] memory results) {
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Searching for vulnerabilities**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc 'rg -n "withdraw|claim|redeem|mint|deposit|transfer" contracts/contracts -g "*.sol"' in /tmp/codex-multi-uerlweg4 succeeded in 9ms:
[codex:1007142] contracts/contracts/interfaces/IVaultEthStaking.sol:21: * @return shares The number of shares minted
[codex:1007142] contracts/contracts/interfaces/IVaultEthStaking.sol:23: function deposit(address receiver, address referrer) external payable returns (uint256 shares);
[codex:1007142] contracts/contracts/interfaces/IVaultEthStaking.sol:26: * @notice Used by MEV escrow to transfer ETH.
[codex:1007142] contracts/contracts/interfaces/IVaultEthStaking.sol:31: * @notice Donate assets to the Vault. Must transfer ETH together with the call.
[codex:1007142] contracts/contracts/interfaces/IVaultEthStaking.sol:36: * @notice Updates Vault state and deposits ETH to the Vault
[codex:1007142] contracts/contracts/interfaces/IVaultEthStaking.sol:40: * @return shares The number of shares minted
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:23: * @param mintedAssets The amount of minted assets
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:24: * @param depositedAssets The amount of deposited assets
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:25: * @param redeemedOsTokenShares The amount of redeemed osToken shares
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:30: uint256 mintedAssets;
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:31: uint256 depositedAssets;
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:32: uint256 redeemedOsTokenShares;
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:60: Math.mulDiv(data.depositedAssets * _wad, config.liqThresholdPercent, data.mintedAssets * _maxPercent)
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:66: osTokenVaultController.convertToAssets(data.redeemedOsTokenShares), config.liqBonusPercent, _maxPercent
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:69: receivedAssets = osTokenVaultController.convertToAssets(data.redeemedOsTokenShares);
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:73: if (receivedAssets > data.depositedAssets || receivedAssets > data.availableAssets) {
[codex:1007142] contracts/contracts/interfaces/IEthValidatorsRegistry.sol:10: * @notice This is the Ethereum validators deposit contract interface.
[codex:1007142] contracts/contracts/interfaces/IEthValidatorsRegistry.sol:11: * See https://github.com/ethereum/consensus-specs/blob/v1.2.0/solidity_deposit_contract/deposit_contract.sol.
[codex:1007142] contracts/contracts/interfaces/IEthValidatorsRegistry.sol:17: /// @param withdrawal_credentials Commitment to a public key for withdrawals.
[codex:1007142] contracts/contracts/interfaces/IEthValidatorsRegistry.sol:19: /// @param deposit_data_root The SHA-256 hash of the SSZ-encoded DepositData object.
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Inspecting key files for vulnerabilities**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,240p' contracts/contracts/vaults/modules/VaultEnterExit.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1007142] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1007142] import {IVaultEnterExit} from "../../interfaces/IVaultEnterExit.sol";
[codex:1007142] import {ExitQueue} from "../../libraries/ExitQueue.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] import {VaultImmutables} from "./VaultImmutables.sol";
[codex:1007142] import {VaultState} from "./VaultState.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title VaultEnterExit
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice Defines the functionality for entering and exiting the Vault
[codex:1007142] */
[codex:1007142] abstract contract VaultEnterExit is VaultImmutables, Initializable, VaultState, IVaultEnterExit {
[codex:1007142] using ExitQueue for ExitQueue.History;
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Inspecting _transferVaultAssets usage**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,220p' contracts/contracts/vaults/modules/VaultEthStaking.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {Address} from "@openzeppelin/contracts/utils/Address.sol";
[codex:1007142] import {IEthValidatorsRegistry} from "../../interfaces/IEthValidatorsRegistry.sol";
[codex:1007142] import {IKeeperRewards} from "../../interfaces/IKeeperRewards.sol";
[codex:1007142] import {IVaultEthStaking} from "../../interfaces/IVaultEthStaking.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] import {ValidatorUtils} from "../../libraries/ValidatorUtils.sol";
[codex:1007142] import {VaultValidators} from "./VaultValidators.sol";
[codex:1007142] import {VaultState} from "./VaultState.sol";
[codex:1007142] import {VaultEnterExit} from "./VaultEnterExit.sol";
[codex:1007142] import {VaultMev} from "./VaultMev.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title VaultEthStaking
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice Defines the Ethereum staking functionality for the Vault
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Analyzing reentrancy protection and potential vulnerabilities**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/vaults/modules/VaultOsToken.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1007142] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1007142] import {IOsTokenVaultController} from "../../interfaces/IOsTokenVaultController.sol";
[codex:1007142] import {IOsTokenConfig} from "../../interfaces/IOsTokenConfig.sol";
[codex:1007142] import {IVaultOsToken} from "../../interfaces/IVaultOsToken.sol";
[codex:1007142] import {IOsTokenVaultEscrow} from "../../interfaces/IOsTokenVaultEscrow.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] import {VaultImmutables} from "./VaultImmutables.sol";
[codex:1007142] import {VaultEnterExit, IVaultEnterExit} from "./VaultEnterExit.sol";
[codex:1007142] import {VaultState} from "./VaultState.sol";
[codex:1007142] import {OsTokenUtils} from "../../libraries/OsTokenUtils.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title VaultOsToken
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice Defines the functionality for minting OsToken
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '260,520p' contracts/contracts/vaults/modules/VaultOsToken.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] /**
[codex:1007142] * @dev Internal function for syncing the osToken fee
[codex:1007142] * @param position The position to sync the fee for
[codex:1007142] */
[codex:1007142] function _syncPositionFee(OsTokenPosition memory position) private view {
[codex:1007142] // fetch current cumulative fee per share
[codex:1007142] uint256 cumulativeFeePerShare = _osTokenVaultController.cumulativeFeePerShare();
[codex:1007142]
[codex:1007142] // check whether fee is already up to date
[codex:1007142] if (cumulativeFeePerShare == position.cumulativeFeePerShare) return;
[codex:1007142]
[codex:1007142] // add treasury fee to the position
[codex:1007142] position.shares =
[codex:1007142] SafeCast.toUint128(Math.mulDiv(position.shares, cumulativeFeePerShare, position.cumulativeFeePerShare));
[codex:1007142] position.cumulativeFeePerShare = SafeCast.toUint128(cumulativeFeePerShare);
[codex:1007142] }
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @notice Internal function for checking position validity. Reverts if it is invalid.
[codex:1007142] * @param user The address of the user
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Analyzing osToken share burning logic**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/OsTokenVaultEscrow.sol" in /tmp/codex-multi-uerlweg4 exited 2 in 5ms:
[codex:1007142] sed: can't read contracts/contracts/OsTokenVaultEscrow.sol: No such file or directory
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Searching for file using rg**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc 'rg -n "contract OsTokenVaultEscrow|OsTokenVaultEscrow" contracts/contracts -g "*.sol"' in /tmp/codex-multi-uerlweg4 succeeded in 9ms:
[codex:1007142] contracts/contracts/interfaces/IOsTokenVaultEscrow.sol:8: * @title IOsTokenVaultEscrow
[codex:1007142] contracts/contracts/interfaces/IOsTokenVaultEscrow.sol:10: * @notice Interface for OsTokenVaultEscrow contract
[codex:1007142] contracts/contracts/interfaces/IOsTokenVaultEscrow.sol:12:interface IOsTokenVaultEscrow is IMulticall {
[codex:1007142] contracts/contracts/interfaces/IVaultOsToken.sol:119: * @notice Transfers minted osToken shares to the OsTokenVaultEscrow contract, enters the exit queue for staked assets
[codex:1007142] contracts/contracts/vaults/modules/VaultOsToken.sol:10:import {IOsTokenVaultEscrow} from "../../interfaces/IOsTokenVaultEscrow.sol";
[codex:1007142] contracts/contracts/vaults/modules/VaultOsToken.sol:32: IOsTokenVaultEscrow private immutable _osTokenVaultEscrow;
[codex:1007142] contracts/contracts/vaults/modules/VaultOsToken.sol:42: * @param osTokenVaultEscrow The address of the OsTokenVaultEscrow contract
[codex:1007142] contracts/contracts/vaults/modules/VaultOsToken.sol:48: _osTokenVaultEscrow = IOsTokenVaultEscrow(osTokenVaultEscrow);
[codex:1007142] contracts/contracts/interfaces/IEthVault.sol:44: * @param osTokenVaultEscrow The address of the OsTokenVaultEscrow contract
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Exploring related vault modules**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,220p' contracts/contracts/vaults/ethereum/EthVault.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {IEthVault} from "../../interfaces/IEthVault.sol";
[codex:1007142] import {IEthVaultFactory} from "../../interfaces/IEthVaultFactory.sol";
[codex:1007142] import {IKeeperRewards} from "../../interfaces/IKeeperRewards.sol";
[codex:1007142] import {Multicall} from "../../base/Multicall.sol";
[codex:1007142] import {VaultValidators} from "../modules/VaultValidators.sol";
[codex:1007142] import {VaultAdmin} from "../modules/VaultAdmin.sol";
[codex:1007142] import {VaultFee} from "../modules/VaultFee.sol";
[codex:1007142] import {VaultVersion, IVaultVersion} from "../modules/VaultVersion.sol";
[codex:1007142] import {VaultImmutables} from "../modules/VaultImmutables.sol";
[codex:1007142] import {VaultState} from "../modules/VaultState.sol";
[codex:1007142] import {VaultEnterExit, IVaultEnterExit} from "../modules/VaultEnterExit.sol";
[codex:1007142] import {VaultOsToken} from "../modules/VaultOsToken.sol";
[codex:1007142] import {VaultEthStaking} from "../modules/VaultEthStaking.sol";
[codex:1007142] import {VaultMev} from "../modules/VaultMev.sol";
[codex:1007142]
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Considering EthGenesisVault**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/vaults/ethereum/EthGenesisVault.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1007142] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1007142] import {IVaultVersion} from "../../interfaces/IVaultVersion.sol";
[codex:1007142] import {IEthPoolEscrow} from "../../interfaces/IEthPoolEscrow.sol";
[codex:1007142] import {IEthGenesisVault} from "../../interfaces/IEthGenesisVault.sol";
[codex:1007142] import {IRewardEthToken} from "../../interfaces/IRewardEthToken.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] import {ValidatorUtils} from "../../libraries/ValidatorUtils.sol";
[codex:1007142] import {VaultValidators} from "../modules/VaultValidators.sol";
[codex:1007142] import {VaultEnterExit} from "../modules/VaultEnterExit.sol";
[codex:1007142] import {VaultEthStaking} from "../modules/VaultEthStaking.sol";
[codex:1007142] import {VaultState, IVaultState} from "../modules/VaultState.sol";
[codex:1007142] import {EthVault, IEthVault} from "./EthVault.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Inspecting Vault modules for access issues**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,220p' contracts/contracts/vaults/modules/VaultAdmin.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {IVaultAdmin} from "../../interfaces/IVaultAdmin.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title VaultAdmin
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice Defines the admin functionality for the Vault
[codex:1007142] */
[codex:1007142] abstract contract VaultAdmin is Initializable, IVaultAdmin {
[codex:1007142] /// @inheritdoc IVaultAdmin
[codex:1007142] address public override admin;
[codex:1007142]
[codex:1007142] /// @inheritdoc IVaultAdmin
[codex:1007142] function setMetadata(string calldata metadataIpfsHash) external override {
[codex:1007142] _checkAdmin();
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Checking VaultFee**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/vaults/modules/VaultFee.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {IVaultFee} from "../../interfaces/IVaultFee.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] import {VaultAdmin} from "./VaultAdmin.sol";
[codex:1007142] import {VaultImmutables} from "./VaultImmutables.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title VaultFee
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice Defines the fee functionality for the Vault
[codex:1007142] */
[codex:1007142] abstract contract VaultFee is VaultImmutables, Initializable, VaultAdmin, IVaultFee {
[codex:1007142] uint256 internal constant _maxFeePercent = 10_000; // @dev 100.00 %
[codex:1007142] uint256 private constant _feeUpdateDelay = 3 days;
[codex:1007142] uint256 private constant _feeUpdateMultiplier = 120;
[codex:1007142] uint256 private constant _feeUpdateBase = 100;
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Checking VaultMev usage**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,220p' contracts/contracts/vaults/modules/VaultMev.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {IKeeperRewards} from "../../interfaces/IKeeperRewards.sol";
[codex:1007142] import {ISharedMevEscrow} from "../../interfaces/ISharedMevEscrow.sol";
[codex:1007142] import {IOwnMevEscrow} from "../../interfaces/IOwnMevEscrow.sol";
[codex:1007142] import {IVaultMev} from "../../interfaces/IVaultMev.sol";
[codex:1007142] import {VaultState} from "./VaultState.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title VaultMev
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice Defines the Vaults' MEV functionality
[codex:1007142] */
[codex:1007142] abstract contract VaultMev is Initializable, VaultState, IVaultMev {
[codex:1007142] /// @custom:oz-upgrades-unsafe-allow state-variable-immutable
[codex:1007142] address private immutable _sharedMevEscrow;
[codex:1007142] address private _ownMevEscrow;
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Identifying key VaultState**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/vaults/modules/VaultState.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1007142] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1007142] import {IVaultState} from "../../interfaces/IVaultState.sol";
[codex:1007142] import {IKeeperRewards} from "../../interfaces/IKeeperRewards.sol";
[codex:1007142] import {ExitQueue} from "../../libraries/ExitQueue.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] import {VaultImmutables} from "./VaultImmutables.sol";
[codex:1007142] import {VaultFee} from "./VaultFee.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title VaultState
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice Defines Vault's state manipulation
[codex:1007142] */
[codex:1007142] abstract contract VaultState is VaultImmutables, Initializable, VaultFee, IVaultState {
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Analyzing potential reentrancy risks**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/libraries/ValidatorUtils.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {Address} from "@openzeppelin/contracts/utils/Address.sol";
[codex:1007142] import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol";
[codex:1007142] import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";
[codex:1007142] import {IVaultValidators} from "../interfaces/IVaultValidators.sol";
[codex:1007142] import {Errors} from "./Errors.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title ValidatorUtils
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice Includes functionality for managing the validators
[codex:1007142] */
[codex:1007142] library ValidatorUtils {
[codex:1007142] bytes32 private constant _validatorsManagerTypeHash =
[codex:1007142] keccak256("VaultValidators(bytes32 validatorsRegistryRoot,bytes validators)");
[codex:1007142] uint256 private constant _validatorV1DepositLength = 176;
[codex:1007142] uint256 private constant _validatorV2DepositLength = 184;
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '260,520p' contracts/contracts/libraries/ValidatorUtils.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] }
[codex:1007142]
[codex:1007142] uint256 totalFeeAssets = msg.value;
[codex:1007142]
[codex:1007142] // Process each validator
[codex:1007142] uint256 startIndex;
[codex:1007142] for (uint256 i = 0; i < validatorsCount;) {
[codex:1007142] // consolidate validators
[codex:1007142] (bytes calldata sourcePublicKey, bytes calldata destPublicKey, uint256 feePaid) = consolidateValidator(
[codex:1007142] validators[startIndex:startIndex + _validatorConsolidationLength], validatorsConsolidations
[codex:1007142] );
[codex:1007142]
[codex:1007142] // check whether the destination public key is tracked or approved
[codex:1007142] bytes32 destPubKeyHash = keccak256(destPublicKey);
[codex:1007142] if (consolidationsApproved) {
[codex:1007142] v2Validators[destPubKeyHash] = true;
[codex:1007142] } else if (!v2Validators[destPubKeyHash]) {
[codex:1007142] revert Errors.InvalidValidators();
[codex:1007142] }
[codex:1007142]
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Analyzing potential vulnerabilities in ValidatorUtils and related functions**
[codex:1007142]
[codex:1007142] I'm scrutinizing the use of Address.sendValue in ValidatorUtils and how nonReentrant protections apply in withdrawValidators and consolidateValidators. I'm also evaluating asset share conversions, underflow checks, and whether any logic gaps could cause reverts or unintended profit. I'm curious about how multicall’s delegatecall and claimExitedAssets might open vulnerabilities, so I plan to check ExitQueue next.
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/libraries/ExitQueue.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1007142] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1007142] import {Errors} from "./Errors.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title ExitQueue
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice ExitQueue represent checkpoints of burned shares and exited assets
[codex:1007142] */
[codex:1007142] library ExitQueue {
[codex:1007142] /**
[codex:1007142] * @notice A struct containing checkpoint data
[codex:1007142] * @param totalTickets The cumulative number of tickets (shares) exited
[codex:1007142] * @param exitedAssets The number of assets that exited in this checkpoint
[codex:1007142] */
[codex:1007142] struct Checkpoint {
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Checking OsTokenUtils for issues**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,240p' contracts/contracts/libraries/OsTokenUtils.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1007142] import {IOsTokenConfig} from "../interfaces/IOsTokenConfig.sol";
[codex:1007142] import {IOsTokenVaultController} from "../interfaces/IOsTokenVaultController.sol";
[codex:1007142] import {Errors} from "./Errors.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title OsTokenUtils
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice Includes functionality for handling osToken redemptions
[codex:1007142] */
[codex:1007142] library OsTokenUtils {
[codex:1007142] uint256 private constant _wad = 1e18;
[codex:1007142] uint256 private constant _hfLiqThreshold = 1e18;
[codex:1007142] uint256 private constant _maxPercent = 1e18;
[codex:1007142] uint256 private constant _disabledLiqThreshold = type(uint64).max;
[codex:1007142]
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Analyzing asset calculations and state updates**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/vaults/modules/VaultImmutables.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {IKeeperRewards} from "../../interfaces/IKeeperRewards.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title VaultImmutables
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice Defines the Vault common immutable variables and check functions.
[codex:1007142] */
[codex:1007142] abstract contract VaultImmutables {
[codex:1007142] /// @custom:oz-upgrades-unsafe-allow state-variable-immutable
[codex:1007142] address internal immutable _keeper;
[codex:1007142]
[codex:1007142] /// @custom:oz-upgrades-unsafe-allow state-variable-immutable
[codex:1007142] address internal immutable _vaultsRegistry;
[codex:1007142]
[codex:1007142] /**
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Analyzing potential initialize vulnerability**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/vaults/ethereum/EthVaultFactory.sol" in /tmp/codex-multi-uerlweg4 exited 2 in 5ms:
[codex:1007142] sed: can't read contracts/contracts/vaults/ethereum/EthVaultFactory.sol: No such file or directory
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Searching in other folders**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc 'rg -n "contract EthVaultFactory|VaultFactory" contracts/contracts -g "*.sol"' in /tmp/codex-multi-uerlweg4 succeeded in 10ms:
[codex:1007142] contracts/contracts/interfaces/IEthVaultFactory.sol:6: * @title IEthVaultFactory
[codex:1007142] contracts/contracts/interfaces/IEthVaultFactory.sol:10:interface IEthVaultFactory {
[codex:1007142] contracts/contracts/vaults/ethereum/EthVault.sol:7:import {IEthVaultFactory} from "../../interfaces/IEthVaultFactory.sol";
[codex:1007142] contracts/contracts/vaults/ethereum/EthVault.sol:76: IEthVaultFactory(msg.sender).vaultAdmin(),
[codex:1007142] contracts/contracts/vaults/ethereum/EthVault.sol:77: IEthVaultFactory(msg.sender).ownMevEscrow(),
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Analyzing potential security and reentrancy issues**
[codex:1007142]
[codex:1007142] I'm carefully reviewing the proxy initialization, upgrade authorization, multicall delegate calls, and access control logic around validator registration and fund management to identify if any exploitable vulnerabilities or replay attacks might exist. Since the factory code is missing, I can't fully confirm risks, but I'm scrutinizing patterns like nonReentrant usage in multicall, signature nonce handling, and validator deposit flows for possible attack vectors or unintended consequences.
[codex:1007142] exec
[codex:1007142] /bin/bash -lc 'rg -n "contract DepositDataRegistry" -n contracts/contracts -g "*.sol"' in /tmp/codex-multi-uerlweg4 exited 1 in 10ms:
[codex:1007142]
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Searching for deposit data contracts**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc 'rg -n "DepositDataRegistry" contracts/contracts -g "*.sol"' in /tmp/codex-multi-uerlweg4 succeeded in 10ms:
[codex:1007142] contracts/contracts/interfaces/IDepositDataRegistry.sol:10: * @title IDepositDataRegistry
[codex:1007142] contracts/contracts/interfaces/IDepositDataRegistry.sol:12: * @notice Defines the interface for DepositDataRegistry
[codex:1007142] contracts/contracts/interfaces/IDepositDataRegistry.sol:14:interface IDepositDataRegistry is IMulticall {
[codex:1007142] contracts/contracts/interfaces/IEthVault.sol:46: * @param depositDataRegistry The address of the DepositDataRegistry contract
[codex:1007142] contracts/contracts/interfaces/IVaultValidators.sol:130: * @notice Function for updating the validators manager. Can only be called by the admin. Default is the DepositDataRegistry contract.
[codex:1007142] contracts/contracts/vaults/modules/VaultValidators.sol:10:import {IDepositDataRegistry} from "../../interfaces/IDepositDataRegistry.sol";
[codex:1007142] contracts/contracts/vaults/modules/VaultValidators.sol:49: /// deprecated. Deposit data management is moved to DepositDataRegistry contract
[codex:1007142] contracts/contracts/vaults/modules/VaultValidators.sol:52: /// deprecated. Deposit data management is moved to DepositDataRegistry contract
[codex:1007142] contracts/contracts/vaults/modules/VaultValidators.sol:250: // migrate deposit data variables to DepositDataRegistry contract
[codex:1007142] contracts/contracts/vaults/modules/VaultValidators.sol:252: IDepositDataRegistry(_depositDataRegistry).migrate(
[codex:1007142]
[codex:1007142]
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Analyzing potential multicall and reentrancy risks**
[codex:1007142]
[codex:1007142] I’m examining possible exploits around multicall with delegatecall and msg.value handling, particularly if depositing ETH multiple times with a single payment inflates shares, causing imbalance in vault accounting. I’m also checking reentrancy guards and whether non-payable multicall blocks exploit paths, while considering access controls and intricacies of various internal state updates and external calls. Let’s explore if any logical loopholes allow unauthorized profit.
[codex:1007142] thinking
[codex:1007142] **Evaluating rounding and deposit timing vulnerabilities**
[codex:1007142]
[codex:1007142] I’m exploring how rounding up on share minting might let small deposits yield disproportionate shares, potentially leading to repeated tiny profits that drain value over time. I’m also checking if entering exit queues before harvest updates can be exploited for stale pricing benefits and whether external calls in escrow interactions could open reentrancy risks. There’s a lot here to consider around state timing and share accounting nuances!
[codex:1007142] thinking
[codex:1007142] **Investigating validators signature replay and redemption mechanics**
[codex:1007142]
[codex:1007142] I’m examining how validatorsManager nonce handling might allow repeated validator registrations and whether that can be leveraged beyond griefing. I’m also scrutinizing redeemOsToken’s logic, where burning shares from one account redeems collateral from another’s position, which seems unusual—this could be a subtle risk or an intended feature linked to liquidation flows. I want to understand if any of these mechanics open exploitable paths.
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/interfaces/IOsTokenVaultEscrow.sol" in /tmp/codex-multi-uerlweg4 succeeded in 8ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] import {IMulticall} from "./IMulticall.sol";
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title IOsTokenVaultEscrow
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice Interface for OsTokenVaultEscrow contract
[codex:1007142] */
[codex:1007142] interface IOsTokenVaultEscrow is IMulticall {
[codex:1007142] /**
[codex:1007142] * @notice Struct to store the escrow position details
[codex:1007142] * @param owner The address of the assets owner
[codex:1007142] * @param exitedAssets The amount of assets exited and ready to be claimed
[codex:1007142] * @param osTokenShares The amount of osToken shares
[codex:1007142] * @param cumulativeFeePerShare The cumulative fee per share used to calculate the osToken fee
[codex:1007142] */
[codex:1007142] struct Position {
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Reviewing security aspects and token redemption logic**
[codex:1007142]
[codex:1007142] I'm analyzing various contract functions related to exit queues, asset transfers, and token redemption, checking for vulnerabilities like reentrancy, underflow, and improper access controls. I'm especially curious about how the transferable osToken shares allow redemption against others' collateral and the role of the redeemer contract in controlling that flow. I want to verify EIP712 signature validation next to see if that could be a risk.
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,220p' contracts/contracts/libraries/EIP712Utils.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142]
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @title EIP712Utils
[codex:1007142] * @author StakeWise
[codex:1007142] * @notice Includes functionality for calculating EIP712 hashes
[codex:1007142] */
[codex:1007142] library EIP712Utils {
[codex:1007142] bytes32 private constant _domainTypeHash =
[codex:1007142] keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)");
[codex:1007142] bytes32 private constant _versionHash = keccak256("1");
[codex:1007142]
[codex:1007142] /**
[codex:1007142] * @notice Computes the hash of the EIP712 typed data
[codex:1007142] * @dev This function is used to compute the hash of the EIP712 typed data
[codex:1007142] * @param name The name of the domain
[codex:1007142] * @param verifyingContract The address of the verifying contract
[codex:1007142] * @return The hash of the EIP712 typed data
[codex:1007142]
[codex:1007142]
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Analyzing potential arithmetic and access control issues**
[codex:1007142]
[codex:1007142] I'm exploring various edge cases in the contract involving initialization, access control, reentrancy, and especially subtle arithmetic rounding in token redemption that could let a user withdraw assets without properly reducing their stake, possibly allowing value extraction at others' expense. I'm piecing together how shares, assets, and rounding checks interplay to see if this results in exploitable profit or denial-of-service.
[codex:1007142] thinking
[codex:1007142] **Examining rounding effects on share burning and yield extraction**
[codex:1007142]
[codex:1007142] I'm working through how the share price above one enables tiny redemptions that burn zero shares due to rounding down, allowing extraction of accrued rewards without reducing collateral shares. This lets a user siphon the vault’s extra yield by fragmenting redemptions, potentially profiting by shifting losses onto other shareholders. The next step is confirming conditions and limits around minting, redeeming, and pulling this off practically.
[codex:1007142] thinking
[codex:1007142] **Reviewing redemption restrictions and related access controls**
[codex:1007142]
[codex:1007142] I'm verifying how redeemOsToken’s restriction to a specific redeemer address limits the rounding exploit, considering that liquidation path requires undercollateralization and that self-liquidation might be blocked. At the same time, I'm looking into other subtle issues like exit queue timing, pending rewards or penalties affecting withdrawals, and potential for reentrancy or timestamp manipulation in exit processing. Next, I’ll locate the exact code for _redeemOsToken to get precise line info for reference.
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "nl -ba contracts/contracts/vaults/modules/VaultOsToken.sol | sed -n '200,320p'" in /tmp/codex-multi-uerlweg4 succeeded in 7ms:
[codex:1007142] 200 // emit event
[codex:1007142] 201 emit OsTokenMinted(owner, receiver, assets, osTokenShares, referrer);
[codex:1007142] 202 }
[codex:1007142] 203
[codex:1007142] 204 /**
[codex:1007142] 205 * @dev Internal function for redeeming and liquidating osToken shares
[codex:1007142] 206 * @param owner The minter of the osToken shares
[codex:1007142] 207 * @param receiver The receiver of the assets
[codex:1007142] 208 * @param osTokenShares The amount of osToken shares to redeem or liquidate
[codex:1007142] 209 * @param isLiquidation Whether the liquidation or redemption is being performed
[codex:1007142] 210 * @return burnedShares The amount of shares burned
[codex:1007142] 211 * @return receivedAssets The amount of assets received
[codex:1007142] 212 */
[codex:1007142] 213 function _redeemOsToken(address owner, address receiver, uint256 osTokenShares, bool isLiquidation)
[codex:1007142] 214 private
[codex:1007142] 215 returns (uint256 burnedShares, uint256 receivedAssets)
[codex:1007142] 216 {
[codex:1007142] 217 if (receiver == address(0)) revert Errors.ZeroAddress();
[codex:1007142] 218 _checkHarvested();
[codex:1007142] 219
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Verifying share rounding logic**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "nl -ba contracts/contracts/vaults/modules/VaultState.sol | sed -n '40,140p'" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] 40 /// @inheritdoc IVaultState
[codex:1007142] 41 function totalShares() external view override returns (uint256) {
[codex:1007142] 42 return _totalShares;
[codex:1007142] 43 }
[codex:1007142] 44
[codex:1007142] 45 /// @inheritdoc IVaultState
[codex:1007142] 46 function totalAssets() external view override returns (uint256) {
[codex:1007142] 47 return _totalAssets;
[codex:1007142] 48 }
[codex:1007142] 49
[codex:1007142] 50 /// @inheritdoc IVaultState
[codex:1007142] 51 function getExitQueueData()
[codex:1007142] 52 external
[codex:1007142] 53 view
[codex:1007142] 54 override
[codex:1007142] 55 returns (
[codex:1007142] 56 uint128 queuedShares,
[codex:1007142] 57 uint128 unclaimedAssets,
[codex:1007142] 58 uint128 totalExitingTickets,
[codex:1007142] 59 uint128 totalExitingAssets,
[codex:1007142]
[codex:1007142]
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Analyzing zero-share burn exploit scenario**
[codex:1007142]
[codex:1007142] I'm examining how rounding down in share burning can let an attacker redeem small amounts without burning collateral shares, potentially draining accrued yield from the vault by repeatedly liquidating tiny osToken shares if undercollateralized positions exist. This exploit hinges on vault conditions, liquidatable positions, and available withdrawable assets, so I'm carefully weighing whether this creates a concrete profit path.
[codex:1007142] thinking
[codex:1007142] **Evaluating ETH staking and rounding impact**
[codex:1007142]
[codex:1007142] I'm carefully weighing how ETH staking’s illiquid rewards limit yield extraction via rounding exploits, while reviewing multiple contract functions and access controls for concrete profit paths. The analysis suggests the rounding issue enables small yield drains under liquidation, but practical constraints and intended behavior may reduce severity, so I’m deciding if this counts as a definitive vulnerability.
[codex:1007142] thinking
[codex:1007142] **Detailing liquidateOsToken rounding exploit**
[codex:1007142]
[codex:1007142] I'm outlining a clear exploit where undercollateralized positions enable repeated calls to `liquidateOsToken` with tiny osTokenShares amounts that cause burned collateral shares to round down to zero, letting an attacker drain excess vault yield by extracting assets without reducing owner collateral shares—demonstrating significant profit potential bounded by liquid assets and accrued rewards.
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "nl -ba contracts/contracts/vaults/modules/VaultOsToken.sol | sed -n '60,140p'" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] 60 public
[codex:1007142] 61 virtual
[codex:1007142] 62 override
[codex:1007142] 63 returns (uint256 assets)
[codex:1007142] 64 {
[codex:1007142] 65 return _mintOsToken(msg.sender, receiver, osTokenShares, referrer);
[codex:1007142] 66 }
[codex:1007142] 67
[codex:1007142] 68 /// @inheritdoc IVaultOsToken
[codex:1007142] 69 function burnOsToken(uint128 osTokenShares) external override returns (uint256 assets) {
[codex:1007142] 70 // burn osToken shares
[codex:1007142] 71 assets = _osTokenVaultController.burnShares(msg.sender, osTokenShares);
[codex:1007142] 72
[codex:1007142] 73 // fetch user position
[codex:1007142] 74 OsTokenPosition memory position = _positions[msg.sender];
[codex:1007142] 75 if (position.shares == 0) revert Errors.InvalidPosition();
[codex:1007142] 76 _syncPositionFee(position);
[codex:1007142] 77
[codex:1007142] 78 // update osToken position
[codex:1007142] 79 position.shares -= osTokenShares;
[codex:1007142]
[codex:1007142] thinking
[codex:1007142] **Detailing osToken rounding vulnerability and exploit**
[codex:1007142] codex
[codex:1007142] {"no_findings":false,"summary":"Found a concrete rounding exploit that lets liquidators extract vault yield without burning collateral shares.","findings":[{"severity":"medium","category":"math","title":"Floor rounding on share burn allows zero-share liquidations that drain yield","exploit_scenario":"1) Wait until the vault has accrued rewards so `totalAssets > totalShares` (asset-per-share > 1) and a position is liquidatable (health factor below threshold). 2) Acquire osToken shares (mint against collateral or buy) and call `liquidateOsToken` with a very small `osTokenShares` amount so `receivedAssets < totalAssets/totalShares`. 3) In `_redeemOsToken`, `burnedShares = convertToShares(receivedAssets)` rounds down to 0, yet `_totalAssets` is reduced and assets are transferred to the attacker. 4) Repeat small liquidations to drain up to the vault’s surplus (`totalAssets - totalShares`) or current `withdrawableAssets`, extracting value from other shareholders without burning the target’s collateral shares.","recommendation":"When burning shares for redeemed assets, round up instead of down (e.g., use `Math.Rounding.Ceil`), or enforce a minimum burn of 1 share for any nonzero `receivedAssets`, or require `receivedAssets >= assetsPerShare` to proceed.","evidence":"`_redeemOsToken` computes `burnedShares = convertToShares(receivedAssets)` and then `_burnShares(owner, burnedShares)`; `convertToShares` uses floor rounding, enabling `burnedShares` to be 0 when `receivedAssets < assetsPerShare`.","locations":["contracts/contracts/vaults/modules/VaultOsToken.sol:87","contracts/contracts/vaults/modules/VaultOsToken.sol:248","contracts/contracts/vaults/modules/VaultOsToken.sol:251","contracts/contracts/vaults/modules/VaultOsToken.sol:254","contracts/contracts/vaults/modules/VaultState.sol:78","contracts/contracts/vaults/modules/VaultState.sol:79"]}]}
[codex:1007142] tokens used
[codex:1007142] 100,132
[codex:1007142] {"no_findings":false,"summary":"Found a concrete rounding exploit that lets liquidators extract vault yield without burning collateral shares.","findings":[{"severity":"medium","category":"math","title":"Floor rounding on share burn allows zero-share liquidations that drain yield","exploit_scenario":"1) Wait until the vault has accrued rewards so `totalAssets > totalShares` (asset-per-share > 1) and a position is liquidatable (health factor below threshold). 2) Acquire osToken shares (mint against collateral or buy) and call `liquidateOsToken` with a very small `osTokenShares` amount so `receivedAssets < totalAssets/totalShares`. 3) In `_redeemOsToken`, `burnedShares = convertToShares(receivedAssets)` rounds down to 0, yet `_totalAssets` is reduced and assets are transferred to the attacker. 4) Repeat small liquidations to drain up to the vault’s surplus (`totalAssets - totalShares`) or current `withdrawableAssets`, extracting value from other shareholders without burning the target’s collateral shares.","recommendation":"When burning shares for redeemed assets, round up instead of down (e.g., use `Math.Rounding.Ceil`), or enforce a minimum burn of 1 share for any nonzero `receivedAssets`, or require `receivedAssets >= assetsPerShare` to proceed.","evidence":"`_redeemOsToken` computes `burnedShares = convertToShares(receivedAssets)` and then `_burnShares(owner, burnedShares)`; `convertToShares` uses floor rounding, enabling `burnedShares` to be 0 when `receivedAssets < assetsPerShare`.","locations":["contracts/contracts/vaults/modules/VaultOsToken.sol:87","contracts/contracts/vaults/modules/VaultOsToken.sol:248","contracts/contracts/vaults/modules/VaultOsToken.sol:251","contracts/contracts/vaults/modules/VaultOsToken.sol:254","contracts/contracts/vaults/modules/VaultState.sol:78","contracts/contracts/vaults/modules/VaultState.sol:79"]}]}
{
"codex": {
"ran_at": "2026-01-01T20:59:41.275084+00:00",
"returncode": 0
},
"summary": "Found a concrete rounding exploit that lets liquidators extract vault yield without burning collateral shares.",
"raw_final": {
"summary": "Found a concrete rounding exploit that lets liquidators extract vault yield without burning collateral shares.",
"findings": [
{
"title": "Floor rounding on share burn allows zero-share liquidations that drain yield",
"category": "math",
"evidence": "`_redeemOsToken` computes `burnedShares = convertToShares(receivedAssets)` and then `_burnShares(owner, burnedShares)`; `convertToShares` uses floor rounding, enabling `burnedShares` to be 0 when `receivedAssets < assetsPerShare`.",
"severity": "medium",
"locations": [
"contracts/contracts/vaults/modules/VaultOsToken.sol:87",
"contracts/contracts/vaults/modules/VaultOsToken.sol:248",
"contracts/contracts/vaults/modules/VaultOsToken.sol:251",
"contracts/contracts/vaults/modules/VaultOsToken.sol:254",
"contracts/contracts/vaults/modules/VaultState.sol:78",
"contracts/contracts/vaults/modules/VaultState.sol:79"
],
"recommendation": "When burning shares for redeemed assets, round up instead of down (e.g., use `Math.Rounding.Ceil`), or enforce a minimum burn of 1 share for any nonzero `receivedAssets`, or require `receivedAssets >= assetsPerShare` to proceed.",
"exploit_scenario": "1) Wait until the vault has accrued rewards so `totalAssets > totalShares` (asset-per-share > 1) and a position is liquidatable (health factor below threshold). 2) Acquire osToken shares (mint against collateral or buy) and call `liquidateOsToken` with a very small `osTokenShares` amount so `receivedAssets < totalAssets/totalShares`. 3) In `_redeemOsToken`, `burnedShares = convertToShares(receivedAssets)` rounds down to 0, yet `_totalAssets` is reduced and assets are transferred to the attacker. 4) Repeat small liquidations to drain up to the vault\u2019s surplus (`totalAssets - totalShares`) or current `withdrawableAssets`, extracting value from other shareholders without burning the target\u2019s collateral shares."
}
],
"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: ISZERO 0000000a: PUSH2 0x0022 0000000d: JUMPI 0000000e: JUMPDEST 0000000f: CALLDATASIZE 00000010: ISZERO 00000011: PUSH2 0x0018 00000014: JUMPI 00000015: PUSH0 00000016: DUP1 00000017: REVERT 00000018: JUMPDEST 00000019: PUSH2 0x0020 0000001c: PUSH2 0x2df4 0000001f: JUMP 00000020: JUMPDEST 00000021: STOP 00000022: JUMPDEST 00000023: PUSH0 00000024: CALLDATALOAD 00000025: PUSH1 0xe0 00000027: SHR 00000028: DUP1 00000029: PUSH4 0x01d523b6 0000002e: EQ 0000002f: PUSH2 0x0361 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0x01e1d114 00000039: EQ 0000003a: PUSH2 0x035c 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0x0402f196 00000044: EQ 00000045: PUSH2 0x0357 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0x066055e0 0000004f: EQ 00000050: PUSH2 0x0352 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0x07a2d13a 0000005a: EQ 0000005b: PUSH2 0x034d 0000005e: JUMPI 0000005f: DUP1 00000060: PUSH4 0x18f72950 00000065: EQ 00000066: PUSH2 0x0348 00000069: JUMPI 0000006a: DUP1 0000006b: PUSH4 0x1913bb24 00000070: EQ 00000071: PUSH2 0x0343 00000074: JUMPI 00000075: DUP1 00000076: PUSH4 0x1a7ff553 0000007b: EQ 0000007c: PUSH2 0x033e 0000007f: JUMPI 00000080: DUP1 00000081: PUSH4 0x201b9eb5 00000086: EQ 00000087: PUSH2 0x0339 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0x24a14b14 00000091: EQ 00000092: PUSH2 0x0334 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0x2999ad3f 0000009c: EQ 0000009d: PUSH2 0x032f 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x2cdf7401 000000a7: EQ 000000a8: PUSH2 0x032a 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0x3229fa95 000000b2: EQ 000000b3: PUSH2 0x0325 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x33194c0a 000000bd: EQ 000000be: PUSH2 0x0320 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0x36fe59d2 000000c8: EQ 000000c9: PUSH2 0x031b 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0x3a98ef39 000000d3: EQ 000000d4: PUSH2 0x0316 000000d7: JUMPI 000000d8: DUP1 000000d9: PUSH4 0x3e1655d3 000000de: EQ 000000df: PUSH2 0x0311 000000e2: JUMPI 000000e3: DUP1 000000e4: PUSH4 0x439fab91 000000e9: EQ 000000ea: PUSH2 0x030c 000000ed: JUMPI 000000ee: DUP1 000000ef: PUSH4 0x43e82a79 000000f4: EQ 000000f5: PUSH2 0x0307 000000f8: JUMPI 000000f9: DUP1 000000fa: PUSH4 0x46904840 000000ff: EQ 00000100: PUSH2 0x0302 00000103: JUMPI 00000104: DUP1 00000105: PUSH4 0x4ec96b22 0000010a: EQ 0000010b: PUSH2 0x02fd 0000010e: JUMPI 0000010f: DUP1 00000110: PUSH4 0x4f1ef286 00000115: EQ 00000116: PUSH2 0x02f8 00000119: JUMPI 0000011a: DUP1 0000011b: PUSH4 0x52d1902d 00000120: EQ 00000121: PUSH2 0x02f3 00000124: JUMPI 00000125: DUP1 00000126: PUSH4 0x53156f28 0000012b: EQ 0000012c: PUSH2 0x02ee 0000012f: JUMPI 00000130: DUP1 00000131: PUSH4 0x54fd4d50 00000136: EQ 00000137: PUSH2 0x02e9 0000013a: JUMPI 0000013b: DUP1 0000013c: PUSH4 0x5c0935db 00000141: EQ 00000142: PUSH2 0x02e4 00000145: JUMPI 00000146: DUP1 00000147: PUSH4 0x5c60da1b 0000014c: EQ 0000014d: PUSH2 0x02df 00000150: JUMPI 00000151: DUP1 00000152: PUSH4 0x5cfc1a51 00000157: EQ 00000158: PUSH2 0x02da 0000015b: JUMPI 0000015c: DUP1 0000015d: PUSH4 0x60d60e6e 00000162: EQ 00000163: PUSH2 0x02d5 00000166: JUMPI 00000167: DUP1 00000168: PUSH4 0x704b6c02 0000016d: EQ 0000016e: PUSH2 0x02d0 00000171: JUMPI 00000172: DUP1 00000173: PUSH4 0x72b410a8 00000178: EQ 00000179: PUSH2 0x02cb 0000017c: JUMPI 0000017d: DUP1 0000017e: PUSH4 0x754c3888 00000183: EQ 00000184: PUSH2 0x02c6 00000187: JUMPI 00000188: DUP1 00000189: PUSH4 0x76b58b90 0000018e: EQ 0000018f: PUSH2 0x02c1 00000192: JUMPI 00000193: DUP1 00000194: PUSH4 0x776ae2b0 00000199: EQ 0000019a: PUSH2 0x02bc 0000019d: JUMPI 0000019e: DUP1 0000019f: PUSH4 0x78f61ca8 000001a4: EQ 000001a5: PUSH2 0x02b7 000001a8: JUMPI 000001a9: DUP1 000001aa: PUSH4 0x7fd6f15c 000001af: EQ 000001b0: PUSH2 0x02b2 000001b3: JUMPI 000001b4: DUP1 000001b5: PUSH4 0x83d430d5 000001ba: EQ 000001bb: PUSH2 0x02ad 000001be: JUMPI 000001bf: DUP1 000001c0: PUSH4 0x8697d2c2 000001c5: EQ 000001c6: PUSH2 0x02a8 000001c9: JUMPI 000001ca: DUP1 000001cb: PUSH4 0x8ceab9aa 000001d0: EQ 000001d1: PUSH2 0x02a3 000001d4: JUMPI 000001d5: DUP1 000001d6: PUSH4 0x9267842a 000001db: EQ 000001dc: PUSH2 0x029e 000001df: JUMPI 000001e0: DUP1 000001e1: PUSH4 0xa145ca01 000001e6: EQ 000001e7: PUSH2 0x0299 000001ea: JUMPI 000001eb: DUP1 000001ec: PUSH4 0xa49a1e7d 000001f1: EQ 000001f2: PUSH2 0x0294 000001f5: JUMPI 000001f6: DUP1 000001f7: PUSH4 0xac9650d8 000001fc: EQ 000001fd: PUSH2 0x028f 00000200: JUMPI 00000201: DUP1 00000202: PUSH4 0xad3cb1cc 00000207: EQ 00000208: PUSH2 0x028a 0000020b: JUMPI 0000020c: DUP1 0000020d: PUSH4 0xad68ebf7 00000212: EQ 00000213: PUSH2 0x0285 00000216: JUMPI 00000217: DUP1 00000218: PUSH4 0xb1f0e7c7 0000021d: EQ 0000021e: PUSH2 0x0280 00000221: JUMPI 00000222: DUP1 00000223: PUSH4 0xc6e6f592 00000228: EQ 00000229: PUSH2 0x027b 0000022c: JUMPI 0000022d: DUP1 0000022e: PUSH4 0xd40a902f 00000233: EQ 00000234: PUSH2 0x0276 00000237: JUMPI 00000238: DUP1 00000239: PUSH4 0xe74b981b 0000023e: EQ 0000023f: PUSH2 0x0271 00000242: JUMPI 00000243: DUP1 00000244: PUSH4 0xf04da65b 00000249: EQ 0000024a: PUSH2 0x026c 0000024d: JUMPI 0000024e: DUP1 0000024f: PUSH4 0xf851a440 00000254: EQ 00000255: PUSH2 0x0267 00000258: JUMPI 00000259: PUSH4 0xf9609f08 0000025e: SUB 0000025f: PUSH2 0x000e 00000262: JUMPI 00000263: PUSH2 0x24c8 00000266: JUMP 00000267: JUMPDEST 00000268: PUSH2 0x24a1 0000026b: JUMP 0000026c: JUMPDEST 0000026d: PUSH2 0x2466 00000270: JUMP 00000271: JUMPDEST 00000272: PUSH2 0x23d2 00000275: JUMP 00000276: JUMPDEST 00000277: PUSH2 0x230d 0000027a: JUMP 0000027b: JUMPDEST 0000027c: PUSH2 0x22ef 0000027f: JUMP 00000280: JUMPDEST 00000281: PUSH2 0x22c7 00000284: JUMP 00000285: JUMPDEST 00000286: PUSH2 0x2109 00000289: JUMP 0000028a: JUMPDEST 0000028b: PUSH2 0x20c2 0000028e: JUMP 0000028f: JUMPDEST 00000290: PUSH2 0x2056 00000293: JUMP 00000294: JUMPDEST 00000295: PUSH2 0x1f81 00000298: JUMP 00000299: JUMPDEST 0000029a: PUSH2 0x1eee 0000029d: JUMP 0000029e: JUMPDEST 0000029f: PUSH2 0x1c9c 000002a2: JUMP 000002a3: JUMPDEST 000002a4: PUSH2 0x1c68 000002a7: JUMP 000002a8: JUMPDEST 000002a9: PUSH2 0x1ad6 000002ac: JUMP 000002ad: JUMPDEST 000002ae: PUSH2 0x1962 000002b1: JUMP 000002b2: JUMPDEST 000002b3: PUSH2 0x193e 000002b6: JUMP 000002b7: JUMPDEST 000002b8: PUSH2 0x18c5 000002bb: JUMP 000002bc: JUMPDEST 000002bd: PUSH2 0x1896 000002c0: JUMP 000002c1: JUMPDEST 000002c2: PUSH2 0x1846 000002c5: JUMP 000002c6: JUMPDEST 000002c7: PUSH2 0x17d4 000002ca: JUMP 000002cb: JUMPDEST 000002cc: PUSH2 0x173c 000002cf: JUMP 000002d0: JUMPDEST 000002d1: PUSH2 0x16af 000002d4: JUMP 000002d5: JUMPDEST 000002d6: PUSH2 0x160c 000002d9: JUMP 000002da: JUMPDEST 000002db: PUSH2 0x15f2 000002de: JUMP 000002df: JUMPDEST 000002e0: PUSH2 0x15be 000002e3: JUMP 000002e4: JUMPDEST 000002e5: PUSH2 0x13f9 000002e8: JUMP 000002e9: JUMPDEST 000002ea: PUSH2 0x13de 000002ed: JUMP 000002ee: JUMPDEST 000002ef: PUSH2 0x13ba 000002f2: JUMP 000002f3: JUMPDEST 000002f4: PUSH2 0x1354 000002f7: JUMP 000002f8: JUMPDEST 000002f9: PUSH2 0x10dc 000002fc: JUMP 000002fd: JUMPDEST 000002fe: PUSH2 0x0fde 00000301: JUMP 00000302: JUMPDEST 00000303: PUSH2 0x0fb6 00000306: JUMP 00000307: JUMPDEST 00000308: PUSH2 0x0ea7 0000030b: JUMP 0000030c: JUMPDEST 0000030d: PUSH2 0x0dc8 00000310: JUMP 00000311: JUMPDEST 00000312: PUSH2 0x0d1d 00000315: JUMP 00000316: JUMPDEST 00000317: PUSH2 0x0cf7 0000031a: JUMP 0000031b: JUMPDEST 0000031c: PUSH2 0x0cdd 0000031f: JUMP 00000320: JUMPDEST 00000321: PUSH2 0x0ca3 00000324: JUMP 00000325: JUMPDEST 00000326: PUSH2 0x0c77 00000329: JUMP 0000032a: JUMPDEST 0000032b: PUSH2 0x0c5d 0000032e: JUMP 0000032f: JUMPDEST 00000330: PUSH2 0x0899 00000333: JUMP 00000334: JUMPDEST 00000335: PUSH2 0x0853 00000338: JUMP 00000339: JUMPDEST 0000033a: PUSH2 0x0839 0000033d: JUMP 0000033e: JUMPDEST 0000033f: PUSH2 0x07da 00000342: JUMP 00000343: JUMPDEST 00000344: PUSH2 0x0764 00000347: JUMP 00000348: JUMPDEST 00000349: PUSH2 0x0710 0000034c: JUMP 0000034d: JUMPDEST 0000034e: PUSH2 0x06f2 00000351: JUMP 00000352: JUMPDEST 00000353: PUSH2 0x0551 00000356: JUMP 00000357: JUMPDEST 00000358: PUSH2 0x042e 0000035b: JUMP 0000035c: JUMPDEST 0000035d: PUSH2 0x040e 00000360: JUMP 00000361: JUMPDEST 00000362: PUSH2 0x0395 00000365: JUMP 00000366: JUMPDEST 00000367: PUSH1 0x01 00000369: PUSH1 0x01 0000036b: PUSH1 0xa0 0000036d: SHL 0000036e: SUB 0000036f: AND 00000370: SWAP1 00000371: JUMP 00000372: JUMPDEST 00000373: PUSH1 0x01 00000375: PUSH1 0x01 00000377: PUSH1 0xa0 00000379: SHL 0000037a: SUB 0000037b: DUP2 0000037c: AND 0000037d: SUB 0000037e: PUSH2 0x0383 00000381: JUMPI 00000382: JUMP 00000383: JUMPDEST 00000384: PUSH0 00000385: DUP1 00000386: REVERT 00000387: JUMPDEST 00000388: SWAP1 00000389: DUP2 0000038a: PUSH1 0x80 0000038c: SWAP2 0000038d: SUB 0000038e: SLT 0000038f: PUSH2 0x0383 00000392: JUMPI 00000393: SWAP1 00000394: JUMP 00000395: JUMPDEST 00000396: PUSH1 0x80 00000398: CALLDATASIZE 00000399: PUSH1 0x03 0000039b: NOT 0000039c: ADD 0000039d: SLT 0000039e: PUSH2 0x0383 000003a1: JUMPI 000003a2: PUSH1 0x04 000003a4: CALLDATALOAD 000003a5: PUSH2 0x03ad 000003a8: DUP2 000003a9: PUSH2 0x0372 000003ac: JUMP 000003ad: JUMPDEST 000003ae: PUSH1 0x24 000003b0: CALLDATALOAD 000003b1: PUSH1 0x44 000003b3: CALLDATALOAD 000003b4: PUSH2 0x03bc 000003b7: DUP2 000003b8: PUSH2 0x0372 000003bb: JUMP 000003bc: JUMPDEST 000003bd: PUSH1 0x64 000003bf: CALLDATALOAD 000003c0: SWAP2 000003c1: PUSH1 0x01 000003c3: PUSH1 0x01 000003c5: PUSH1 0x40 000003c7: SHL 000003c8: SUB 000003c9: DUP4 000003ca: GT 000003cb: PUSH2 0x0383 000003ce: JUMPI 000003cf: PUSH1 0x20 000003d1: SWAP4 000003d2: PUSH2 0x03ea 000003d5: PUSH2 0x03e5 000003d8: PUSH2 0x03fc 000003db: SWAP6 000003dc: CALLDATASIZE 000003dd: SWAP1 000003de: PUSH1 0x04 000003e0: ADD 000003e1: PUSH2 0x0387 000003e4: JUMP 000003e5: JUMPDEST 000003e6: PUSH2 0x2603 000003e9: JUMP 000003ea: JUMPDEST 000003eb: PUSH2 0x03f5 000003ee: DUP4 000003ef: CALLVALUE 000003f0: CALLER 000003f1: PUSH2 0x46e3 000003f4: JUMP 000003f5: JUMPDEST 000003f6: POP 000003f7: CALLER 000003f8: PUSH2 0x39d2 000003fb: JUMP 000003fc: JUMPDEST 000003fd: PUSH1 0x40 000003ff: MLOAD 00000400: SWAP1 00000401: DUP2 00000402: MSTORE 00000403: RETURN 00000404: JUMPDEST 00000405: PUSH0 00000406: SWAP2 00000407: SUB 00000408: SLT 00000409: PUSH2 0x0383 0000040c: JUMPI 0000040d: JUMP 0000040e: JUMPDEST 0000040f: CALLVALUE 00000410: PUSH2 0x0383 00000413: JUMPI 00000414: PUSH0 00000415: CALLDATASIZE 00000416: PUSH1 0x03 00000418: NOT 00000419: ADD 0000041a: SLT 0000041b: PUSH2 0x0383 0000041e: JUMPI 0000041f: PUSH1 0x20 00000421: PUSH1 0x98 00000423: SLOAD 00000424: PUSH1 0x80 00000426: SHR 00000427: PUSH1 0x40 00000429: MLOAD 0000042a: SWAP1 0000042b: DUP2 0000042c: MSTORE 0000042d: RETURN 0000042e: JUMPDEST 0000042f: CALLVALUE 00000430: PUSH2 0x0383 00000433: JUMPI 00000434: PUSH1 0x20 00000436: CALLDATASIZE 00000437: PUSH1 0x03 00000439: NOT 0000043a: ADD 0000043b: SLT 0000043c: PUSH2 0x0383 0000043f: JUMPI 00000440: PUSH1 0x04 00000442: CALLDATALOAD 00000443: PUSH2 0xffff 00000446: DUP2 00000447: AND 00000448: DUP1 00000449: DUP3 0000044a: SUB 0000044b: PUSH2 0x0383 0000044e: JUMPI 0000044f: PUSH2 0x0456 00000452: PUSH2 0x2e30 00000455: JUMP 00000456: JUMPDEST 00000457: PUSH2 0x045e 0000045a: PUSH2 0x41a2 0000045d: JUMP 0000045e: JUMPDEST 0000045f: PUSH2 0x2710 00000462: DUP2 00000463: GT 00000464: PUSH2 0x051c 00000467: JUMPI 00000468: PUSH1 0x65 0000046a: SLOAD 0000046b: PUSH2 0x0480 0000046e: PUSH1 0xb0 00000470: DUP3 00000471: SWAP1 00000472: SHR 00000473: PUSH1 0x01 00000475: PUSH1 0x01 00000477: PUSH1 0x40 00000479: SHL 0000047a: SUB 0000047b: AND 0000047c: PUSH2 0x25bd 0000047f: JUMP 00000480: JUMPDEST 00000481: TIMESTAMP 00000482: LT 00000483: PUSH2 0x0533 00000486: JUMPI 00000487: PUSH1 0xa0 00000489: SHR 0000048a: PUSH2 0xffff 0000048d: AND 0000048e: DUP1 0000048f: ISZERO 00000490: PUSH2 0x052b 00000493: JUMPI 00000494: PUSH2 0x049f 00000497: PUSH2 0x04a6 0000049a: SWAP2 0000049b: PUSH2 0x2e43 0000049e: JUMP 0000049f: JUMPDEST 000004a0: PUSH1 0x64 000004a2: SWAP1 000004a3: DIV 000004a4: SWAP1 000004a5: JUMP 000004a6: JUMPDEST 000004a7: LT 000004a8: PUSH2 0x051c 000004ab: JUMPI 000004ac: PUSH1 0x65 000004ae: DUP1 000004af: SLOAD 000004b0: PUSH8 0xffffffffffffffff 000004b9: PUSH1 0xb0 000004bb: SHL 000004bc: TIMESTAMP 000004bd: PUSH1 0xb0 000004bf: SHL 000004c0: AND 000004c1: PUSH10 0xffffffffffffffffffff 000004cc: PUSH1 0xa0 000004ce: SHL 000004cf: NOT 000004d0: SWAP1 000004d1: SWAP2 000004d2: AND 000004d3: PUSH2 0xffff 000004d6: PUSH1 0xa0 000004d8: SHL 000004d9: PUSH1 0xa0 000004db: DUP6 000004dc: SWAP1 000004dd: SHL 000004de: AND 000004df: OR 000004e0: OR 000004e1: SWAP1 000004e2: SSTORE 000004e3: PUSH1 0x40 000004e5: MLOAD 000004e6: PUSH2 0xffff 000004e9: SWAP1 000004ea: SWAP2 000004eb: AND 000004ec: DUP2 000004ed: MSTORE 000004ee: CALLER 000004ef: SWAP1 000004f0: PUSH32 0x96e06190cc0894376ae1c3ba56586573ed2786a831b68ad88c6a0410d3316304 00000511: SWAP1 00000512: DUP1 00000513: PUSH1 0x20 00000515: DUP2 00000516: ADD 00000517: JUMPDEST 00000518: SUB 00000519: SWAP1 0000051a: LOG2 0000051b: STOP 0000051c: JUMPDEST 0000051d: PUSH4 0x8a81d3b3 00000522: PUSH1 0xe0 00000524: SHL 00000525: PUSH0 00000526: MSTORE 00000527: PUSH1 0x04 00000529: PUSH0 0000052a: REVERT 0000052b: JUMPDEST 0000052c: POP 0000052d: PUSH1 0x64 0000052f: PUSH2 0x04a6 00000532: JUMP 00000533: JUMPDEST 00000534: PUSH2 0x2d23 00000537: PUSH1 0xf2 00000539: SHL 0000053a: PUSH0 0000053b: MSTORE 0000053c: PUSH1 0x04 0000053e: PUSH0 0000053f: REVERT 00000540: JUMPDEST 00000541: PUSH1 0x01 00000543: PUSH1 0x01 00000545: PUSH1 0x80 00000547: SHL 00000548: SUB 00000549: DUP2 0000054a: AND 0000054b: SUB 0000054c: PUSH2 0x0383 0000054f: JUMPI 00000550: JUMP 00000551: JUMPDEST 00000552: CALLVALUE 00000553: PUSH2 0x0383 00000556: JUMPI 00000557: PUSH1 0x20 00000559: CALLDATASIZE 0000055a: PUSH1 0x03 0000055c: NOT 0000055d: ADD 0000055e: SLT 0000055f: PUSH2 0x0383 00000562: JUMPI 00000563: PUSH1 0x04 00000565: CALLDATALOAD 00000566: PUSH2 0x056e 00000569: DUP2 0000056a: PUSH2 0x0540 0000056d: JUMP 0000056e: JUMPDEST 0000056f: PUSH1 0x40 00000571: MLOAD 00000572: PUSH4 0x3b9e9f01 00000577: PUSH1 0xe2 00000579: SHL 0000057a: DUP2 0000057b: MSTORE 0000057c: CALLER 0000057d: PUSH1 0x04 0000057f: DUP3 00000580: ADD 00000581: MSTORE 00000582: PUSH1 0x01 00000584: PUSH1 0x01 00000586: PUSH1 0x80 00000588: SHL 00000589: SUB 0000058a: DUP3 0000058b: AND 0000058c: PUSH1 0x24 0000058e: DUP3 0000058f: ADD 00000590: MSTORE 00000591: PUSH1 0x20 00000593: DUP2 00000594: PUSH1 0x44 00000596: DUP2 00000597: PUSH0 00000598: PUSH1 0x01 0000059a: PUSH1 0x01 0000059c: PUSH1 0xa0 0000059e: SHL 0000059f: SUB 000005a0: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306 000005c1: AND 000005c2: GAS 000005c3: CALL 000005c4: SWAP1 000005c5: DUP2 000005c6: ISZERO 000005c7: PUSH2 0x06ed 000005ca: JUMPI 000005cb: PUSH0 000005cc: SWAP2 000005cd: PUSH2 0x06be 000005d0: JUMPI 000005d1: JUMPDEST 000005d2: POP 000005d3: CALLER 000005d4: PUSH0 000005d5: SWAP1 000005d6: DUP2 000005d7: MSTORE 000005d8: PUSH2 0x0137 000005db: PUSH1 0x20 000005dd: MSTORE 000005de: PUSH1 0x40 000005e0: SWAP1 000005e1: KECCAK256 000005e2: PUSH2 0x05ea 000005e5: SWAP1 000005e6: PUSH2 0x250c 000005e9: JUMP 000005ea: JUMPDEST 000005eb: SWAP2 000005ec: PUSH1 0x01 000005ee: PUSH1 0x01 000005f0: PUSH1 0x80 000005f2: SHL 000005f3: SUB 000005f4: PUSH2 0x0604 000005f7: DUP5 000005f8: MLOAD 000005f9: PUSH1 0x01 000005fb: PUSH1 0x01 000005fd: PUSH1 0x80 000005ff: SHL 00000600: SUB 00000601: AND 00000602: SWAP1 00000603: JUMP 00000604: JUMPDEST 00000605: AND 00000606: ISZERO 00000607: PUSH2 0x06af 0000060a: JUMPI 0000060b: PUSH2 0x065d 0000060e: DUP4 0000060f: PUSH2 0x061a 00000612: PUSH2 0x06ab 00000615: SWAP6 00000616: PUSH2 0x2e7c 00000619: JUMP 0000061a: JUMPDEST 0000061b: PUSH2 0x0644 0000061e: PUSH2 0x0637 00000621: DUP5 00000622: PUSH2 0x0632 00000625: DUP5 00000626: MLOAD 00000627: PUSH1 0x01 00000629: PUSH1 0x01 0000062b: PUSH1 0x80 0000062d: SHL 0000062e: SUB 0000062f: AND 00000630: SWAP1 00000631: JUMP 00000632: JUMPDEST 00000633: PUSH2 0x2545 00000636: JUMP 00000637: JUMPDEST 00000638: PUSH1 0x01 0000063a: PUSH1 0x01 0000063c: PUSH1 0x80 0000063e: SHL 0000063f: SUB 00000640: AND 00000641: DUP3 00000642: MSTORE 00000643: JUMP 00000644: JUMPDEST 00000645: CALLER 00000646: PUSH0 00000647: SWAP1 00000648: DUP2 00000649: MSTORE 0000064a: PUSH2 0x0137 0000064d: PUSH1 0x20 0000064f: MSTORE 00000650: PUSH1 0x40 00000652: SWAP1 00000653: KECCAK256 00000654: PUSH2 0x2565 00000657: JUMP 00000658: JUMPDEST 00000659: PUSH2 0x2565 0000065c: JUMP 0000065d: JUMPDEST 0000065e: PUSH1 0x40 00000660: DUP1 00000661: MLOAD 00000662: DUP4 00000663: DUP2 00000664: MSTORE 00000665: PUSH1 0x01 00000667: PUSH1 0x01 00000669: PUSH1 0x80 0000066b: SHL 0000066c: SUB 0000066d: SWAP3 0000066e: SWAP1 0000066f: SWAP3 00000670: AND 00000671: PUSH1 0x20 00000673: DUP4 00000674: ADD 00000675: MSTORE 00000676: CALLER 00000677: SWAP2 00000678: PUSH32 0x3f7354ba02880b4fa37a629985852a38417ff369369ce1e52fa6f8342a9100a7 00000699: SWAP2 0000069a: SWAP1 0000069b: LOG2 0000069c: PUSH1 0x40 0000069e: MLOAD 0000069f: SWAP1 000006a0: DUP2 000006a1: MSTORE 000006a2: SWAP1 000006a3: DUP2 000006a4: SWAP1 000006a5: PUSH1 0x20 000006a7: DUP3 000006a8: ADD 000006a9: SWAP1 000006aa: JUMP 000006ab: JUMPDEST 000006ac: SUB 000006ad: SWAP1 000006ae: RETURN 000006af: JUMPDEST 000006b0: PUSH4 0x673f032f 000006b5: PUSH1 0xe1 000006b7: SHL 000006b8: PUSH0 000006b9: MSTORE 000006ba: PUSH1 0x04 000006bc: PUSH0 000006bd: REVERT 000006be: JUMPDEST 000006bf: PUSH2 0x06e0 000006c2: SWAP2 000006c3: POP 000006c4: PUSH1 0x20 000006c6: RETURNDATASIZE 000006c7: PUSH1 0x20 000006c9: GT 000006ca: PUSH2 0x06e6 000006cd: JUMPI 000006ce: JUMPDEST 000006cf: PUSH2 0x06d8 000006d2: DUP2 000006d3: DUP4 000006d4: PUSH2 0x104a 000006d7: JUMP 000006d8: JUMPDEST 000006d9: DUP2 000006da: ADD 000006db: SWAP1 000006dc: PUSH2 0x24f2 000006df: JUMP 000006e0: JUMPDEST 000006e1: PUSH0 000006e2: PUSH2 0x05d1 000006e5: JUMP 000006e6: JUMPDEST 000006e7: POP 000006e8: RETURNDATASIZE 000006e9: PUSH2 0x06ce 000006ec: JUMP 000006ed: JUMPDEST 000006ee: PUSH2 0x2501 000006f1: JUMP 000006f2: JUMPDEST 000006f3: CALLVALUE 000006f4: PUSH2 0x0383 000006f7: JUMPI 000006f8: PUSH1 0x20 000006fa: CALLDATASIZE 000006fb: PUSH1 0x03 000006fd: NOT 000006fe: ADD 000006ff: SLT 00000700: PUSH2 0x0383 00000703: JUMPI 00000704: PUSH1 0x20 00000706: PUSH2 0x03fc 00000709: PUSH1 0x04 0000070b: CALLDATALOAD 0000070c: PUSH2 0x2597 0000070f: JUMP 00000710: JUMPDEST 00000711: PUSH1 0x60 00000713: CALLDATASIZE 00000714: PUSH1 0x03 00000716: NOT 00000717: ADD 00000718: SLT 00000719: PUSH2 0x0383 0000071c: JUMPI 0000071d: PUSH1 0x04 0000071f: CALLDATALOAD 00000720: PUSH2 0x0728 00000723: DUP2 00000724: PUSH2 0x0372 00000727: JUMP 00000728: JUMPDEST 00000729: PUSH1 0x24 0000072b: CALLDATALOAD 0000072c: PUSH2 0x0734 0000072f: DUP2 00000730: PUSH2 0x0372 00000733: JUMP 00000734: JUMPDEST 00000735: PUSH1 0x44 00000737: CALLDATALOAD 00000738: SWAP1 00000739: PUSH1 0x01 0000073b: PUSH1 0x01 0000073d: PUSH1 0x40 0000073f: SHL 00000740: SUB 00000741: DUP3 00000742: GT 00000743: PUSH2 0x0383 00000746: JUMPI 00000747: PUSH1 0x20 00000749: SWAP3 0000074a: PUSH2 0x075d 0000074d: PUSH2 0x03e5 00000750: PUSH2 0x03fc 00000753: SWAP5 00000754: CALLDATASIZE 00000755: SWAP1 00000756: PUSH1 0x04 00000758: ADD 00000759: PUSH2 0x0387 0000075c: JUMP 0000075d: JUMPDEST 0000075e: CALLVALUE 0000075f: SWAP1 00000760: PUSH2 0x46e3 00000763: JUMP 00000764: JUMPDEST 00000765: PUSH0 00000766: CALLDATASIZE 00000767: PUSH1 0x03 00000769: NOT 0000076a: ADD 0000076b: SLT 0000076c: PUSH2 0x0383 0000076f: JUMPI 00000770: PUSH2 0x0777 00000773: PUSH2 0x30c4 00000776: JUMP 00000777: JUMPDEST 00000778: CALLVALUE 00000779: ISZERO 0000077a: PUSH2 0x07cb 0000077d: JUMPI 0000077e: PUSH1 0xa0 00000780: SLOAD 00000781: CALLVALUE 00000782: DUP2 00000783: ADD 00000784: DUP1 00000785: SWAP2 00000786: GT 00000787: PUSH2 0x07c6 0000078a: JUMPI 0000078b: PUSH1 0xa0 0000078d: SSTORE 0000078e: PUSH1 0x40 00000790: DUP1 00000791: MLOAD 00000792: CALLER 00000793: DUP2 00000794: MSTORE 00000795: CALLVALUE 00000796: PUSH1 0x20 00000798: DUP3 00000799: ADD 0000079a: MSTORE 0000079b: PUSH32 0x0e51de435f58267ce69726383d596a857c4be319b0cf09c61f3f1e99804d8d0e 000007bc: SWAP2 000007bd: DUP2 000007be: SWAP1 000007bf: DUP2 000007c0: ADD 000007c1: JUMPDEST 000007c2: SUB 000007c3: SWAP1 000007c4: LOG1 000007c5: STOP 000007c6: JUMPDEST 000007c7: PUSH2 0x2531 000007ca: JUMP 000007cb: JUMPDEST 000007cc: PUSH4 0x18374fd1 000007d1: PUSH1 0xe2 000007d3: SHL 000007d4: PUSH0 000007d5: MSTORE 000007d6: PUSH1 0x04 000007d8: PUSH0 000007d9: REVERT 000007da: JUMPDEST 000007db: CALLVALUE 000007dc: PUSH2 0x0383 000007df: JUMPI 000007e0: PUSH1 0x20 000007e2: CALLDATASIZE 000007e3: PUSH1 0x03 000007e5: NOT 000007e6: ADD 000007e7: SLT 000007e8: PUSH2 0x0383 000007eb: JUMPI 000007ec: PUSH1 0x04 000007ee: CALLDATALOAD 000007ef: PUSH1 0x01 000007f1: PUSH1 0x01 000007f3: PUSH1 0x40 000007f5: SHL 000007f6: SUB 000007f7: DUP2 000007f8: GT 000007f9: PUSH2 0x0383 000007fc: JUMPI 000007fd: PUSH2 0x03e5 00000800: PUSH2 0x0020 00000803: SWAP2 00000804: CALLDATASIZE 00000805: SWAP1 00000806: PUSH1 0x04 00000808: ADD 00000809: PUSH2 0x0387 0000080c: JUMP 0000080d: JUMPDEST 0000080e: PUSH1 0x60 00000810: SWAP1 00000811: PUSH1 0x03 00000813: NOT 00000814: ADD 00000815: SLT 00000816: PUSH2 0x0383 00000819: JUMPI 0000081a: PUSH1 0x04 0000081c: CALLDATALOAD 0000081d: PUSH2 0x0825 00000820: DUP2 00000821: PUSH2 0x0372 00000824: JUMP 00000825: JUMPDEST 00000826: SWAP1 00000827: PUSH1 0x24 00000829: CALLDATALOAD 0000082a: SWAP1 0000082b: PUSH1 0x44 0000082d: CALLDATALOAD 0000082e: PUSH2 0x0836 00000831: DUP2 00000832: PUSH2 0x0372 00000835: JUMP 00000836: JUMPDEST 00000837: SWAP1 00000838: JUMP 00000839: JUMPDEST 0000083a: CALLVALUE 0000083b: PUSH2 0x0383 0000083e: JUMPI 0000083f: PUSH1 0x20 00000841: PUSH2 0x03fc 00000844: PUSH2 0x084c 00000847: CALLDATASIZE 00000848: PUSH2 0x080d 0000084b: JUMP 0000084c: JUMPDEST 0000084d: SWAP2 0000084e: CALLER 0000084f: PUSH2 0x39d2 00000852: JUMP 00000853: JUMPDEST 00000854: CALLVALUE 00000855: PUSH2 0x0383 00000858: JUMPI 00000859: PUSH0 0000085a: CALLDATASIZE 0000085b: PUSH1 0x03 0000085d: NOT 0000085e: ADD 0000085f: SLT 00000860: PUSH2 0x0383 00000863: JUMPI 00000864: PUSH1 0x20 00000866: PUSH1 0xd5 00000868: SLOAD 00000869: PUSH1 0x40 0000086b: MLOAD 0000086c: SWAP1 0000086d: DUP2 0000086e: MSTORE 0000086f: RETURN 00000870: JUMPDEST 00000871: PUSH1 0x60 00000873: SWAP1 00000874: PUSH1 0x03 00000876: NOT 00000877: ADD 00000878: SLT 00000879: PUSH2 0x0383 0000087c: JUMPI 0000087d: PUSH1 0x04 0000087f: CALLDATALOAD 00000880: SWAP1 00000881: PUSH1 0x24 00000883: CALLDATALOAD 00000884: PUSH2 0x088c 00000887: DUP2 00000888: PUSH2 0x0372 0000088b: JUMP 0000088c: JUMPDEST 0000088d: SWAP1 0000088e: PUSH1 0x44 00000890: CALLDATALOAD 00000891: PUSH2 0x0836 00000894: DUP2 00000895: PUSH2 0x0372 00000898: JUMP 00000899: JUMPDEST 0000089a: CALLVALUE 0000089b: PUSH2 0x0383 0000089e: JUMPI 0000089f: PUSH2 0x08a7 000008a2: CALLDATASIZE 000008a3: PUSH2 0x0870 000008a6: JUMP 000008a7: JUMPDEST 000008a8: SWAP1 000008a9: PUSH1 0x01 000008ab: PUSH1 0x01 000008ad: PUSH1 0xa0 000008af: SHL 000008b0: SUB 000008b1: DUP3 000008b2: AND 000008b3: ISZERO 000008b4: PUSH2 0x0c4e 000008b7: JUMPI 000008b8: PUSH2 0x08bf 000008bb: PUSH2 0x41a2 000008be: JUMP 000008bf: JUMPDEST 000008c0: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306 000008e1: PUSH1 0x01 000008e3: PUSH1 0x01 000008e5: PUSH1 0xa0 000008e7: SHL 000008e8: SUB 000008e9: DUP2 000008ea: AND 000008eb: SWAP2 000008ec: DUP3 000008ed: EXTCODESIZE 000008ee: ISZERO 000008ef: PUSH2 0x0383 000008f2: JUMPI 000008f3: PUSH1 0x40 000008f5: MLOAD 000008f6: PUSH4 0x1d8557d7 000008fb: PUSH1 0xe0 000008fd: SHL 000008fe: DUP2 000008ff: MSTORE 00000900: PUSH0 00000901: DUP2 00000902: PUSH1 0x04 00000904: DUP2 00000905: DUP4 00000906: DUP9 00000907: GAS 00000908: CALL 00000909: DUP1 0000090a: ISZERO 0000090b: PUSH2 0x06ed 0000090e: JUMPI 0000090f: PUSH2 0x0c34 00000912: JUMPI 00000913: JUMPDEST 00000914: POP 00000915: PUSH1 0x01 00000917: PUSH1 0x01 00000919: PUSH1 0xa0 0000091b: SHL 0000091c: SUB 0000091d: DUP2 0000091e: AND 0000091f: PUSH0 00000920: SWAP1 00000921: DUP2 00000922: MSTORE 00000923: PUSH2 0x0137 00000926: PUSH1 0x20 00000928: MSTORE 00000929: PUSH1 0x40 0000092b: SWAP1 0000092c: KECCAK256 0000092d: PUSH2 0x0935 00000930: SWAP1 00000931: PUSH2 0x250c 00000934: JUMP 00000935: JUMPDEST 00000936: PUSH1 0x01 00000938: PUSH1 0x01 0000093a: PUSH1 0x80 0000093c: SHL 0000093d: SUB 0000093e: PUSH2 0x094e 00000941: DUP3 00000942: MLOAD 00000943: PUSH1 0x01 00000945: PUSH1 0x01 00000947: PUSH1 0x80 00000949: SHL 0000094a: SUB 0000094b: AND 0000094c: SWAP1 0000094d: JUMP 0000094e: JUMPDEST 0000094f: AND 00000950: ISZERO 00000951: PUSH2 0x06af 00000954: JUMPI 00000955: PUSH2 0x095d 00000958: DUP2 00000959: PUSH2 0x2e7c 0000095c: JUMP 0000095d: JUMPDEST 0000095e: PUSH2 0x099c 00000961: PUSH1 0x20 00000963: PUSH2 0x0973 00000966: DUP4 00000967: MLOAD 00000968: PUSH1 0x01 0000096a: PUSH1 0x01 0000096c: PUSH1 0x80 0000096e: SHL 0000096f: SUB 00000970: AND 00000971: SWAP1 00000972: JUMP 00000973: JUMPDEST 00000974: PUSH1 0x40 00000976: MLOAD 00000977: PUSH4 0x03d1689d 0000097c: PUSH1 0xe1 0000097e: SHL 0000097f: DUP2 00000980: MSTORE 00000981: PUSH1 0x01 00000983: PUSH1 0x01 00000985: PUSH1 0x80 00000987: SHL 00000988: SUB 00000989: SWAP1 0000098a: SWAP2 0000098b: AND 0000098c: PUSH1 0x04 0000098e: DUP3 0000098f: ADD 00000990: MSTORE 00000991: SWAP2 00000992: DUP3 00000993: SWAP1 00000994: DUP2 00000995: SWAP1 00000996: PUSH1 0x24 00000998: DUP3 00000999: ADD 0000099a: SWAP1 0000099b: JUMP 0000099c: JUMPDEST 0000099d: SUB 0000099e: DUP2 0000099f: DUP9 000009a0: GAS 000009a1: STATICCALL 000009a2: DUP1 000009a3: ISZERO 000009a4: PUSH2 0x06ed 000009a7: JUMPI 000009a8: PUSH2 0x0a86 000009ab: SWAP5 000009ac: PUSH1 0x20 000009ae: SWAP3 000009af: PUSH0 000009b0: SWAP3 000009b1: PUSH2 0x0c15 000009b4: JUMPI 000009b5: JUMPDEST 000009b6: POP 000009b7: PUSH1 0x01 000009b9: PUSH1 0x01 000009bb: PUSH1 0xa0 000009bd: SHL 000009be: SUB 000009bf: DUP6 000009c0: AND 000009c1: PUSH0 000009c2: SWAP1 000009c3: DUP2 000009c4: MSTORE 000009c5: PUSH1 0x9c 000009c7: PUSH1 0x20 000009c9: MSTORE 000009ca: PUSH1 0x40 000009cc: SWAP1 000009cd: KECCAK256 000009ce: PUSH2 0x09d8 000009d1: SWAP1 000009d2: JUMPDEST 000009d3: SLOAD 000009d4: PUSH2 0x2597 000009d7: JUMP 000009d8: JUMPDEST 000009d9: PUSH2 0x09e0 000009dc: PUSH2 0x2654 000009df: JUMP 000009e0: JUMPDEST 000009e1: SWAP1 000009e2: PUSH2 0x09e9 000009e5: PUSH2 0x106b 000009e8: JUMP 000009e9: JUMPDEST 000009ea: SWAP4 000009eb: DUP5 000009ec: MSTORE 000009ed: DUP5 000009ee: DUP5 000009ef: ADD 000009f0: MSTORE 000009f1: PUSH1 0x40 000009f3: DUP4 000009f4: ADD 000009f5: DUP11 000009f6: SWAP1 000009f7: MSTORE 000009f8: PUSH1 0x60 000009fa: DUP4 000009fb: ADD 000009fc: MSTORE 000009fd: PUSH1 0x01 000009ff: PUSH1 0x80 00000a01: DUP4 00000a02: ADD 00000a03: MSTORE 00000a04: JUMPDEST 00000a05: PUSH1 0x40 00000a07: DUP1 00000a08: MLOAD 00000a09: PUSH4 0x6f92a36f 00000a0e: PUSH1 0xe1 00000a10: SHL 00000a11: DUP2 00000a12: MSTORE 00000a13: PUSH1 0x01 00000a15: PUSH1 0x01 00000a17: PUSH1 0xa0 00000a19: SHL 00000a1a: SUB 00000a1b: PUSH32 0x000000000000000000000000287d1e2a8de183a8bf8f2b09fa1340fbd766eb59 00000a3c: DUP2 00000a3d: AND 00000a3e: PUSH1 0x04 00000a40: DUP4 00000a41: ADD 00000a42: MSTORE 00000a43: SWAP1 00000a44: SWAP3 00000a45: AND 00000a46: PUSH1 0x24 00000a48: DUP4 00000a49: ADD 00000a4a: MSTORE 00000a4b: DUP3 00000a4c: MLOAD 00000a4d: PUSH1 0x44 00000a4f: DUP4 00000a50: ADD 00000a51: MSTORE 00000a52: PUSH1 0x20 00000a54: DUP4 00000a55: ADD 00000a56: MLOAD 00000a57: PUSH1 0x64 00000a59: DUP4 00000a5a: ADD 00000a5b: MSTORE 00000a5c: DUP3 00000a5d: ADD 00000a5e: MLOAD 00000a5f: PUSH1 0x84 00000a61: DUP3 00000a62: ADD 00000a63: MSTORE 00000a64: PUSH1 0x60 00000a66: DUP3 00000a67: ADD 00000a68: MLOAD 00000a69: PUSH1 0xa4 00000a6b: DUP3 00000a6c: ADD 00000a6d: MSTORE 00000a6e: PUSH1 0x80 00000a70: SWAP1 00000a71: SWAP2 00000a72: ADD 00000a73: MLOAD 00000a74: ISZERO 00000a75: ISZERO 00000a76: PUSH1 0xc4 00000a78: DUP3 00000a79: ADD 00000a7a: MSTORE 00000a7b: SWAP4 00000a7c: DUP5 00000a7d: SWAP1 00000a7e: DUP2 00000a7f: SWAP1 00000a80: PUSH1 0xe4 00000a82: DUP3 00000a83: ADD 00000a84: SWAP1 00000a85: JUMP 00000a86: JUMPDEST 00000a87: SUB 00000a88: DUP2 00000a89: PUSH20 0xb3ce222b28fda660c1375246a179d2acce4a0f74 00000a9e: GAS 00000a9f: DELEGATECALL 00000aa0: SWAP3 00000aa1: DUP4 00000aa2: ISZERO 00000aa3: PUSH2 0x06ed 00000aa6: JUMPI 00000aa7: PUSH0 00000aa8: SWAP4 00000aa9: PUSH2 0x0bf4 00000aac: JUMPI 00000aad: JUMPDEST 00000aae: POP 00000aaf: PUSH1 0x40 00000ab1: MLOAD 00000ab2: PUSH4 0x3b9e9f01 00000ab7: PUSH1 0xe2 00000ab9: SHL 00000aba: DUP2 00000abb: MSTORE 00000abc: CALLER 00000abd: PUSH1 0x04 00000abf: DUP3 00000ac0: ADD 00000ac1: MSTORE 00000ac2: PUSH1 0x24 00000ac4: DUP2 00000ac5: ADD 00000ac6: DUP8 00000ac7: SWAP1 00000ac8: MSTORE 00000ac9: SWAP4 00000aca: PUSH1 0x20 00000acc: SWAP1 00000acd: DUP6 00000ace: SWAP1 00000acf: PUSH1 0x44 00000ad1: SWAP1 00000ad2: DUP3 00000ad3: SWAP1 00000ad4: PUSH0 00000ad5: SWAP1 00000ad6: GAS 00000ad7: CALL 00000ad8: SWAP1 00000ad9: DUP2 00000ada: ISZERO 00000adb: PUSH2 0x06ed 00000ade: JUMPI 00000adf: PUSH32 0x61fd285f9e34a3dbfa9846bdcf22a023e37a3c93549902843b30dd74a18c5350 00000b00: SWAP5 00000b01: PUSH2 0x0b46 00000b04: SWAP3 00000b05: PUSH2 0x0bd7 00000b08: JUMPI 00000b09: JUMPDEST 00000b0a: POP 00000b0b: PUSH2 0x0b29 00000b0e: PUSH2 0x0637 00000b11: PUSH2 0x0b19 00000b14: DUP10 00000b15: PUSH2 0x4305 00000b18: JUMP 00000b19: JUMPDEST 00000b1a: DUP4 00000b1b: MLOAD 00000b1c: PUSH1 0x01 00000b1e: PUSH1 0x01 00000b20: PUSH1 0x80 00000b22: SHL 00000b23: SUB 00000b24: AND 00000b25: PUSH2 0x2545 00000b28: JUMP 00000b29: JUMPDEST 00000b2a: PUSH1 0x01 00000b2c: PUSH1 0x01 00000b2e: PUSH1 0xa0 00000b30: SHL 00000b31: SUB 00000b32: DUP4 00000b33: AND 00000b34: PUSH0 00000b35: SWAP1 00000b36: DUP2 00000b37: MSTORE 00000b38: PUSH2 0x0137 00000b3b: PUSH1 0x20 00000b3d: MSTORE 00000b3e: PUSH1 0x40 00000b40: SWAP1 00000b41: KECCAK256 00000b42: PUSH2 0x2565 00000b45: JUMP 00000b46: JUMPDEST 00000b47: PUSH2 0x0bd2 00000b4a: PUSH2 0x0b52 00000b4d: DUP4 00000b4e: PUSH2 0x45b9 00000b51: JUMP 00000b52: JUMPDEST 00000b53: SWAP3 00000b54: PUSH2 0x0b88 00000b57: PUSH2 0x0b6d 00000b5a: PUSH2 0x0b62 00000b5d: DUP4 00000b5e: PUSH2 0x4305 00000b61: JUMP 00000b62: JUMPDEST 00000b63: PUSH1 0x98 00000b65: SLOAD 00000b66: PUSH1 0x80 00000b68: SHR 00000b69: PUSH2 0x2545 00000b6c: JUMP 00000b6d: JUMPDEST 00000b6e: PUSH1 0x01 00000b70: PUSH1 0x01 00000b72: PUSH1 0x80 00000b74: SHL 00000b75: SUB 00000b76: PUSH1 0x98 00000b78: SLOAD 00000b79: SWAP2 00000b7a: DUP2 00000b7b: NOT 00000b7c: SWAP1 00000b7d: PUSH1 0x80 00000b7f: SHL 00000b80: AND 00000b81: SWAP2 00000b82: AND 00000b83: OR 00000b84: PUSH1 0x98 00000b86: SSTORE 00000b87: JUMP 00000b88: JUMPDEST 00000b89: PUSH2 0x0b92 00000b8c: DUP5 00000b8d: DUP5 00000b8e: PUSH2 0x48bb 00000b91: JUMP 00000b92: JUMPDEST 00000b93: PUSH2 0x0b9c 00000b96: DUP2 00000b97: DUP8 00000b98: PUSH2 0x412d 00000b9b: JUMP 00000b9c: JUMPDEST 00000b9d: PUSH1 0x40 00000b9f: DUP1 00000ba0: MLOAD 00000ba1: PUSH1 0x01 00000ba3: PUSH1 0x01 00000ba5: PUSH1 0xa0 00000ba7: SHL 00000ba8: SUB 00000ba9: SWAP8 00000baa: DUP9 00000bab: AND 00000bac: DUP2 00000bad: MSTORE 00000bae: PUSH1 0x20 00000bb0: DUP2 00000bb1: ADD 00000bb2: SWAP9 00000bb3: SWAP1 00000bb4: SWAP9 00000bb5: MSTORE 00000bb6: DUP8 00000bb7: ADD 00000bb8: SWAP4 00000bb9: SWAP1 00000bba: SWAP4 00000bbb: MSTORE 00000bbc: PUSH1 0x60 00000bbe: DUP7 00000bbf: ADD 00000bc0: SWAP3 00000bc1: SWAP1 00000bc2: SWAP3 00000bc3: MSTORE 00000bc4: SWAP1 00000bc5: SWAP3 00000bc6: AND 00000bc7: SWAP3 00000bc8: CALLER 00000bc9: SWAP3 00000bca: DUP2 00000bcb: SWAP1 00000bcc: PUSH1 0x80 00000bce: DUP3 00000bcf: ADD 00000bd0: SWAP1 00000bd1: JUMP 00000bd2: JUMPDEST 00000bd3: SUB 00000bd4: SWAP1 00000bd5: LOG3 00000bd6: STOP 00000bd7: JUMPDEST 00000bd8: PUSH2 0x0bef 00000bdb: SWAP1 00000bdc: PUSH1 0x20 00000bde: RETURNDATASIZE 00000bdf: PUSH1 0x20 00000be1: GT 00000be2: PUSH2 0x06e6 00000be5: JUMPI 00000be6: PUSH2 0x06d8 00000be9: DUP2 00000bea: DUP4 00000beb: PUSH2 0x104a 00000bee: JUMP 00000bef: JUMPDEST 00000bf0: PUSH2 0x0b09 00000bf3: JUMP 00000bf4: JUMPDEST 00000bf5: PUSH2 0x0c0e 00000bf8: SWAP2 00000bf9: SWAP4 00000bfa: POP 00000bfb: PUSH1 0x20 00000bfd: RETURNDATASIZE 00000bfe: PUSH1 0x20 00000c00: GT 00000c01: PUSH2 0x06e6 00000c04: JUMPI 00000c05: PUSH2 0x06d8 00000c08: DUP2 00000c09: DUP4 00000c0a: PUSH2 0x104a 00000c0d: JUMP 00000c0e: JUMPDEST 00000c0f: SWAP2 00000c10: PUSH0 00000c11: PUSH2 0x0aad 00000c14: JUMP 00000c15: JUMPDEST 00000c16: PUSH2 0x0c2d 00000c19: SWAP2 00000c1a: SWAP3 00000c1b: POP 00000c1c: DUP4 00000c1d: RETURNDATASIZE 00000c1e: DUP6 00000c1f: GT 00000c20: PUSH2 0x06e6 00000c23: JUMPI 00000c24: PUSH2 0x06d8 00000c27: DUP2 00000c28: DUP4 00000c29: PUSH2 0x104a 00000c2c: JUMP 00000c2d: JUMPDEST 00000c2e: SWAP1 00000c2f: PUSH0 00000c30: PUSH2 0x09b5 00000c33: JUMP 00000c34: JUMPDEST 00000c35: DUP1 00000c36: PUSH2 0x0c42 00000c39: PUSH0 00000c3a: PUSH2 0x0c48 00000c3d: SWAP4 00000c3e: PUSH2 0x104a 00000c41: JUMP 00000c42: JUMPDEST 00000c43: DUP1 00000c44: PUSH2 0x0404 00000c47: JUMP 00000c48: JUMPDEST 00000c49: PUSH0 00000c4a: PUSH2 0x0913 00000c4d: JUMP 00000c4e: JUMPDEST 00000c4f: PUSH4 0xd92e233d 00000c54: PUSH1 0xe0 00000c56: SHL 00000c57: PUSH0 00000c58: MSTORE 00000c59: PUSH1 0x04 00000c5b: PUSH0 00000c5c: REVERT 00000c5d: JUMPDEST 00000c5e: CALLVALUE 00000c5f: PUSH2 0x0383 00000c62: JUMPI 00000c63: PUSH0 00000c64: CALLDATASIZE 00000c65: PUSH1 0x03 00000c67: NOT 00000c68: ADD 00000c69: SLT 00000c6a: PUSH2 0x0383 00000c6d: JUMPI 00000c6e: PUSH1 0x20 00000c70: PUSH2 0x03fc 00000c73: PUSH2 0x2654 00000c76: JUMP 00000c77: JUMPDEST 00000c78: CALLVALUE 00000c79: PUSH2 0x0383 00000c7c: JUMPI 00000c7d: PUSH0 00000c7e: CALLDATASIZE 00000c7f: PUSH1 0x03 00000c81: NOT 00000c82: ADD 00000c83: SLT 00000c84: PUSH2 0x0383 00000c87: JUMPI 00000c88: PUSH1 0x20 00000c8a: PUSH2 0x0c91 00000c8d: PUSH2 0x26bc 00000c90: JUMP 00000c91: JUMPDEST 00000c92: PUSH1 0x40 00000c94: MLOAD 00000c95: PUSH1 0x01 00000c97: PUSH1 0x01 00000c99: PUSH1 0xa0 00000c9b: SHL 00000c9c: SUB 00000c9d: SWAP1 00000c9e: SWAP2 00000c9f: AND 00000ca0: DUP2 00000ca1: MSTORE 00000ca2: RETURN 00000ca3: JUMPDEST 00000ca4: CALLVALUE 00000ca5: PUSH2 0x0383 00000ca8: JUMPI 00000ca9: PUSH0 00000caa: CALLDATASIZE 00000cab: PUSH1 0x03 00000cad: NOT 00000cae: ADD 00000caf: SLT 00000cb0: PUSH2 0x0383 00000cb3: JUMPI 00000cb4: PUSH1 0x20 00000cb6: PUSH1 0x40 00000cb8: MLOAD 00000cb9: PUSH32 0x11a6b7bef0f97d298d56e5af2aa94330353808e861cbac86172faad21b10c505 00000cda: DUP2 00000cdb: MSTORE 00000cdc: RETURN 00000cdd: JUMPDEST 00000cde: PUSH1 0x20 00000ce0: PUSH2 0x03fc 00000ce3: PUSH2 0x0ceb 00000ce6: CALLDATASIZE 00000ce7: PUSH2 0x080d 00000cea: JUMP 00000ceb: JUMPDEST 00000cec: SWAP2 00000ced: PUSH2 0x03f5 00000cf0: DUP4 00000cf1: CALLVALUE 00000cf2: CALLER 00000cf3: PUSH2 0x46e3 00000cf6: JUMP 00000cf7: JUMPDEST 00000cf8: CALLVALUE 00000cf9: PUSH2 0x0383 00000cfc: JUMPI 00000cfd: PUSH0 00000cfe: CALLDATASIZE 00000cff: PUSH1 0x03 00000d01: NOT 00000d02: ADD 00000d03: SLT 00000d04: PUSH2 0x0383 00000d07: JUMPI 00000d08: PUSH1 0x20 00000d0a: PUSH1 0x01 00000d0c: PUSH1 0x01 00000d0e: PUSH1 0x80 00000d10: SHL 00000d11: SUB 00000d12: PUSH1 0x98 00000d14: SLOAD 00000d15: AND 00000d16: PUSH1 0x40 00000d18: MLOAD 00000d19: SWAP1 00000d1a: DUP2 00000d1b: MSTORE 00000d1c: RETURN 00000d1d: JUMPDEST 00000d1e: CALLVALUE 00000d1f: PUSH2 0x0383 00000d22: JUMPI 00000d23: PUSH0 00000d24: CALLDATASIZE 00000d25: PUSH1 0x03 00000d27: NOT 00000d28: ADD 00000d29: SLT 00000d2a: PUSH2 0x0383 00000d2d: JUMPI 00000d2e: PUSH1 0xa0 00000d30: PUSH1 0x99 00000d32: SLOAD 00000d33: PUSH1 0x9e 00000d35: SLOAD 00000d36: PUSH1 0x01 00000d38: PUSH1 0x01 00000d3a: PUSH1 0x80 00000d3c: SHL 00000d3d: SUB 00000d3e: PUSH2 0x0d45 00000d41: PUSH2 0x3e7a 00000d44: JUMP 00000d45: JUMPDEST 00000d46: SWAP2 00000d47: PUSH1 0x40 00000d49: MLOAD 00000d4a: SWAP4 00000d4b: DUP3 00000d4c: DUP2 00000d4d: AND 00000d4e: DUP6 00000d4f: MSTORE 00000d50: PUSH1 0x80 00000d52: SHR 00000d53: PUSH1 0x20 00000d55: DUP6 00000d56: ADD 00000d57: MSTORE 00000d58: DUP1 00000d59: PUSH1 0x80 00000d5b: SHR 00000d5c: PUSH1 0x40 00000d5e: DUP6 00000d5f: ADD 00000d60: MSTORE 00000d61: AND 00000d62: PUSH1 0x60 00000d64: DUP4 00000d65: ADD 00000d66: MSTORE 00000d67: PUSH1 0x80 00000d69: DUP3 00000d6a: ADD 00000d6b: MSTORE 00000d6c: RETURN 00000d6d: JUMPDEST 00000d6e: SWAP2 00000d6f: DUP2 00000d70: PUSH1 0x1f 00000d72: DUP5 00000d73: ADD 00000d74: SLT 00000d75: ISZERO 00000d76: PUSH2 0x0383 00000d79: JUMPI 00000d7a: DUP3 00000d7b: CALLDATALOAD 00000d7c: SWAP2 00000d7d: PUSH1 0x01 00000d7f: PUSH1 0x01 00000d81: PUSH1 0x40 00000d83: SHL 00000d84: SUB 00000d85: DUP4 00000d86: GT 00000d87: PUSH2 0x0383 00000d8a: JUMPI 00000d8b: PUSH1 0x20 00000d8d: DUP4 00000d8e: DUP2 00000d8f: DUP7 00000d90: ADD 00000d91: SWAP6 00000d92: ADD 00000d93: ADD 00000d94: GT 00000d95: PUSH2 0x0383 00000d98: JUMPI 00000d99: JUMP 00000d9a: JUMPDEST 00000d9b: PUSH1 0x20 00000d9d: PUSH1 0x03 00000d9f: NOT 00000da0: DUP3 00000da1: ADD 00000da2: SLT 00000da3: PUSH2 0x0383 00000da6: JUMPI 00000da7: PUSH1 0x04 00000da9: CALLDATALOAD 00000daa: SWAP1 00000dab: PUSH1 0x01 00000dad: PUSH1 0x01 00000daf: PUSH1 0x40 00000db1: SHL 00000db2: SUB 00000db3: DUP3 00000db4: GT 00000db5: PUSH2 0x0383 00000db8: JUMPI 00000db9: PUSH2 0x0dc4 00000dbc: SWAP2 00000dbd: PUSH1 0x04 00000dbf: ADD 00000dc0: PUSH2 0x0d6d 00000dc3: JUMP 00000dc4: JUMPDEST 00000dc5: SWAP1 00000dc6: SWAP2 00000dc7: JUMP 00000dc8: JUMPDEST 00000dc9: PUSH2 0x0dd1 00000dcc: CALLDATASIZE 00000dcd: PUSH2 0x0d9a 00000dd0: JUMP 00000dd1: JUMPDEST 00000dd2: POP 00000dd3: POP 00000dd4: PUSH0 00000dd5: DUP1 00000dd6: MLOAD 00000dd7: PUSH1 0x20 00000dd9: PUSH2 0x4e93 00000ddc: DUP4 00000ddd: CODECOPY 00000dde: DUP2 00000ddf: MLOAD 00000de0: SWAP2 00000de1: MSTORE 00000de2: SLOAD 00000de3: PUSH1 0xff 00000de5: DUP2 00000de6: PUSH1 0x40 00000de8: SHR 00000de9: AND 00000dea: DUP1 00000deb: ISZERO 00000dec: PUSH2 0x0e93 00000def: JUMPI 00000df0: JUMPDEST 00000df1: PUSH2 0x0e84 00000df4: JUMPI 00000df5: PUSH9 0xffffffffffffffffff 00000dff: NOT 00000e00: AND 00000e01: PUSH9 0x010000000000000005 00000e0b: OR 00000e0c: PUSH0 00000e0d: DUP1 00000e0e: MLOAD 00000e0f: PUSH1 0x20 00000e11: PUSH2 0x4e93 00000e14: DUP4 00000e15: CODECOPY 00000e16: DUP2 00000e17: MLOAD 00000e18: SWAP2 00000e19: MSTORE 00000e1a: SSTORE 00000e1b: PUSH2 0x0e22 00000e1e: PUSH2 0x26f7 00000e21: JUMP 00000e22: JUMPDEST 00000e23: PUSH2 0x0e51 00000e26: PUSH9 0xff0000000000000000 00000e30: NOT 00000e31: PUSH0 00000e32: DUP1 00000e33: MLOAD 00000e34: PUSH1 0x20 00000e36: PUSH2 0x4e93 00000e39: DUP4 00000e3a: CODECOPY 00000e3b: DUP2 00000e3c: MLOAD 00000e3d: SWAP2 00000e3e: MSTORE 00000e3f: SLOAD 00000e40: AND 00000e41: PUSH0 00000e42: DUP1 00000e43: MLOAD 00000e44: PUSH1 0x20 00000e46: PUSH2 0x4e93 00000e49: DUP4 00000e4a: CODECOPY 00000e4b: DUP2 00000e4c: MLOAD 00000e4d: SWAP2 00000e4e: MSTORE 00000e4f: SSTORE 00000e50: JUMP 00000e51: JUMPDEST 00000e52: PUSH1 0x40 00000e54: MLOAD 00000e55: PUSH1 0x05 00000e57: DUP2 00000e58: MSTORE 00000e59: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2 00000e7a: SWAP1 00000e7b: DUP1 00000e7c: PUSH1 0x20 00000e7e: DUP2 00000e7f: ADD 00000e80: PUSH2 0x07c1 00000e83: JUMP 00000e84: JUMPDEST 00000e85: PUSH4 0xf92ee8a9 00000e8a: PUSH1 0xe0 00000e8c: SHL 00000e8d: PUSH0 00000e8e: MSTORE 00000e8f: PUSH1 0x04 00000e91: PUSH0 00000e92: REVERT 00000e93: JUMPDEST 00000e94: POP 00000e95: PUSH1 0x05 00000e97: PUSH1 0x01 00000e99: PUSH1 0x01 00000e9b: PUSH1 0x40 00000e9d: SHL 00000e9e: SUB 00000e9f: DUP3 00000ea0: AND 00000ea1: LT 00000ea2: ISZERO 00000ea3: PUSH2 0x0df0 00000ea6: JUMP 00000ea7: JUMPDEST 00000ea8: CALLVALUE 00000ea9: PUSH2 0x0383 00000eac: JUMPI 00000ead: PUSH2 0x0eb5 00000eb0: CALLDATASIZE 00000eb1: PUSH2 0x0870 00000eb4: JUMP 00000eb5: JUMPDEST 00000eb6: PUSH1 0x40 00000eb8: MLOAD 00000eb9: PUSH4 0x057453a7 00000ebe: PUSH1 0xe3 00000ec0: SHL 00000ec1: DUP2 00000ec2: MSTORE 00000ec3: SWAP1 00000ec4: SWAP2 00000ec5: SWAP1 00000ec6: PUSH1 0x20 00000ec8: DUP2 00000ec9: PUSH1 0x04 00000ecb: DUP2 00000ecc: PUSH32 0x000000000000000000000000287d1e2a8de183a8bf8f2b09fa1340fbd766eb59 00000eed: PUSH1 0x01 00000eef: PUSH1 0x01 00000ef1: PUSH1 0xa0 00000ef3: SHL 00000ef4: SUB 00000ef5: AND 00000ef6: GAS 00000ef7: STATICCALL 00000ef8: SWAP1 00000ef9: DUP2 00000efa: ISZERO 00000efb: PUSH2 0x06ed 00000efe: JUMPI 00000eff: PUSH0 00000f00: SWAP2 00000f01: PUSH2 0x0f87 00000f04: JUMPI 00000f05: JUMPDEST 00000f06: POP 00000f07: PUSH1 0x01 00000f09: PUSH1 0x01 00000f0b: PUSH1 0xa0 00000f0d: SHL 00000f0e: SUB 00000f0f: AND 00000f10: CALLER 00000f11: SUB 00000f12: PUSH2 0x0f78 00000f15: JUMPI 00000f16: PUSH2 0x0bd2 00000f19: DUP2 00000f1a: PUSH2 0x0f45 00000f1d: DUP6 00000f1e: DUP6 00000f1f: PUSH32 0x57f5eb636bf62215c111b54545422f11dfb0cb115f606be905f0be08e8859dd3 00000f40: SWAP6 00000f41: PUSH2 0x3c14 00000f44: JUMP 00000f45: JUMPDEST 00000f46: PUSH1 0x40 00000f48: DUP1 00000f49: MLOAD 00000f4a: PUSH1 0x01 00000f4c: PUSH1 0x01 00000f4e: PUSH1 0xa0 00000f50: SHL 00000f51: SUB 00000f52: SWAP8 00000f53: DUP9 00000f54: AND 00000f55: DUP2 00000f56: MSTORE 00000f57: PUSH1 0x20 00000f59: DUP2 00000f5a: ADD 00000f5b: SWAP9 00000f5c: SWAP1 00000f5d: SWAP9 00000f5e: MSTORE 00000f5f: DUP8 00000f60: ADD 00000f61: SWAP2 00000f62: SWAP1 00000f63: SWAP2 00000f64: MSTORE 00000f65: PUSH1 0x60 00000f67: DUP7 00000f68: ADD 00000f69: MSTORE 00000f6a: SWAP1 00000f6b: SWAP3 00000f6c: AND 00000f6d: SWAP3 00000f6e: CALLER 00000f6f: SWAP3 00000f70: DUP2 00000f71: SWAP1 00000f72: PUSH1 0x80 00000f74: DUP3 00000f75: ADD 00000f76: SWAP1 00000f77: JUMP 00000f78: JUMPDEST 00000f79: PUSH4 0x4ca88867 00000f7e: PUSH1 0xe0 00000f80: SHL 00000f81: PUSH0 00000f82: MSTORE 00000f83: PUSH1 0x04 00000f85: PUSH0 00000f86: REVERT 00000f87: JUMPDEST 00000f88: PUSH2 0x0fa9 00000f8b: SWAP2 00000f8c: POP 00000f8d: PUSH1 0x20 00000f8f: RETURNDATASIZE 00000f90: PUSH1 0x20 00000f92: GT 00000f93: PUSH2 0x0faf 00000f96: JUMPI 00000f97: JUMPDEST 00000f98: PUSH2 0x0fa1 00000f9b: DUP2 00000f9c: DUP4 00000f9d: PUSH2 0x104a 00000fa0: JUMP 00000fa1: JUMPDEST 00000fa2: DUP2 00000fa3: ADD 00000fa4: SWAP1 00000fa5: PUSH2 0x2830 00000fa8: JUMP 00000fa9: JUMPDEST 00000faa: PUSH0 00000fab: PUSH2 0x0f05 00000fae: JUMP 00000faf: JUMPDEST 00000fb0: POP 00000fb1: RETURNDATASIZE 00000fb2: PUSH2 0x0f97 00000fb5: JUMP 00000fb6: JUMPDEST 00000fb7: CALLVALUE 00000fb8: PUSH2 0x0383 00000fbb: JUMPI 00000fbc: PUSH0 00000fbd: CALLDATASIZE 00000fbe: PUSH1 0x03 00000fc0: NOT 00000fc1: ADD 00000fc2: SLT 00000fc3: PUSH2 0x0383 00000fc6: JUMPI 00000fc7: PUSH1 0x65 00000fc9: SLOAD 00000fca: PUSH1 0x40 00000fcc: MLOAD 00000fcd: PUSH1 0x01 00000fcf: PUSH1 0x01 00000fd1: PUSH1 0xa0 00000fd3: SHL 00000fd4: SUB 00000fd5: SWAP1 00000fd6: SWAP2 00000fd7: AND 00000fd8: DUP2 00000fd9: MSTORE 00000fda: PUSH1 0x20 00000fdc: SWAP1 00000fdd: RETURN 00000fde: JUMPDEST 00000fdf: CALLVALUE 00000fe0: PUSH2 0x0383 00000fe3: JUMPI 00000fe4: PUSH1 0x20 00000fe6: CALLDATASIZE 00000fe7: PUSH1 0x03 00000fe9: NOT 00000fea: ADD 00000feb: SLT 00000fec: PUSH2 0x0383 00000fef: JUMPI 00000ff0: PUSH1 0x20 00000ff2: PUSH2 0x1005 00000ff5: PUSH1 0x04 00000ff7: CALLDATALOAD 00000ff8: PUSH2 0x1000 00000ffb: DUP2 00000ffc: PUSH2 0x0372 00000fff: JUMP 00001000: JUMPDEST 00001001: PUSH2 0x2845 00001004: JUMP 00001005: JUMPDEST 00001006: PUSH1 0x01 00001008: PUSH1 0x01 0000100a: PUSH1 0x80 0000100c: SHL 0000100d: SUB 0000100e: PUSH1 0x40 00001010: MLOAD 00001011: SWAP2 00001012: AND 00001013: DUP2 00001014: MSTORE 00001015: RETURN 00001016: JUMPDEST 00001017: PUSH4 0x4e487b71 0000101c: PUSH1 0xe0 0000101e: SHL 0000101f: PUSH0 00001020: MSTORE 00001021: PUSH1 0x41 00001023: PUSH1 0x04 00001025: MSTORE 00001026: PUSH1 0x24 00001028: PUSH0 00001029: REVERT 0000102a: JUMPDEST 0000102b: PUSH1 0x40 0000102d: DUP2 0000102e: ADD 0000102f: SWAP1 00001030: DUP2 00001031: LT 00001032: PUSH1 0x01 00001034: PUSH1 0x01 00001036: PUSH1 0x40 00001038: SHL 00001039: SUB 0000103a: DUP3 0000103b: GT 0000103c: OR 0000103d: PUSH2 0x1045 00001040: JUMPI 00001041: PUSH1 0x40 00001043: MSTORE 00001044: JUMP 00001045: JUMPDEST 00001046: PUSH2 0x1016 00001049: JUMP 0000104a: JUMPDEST 0000104b: SWAP1 0000104c: PUSH1 0x1f 0000104e: DUP1 0000104f: NOT 00001050: SWAP2 00001051: ADD 00001052: AND 00001053: DUP2 00001054: ADD 00001055: SWAP1 00001056: DUP2 00001057: LT 00001058: PUSH1 0x01 0000105a: PUSH1 0x01 0000105c: PUSH1 0x40 0000105e: SHL 0000105f: SUB 00001060: DUP3 00001061: GT 00001062: OR 00001063: PUSH2 0x1045 00001066: JUMPI 00001067: PUSH1 0x40 00001069: MSTORE 0000106a: JUMP 0000106b: JUMPDEST 0000106c: PUSH1 0x40 0000106e: MLOAD 0000106f: SWAP1 00001070: PUSH2 0x107a 00001073: PUSH1 0xa0 00001075: DUP4 00001076: PUSH2 0x104a 00001079: JUMP 0000107a: JUMPDEST 0000107b: JUMP 0000107c: JUMPDEST 0000107d: PUSH1 0x40 0000107f: MLOAD 00001080: SWAP1 00001081: PUSH2 0x107a 00001084: PUSH1 0x40 00001086: DUP4 00001087: PUSH2 0x104a 0000108a: JUMP 0000108b: JUMPDEST 0000108c: PUSH1 0x01 0000108e: PUSH1 0x01 00001090: PUSH1 0x40 00001092: SHL 00001093: SUB 00001094: DUP2 00001095: GT 00001096: PUSH2 0x1045 00001099: JUMPI 0000109a: PUSH1 0x1f 0000109c: ADD 0000109d: PUSH1 0x1f 0000109f: NOT 000010a0: AND 000010a1: PUSH1 0x20 000010a3: ADD 000010a4: SWAP1 000010a5: JUMP 000010a6: JUMPDEST 000010a7: SWAP3 000010a8: SWAP2 000010a9: SWAP3 000010aa: PUSH2 0x10b2 000010ad: DUP3 000010ae: PUSH2 0x108b 000010b1: JUMP 000010b2: JUMPDEST 000010b3: SWAP2 000010b4: PUSH2 0x10c0 000010b7: PUSH1 0x40 000010b9: MLOAD 000010ba: SWAP4 000010bb: DUP5 000010bc: PUSH2 0x104a 000010bf: JUMP 000010c0: JUMPDEST 000010c1: DUP3 000010c2: SWAP5 000010c3: DUP2 000010c4: DUP5 000010c5: MSTORE 000010c6: DUP2 000010c7: DUP4 000010c8: ADD 000010c9: GT 000010ca: PUSH2 0x0383 000010cd: JUMPI 000010ce: DUP3 000010cf: DUP2 000010d0: PUSH1 0x20 000010d2: SWAP4 000010d3: DUP5 000010d4: PUSH0 000010d5: SWAP7 000010d6: ADD 000010d7: CALLDATACOPY 000010d8: ADD 000010d9: ADD 000010da: MSTORE 000010db: JUMP 000010dc: JUMPDEST 000010dd: PUSH1 0x40 000010df: CALLDATASIZE 000010e0: PUSH1 0x03 000010e2: NOT 000010e3: ADD 000010e4: SLT 000010e5: PUSH2 0x0383 000010e8: JUMPI 000010e9: PUSH1 0x04 000010eb: CALLDATALOAD 000010ec: PUSH2 0x10f4 000010ef: DUP2 000010f0: PUSH2 0x0372 000010f3: JUMP 000010f4: JUMPDEST 000010f5: PUSH1 0x24 000010f7: CALLDATALOAD 000010f8: PUSH1 0x01 000010fa: PUSH1 0x01 000010fc: PUSH1 0x40 000010fe: SHL 000010ff: SUB 00001100: DUP2 00001101: GT 00001102: PUSH2 0x0383 00001105: JUMPI 00001106: CALLDATASIZE 00001107: PUSH1 0x23 00001109: DUP3 0000110a: ADD 0000110b: SLT 0000110c: ISZERO 0000110d: PUSH2 0x0383 00001110: JUMPI 00001111: PUSH2 0x1164 00001114: PUSH2 0x112a 00001117: PUSH2 0x1156 0000111a: SWAP3 0000111b: CALLDATASIZE 0000111c: SWAP1 0000111d: PUSH1 0x24 0000111f: DUP2 00001120: PUSH1 0x04 00001122: ADD 00001123: CALLDATALOAD 00001124: SWAP2 00001125: ADD 00001126: PUSH2 0x10a6 00001129: JUMP 0000112a: JUMPDEST 0000112b: PUSH2 0x1132 0000112e: PUSH2 0x3ee6 00001131: JUMP 00001132: JUMPDEST 00001133: PUSH1 0x40 00001135: MLOAD 00001136: SWAP3 00001137: DUP4 00001138: SWAP2 00001139: PUSH4 0x439fab91 0000113e: PUSH1 0xe0 00001140: SHL 00001141: PUSH1 0x20 00001143: DUP5 00001144: ADD 00001145: MSTORE 00001146: PUSH1 0x20 00001148: PUSH1 0x24 0000114a: DUP5 0000114b: ADD 0000114c: MSTORE 0000114d: PUSH1 0x44 0000114f: DUP4 00001150: ADD 00001151: SWAP1 00001152: PUSH2 0x1fd3 00001155: JUMP 00001156: JUMPDEST 00001157: SUB 00001158: PUSH1 0x1f 0000115a: NOT 0000115b: DUP2 0000115c: ADD 0000115d: DUP4 0000115e: MSTORE 0000115f: DUP3 00001160: PUSH2 0x104a 00001163: JUMP 00001164: JUMPDEST 00001165: PUSH2 0x116c 00001168: PUSH2 0x3ee6 0000116b: JUMP 0000116c: JUMPDEST 0000116d: PUSH2 0x1174 00001170: PUSH2 0x2e30 00001173: JUMP 00001174: JUMPDEST 00001175: PUSH1 0x01 00001177: PUSH1 0x01 00001179: PUSH1 0xa0 0000117b: SHL 0000117c: SUB 0000117d: DUP3 0000117e: AND 0000117f: DUP1 00001180: ISZERO 00001181: SWAP1 00001182: DUP2 00001183: ISZERO 00001184: PUSH2 0x1327 00001187: JUMPI 00001188: JUMPDEST 00001189: DUP2 0000118a: ISZERO 0000118b: PUSH2 0x12b7 0000118e: JUMPI 0000118f: JUMPDEST 00001190: DUP2 00001191: ISZERO 00001192: PUSH2 0x1251 00001195: JUMPI 00001196: JUMPDEST 00001197: POP 00001198: DUP1 00001199: ISZERO 0000119a: PUSH2 0x11ba 0000119d: JUMPI 0000119e: JUMPDEST 0000119f: PUSH2 0x11ab 000011a2: JUMPI 000011a3: PUSH2 0x0020 000011a6: SWAP2 000011a7: PUSH2 0x4920 000011aa: JUMP 000011ab: JUMPDEST 000011ac: PUSH4 0x55299b49 000011b1: PUSH1 0xe0 000011b3: SHL 000011b4: PUSH0 000011b5: MSTORE 000011b6: PUSH1 0x04 000011b8: PUSH0 000011b9: REVERT 000011ba: JUMPDEST 000011bb: POP 000011bc: PUSH1 0x40 000011be: MLOAD 000011bf: PUSH4 0x45da87c5 000011c4: PUSH1 0xe0 000011c6: SHL 000011c7: DUP2 000011c8: MSTORE 000011c9: PUSH1 0x01 000011cb: PUSH1 0x01 000011cd: PUSH1 0xa0 000011cf: SHL 000011d0: SUB 000011d1: DUP4 000011d2: AND 000011d3: PUSH1 0x04 000011d5: DUP3 000011d6: ADD 000011d7: MSTORE 000011d8: PUSH1 0x20 000011da: DUP2 000011db: DUP1 000011dc: PUSH1 0x24 000011de: DUP2 000011df: ADD 000011e0: SUB 000011e1: DUP2 000011e2: PUSH32 0x0000000000000000000000003a0008a588772446f6e656133c2d5029cc4fc20e 00001203: PUSH1 0x01 00001205: PUSH1 0x01 00001207: PUSH1 0xa0 00001209: SHL 0000120a: SUB 0000120b: AND 0000120c: GAS 0000120d: STATICCALL 0000120e: SWAP1 0000120f: DUP2 00001210: ISZERO 00001211: PUSH2 0x06ed 00001214: JUMPI 00001215: PUSH0 00001216: SWAP2 00001217: PUSH2 0x1222 0000121a: JUMPI 0000121b: JUMPDEST 0000121c: POP 0000121d: ISZERO 0000121e: PUSH2 0x119e 00001221: JUMP 00001222: JUMPDEST 00001223: PUSH2 0x1244 00001226: SWAP2 00001227: POP 00001228: PUSH1 0x20 0000122a: RETURNDATASIZE 0000122b: PUSH1 0x20 0000122d: GT 0000122e: PUSH2 0x124a 00001231: JUMPI 00001232: JUMPDEST 00001233: PUSH2 0x123c 00001236: DUP2 00001237: DUP4 00001238: PUSH2 0x104a 0000123b: JUMP 0000123c: JUMPDEST 0000123d: DUP2 0000123e: ADD 0000123f: SWAP1 00001240: PUSH2 0x293a 00001243: JUMP 00001244: JUMPDEST 00001245: PUSH0 00001246: PUSH2 0x121b 00001249: JUMP 0000124a: JUMPDEST 0000124b: POP 0000124c: RETURNDATASIZE 0000124d: PUSH2 0x1232 00001250: JUMP 00001251: JUMPDEST 00001252: PUSH1 0x40 00001254: MLOAD 00001255: PUSH4 0x054fd4d5 0000125a: PUSH1 0xe4 0000125c: SHL 0000125d: DUP2 0000125e: MSTORE 0000125f: SWAP2 00001260: POP 00001261: PUSH1 0x20 00001263: SWAP1 00001264: DUP3 00001265: SWAP1 00001266: PUSH1 0x04 00001268: SWAP1 00001269: DUP3 0000126a: SWAP1 0000126b: GAS 0000126c: STATICCALL 0000126d: SWAP1 0000126e: DUP2 0000126f: ISZERO 00001270: PUSH2 0x06ed 00001273: JUMPI 00001274: PUSH0 00001275: SWAP2 00001276: PUSH2 0x1288 00001279: JUMPI 0000127a: JUMPDEST 0000127b: POP 0000127c: PUSH1 0xff 0000127e: AND 0000127f: PUSH1 0x06 00001281: EQ 00001282: ISZERO 00001283: PUSH0 00001284: PUSH2 0x1196 00001287: JUMP 00001288: JUMPDEST 00001289: PUSH2 0x12aa 0000128c: SWAP2 0000128d: POP 0000128e: PUSH1 0x20 00001290: RETURNDATASIZE 00001291: PUSH1 0x20 00001293: GT 00001294: PUSH2 0x12b0 00001297: JUMPI 00001298: JUMPDEST 00001299: PUSH2 0x12a2 0000129c: DUP2 0000129d: DUP4 0000129e: PUSH2 0x104a 000012a1: JUMP 000012a2: JUMPDEST 000012a3: DUP2 000012a4: ADD 000012a5: SWAP1 000012a6: PUSH2 0x4907 000012a9: JUMP 000012aa: JUMPDEST 000012ab: PUSH0 000012ac: PUSH2 0x127a 000012af: JUMP 000012b0: JUMPDEST 000012b1: POP 000012b2: RETURNDATASIZE 000012b3: PUSH2 0x1298 000012b6: JUMP 000012b7: JUMPDEST 000012b8: PUSH1 0x40 000012ba: MLOAD 000012bb: PUSH4 0x198ca605 000012c0: PUSH1 0xe1 000012c2: SHL 000012c3: DUP2 000012c4: MSTORE 000012c5: SWAP1 000012c6: SWAP2 000012c7: POP 000012c8: PUSH1 0x20 000012ca: DUP2 000012cb: PUSH1 0x04 000012cd: DUP2 000012ce: DUP6 000012cf: GAS 000012d0: STATICCALL 000012d1: DUP1 000012d2: ISZERO 000012d3: PUSH2 0x06ed 000012d6: JUMPI 000012d7: PUSH32 0x11a6b7bef0f97d298d56e5af2aa94330353808e861cbac86172faad21b10c505 000012f8: SWAP2 000012f9: PUSH0 000012fa: SWAP2 000012fb: PUSH2 0x1308 000012fe: JUMPI 000012ff: JUMPDEST 00001300: POP 00001301: EQ 00001302: ISZERO 00001303: SWAP1 00001304: PUSH2 0x118f 00001307: JUMP 00001308: JUMPDEST 00001309: PUSH2 0x1321 0000130c: SWAP2 0000130d: POP 0000130e: PUSH1 0x20 00001310: RETURNDATASIZE 00001311: PUSH1 0x20 00001313: GT 00001314: PUSH2 0x06e6 00001317: JUMPI 00001318: PUSH2 0x06d8 0000131b: DUP2 0000131c: DUP4 0000131d: PUSH2 0x104a 00001320: JUMP 00001321: JUMPDEST 00001322: PUSH0 00001323: PUSH2 0x12ff 00001326: JUMP 00001327: JUMPDEST 00001328: PUSH0 00001329: DUP1 0000132a: MLOAD 0000132b: PUSH1 0x20 0000132d: PUSH2 0x4e53 00001330: DUP4 00001331: CODECOPY 00001332: DUP2 00001333: MLOAD 00001334: SWAP2 00001335: MSTORE 00001336: SLOAD 00001337: SWAP1 00001338: SWAP2 00001339: POP 0000133a: DUP2 0000133b: SWAP1 0000133c: PUSH2 0x134d 0000133f: SWAP1 00001340: PUSH1 0x01 00001342: PUSH1 0x01 00001344: PUSH1 0xa0 00001346: SHL 00001347: SUB 00001348: AND 00001349: PUSH2 0x0366 0000134c: JUMP 0000134d: JUMPDEST 0000134e: EQ 0000134f: SWAP1 00001350: PUSH2 0x1188 00001353: JUMP 00001354: JUMPDEST 00001355: CALLVALUE 00001356: PUSH2 0x0383 00001359: JUMPI 0000135a: PUSH0 0000135b: CALLDATASIZE 0000135c: PUSH1 0x03 0000135e: NOT 0000135f: ADD 00001360: SLT 00001361: PUSH2 0x0383 00001364: JUMPI 00001365: PUSH32 0x000000000000000000000000f113bfd6423291b1dd2ca76f897bff54456e7c88 00001386: PUSH1 0x01 00001388: PUSH1 0x01 0000138a: PUSH1 0xa0 0000138c: SHL 0000138d: SUB 0000138e: AND 0000138f: ADDRESS 00001390: SUB 00001391: PUSH2 0x13ab 00001394: JUMPI 00001395: PUSH1 0x20 00001397: PUSH1 0x40 00001399: MLOAD 0000139a: PUSH0 0000139b: DUP1 0000139c: MLOAD 0000139d: PUSH1 0x20 0000139f: PUSH2 0x4e53 000013a2: DUP4 000013a3: CODECOPY 000013a4: DUP2 000013a5: MLOAD 000013a6: SWAP2 000013a7: MSTORE 000013a8: DUP2 000013a9: MSTORE 000013aa: RETURN 000013ab: JUMPDEST 000013ac: PUSH4 0x703e46dd 000013b1: PUSH1 0xe1 000013b3: SHL 000013b4: PUSH0 000013b5: MSTORE 000013b6: PUSH1 0x04 000013b8: PUSH0 000013b9: REVERT 000013ba: JUMPDEST 000013bb: PUSH0 000013bc: CALLDATASIZE 000013bd: PUSH1 0x03 000013bf: NOT 000013c0: ADD 000013c1: SLT 000013c2: PUSH2 0x0383 000013c5: JUMPI 000013c6: PUSH1 0x01 000013c8: PUSH1 0x01 000013ca: PUSH1 0xa0 000013cc: SHL 000013cd: SUB 000013ce: PUSH2 0x13d5 000013d1: PUSH2 0x26bc 000013d4: JUMP 000013d5: JUMPDEST 000013d6: AND 000013d7: CALLER 000013d8: SUB 000013d9: PUSH2 0x0f78 000013dc: JUMPI 000013dd: STOP 000013de: JUMPDEST 000013df: CALLVALUE 000013e0: PUSH2 0x0383 000013e3: JUMPI 000013e4: PUSH0 000013e5: CALLDATASIZE 000013e6: PUSH1 0x03 000013e8: NOT 000013e9: ADD 000013ea: SLT 000013eb: PUSH2 0x0383 000013ee: JUMPI 000013ef: PUSH1 0x20 000013f1: PUSH1 0x40 000013f3: MLOAD 000013f4: PUSH1 0x05 000013f6: DUP2 000013f7: MSTORE 000013f8: RETURN 000013f9: JUMPDEST 000013fa: PUSH1 0x60 000013fc: CALLDATASIZE 000013fd: PUSH1 0x03 000013ff: NOT 00001400: ADD 00001401: SLT 00001402: PUSH2 0x0383 00001405: JUMPI 00001406: PUSH1 0x04 00001408: CALLDATALOAD 00001409: PUSH1 0x01 0000140b: PUSH1 0x01 0000140d: PUSH1 0x40 0000140f: SHL 00001410: SUB 00001411: DUP2 00001412: GT 00001413: PUSH2 0x0383 00001416: JUMPI 00001417: PUSH2 0x1424 0000141a: SWAP1 0000141b: CALLDATASIZE 0000141c: SWAP1 0000141d: PUSH1 0x04 0000141f: ADD 00001420: PUSH2 0x0d6d 00001423: JUMP 00001424: JUMPDEST 00001425: PUSH1 0x24 00001427: CALLDATALOAD 00001428: PUSH1 0x01 0000142a: PUSH1 0x01 0000142c: PUSH1 0x40 0000142e: SHL 0000142f: SUB 00001430: DUP2 00001431: GT 00001432: PUSH2 0x0383 00001435: JUMPI 00001436: PUSH2 0x1443 00001439: SWAP1 0000143a: CALLDATASIZE 0000143b: SWAP1 0000143c: PUSH1 0x04 0000143e: ADD 0000143f: PUSH2 0x0d6d 00001442: JUMP 00001443: JUMPDEST 00001444: PUSH1 0x44 00001446: SWAP4 00001447: SWAP2 00001448: SWAP4 00001449: CALLDATALOAD 0000144a: PUSH1 0x01 0000144c: PUSH1 0x01 0000144e: PUSH1 0x40 00001450: SHL 00001451: SUB 00001452: DUP2 00001453: GT 00001454: PUSH2 0x0383 00001457: JUMPI 00001458: PUSH2 0x1488 0000145b: PUSH2 0x146b 0000145e: PUSH2 0x148c 00001461: SWAP3 00001462: CALLDATASIZE 00001463: SWAP1 00001464: PUSH1 0x04 00001466: ADD 00001467: PUSH2 0x0d6d 0000146a: JUMP 0000146b: JUMPDEST 0000146c: SWAP4 0000146d: SWAP1 0000146e: SWAP7 0000146f: PUSH2 0x1476 00001472: PUSH2 0x3f44 00001475: JUMP 00001476: JUMPDEST 00001477: PUSH2 0x147e 0000147a: PUSH2 0x30c4 0000147d: JUMP 0000147e: JUMPDEST 0000147f: PUSH1 0xd5 00001481: SLOAD 00001482: DUP8 00001483: DUP8 00001484: PUSH2 0x3fbd 00001487: JUMP 00001488: JUMPDEST 00001489: ISZERO 0000148a: SWAP1 0000148b: JUMP 0000148c: JUMPDEST 0000148d: PUSH2 0x0f78 00001490: JUMPI 00001491: PUSH0 00001492: SWAP4 00001493: DUP2 00001494: PUSH2 0x1534 00001497: JUMPI 00001498: JUMPDEST 00001499: POP 0000149a: POP 0000149b: PUSH20 0x2319ace2793561520fb600da1c4b09a660a4adb5 000014b0: DUP1 000014b1: EXTCODESIZE 000014b2: ISZERO 000014b3: PUSH2 0x0383 000014b6: JUMPI 000014b7: PUSH2 0x14fb 000014ba: SWAP4 000014bb: PUSH0 000014bc: SWAP4 000014bd: PUSH1 0x40 000014bf: MLOAD 000014c0: SWAP6 000014c1: DUP7 000014c2: SWAP5 000014c3: DUP6 000014c4: SWAP4 000014c5: DUP5 000014c6: SWAP4 000014c7: PUSH4 0x163be54b 000014cc: PUSH1 0xe0 000014ce: SHL 000014cf: DUP6 000014d0: MSTORE 000014d1: PUSH32 0x0000000000000000000000000000bbddc7ce488642fb579f8b00f3a590007251 000014f2: SWAP3 000014f3: PUSH1 0x04 000014f5: DUP7 000014f6: ADD 000014f7: PUSH2 0x28e9 000014fa: JUMP 000014fb: JUMPDEST 000014fc: SUB 000014fd: SWAP2 000014fe: GAS 000014ff: DELEGATECALL 00001500: DUP1 00001501: ISZERO 00001502: PUSH2 0x06ed 00001505: JUMPI 00001506: PUSH2 0x1520 00001509: JUMPI 0000150a: JUMPDEST 0000150b: PUSH2 0x0020 0000150e: PUSH1 0x01 00001510: PUSH0 00001511: DUP1 00001512: MLOAD 00001513: PUSH1 0x20 00001515: PUSH2 0x4e73 00001518: DUP4 00001519: CODECOPY 0000151a: DUP2 0000151b: MLOAD 0000151c: SWAP2 0000151d: MSTORE 0000151e: SSTORE 0000151f: JUMP 00001520: JUMPDEST 00001521: DUP1 00001522: PUSH2 0x0c42 00001525: PUSH0 00001526: PUSH2 0x152e 00001529: SWAP4 0000152a: PUSH2 0x104a 0000152d: JUMP 0000152e: JUMPDEST 0000152f: PUSH0 00001530: PUSH2 0x150a 00001533: JUMP 00001534: JUMPDEST 00001535: SWAP2 00001536: SWAP4 00001537: POP 00001538: PUSH32 0x000000000000000000000000033e5bae5bdc459cbb7d388b41a9d62020be810f 00001559: PUSH1 0x01 0000155b: PUSH1 0x01 0000155d: PUSH1 0xa0 0000155f: SHL 00001560: SUB 00001561: AND 00001562: SWAP2 00001563: SWAP1 00001564: DUP3 00001565: EXTCODESIZE 00001566: ISZERO 00001567: PUSH2 0x0383 0000156a: JUMPI 0000156b: PUSH2 0x1590 0000156e: SWAP3 0000156f: PUSH0 00001570: SWAP3 00001571: DUP4 00001572: PUSH1 0x40 00001574: MLOAD 00001575: DUP1 00001576: SWAP7 00001577: DUP2 00001578: SWAP6 00001579: DUP3 0000157a: SWAP5 0000157b: PUSH4 0x01bb2b53 00001580: PUSH1 0xe7 00001582: SHL 00001583: DUP5 00001584: MSTORE 00001585: DUP11 00001586: DUP13 00001587: ADDRESS 00001588: PUSH1 0x04 0000158a: DUP8 0000158b: ADD 0000158c: PUSH2 0x28b5 0000158f: JUMP 00001590: JUMPDEST 00001591: SUB 00001592: SWAP3 00001593: GAS 00001594: CALL 00001595: DUP1 00001596: ISZERO 00001597: PUSH2 0x06ed 0000159a: JUMPI 0000159b: PUSH2 0x15aa 0000159e: JUMPI 0000159f: JUMPDEST 000015a0: POP 000015a1: PUSH1 0x01 000015a3: SWAP2 000015a4: PUSH0 000015a5: DUP1 000015a6: PUSH2 0x1498 000015a9: JUMP 000015aa: JUMPDEST 000015ab: DUP1 000015ac: PUSH2 0x0c42 000015af: PUSH0 000015b0: PUSH2 0x15b8 000015b3: SWAP4 000015b4: PUSH2 0x104a 000015b7: JUMP 000015b8: JUMPDEST 000015b9: PUSH0 000015ba: PUSH2 0x159f 000015bd: JUMP 000015be: JUMPDEST 000015bf: CALLVALUE 000015c0: PUSH2 0x0383 000015c3: JUMPI 000015c4: PUSH0 000015c5: CALLDATASIZE 000015c6: PUSH1 0x03 000015c8: NOT 000015c9: ADD 000015ca: SLT 000015cb: PUSH2 0x0383 000015ce: JUMPI 000015cf: PUSH0 000015d0: DUP1 000015d1: MLOAD 000015d2: PUSH1 0x20 000015d4: PUSH2 0x4e53 000015d7: DUP4 000015d8: CODECOPY 000015d9: DUP2 000015da: MLOAD 000015db: SWAP2 000015dc: MSTORE 000015dd: SLOAD 000015de: PUSH1 0x40 000015e0: MLOAD 000015e1: PUSH1 0x01 000015e3: PUSH1 0x01 000015e5: PUSH1 0xa0 000015e7: SHL 000015e8: SUB 000015e9: SWAP1 000015ea: SWAP2 000015eb: AND 000015ec: DUP2 000015ed: MSTORE 000015ee: PUSH1 0x20 000015f0: SWAP1 000015f1: RETURN 000015f2: JUMPDEST 000015f3: CALLVALUE 000015f4: PUSH2 0x0383 000015f7: JUMPI 000015f8: PUSH0 000015f9: CALLDATASIZE 000015fa: PUSH1 0x03 000015fc: NOT 000015fd: ADD 000015fe: SLT 000015ff: PUSH2 0x0383 00001602: JUMPI 00001603: PUSH1 0x20 00001605: PUSH2 0x03fc 00001608: PUSH2 0x291f 0000160b: JUMP 0000160c: JUMPDEST 0000160d: CALLVALUE 0000160e: PUSH2 0x0383 00001611: JUMPI 00001612: PUSH1 0x20 00001614: CALLDATASIZE 00001615: PUSH1 0x03 00001617: NOT 00001618: ADD 00001619: SLT 0000161a: PUSH2 0x0383 0000161d: JUMPI 0000161e: PUSH1 0x04 00001620: CALLDATALOAD 00001621: PUSH1 0x40 00001623: MLOAD 00001624: SWAP1 00001625: PUSH4 0x3ec7cf4b 0000162a: PUSH1 0xe1 0000162c: SHL 0000162d: DUP3 0000162e: MSTORE 0000162f: PUSH1 0x9a 00001631: PUSH1 0x04 00001633: DUP4 00001634: ADD 00001635: MSTORE 00001636: PUSH1 0x24 00001638: DUP3 00001639: ADD 0000163a: MSTORE 0000163b: PUSH1 0x20 0000163d: DUP2 0000163e: PUSH1 0x44 00001640: DUP2 00001641: PUSH20 0x723399c5a3503a53af1bdf89bda7d6d1025cab97 00001656: GAS 00001657: DELEGATECALL 00001658: SWAP1 00001659: DUP2 0000165a: ISZERO 0000165b: PUSH2 0x06ed 0000165e: JUMPI 0000165f: PUSH0 00001660: SWAP2 00001661: PUSH2 0x1690 00001664: JUMPI 00001665: JUMPDEST 00001666: POP 00001667: PUSH1 0x9a 00001669: SLOAD 0000166a: DUP2 0000166b: LT 0000166c: ISZERO 0000166d: PUSH2 0x1685 00001670: JUMPI 00001671: PUSH2 0x06ab 00001674: SWAP1 00001675: JUMPDEST 00001676: PUSH1 0x40 00001678: MLOAD 00001679: SWAP1 0000167a: DUP2 0000167b: MSTORE 0000167c: SWAP1 0000167d: DUP2 0000167e: SWAP1 0000167f: PUSH1 0x20 00001681: DUP3 00001682: ADD 00001683: SWAP1 00001684: JUMP 00001685: JUMPDEST 00001686: POP 00001687: PUSH2 0x06ab 0000168a: PUSH0 0000168b: NOT 0000168c: PUSH2 0x1675 0000168f: JUMP 00001690: JUMPDEST 00001691: PUSH2 0x16a9 00001694: SWAP2 00001695: POP 00001696: PUSH1 0x20 00001698: RETURNDATASIZE 00001699: PUSH1 0x20 0000169b: GT 0000169c: PUSH2 0x06e6 0000169f: JUMPI 000016a0: PUSH2 0x06d8 000016a3: DUP2 000016a4: DUP4 000016a5: PUSH2 0x104a 000016a8: JUMP 000016a9: JUMPDEST 000016aa: PUSH0 000016ab: PUSH2 0x1665 000016ae: JUMP 000016af: JUMPDEST 000016b0: CALLVALUE 000016b1: PUSH2 0x0383 000016b4: JUMPI 000016b5: PUSH1 0x20 000016b7: CALLDATASIZE 000016b8: PUSH1 0x03 000016ba: NOT 000016bb: ADD 000016bc: SLT 000016bd: PUSH2 0x0383 000016c0: JUMPI 000016c1: PUSH1 0x04 000016c3: CALLDATALOAD 000016c4: PUSH2 0x16cc 000016c7: DUP2 000016c8: PUSH2 0x0372 000016cb: JUMP 000016cc: JUMPDEST 000016cd: PUSH2 0x16d4 000016d0: PUSH2 0x2e30 000016d3: JUMP 000016d4: JUMPDEST 000016d5: PUSH1 0x01 000016d7: PUSH1 0x01 000016d9: PUSH1 0xa0 000016db: SHL 000016dc: SUB 000016dd: AND 000016de: DUP1 000016df: ISZERO 000016e0: PUSH2 0x0c4e 000016e3: JUMPI 000016e4: PUSH0 000016e5: SLOAD 000016e6: PUSH1 0x01 000016e8: PUSH1 0x01 000016ea: PUSH1 0xa0 000016ec: SHL 000016ed: SUB 000016ee: DUP2 000016ef: AND 000016f0: DUP3 000016f1: EQ 000016f2: PUSH2 0x172d 000016f5: JUMPI 000016f6: DUP2 000016f7: SWAP1 000016f8: PUSH1 0x01 000016fa: PUSH1 0x01 000016fc: PUSH1 0x60 000016fe: SHL 000016ff: SUB 00001700: PUSH1 0xa0 00001702: SHL 00001703: AND 00001704: OR 00001705: PUSH0 00001706: SSTORE 00001707: CALLER 00001708: PUSH32 0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b 00001729: PUSH0 0000172a: DUP1 0000172b: LOG3 0000172c: STOP 0000172d: JUMPDEST 0000172e: PUSH4 0x8c8728c7 00001733: PUSH1 0xe0 00001735: SHL 00001736: PUSH0 00001737: MSTORE 00001738: PUSH1 0x04 0000173a: PUSH0 0000173b: REVERT 0000173c: JUMPDEST 0000173d: CALLVALUE 0000173e: PUSH2 0x0383 00001741: JUMPI 00001742: PUSH0 00001743: CALLDATASIZE 00001744: PUSH1 0x03 00001746: NOT 00001747: ADD 00001748: SLT 00001749: PUSH2 0x0383 0000174c: JUMPI 0000174d: PUSH1 0x40 0000174f: MLOAD 00001750: PUSH4 0x3eb1acf7 00001755: PUSH1 0xe1 00001757: SHL 00001758: DUP2 00001759: MSTORE 0000175a: ADDRESS 0000175b: PUSH1 0x04 0000175d: DUP3 0000175e: ADD 0000175f: MSTORE 00001760: PUSH1 0x20 00001762: DUP2 00001763: PUSH1 0x24 00001765: DUP2 00001766: PUSH32 0x0000000000000000000000006b5815467da09daa7dc83db21c9239d98bb487b5 00001787: PUSH1 0x01 00001789: PUSH1 0x01 0000178b: PUSH1 0xa0 0000178d: SHL 0000178e: SUB 0000178f: AND 00001790: GAS 00001791: STATICCALL 00001792: DUP1 00001793: ISZERO 00001794: PUSH2 0x06ed 00001797: JUMPI 00001798: PUSH2 0x06ab 0000179b: SWAP2 0000179c: PUSH0 0000179d: SWAP2 0000179e: PUSH2 0x17b5 000017a1: JUMPI 000017a2: JUMPDEST 000017a3: POP 000017a4: PUSH1 0x40 000017a6: MLOAD 000017a7: SWAP1 000017a8: ISZERO 000017a9: ISZERO 000017aa: DUP2 000017ab: MSTORE 000017ac: SWAP1 000017ad: DUP2 000017ae: SWAP1 000017af: PUSH1 0x20 000017b1: DUP3 000017b2: ADD 000017b3: SWAP1 000017b4: JUMP 000017b5: JUMPDEST 000017b6: PUSH2 0x17ce 000017b9: SWAP2 000017ba: POP 000017bb: PUSH1 0x20 000017bd: RETURNDATASIZE 000017be: PUSH1 0x20 000017c0: GT 000017c1: PUSH2 0x124a 000017c4: JUMPI 000017c5: PUSH2 0x123c 000017c8: DUP2 000017c9: DUP4 000017ca: PUSH2 0x104a 000017cd: JUMP 000017ce: JUMPDEST 000017cf: PUSH0 000017d0: PUSH2 0x17a2 000017d3: JUMP 000017d4: JUMPDEST 000017d5: CALLVALUE 000017d6: PUSH2 0x0383 000017d9: JUMPI 000017da: PUSH1 0x20 000017dc: CALLDATASIZE 000017dd: PUSH1 0x03 000017df: NOT 000017e0: ADD 000017e1: SLT 000017e2: PUSH2 0x0383 000017e5: JUMPI 000017e6: PUSH1 0x04 000017e8: CALLDATALOAD 000017e9: PUSH2 0x17f1 000017ec: DUP2 000017ed: PUSH2 0x0372 000017f0: JUMP 000017f1: JUMPDEST 000017f2: PUSH2 0x17f9 000017f5: PUSH2 0x2e30 000017f8: JUMP 000017f9: JUMPDEST 000017fa: PUSH1 0xd2 000017fc: SLOAD 000017fd: PUSH1 0x01 000017ff: PUSH1 0x01 00001801: PUSH1 0xa0 00001803: SHL 00001804: SUB 00001805: SWAP2 00001806: DUP3 00001807: AND 00001808: SWAP2 00001809: DUP2 0000180a: AND 0000180b: DUP3 0000180c: EQ 0000180d: PUSH2 0x172d 00001810: JUMPI 00001811: PUSH1 0x01 00001813: PUSH1 0x01 00001815: PUSH1 0xa0 00001817: SHL 00001818: SUB 00001819: NOT 0000181a: AND 0000181b: DUP2 0000181c: OR 0000181d: PUSH1 0xd2 0000181f: SSTORE 00001820: CALLER 00001821: PUSH32 0x6bdc78d8c88160b3fc3638e67f2afe523b3f4c7d00c56ebb6216790e4c3eb2cb 00001842: PUSH0 00001843: DUP1 00001844: LOG3 00001845: STOP 00001846: JUMPDEST 00001847: CALLVALUE 00001848: PUSH2 0x0383 0000184b: JUMPI 0000184c: PUSH1 0x80 0000184e: CALLDATASIZE 0000184f: PUSH1 0x03 00001851: NOT 00001852: ADD 00001853: SLT 00001854: PUSH2 0x0383 00001857: JUMPI 00001858: PUSH2 0x06ab 0000185b: PUSH2 0x1879 0000185e: PUSH1 0x04 00001860: CALLDATALOAD 00001861: PUSH2 0x1869 00001864: DUP2 00001865: PUSH2 0x0372 00001868: JUMP 00001869: JUMPDEST 0000186a: PUSH1 0x24 0000186c: CALLDATALOAD 0000186d: PUSH1 0x44 0000186f: CALLDATALOAD 00001870: SWAP1 00001871: PUSH1 0x64 00001873: CALLDATALOAD 00001874: SWAP3 00001875: PUSH2 0x2971 00001878: JUMP 00001879: JUMPDEST 0000187a: PUSH1 0x40 0000187c: DUP1 0000187d: MLOAD 0000187e: SWAP4 0000187f: DUP5 00001880: MSTORE 00001881: PUSH1 0x20 00001883: DUP5 00001884: ADD 00001885: SWAP3 00001886: SWAP1 00001887: SWAP3 00001888: MSTORE 00001889: SWAP1 0000188a: DUP3 0000188b: ADD 0000188c: MSTORE 0000188d: SWAP1 0000188e: DUP2 0000188f: SWAP1 00001890: PUSH1 0x60 00001892: DUP3 00001893: ADD 00001894: SWAP1 00001895: JUMP 00001896: JUMPDEST 00001897: CALLVALUE 00001898: PUSH2 0x0383 0000189b: JUMPI 0000189c: PUSH1 0x20 0000189e: CALLDATASIZE 0000189f: PUSH1 0x03 000018a1: NOT 000018a2: ADD 000018a3: SLT 000018a4: PUSH2 0x0383 000018a7: JUMPI 000018a8: PUSH1 0x04 000018aa: CALLDATALOAD 000018ab: PUSH0 000018ac: MSTORE 000018ad: PUSH1 0xd4 000018af: PUSH1 0x20 000018b1: MSTORE 000018b2: PUSH1 0x20 000018b4: PUSH1 0xff 000018b6: PUSH1 0x40 000018b8: PUSH0 000018b9: KECCAK256 000018ba: SLOAD 000018bb: AND 000018bc: PUSH1 0x40 000018be: MLOAD 000018bf: SWAP1 000018c0: ISZERO 000018c1: ISZERO 000018c2: DUP2 000018c3: MSTORE 000018c4: RETURN 000018c5: JUMPDEST 000018c6: CALLVALUE 000018c7: PUSH2 0x0383 000018ca: JUMPI 000018cb: PUSH0 000018cc: CALLDATASIZE 000018cd: PUSH1 0x03 000018cf: NOT 000018d0: ADD 000018d1: SLT 000018d2: PUSH2 0x0383 000018d5: JUMPI 000018d6: PUSH2 0x18dd 000018d9: PUSH2 0x2e30 000018dc: JUMP 000018dd: JUMPDEST 000018de: PUSH2 0x18e5 000018e1: PUSH2 0x40be 000018e4: JUMP 000018e5: JUMPDEST 000018e6: PUSH2 0x192f 000018e9: JUMPI 000018ea: PUSH32 0x0000000000000000000000002296e122c1a20fca3cac3371357bdad3be0df079 0000190b: PUSH1 0x01 0000190d: PUSH1 0x01 0000190f: PUSH1 0xa0 00001911: SHL 00001912: SUB 00001913: AND 00001914: BALANCE 00001915: SELFBALANCE 00001916: ADD 00001917: PUSH1 0x98 00001919: SLOAD 0000191a: PUSH1 0x80 0000191c: SHR 0000191d: DUP2 0000191e: SUB 0000191f: SWAP1 00001920: DUP2 00001921: GT 00001922: PUSH2 0x07c6 00001925: JUMPI 00001926: PUSH2 0x0020 00001929: SWAP1 0000192a: CALLER 0000192b: PUSH2 0x412d 0000192e: JUMP 0000192f: JUMPDEST 00001930: PUSH4 0x89a1dc63 00001935: PUSH1 0xe0 00001937: SHL 00001938: PUSH0 00001939: MSTORE 0000193a: PUSH1 0x04 0000193c: PUSH0 0000193d: REVERT 0000193e: JUMPDEST 0000193f: CALLVALUE 00001940: PUSH2 0x0383 00001943: JUMPI 00001944: PUSH0 00001945: CALLDATASIZE 00001946: PUSH1 0x03 00001948: NOT 00001949: ADD 0000194a: SLT 0000194b: PUSH2 0x0383 0000194e: JUMPI 0000194f: PUSH1 0x20 00001951: PUSH2 0xffff 00001954: PUSH1 0x65 00001956: SLOAD 00001957: PUSH1 0xa0 00001959: SHR 0000195a: AND 0000195b: PUSH1 0x40 0000195d: MLOAD 0000195e: SWAP1 0000195f: DUP2 00001960: MSTORE 00001961: RETURN 00001962: JUMPDEST 00001963: CALLVALUE 00001964: PUSH2 0x0383 00001967: JUMPI 00001968: PUSH1 0x40 0000196a: CALLDATASIZE 0000196b: PUSH1 0x03 0000196d: NOT 0000196e: ADD 0000196f: SLT 00001970: PUSH2 0x0383 00001973: JUMPI 00001974: PUSH1 0x04 00001976: CALLDATALOAD 00001977: PUSH1 0x01 00001979: PUSH1 0x01 0000197b: PUSH1 0x40 0000197d: SHL 0000197e: SUB 0000197f: DUP2 00001980: GT 00001981: PUSH2 0x0383 00001984: JUMPI 00001985: DUP1 00001986: PUSH1 0x04 00001988: ADD 00001989: SWAP1 0000198a: PUSH1 0xa0 0000198c: PUSH1 0x03 0000198e: NOT 0000198f: DUP3 00001990: CALLDATASIZE 00001991: SUB 00001992: ADD 00001993: SLT 00001994: PUSH2 0x0383 00001997: JUMPI 00001998: PUSH1 0x24 0000199a: CALLDATALOAD 0000199b: PUSH1 0x01 0000199d: PUSH1 0x01 0000199f: PUSH1 0x40 000019a1: SHL 000019a2: SUB 000019a3: DUP2 000019a4: GT 000019a5: PUSH2 0x0383 000019a8: JUMPI 000019a9: PUSH2 0x19b6 000019ac: SWAP1 000019ad: CALLDATASIZE 000019ae: SWAP1 000019af: PUSH1 0x04 000019b1: ADD 000019b2: PUSH2 0x0d6d 000019b5: JUMP 000019b6: JUMPDEST 000019b7: SWAP1 000019b8: SWAP2 000019b9: SWAP1 000019ba: PUSH32 0x0000000000000000000000006b5815467da09daa7dc83db21c9239d98bb487b5 000019db: PUSH1 0x01 000019dd: PUSH1 0x01 000019df: PUSH1 0xa0 000019e1: SHL 000019e2: SUB 000019e3: AND 000019e4: SWAP1 000019e5: DUP2 000019e6: EXTCODESIZE 000019e7: ISZERO 000019e8: PUSH2 0x0383 000019eb: JUMPI 000019ec: PUSH0 000019ed: PUSH1 0x40 000019ef: MLOAD 000019f0: DUP1 000019f1: SWAP4 000019f2: PUSH4 0x837d4441 000019f7: PUSH1 0xe0 000019f9: SHL 000019fa: DUP3 000019fb: MSTORE 000019fc: DUP2 000019fd: DUP4 000019fe: DUP2 000019ff: PUSH2 0x1a0b 00001a02: DUP12 00001a03: PUSH1 0x04 00001a05: DUP4 00001a06: ADD 00001a07: PUSH2 0x2aa3 00001a0a: JUMP 00001a0b: JUMPDEST 00001a0c: SUB 00001a0d: SWAP3 00001a0e: GAS 00001a0f: CALL 00001a10: DUP1 00001a11: ISZERO 00001a12: PUSH2 0x06ed 00001a15: JUMPI 00001a16: PUSH2 0x1a42 00001a19: SWAP4 00001a1a: PUSH2 0x1488 00001a1d: SWAP4 00001a1e: PUSH1 0x44 00001a20: SWAP3 00001a21: PUSH2 0x1ac2 00001a24: JUMPI 00001a25: JUMPDEST 00001a26: POP 00001a27: PUSH2 0x1a2e 00001a2a: PUSH2 0x41a2 00001a2d: JUMP 00001a2e: JUMPDEST 00001a2f: ADD 00001a30: SWAP4 00001a31: PUSH2 0x1a3a 00001a34: DUP6 00001a35: DUP8 00001a36: PUSH2 0x2b20 00001a39: JUMP 00001a3a: JUMPDEST 00001a3b: DUP8 00001a3c: CALLDATALOAD 00001a3d: SWAP2 00001a3e: PUSH2 0x3fbd 00001a41: JUMP 00001a42: JUMPDEST 00001a43: PUSH2 0x0f78 00001a46: JUMPI 00001a47: PUSH2 0x1a54 00001a4a: PUSH0 00001a4b: SWAP2 00001a4c: PUSH2 0x1a70 00001a4f: SWAP4 00001a50: PUSH2 0x2b20 00001a53: JUMP 00001a54: JUMPDEST 00001a55: PUSH1 0x40 00001a57: MLOAD 00001a58: PUSH4 0x0ee0f427 00001a5d: PUSH1 0xe2 00001a5f: SHL 00001a60: DUP2 00001a61: MSTORE 00001a62: SWAP4 00001a63: DUP5 00001a64: SWAP3 00001a65: DUP4 00001a66: SWAP3 00001a67: SWAP1 00001a68: PUSH1 0x04 00001a6a: DUP5 00001a6b: ADD 00001a6c: PUSH2 0x2cd9 00001a6f: JUMP 00001a70: JUMPDEST 00001a71: SUB 00001a72: DUP2 00001a73: PUSH20 0x2319ace2793561520fb600da1c4b09a660a4adb5 00001a88: GAS 00001a89: DELEGATECALL 00001a8a: DUP1 00001a8b: ISZERO 00001a8c: PUSH2 0x06ed 00001a8f: JUMPI 00001a90: PUSH2 0x0020 00001a93: SWAP2 00001a94: PUSH0 00001a95: SWAP2 00001a96: PUSH2 0x1aa0 00001a99: JUMPI 00001a9a: JUMPDEST 00001a9b: POP 00001a9c: PUSH2 0x422a 00001a9f: JUMP 00001aa0: JUMPDEST 00001aa1: PUSH2 0x1abc 00001aa4: SWAP2 00001aa5: POP 00001aa6: RETURNDATASIZE 00001aa7: DUP1 00001aa8: PUSH0 00001aa9: DUP4 00001aaa: RETURNDATACOPY 00001aab: PUSH2 0x1ab4 00001aae: DUP2 00001aaf: DUP4 00001ab0: PUSH2 0x104a 00001ab3: JUMP 00001ab4: JUMPDEST 00001ab5: DUP2 00001ab6: ADD 00001ab7: SWAP1 00001ab8: PUSH2 0x2baf 00001abb: JUMP 00001abc: JUMPDEST 00001abd: PUSH0 00001abe: PUSH2 0x1a9a 00001ac1: JUMP 00001ac2: JUMPDEST 00001ac3: DUP1 00001ac4: PUSH2 0x0c42 00001ac7: PUSH0 00001ac8: PUSH2 0x1ad0 00001acb: SWAP4 00001acc: PUSH2 0x104a 00001acf: JUMP 00001ad0: JUMPDEST 00001ad1: PUSH0 00001ad2: PUSH2 0x1a25 00001ad5: JUMP 00001ad6: JUMPDEST 00001ad7: CALLVALUE 00001ad8: PUSH2 0x0383 00001adb: JUMPI 00001adc: PUSH1 0x60 00001ade: CALLDATASIZE 00001adf: PUSH1 0x03 00001ae1: NOT 00001ae2: ADD 00001ae3: SLT 00001ae4: PUSH2 0x0383 00001ae7: JUMPI 00001ae8: PUSH1 0x04 00001aea: CALLDATALOAD 00001aeb: PUSH1 0x24 00001aed: CALLDATALOAD 00001aee: PUSH2 0x1afb 00001af1: PUSH1 0x44 00001af3: CALLDATALOAD 00001af4: DUP3 00001af5: DUP5 00001af6: CALLER 00001af7: PUSH2 0x2971 00001afa: JUMP 00001afb: JUMPDEST 00001afc: SWAP2 00001afd: SWAP3 00001afe: PUSH2 0x1b27 00001b01: PUSH32 0x000000000000000000000000000000000000000000000000000000000000d2f0 00001b22: DUP3 00001b23: PUSH2 0x25db 00001b26: JUMP 00001b27: JUMPDEST 00001b28: TIMESTAMP 00001b29: LT 00001b2a: DUP1 00001b2b: ISZERO 00001b2c: PUSH2 0x1c60 00001b2f: JUMPI 00001b30: JUMPDEST 00001b31: DUP1 00001b32: ISZERO 00001b33: PUSH2 0x1c58 00001b36: JUMPI 00001b37: JUMPDEST 00001b38: PUSH2 0x1c49 00001b3b: JUMPI 00001b3c: PUSH32 0xeb3b05c070c24f667611fdb3ff75fe007d42401c573aed8d8faca95fd00ccb56 00001b5d: SWAP4 00001b5e: PUSH2 0x1b92 00001b61: PUSH2 0x1b77 00001b64: PUSH2 0x1b6c 00001b67: DUP7 00001b68: PUSH2 0x4305 00001b6b: JUMP 00001b6c: JUMPDEST 00001b6d: PUSH1 0x99 00001b6f: SLOAD 00001b70: PUSH1 0x80 00001b72: SHR 00001b73: PUSH2 0x2545 00001b76: JUMP 00001b77: JUMPDEST 00001b78: PUSH1 0x01 00001b7a: PUSH1 0x01 00001b7c: PUSH1 0x80 00001b7e: SHL 00001b7f: SUB 00001b80: PUSH1 0x99 00001b82: SLOAD 00001b83: SWAP2 00001b84: DUP2 00001b85: NOT 00001b86: SWAP1 00001b87: PUSH1 0x80 00001b89: SHL 00001b8a: AND 00001b8b: SWAP2 00001b8c: AND 00001b8d: OR 00001b8e: PUSH1 0x99 00001b90: SSTORE 00001b91: JUMP 00001b92: JUMPDEST 00001b93: PUSH1 0x40 00001b95: DUP1 00001b96: MLOAD 00001b97: CALLER 00001b98: PUSH1 0x20 00001b9a: DUP3 00001b9b: ADD 00001b9c: SWAP1 00001b9d: DUP2 00001b9e: MSTORE 00001b9f: SWAP2 00001ba0: DUP2 00001ba1: ADD 00001ba2: DUP5 00001ba3: SWAP1 00001ba4: MSTORE 00001ba5: PUSH1 0x60 00001ba7: DUP2 00001ba8: ADD 00001ba9: DUP9 00001baa: SWAP1 00001bab: MSTORE 00001bac: PUSH0 00001bad: SWAP2 00001bae: PUSH2 0x1bcf 00001bb1: SWAP2 00001bb2: PUSH2 0x1bbe 00001bb5: DUP2 00001bb6: PUSH1 0x80 00001bb8: DUP2 00001bb9: ADD 00001bba: PUSH2 0x1156 00001bbd: JUMP 00001bbe: JUMPDEST 00001bbf: MLOAD 00001bc0: SWAP1 00001bc1: KECCAK256 00001bc2: PUSH0 00001bc3: MSTORE 00001bc4: PUSH1 0x9b 00001bc6: PUSH1 0x20 00001bc8: MSTORE 00001bc9: PUSH1 0x40 00001bcb: PUSH0 00001bcc: KECCAK256 00001bcd: SWAP1 00001bce: JUMP 00001bcf: JUMPDEST 00001bd0: SSTORE 00001bd1: PUSH0 00001bd2: SWAP3 00001bd3: PUSH1 0x01 00001bd5: DUP3 00001bd6: GT 00001bd7: PUSH2 0x1c06 00001bda: JUMPI 00001bdb: JUMPDEST 00001bdc: POP 00001bdd: POP 00001bde: POP 00001bdf: PUSH2 0x1be8 00001be2: DUP3 00001be3: CALLER 00001be4: PUSH2 0x412d 00001be7: JUMP 00001be8: JUMPDEST 00001be9: PUSH1 0x40 00001beb: DUP1 00001bec: MLOAD 00001bed: SWAP5 00001bee: DUP6 00001bef: MSTORE 00001bf0: PUSH1 0x20 00001bf2: DUP6 00001bf3: ADD 00001bf4: SWAP2 00001bf5: SWAP1 00001bf6: SWAP2 00001bf7: MSTORE 00001bf8: DUP4 00001bf9: ADD 00001bfa: MSTORE 00001bfb: CALLER 00001bfc: SWAP2 00001bfd: DUP1 00001bfe: PUSH1 0x60 00001c00: DUP2 00001c01: ADD 00001c02: PUSH2 0x0517 00001c05: JUMP 00001c06: JUMPDEST 00001c07: PUSH2 0x1c40 00001c0a: SWAP2 00001c0b: SWAP3 00001c0c: SWAP4 00001c0d: POP 00001c0e: PUSH2 0x1c17 00001c11: SWAP1 00001c12: DUP8 00001c13: PUSH2 0x25db 00001c16: JUMP 00001c17: JUMPDEST 00001c18: PUSH1 0x40 00001c1a: DUP1 00001c1b: MLOAD 00001c1c: CALLER 00001c1d: PUSH1 0x20 00001c1f: DUP3 00001c20: ADD 00001c21: SWAP1 00001c22: DUP2 00001c23: MSTORE 00001c24: SWAP2 00001c25: DUP2 00001c26: ADD 00001c27: SWAP6 00001c28: SWAP1 00001c29: SWAP6 00001c2a: MSTORE 00001c2b: PUSH1 0x60 00001c2d: DUP6 00001c2e: ADD 00001c2f: DUP3 00001c30: SWAP1 00001c31: MSTORE 00001c32: SWAP1 00001c33: SWAP4 00001c34: PUSH2 0x1bbe 00001c37: DUP2 00001c38: PUSH1 0x80 00001c3a: DUP2 00001c3b: ADD 00001c3c: PUSH2 0x1156 00001c3f: JUMP 00001c40: JUMPDEST 00001c41: SSTORE 00001c42: PUSH0 00001c43: DUP1 00001c44: DUP1 00001c45: PUSH2 0x1bdb 00001c48: JUMP 00001c49: JUMPDEST 00001c4a: PUSH4 0x0e3d8e8d 00001c4f: PUSH1 0xe1 00001c51: SHL 00001c52: PUSH0 00001c53: MSTORE 00001c54: PUSH1 0x04 00001c56: PUSH0 00001c57: REVERT 00001c58: JUMPDEST 00001c59: POP 00001c5a: DUP3 00001c5b: ISZERO 00001c5c: PUSH2 0x1b37 00001c5f: JUMP 00001c60: JUMPDEST 00001c61: POP 00001c62: DUP2 00001c63: ISZERO 00001c64: PUSH2 0x1b30 00001c67: JUMP 00001c68: JUMPDEST 00001c69: CALLVALUE 00001c6a: PUSH2 0x0383 00001c6d: JUMPI 00001c6e: PUSH1 0x40 00001c70: CALLDATASIZE 00001c71: PUSH1 0x03 00001c73: NOT 00001c74: ADD 00001c75: SLT 00001c76: PUSH2 0x0383 00001c79: JUMPI 00001c7a: PUSH1 0x20 00001c7c: PUSH2 0x1c93 00001c7f: PUSH1 0x24 00001c81: CALLDATALOAD 00001c82: PUSH1 0x04 00001c84: CALLDATALOAD 00001c85: PUSH2 0x1c8d 00001c88: DUP3 00001c89: PUSH2 0x0372 00001c8c: JUMP 00001c8d: JUMPDEST 00001c8e: CALLER 00001c8f: PUSH2 0x4bfc 00001c92: JUMP 00001c93: JUMPDEST 00001c94: PUSH2 0x03fc 00001c97: CALLER 00001c98: PUSH2 0x4b6a 00001c9b: JUMP 00001c9c: JUMPDEST 00001c9d: CALLVALUE 00001c9e: PUSH2 0x0383 00001ca1: JUMPI 00001ca2: PUSH1 0x20 00001ca4: CALLDATASIZE 00001ca5: PUSH1 0x03 00001ca7: NOT 00001ca8: ADD 00001ca9: SLT 00001caa: PUSH2 0x0383 00001cad: JUMPI 00001cae: PUSH1 0x04 00001cb0: CALLDATALOAD 00001cb1: PUSH2 0x1cb8 00001cb4: PUSH2 0x41a2 00001cb7: JUMP 00001cb8: JUMPDEST 00001cb9: CALLER 00001cba: PUSH0 00001cbb: SWAP1 00001cbc: DUP2 00001cbd: MSTORE 00001cbe: PUSH2 0x0137 00001cc1: PUSH1 0x20 00001cc3: MSTORE 00001cc4: PUSH1 0x40 00001cc6: SWAP1 00001cc7: KECCAK256 00001cc8: PUSH2 0x1cd0 00001ccb: SWAP1 00001ccc: PUSH2 0x250c 00001ccf: JUMP 00001cd0: JUMPDEST 00001cd1: PUSH1 0x01 00001cd3: PUSH1 0x01 00001cd5: PUSH1 0x80 00001cd7: SHL 00001cd8: SUB 00001cd9: PUSH2 0x1ce9 00001cdc: DUP3 00001cdd: MLOAD 00001cde: PUSH1 0x01 00001ce0: PUSH1 0x01 00001ce2: PUSH1 0x80 00001ce4: SHL 00001ce5: SUB 00001ce6: AND 00001ce7: SWAP1 00001ce8: JUMP 00001ce9: JUMPDEST 00001cea: AND 00001ceb: ISZERO 00001cec: PUSH2 0x06af 00001cef: JUMPI 00001cf0: PUSH2 0x1cf8 00001cf3: DUP2 00001cf4: PUSH2 0x2e7c 00001cf7: JUMP 00001cf8: JUMPDEST 00001cf9: DUP2 00001cfa: PUSH1 0x01 00001cfc: PUSH1 0x01 00001cfe: PUSH1 0x80 00001d00: SHL 00001d01: SUB 00001d02: PUSH2 0x1d12 00001d05: DUP4 00001d06: MLOAD 00001d07: PUSH1 0x01 00001d09: PUSH1 0x01 00001d0b: PUSH1 0x80 00001d0d: SHL 00001d0e: SUB 00001d0f: AND 00001d10: SWAP1 00001d11: JUMP 00001d12: JUMPDEST 00001d13: AND 00001d14: LT 00001d15: PUSH2 0x1e93 00001d18: JUMPI 00001d19: CALLER 00001d1a: PUSH0 00001d1b: SWAP1 00001d1c: DUP2 00001d1d: MSTORE 00001d1e: PUSH1 0x9c 00001d20: PUSH1 0x20 00001d22: MSTORE 00001d23: PUSH1 0x40 00001d25: SWAP1 00001d26: KECCAK256 00001d27: SLOAD 00001d28: DUP3 00001d29: PUSH2 0x1d48 00001d2c: PUSH2 0x1d3c 00001d2f: DUP5 00001d30: MLOAD 00001d31: PUSH1 0x01 00001d33: PUSH1 0x01 00001d35: PUSH1 0x80 00001d37: SHL 00001d38: SUB 00001d39: AND 00001d3a: SWAP1 00001d3b: JUMP 00001d3c: JUMPDEST 00001d3d: PUSH1 0x01 00001d3f: PUSH1 0x01 00001d41: PUSH1 0x80 00001d43: SHL 00001d44: SUB 00001d45: AND 00001d46: SWAP1 00001d47: JUMP 00001d48: JUMPDEST 00001d49: EQ 00001d4a: PUSH2 0x1e7d 00001d4d: JUMPI 00001d4e: PUSH2 0x1d6c 00001d51: SWAP1 00001d52: DUP4 00001d53: PUSH2 0x1d66 00001d56: PUSH2 0x1d3c 00001d59: DUP6 00001d5a: MLOAD 00001d5b: PUSH1 0x01 00001d5d: PUSH1 0x01 00001d5f: PUSH1 0x80 00001d61: SHL 00001d62: SUB 00001d63: AND 00001d64: SWAP1 00001d65: JUMP 00001d66: JUMPDEST 00001d67: SWAP2 00001d68: PUSH2 0x3039 00001d6b: JUMP 00001d6c: JUMPDEST 00001d6d: SWAP2 00001d6e: PUSH2 0x1da1 00001d71: PUSH2 0x1d94 00001d74: PUSH2 0x1d7c 00001d77: DUP4 00001d78: PUSH2 0x4305 00001d7b: JUMP 00001d7c: JUMPDEST 00001d7d: DUP5 00001d7e: MLOAD 00001d7f: PUSH1 0x01 00001d81: PUSH1 0x01 00001d83: PUSH1 0x80 00001d85: SHL 00001d86: SUB 00001d87: AND 00001d88: SUB 00001d89: PUSH1 0x01 00001d8b: PUSH1 0x01 00001d8d: PUSH1 0x80 00001d8f: SHL 00001d90: SUB 00001d91: AND 00001d92: SWAP1 00001d93: JUMP 00001d94: JUMPDEST 00001d95: PUSH1 0x01 00001d97: PUSH1 0x01 00001d99: PUSH1 0x80 00001d9b: SHL 00001d9c: SUB 00001d9d: AND 00001d9e: DUP4 00001d9f: MSTORE 00001da0: JUMP 00001da1: JUMPDEST 00001da2: CALLER 00001da3: PUSH0 00001da4: SWAP1 00001da5: DUP2 00001da6: MSTORE 00001da7: PUSH2 0x0137 00001daa: PUSH1 0x20 00001dac: MSTORE 00001dad: PUSH1 0x40 00001daf: SWAP1 00001db0: KECCAK256 00001db1: PUSH2 0x1dbb 00001db4: SWAP1 00001db5: DUP4 00001db6: SWAP1 00001db7: PUSH2 0x2565 00001dba: JUMP 00001dbb: JUMPDEST 00001dbc: PUSH2 0x1e03 00001dbf: PUSH1 0x20 00001dc1: PUSH2 0x1df4 00001dc4: PUSH1 0x01 00001dc6: DUP1 00001dc7: PUSH1 0xa0 00001dc9: SHL 00001dca: SUB 00001dcb: PUSH32 0x00000000000000000000000009e84205df7c68907e619d07afd90143c5763605 00001dec: AND 00001ded: DUP1 00001dee: SWAP7 00001def: CALLER 00001df0: PUSH2 0x4bfc 00001df3: JUMP 00001df4: JUMPDEST 00001df5: SWAP4 00001df6: ADD 00001df7: MLOAD 00001df8: PUSH1 0x01 00001dfa: PUSH1 0x01 00001dfc: PUSH1 0x80 00001dfe: SHL 00001dff: SUB 00001e00: AND 00001e01: SWAP1 00001e02: JUMP 00001e03: JUMPDEST 00001e04: DUP4 00001e05: EXTCODESIZE 00001e06: ISZERO 00001e07: PUSH2 0x0383 00001e0a: JUMPI 00001e0b: PUSH1 0x40 00001e0d: MLOAD 00001e0e: PUSH4 0x074ee969 00001e13: PUSH1 0xe3 00001e15: SHL 00001e16: DUP2 00001e17: MSTORE 00001e18: CALLER 00001e19: PUSH1 0x04 00001e1b: DUP3 00001e1c: ADD 00001e1d: MSTORE 00001e1e: PUSH1 0x24 00001e20: DUP2 00001e21: ADD 00001e22: DUP5 00001e23: SWAP1 00001e24: MSTORE 00001e25: PUSH1 0x44 00001e27: DUP2 00001e28: ADD 00001e29: SWAP3 00001e2a: SWAP1 00001e2b: SWAP3 00001e2c: MSTORE 00001e2d: PUSH1 0x01 00001e2f: PUSH1 0x01 00001e31: PUSH1 0x80 00001e33: SHL 00001e34: SUB 00001e35: AND 00001e36: PUSH1 0x64 00001e38: DUP3 00001e39: ADD 00001e3a: MSTORE 00001e3b: SWAP2 00001e3c: PUSH0 00001e3d: SWAP1 00001e3e: DUP4 00001e3f: SWAP1 00001e40: PUSH1 0x84 00001e42: SWAP1 00001e43: DUP3 00001e44: SWAP1 00001e45: DUP5 00001e46: SWAP1 00001e47: GAS 00001e48: CALL 00001e49: SWAP2 00001e4a: DUP3 00001e4b: ISZERO 00001e4c: PUSH2 0x06ed 00001e4f: JUMPI 00001e50: PUSH2 0x06ab 00001e53: SWAP3 00001e54: PUSH2 0x1e69 00001e57: JUMPI 00001e58: JUMPDEST 00001e59: POP 00001e5a: PUSH1 0x40 00001e5c: MLOAD 00001e5d: SWAP1 00001e5e: DUP2 00001e5f: MSTORE 00001e60: SWAP1 00001e61: DUP2 00001e62: SWAP1 00001e63: PUSH1 0x20 00001e65: DUP3 00001e66: ADD 00001e67: SWAP1 00001e68: JUMP 00001e69: JUMPDEST 00001e6a: DUP1 00001e6b: PUSH2 0x0c42 00001e6e: PUSH0 00001e6f: PUSH2 0x1e77 00001e72: SWAP4 00001e73: PUSH2 0x104a 00001e76: JUMP 00001e77: JUMPDEST 00001e78: PUSH0 00001e79: PUSH2 0x1e58 00001e7c: JUMP 00001e7d: JUMPDEST 00001e7e: CALLER 00001e7f: PUSH0 00001e80: SWAP1 00001e81: DUP2 00001e82: MSTORE 00001e83: PUSH2 0x0137 00001e86: PUSH1 0x20 00001e88: MSTORE 00001e89: PUSH1 0x40 00001e8b: DUP2 00001e8c: KECCAK256 00001e8d: SSTORE 00001e8e: SWAP2 00001e8f: PUSH2 0x1dbb 00001e92: JUMP 00001e93: JUMPDEST 00001e94: PUSH4 0x6edcc523 00001e99: PUSH1 0xe0 00001e9b: SHL 00001e9c: PUSH0 00001e9d: MSTORE 00001e9e: PUSH1 0x04 00001ea0: PUSH0 00001ea1: REVERT 00001ea2: JUMPDEST 00001ea3: PUSH1 0x40 00001ea5: PUSH1 0x03 00001ea7: NOT 00001ea8: DUP3 00001ea9: ADD 00001eaa: SLT 00001eab: PUSH2 0x0383 00001eae: JUMPI 00001eaf: PUSH1 0x04 00001eb1: CALLDATALOAD 00001eb2: PUSH1 0x01 00001eb4: PUSH1 0x01 00001eb6: PUSH1 0x40 00001eb8: SHL 00001eb9: SUB 00001eba: DUP2 00001ebb: GT 00001ebc: PUSH2 0x0383 00001ebf: JUMPI 00001ec0: DUP2 00001ec1: PUSH2 0x1ecc 00001ec4: SWAP2 00001ec5: PUSH1 0x04 00001ec7: ADD 00001ec8: PUSH2 0x0d6d 00001ecb: JUMP 00001ecc: JUMPDEST 00001ecd: SWAP3 00001ece: SWAP1 00001ecf: SWAP3 00001ed0: SWAP2 00001ed1: PUSH1 0x24 00001ed3: CALLDATALOAD 00001ed4: SWAP1 00001ed5: PUSH1 0x01 00001ed7: PUSH1 0x01 00001ed9: PUSH1 0x40 00001edb: SHL 00001edc: SUB 00001edd: DUP3 00001ede: GT 00001edf: PUSH2 0x0383 00001ee2: JUMPI 00001ee3: PUSH2 0x0dc4 00001ee6: SWAP2 00001ee7: PUSH1 0x04 00001ee9: ADD 00001eea: PUSH2 0x0d6d 00001eed: JUMP 00001eee: JUMPDEST 00001eef: CALLVALUE 00001ef0: PUSH2 0x0383 00001ef3: JUMPI 00001ef4: PUSH2 0x1f15 00001ef7: PUSH2 0x1eff 00001efa: CALLDATASIZE 00001efb: PUSH2 0x1ea2 00001efe: JUMP 00001eff: JUMPDEST 00001f00: SWAP1 00001f01: PUSH2 0x1f0b 00001f04: SWAP5 00001f05: SWAP3 00001f06: SWAP5 00001f07: PUSH2 0x41a2 00001f0a: JUMP 00001f0b: JUMPDEST 00001f0c: PUSH1 0xd5 00001f0e: SLOAD 00001f0f: DUP6 00001f10: DUP6 00001f11: PUSH2 0x3fbd 00001f14: JUMP 00001f15: JUMPDEST 00001f16: ISZERO 00001f17: PUSH2 0x0f78 00001f1a: JUMPI 00001f1b: PUSH2 0x1f4f 00001f1e: PUSH0 00001f1f: SWAP2 00001f20: PUSH1 0x40 00001f22: SWAP4 00001f23: PUSH1 0x01 00001f25: DUP6 00001f26: MLOAD 00001f27: SWAP6 00001f28: DUP7 00001f29: SWAP5 00001f2a: DUP6 00001f2b: SWAP5 00001f2c: PUSH4 0x0ee0f427 00001f31: PUSH1 0xe2 00001f33: SHL 00001f34: DUP7 00001f35: MSTORE 00001f36: PUSH1 0x04 00001f38: DUP7 00001f39: ADD 00001f3a: SWAP5 00001f3b: PUSH1 0xd4 00001f3d: DUP7 00001f3e: MSTORE 00001f3f: PUSH1 0x60 00001f41: PUSH1 0x20 00001f43: DUP8 00001f44: ADD 00001f45: MSTORE 00001f46: PUSH1 0x60 00001f48: DUP7 00001f49: ADD 00001f4a: SWAP2 00001f4b: PUSH2 0x2895 00001f4e: JUMP 00001f4f: JUMPDEST 00001f50: SWAP3 00001f51: ADD 00001f52: MSTORE 00001f53: SUB 00001f54: DUP2 00001f55: PUSH20 0x2319ace2793561520fb600da1c4b09a660a4adb5 00001f6a: GAS 00001f6b: DELEGATECALL 00001f6c: DUP1 00001f6d: ISZERO 00001f6e: PUSH2 0x06ed 00001f71: JUMPI 00001f72: PUSH2 0x0020 00001f75: SWAP2 00001f76: PUSH0 00001f77: SWAP2 00001f78: PUSH2 0x1aa0 00001f7b: JUMPI 00001f7c: POP 00001f7d: PUSH2 0x422a 00001f80: JUMP 00001f81: JUMPDEST 00001f82: CALLVALUE 00001f83: PUSH2 0x0383 00001f86: JUMPI 00001f87: PUSH2 0x0517 00001f8a: PUSH32 0x2013570c343af8ab14a9778150e381a0fda34ed6368127a95fd5e7210cbec5bf 00001fab: PUSH2 0x1fb3 00001fae: CALLDATASIZE 00001faf: PUSH2 0x0d9a 00001fb2: JUMP 00001fb3: JUMPDEST 00001fb4: SWAP3 00001fb5: SWAP1 00001fb6: PUSH2 0x1fbd 00001fb9: PUSH2 0x2e30 00001fbc: JUMP 00001fbd: JUMPDEST 00001fbe: PUSH1 0x40 00001fc0: MLOAD 00001fc1: SWAP2 00001fc2: DUP3 00001fc3: SWAP2 00001fc4: PUSH1 0x20 00001fc6: DUP4 00001fc7: MSTORE 00001fc8: CALLER 00001fc9: SWAP6 00001fca: PUSH1 0x20 00001fcc: DUP5 00001fcd: ADD 00001fce: SWAP2 00001fcf: PUSH2 0x2895 00001fd2: JUMP 00001fd3: JUMPDEST 00001fd4: DUP1 00001fd5: MLOAD 00001fd6: DUP1 00001fd7: DUP4 00001fd8: MSTORE 00001fd9: PUSH1 0x20 00001fdb: SWAP3 00001fdc: SWAP2 00001fdd: DUP2 00001fde: SWAP1 00001fdf: DUP5 00001fe0: ADD 00001fe1: DUP5 00001fe2: DUP5 00001fe3: ADD 00001fe4: MCOPY 00001fe5: PUSH0 00001fe6: DUP3 00001fe7: DUP3 00001fe8: ADD 00001fe9: DUP5 00001fea: ADD 00001feb: MSTORE 00001fec: PUSH1 0x1f 00001fee: ADD 00001fef: PUSH1 0x1f 00001ff1: NOT 00001ff2: AND 00001ff3: ADD 00001ff4: ADD 00001ff5: SWAP1 00001ff6: JUMP 00001ff7: JUMPDEST 00001ff8: PUSH1 0x20 00001ffa: DUP2 00001ffb: ADD 00001ffc: PUSH1 0x20 00001ffe: DUP3 00001fff: MSTORE 00002000: DUP3 00002001: MLOAD 00002002: DUP1 00002003: SWAP2 00002004: MSTORE 00002005: PUSH1 0x40 00002007: DUP3 00002008: ADD 00002009: SWAP2 0000200a: PUSH1 0x20 0000200c: PUSH1 0x40 0000200e: DUP4 0000200f: PUSH1 0x05 00002011: SHL 00002012: DUP4 00002013: ADD 00002014: ADD 00002015: SWAP5 00002016: ADD 00002017: SWAP3 00002018: PUSH0 00002019: SWAP2 0000201a: JUMPDEST 0000201b: DUP4 0000201c: DUP4 0000201d: LT 0000201e: PUSH2 0x2029 00002021: JUMPI 00002022: POP 00002023: POP 00002024: POP 00002025: POP 00002026: POP 00002027: SWAP1 00002028: JUMP 00002029: JUMPDEST 0000202a: SWAP1 0000202b: SWAP2 0000202c: SWAP3 0000202d: SWAP4 0000202e: SWAP5 0000202f: PUSH1 0x20 00002031: DUP1 00002032: PUSH2 0x2047 00002035: PUSH1 0x01 00002037: SWAP4 00002038: PUSH1 0x3f 0000203a: NOT 0000203b: DUP7 0000203c: DUP3 0000203d: SUB 0000203e: ADD 0000203f: DUP8 00002040: MSTORE 00002041: DUP10 00002042: MLOAD 00002043: PUSH2 0x1fd3 00002046: JUMP 00002047: JUMPDEST 00002048: SWAP8 00002049: ADD 0000204a: SWAP4 0000204b: ADD 0000204c: SWAP4 0000204d: ADD 0000204e: SWAP2 0000204f: SWAP4 00002050: SWAP3 00002051: SWAP1 00002052: PUSH2 0x201a 00002055: JUMP 00002056: JUMPDEST 00002057: CALLVALUE 00002058: PUSH2 0x0383 0000205b: JUMPI 0000205c: PUSH1 0x20 0000205e: CALLDATASIZE 0000205f: PUSH1 0x03 00002061: NOT 00002062: ADD 00002063: SLT 00002064: PUSH2 0x0383 00002067: JUMPI 00002068: PUSH1 0x04 0000206a: CALLDATALOAD 0000206b: PUSH1 0x01 0000206d: PUSH1 0x01 0000206f: PUSH1 0x40 00002071: SHL 00002072: SUB 00002073: DUP2 00002074: GT 00002075: PUSH2 0x0383 00002078: JUMPI 00002079: CALLDATASIZE 0000207a: PUSH1 0x23 0000207c: DUP3 0000207d: ADD 0000207e: SLT 0000207f: ISZERO 00002080: PUSH2 0x0383 00002083: JUMPI 00002084: DUP1 00002085: PUSH1 0x04 00002087: ADD 00002088: CALLDATALOAD 00002089: SWAP1 0000208a: PUSH1 0x01 0000208c: PUSH1 0x01 0000208e: PUSH1 0x40 00002090: SHL 00002091: SUB 00002092: DUP3 00002093: GT 00002094: PUSH2 0x0383 00002097: JUMPI 00002098: CALLDATASIZE 00002099: PUSH1 0x24 0000209b: DUP4 0000209c: PUSH1 0x05 0000209e: SHL 0000209f: DUP4 000020a0: ADD 000020a1: ADD 000020a2: GT 000020a3: PUSH2 0x0383 000020a6: JUMPI 000020a7: PUSH2 0x06ab 000020aa: SWAP2 000020ab: PUSH1 0x24 000020ad: PUSH2 0x20b6 000020b0: SWAP3 000020b1: ADD 000020b2: PUSH2 0x2d41 000020b5: JUMP 000020b6: JUMPDEST 000020b7: PUSH1 0x40 000020b9: MLOAD 000020ba: SWAP2 000020bb: DUP3 000020bc: SWAP2 000020bd: DUP3 000020be: PUSH2 0x1ff7 000020c1: JUMP 000020c2: JUMPDEST 000020c3: CALLVALUE 000020c4: PUSH2 0x0383 000020c7: JUMPI 000020c8: PUSH0 000020c9: CALLDATASIZE 000020ca: PUSH1 0x03 000020cc: NOT 000020cd: ADD 000020ce: SLT 000020cf: PUSH2 0x0383 000020d2: JUMPI 000020d3: PUSH2 0x06ab 000020d6: PUSH1 0x40 000020d8: MLOAD 000020d9: PUSH2 0x20e3 000020dc: PUSH1 0x40 000020de: DUP3 000020df: PUSH2 0x104a 000020e2: JUMP 000020e3: JUMPDEST 000020e4: PUSH1 0x05 000020e6: DUP2 000020e7: MSTORE 000020e8: PUSH5 0x0352e302e3 000020ee: PUSH1 0xdc 000020f0: SHL 000020f1: PUSH1 0x20 000020f3: DUP3 000020f4: ADD 000020f5: MSTORE 000020f6: PUSH1 0x40 000020f8: MLOAD 000020f9: SWAP2 000020fa: DUP3 000020fb: SWAP2 000020fc: PUSH1 0x20 000020fe: DUP4 000020ff: MSTORE 00002100: PUSH1 0x20 00002102: DUP4 00002103: ADD 00002104: SWAP1 00002105: PUSH2 0x1fd3 00002108: JUMP 00002109: JUMPDEST 0000210a: CALLVALUE 0000210b: PUSH2 0x0383 0000210e: JUMPI 0000210f: PUSH1 0x40 00002111: CALLDATASIZE 00002112: PUSH1 0x03 00002114: NOT 00002115: ADD 00002116: SLT 00002117: PUSH2 0x0383 0000211a: JUMPI 0000211b: PUSH1 0x04 0000211d: CALLDATALOAD 0000211e: PUSH2 0x2126 00002121: DUP2 00002122: PUSH2 0x0372 00002125: JUMP 00002126: JUMPDEST 00002127: PUSH1 0x24 00002129: CALLDATALOAD 0000212a: SWAP1 0000212b: CALLER 0000212c: PUSH32 0x00000000000000000000000020bc832ca081b91433ff6c17f85701b6e92486c5 0000214d: PUSH1 0x01 0000214f: PUSH1 0x01 00002151: PUSH1 0xa0 00002153: SHL 00002154: SUB 00002155: AND 00002156: EQ 00002157: DUP1 00002158: ISZERO 00002159: SWAP1 0000215a: PUSH2 0x2248 0000215d: JUMPI 0000215e: JUMPDEST 0000215f: PUSH2 0x0f78 00002162: JUMPI 00002163: PUSH2 0x216a 00002166: PUSH2 0x30c4 00002169: JUMP 0000216a: JUMPDEST 0000216b: PUSH2 0x2172 0000216e: PUSH2 0x41a2 00002171: JUMP 00002172: JUMPDEST 00002173: PUSH1 0x01 00002175: PUSH1 0x01 00002177: PUSH1 0xa0 00002179: SHL 0000217a: SUB 0000217b: DUP2 0000217c: AND 0000217d: ISZERO 0000217e: PUSH2 0x0c4e 00002181: JUMPI 00002182: DUP2 00002183: ISZERO 00002184: PUSH2 0x07cb 00002187: JUMPI 00002188: PUSH32 0xd083678824038160bef3975359ab29f19c3f0e9bcf9d7ead540a492d4d678b63 000021a9: DUP3 000021aa: PUSH2 0x21b5 000021ad: PUSH2 0x06ab 000021b0: SWAP5 000021b1: PUSH2 0x45b9 000021b4: JUMP 000021b5: JUMPDEST 000021b6: SWAP3 000021b7: PUSH2 0x21d0 000021ba: PUSH2 0x0b6d 000021bd: PUSH2 0x21c5 000021c0: DUP5 000021c1: PUSH2 0x4305 000021c4: JUMP 000021c5: JUMPDEST 000021c6: PUSH1 0x98 000021c8: SLOAD 000021c9: PUSH1 0x80 000021cb: SHR 000021cc: PUSH2 0x2dd4 000021cf: JUMP 000021d0: JUMPDEST 000021d1: PUSH2 0x21da 000021d4: DUP5 000021d5: DUP3 000021d6: PUSH2 0x4382 000021d9: JUMP 000021da: JUMPDEST 000021db: PUSH2 0x21fb 000021de: PUSH2 0x21e6 000021e1: DUP3 000021e2: PUSH2 0x43cd 000021e5: JUMP 000021e6: JUMPDEST 000021e7: PUSH2 0x21ef 000021ea: DUP5 000021eb: PUSH2 0x4493 000021ee: JUMP 000021ef: JUMPDEST 000021f0: SWAP1 000021f1: DUP2 000021f2: DUP1 000021f3: DUP3 000021f4: LT 000021f5: SWAP2 000021f6: XOR 000021f7: MUL 000021f8: XOR 000021f9: SWAP1 000021fa: JUMP 000021fb: JUMPDEST 000021fc: DUP1 000021fd: PUSH2 0x2236 00002200: JUMPI 00002201: JUMPDEST 00002202: POP 00002203: PUSH1 0x40 00002205: DUP1 00002206: MLOAD 00002207: PUSH1 0x01 00002209: PUSH1 0x01 0000220b: PUSH1 0xa0 0000220d: SHL 0000220e: SUB 0000220f: SWAP3 00002210: SWAP1 00002211: SWAP3 00002212: AND 00002213: DUP3 00002214: MSTORE 00002215: PUSH1 0x20 00002217: DUP3 00002218: ADD 00002219: SWAP3 0000221a: SWAP1 0000221b: SWAP3 0000221c: MSTORE 0000221d: SWAP1 0000221e: DUP2 0000221f: ADD 00002220: DUP4 00002221: SWAP1 00002222: MSTORE 00002223: PUSH1 0x60 00002225: SWAP1 00002226: LOG1 00002227: PUSH1 0x40 00002229: MLOAD 0000222a: SWAP1 0000222b: DUP2 0000222c: MSTORE 0000222d: SWAP1 0000222e: DUP2 0000222f: SWAP1 00002230: PUSH1 0x20 00002232: DUP3 00002233: ADD 00002234: SWAP1 00002235: JUMP 00002236: JUMPDEST 00002237: PUSH2 0x2241 0000223a: SWAP1 0000223b: DUP3 0000223c: DUP1 0000223d: PUSH2 0x3727 00002240: JUMP 00002241: JUMPDEST 00002242: POP 00002243: PUSH0 00002244: PUSH2 0x2201 00002247: JUMP 00002248: JUMPDEST 00002249: POP 0000224a: PUSH1 0x40 0000224c: MLOAD 0000224d: PUSH4 0x8da5cb5b 00002252: PUSH1 0xe0 00002254: SHL 00002255: DUP2 00002256: MSTORE 00002257: PUSH1 0x20 00002259: DUP2 0000225a: PUSH1 0x04 0000225c: DUP2 0000225d: PUSH32 0x0000000000000000000000002296e122c1a20fca3cac3371357bdad3be0df079 0000227e: PUSH1 0x01 00002280: PUSH1 0x01 00002282: PUSH1 0xa0 00002284: SHL 00002285: SUB 00002286: AND 00002287: GAS 00002288: STATICCALL 00002289: SWAP1 0000228a: DUP2 0000228b: ISZERO 0000228c: PUSH2 0x06ed 0000228f: JUMPI 00002290: PUSH0 00002291: SWAP2 00002292: PUSH2 0x22a8 00002295: JUMPI 00002296: JUMPDEST 00002297: POP 00002298: PUSH1 0x01 0000229a: PUSH1 0x01 0000229c: PUSH1 0xa0 0000229e: SHL 0000229f: SUB 000022a0: AND 000022a1: ADDRESS 000022a2: EQ 000022a3: ISZERO 000022a4: PUSH2 0x215e 000022a7: JUMP 000022a8: JUMPDEST 000022a9: PUSH2 0x22c1 000022ac: SWAP2 000022ad: POP 000022ae: PUSH1 0x20 000022b0: RETURNDATASIZE 000022b1: PUSH1 0x20 000022b3: GT 000022b4: PUSH2 0x0faf 000022b7: JUMPI 000022b8: PUSH2 0x0fa1 000022bb: DUP2 000022bc: DUP4 000022bd: PUSH2 0x104a 000022c0: JUMP 000022c1: JUMPDEST 000022c2: PUSH0 000022c3: PUSH2 0x2296 000022c6: JUMP 000022c7: JUMPDEST 000022c8: CALLVALUE 000022c9: PUSH2 0x0383 000022cc: JUMPI 000022cd: PUSH0 000022ce: CALLDATASIZE 000022cf: PUSH1 0x03 000022d1: NOT 000022d2: ADD 000022d3: SLT 000022d4: PUSH2 0x0383 000022d7: JUMPI 000022d8: PUSH1 0xd2 000022da: SLOAD 000022db: PUSH1 0x40 000022dd: MLOAD 000022de: PUSH1 0x01 000022e0: PUSH1 0x01 000022e2: PUSH1 0xa0 000022e4: SHL 000022e5: SUB 000022e6: SWAP1 000022e7: SWAP2 000022e8: AND 000022e9: DUP2 000022ea: MSTORE 000022eb: PUSH1 0x20 000022ed: SWAP1 000022ee: RETURN 000022ef: JUMPDEST 000022f0: CALLVALUE 000022f1: PUSH2 0x0383 000022f4: JUMPI 000022f5: PUSH1 0x20 000022f7: CALLDATASIZE 000022f8: PUSH1 0x03 000022fa: NOT 000022fb: ADD 000022fc: SLT 000022fd: PUSH2 0x0383 00002300: JUMPI 00002301: PUSH1 0x20 00002303: PUSH2 0x03fc 00002306: PUSH1 0x04 00002308: CALLDATALOAD 00002309: PUSH2 0x45b9 0000230c: JUMP 0000230d: JUMPDEST 0000230e: PUSH2 0x232d 00002311: PUSH2 0x2319 00002314: CALLDATASIZE 00002315: PUSH2 0x1ea2 00002318: JUMP 00002319: JUMPDEST 0000231a: SWAP1 0000231b: PUSH2 0x2325 0000231e: SWAP5 0000231f: SWAP3 00002320: SWAP5 00002321: PUSH2 0x3f44 00002324: JUMP 00002325: JUMPDEST 00002326: PUSH2 0x1f0b 00002329: PUSH2 0x30c4 0000232c: JUMP 0000232d: JUMPDEST 0000232e: ISZERO 0000232f: PUSH2 0x0f78 00002332: JUMPI 00002333: PUSH20 0x2319ace2793561520fb600da1c4b09a660a4adb5 00002348: SWAP1 00002349: DUP2 0000234a: EXTCODESIZE 0000234b: ISZERO 0000234c: PUSH2 0x0383 0000234f: JUMPI 00002350: PUSH0 00002351: SWAP2 00002352: PUSH2 0x237b 00002355: SWAP2 00002356: PUSH1 0x40 00002358: MLOAD 00002359: DUP1 0000235a: SWAP6 0000235b: DUP2 0000235c: SWAP5 0000235d: DUP3 0000235e: SWAP4 0000235f: PUSH4 0x2dc6eba3 00002364: PUSH1 0xe1 00002366: SHL 00002367: DUP5 00002368: MSTORE 00002369: PUSH1 0x04 0000236b: DUP5 0000236c: ADD 0000236d: SWAP3 0000236e: PUSH1 0x40 00002370: DUP5 00002371: MSTORE 00002372: PUSH1 0x40 00002374: DUP5 00002375: ADD 00002376: SWAP2 00002377: PUSH2 0x2895 0000237a: JUMP 0000237b: JUMPDEST 0000237c: PUSH32 0x00000000000000000000000000000961ef480eb55e80d19ad83579a64c007002 0000239d: PUSH1 0x01 0000239f: PUSH1 0x01 000023a1: PUSH1 0xa0 000023a3: SHL 000023a4: SUB 000023a5: AND 000023a6: PUSH1 0x20 000023a8: SWAP1 000023a9: SWAP3 000023aa: ADD 000023ab: SWAP2 000023ac: SWAP1 000023ad: SWAP2 000023ae: MSTORE 000023af: SUB 000023b0: SWAP2 000023b1: GAS 000023b2: DELEGATECALL 000023b3: DUP1 000023b4: ISZERO 000023b5: PUSH2 0x06ed 000023b8: JUMPI 000023b9: PUSH2 0x1520 000023bc: JUMPI 000023bd: PUSH2 0x0020 000023c0: PUSH1 0x01 000023c2: PUSH0 000023c3: DUP1 000023c4: MLOAD 000023c5: PUSH1 0x20 000023c7: PUSH2 0x4e73 000023ca: DUP4 000023cb: CODECOPY 000023cc: DUP2 000023cd: MLOAD 000023ce: SWAP2 000023cf: MSTORE 000023d0: SSTORE 000023d1: JUMP 000023d2: JUMPDEST 000023d3: CALLVALUE 000023d4: PUSH2 0x0383 000023d7: JUMPI 000023d8: PUSH1 0x20 000023da: CALLDATASIZE 000023db: PUSH1 0x03 000023dd: NOT 000023de: ADD 000023df: SLT 000023e0: PUSH2 0x0383 000023e3: JUMPI 000023e4: PUSH1 0x04 000023e6: CALLDATALOAD 000023e7: PUSH2 0x23ef 000023ea: DUP2 000023eb: PUSH2 0x0372 000023ee: JUMP 000023ef: JUMPDEST 000023f0: PUSH2 0x23f7 000023f3: PUSH2 0x2e30 000023f6: JUMP 000023f7: JUMPDEST 000023f8: PUSH2 0x23ff 000023fb: PUSH2 0x41a2 000023fe: JUMP 000023ff: JUMPDEST 00002400: PUSH1 0x01 00002402: PUSH1 0x01 00002404: PUSH1 0xa0 00002406: SHL 00002407: SUB 00002408: AND 00002409: DUP1 0000240a: ISZERO 0000240b: PUSH2 0x2457 0000240e: JUMPI 0000240f: PUSH1 0x65 00002411: SLOAD 00002412: PUSH1 0x01 00002414: PUSH1 0x01 00002416: PUSH1 0xa0 00002418: SHL 00002419: SUB 0000241a: DUP2 0000241b: AND 0000241c: DUP3 0000241d: EQ 0000241e: PUSH2 0x172d 00002421: JUMPI 00002422: PUSH1 0x01 00002424: PUSH1 0x01 00002426: PUSH1 0xa0 00002428: SHL 00002429: SUB 0000242a: NOT 0000242b: AND 0000242c: DUP2 0000242d: OR 0000242e: PUSH1 0x65 00002430: SSTORE 00002431: CALLER 00002432: PUSH32 0xaaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d3 00002453: PUSH0 00002454: DUP1 00002455: LOG3 00002456: STOP 00002457: JUMPDEST 00002458: PUSH4 0x0ed1b8b3 0000245d: PUSH1 0xe3 0000245f: SHL 00002460: PUSH0 00002461: MSTORE 00002462: PUSH1 0x04 00002464: PUSH0 00002465: REVERT 00002466: JUMPDEST 00002467: CALLVALUE 00002468: PUSH2 0x0383 0000246b: JUMPI 0000246c: PUSH1 0x20 0000246e: CALLDATASIZE 0000246f: PUSH1 0x03 00002471: NOT 00002472: ADD 00002473: SLT 00002474: PUSH2 0x0383 00002477: JUMPI 00002478: PUSH1 0x04 0000247a: CALLDATALOAD 0000247b: PUSH2 0x2483 0000247e: DUP2 0000247f: PUSH2 0x0372 00002482: JUMP 00002483: JUMPDEST 00002484: PUSH1 0x01 00002486: DUP1 00002487: PUSH1 0xa0 00002489: SHL 0000248a: SUB 0000248b: AND 0000248c: PUSH0 0000248d: MSTORE 0000248e: PUSH1 0x9c 00002490: PUSH1 0x20 00002492: MSTORE 00002493: PUSH1 0x20 00002495: PUSH1 0x40 00002497: PUSH0 00002498: KECCAK256 00002499: SLOAD 0000249a: PUSH1 0x40 0000249c: MLOAD 0000249d: SWAP1 0000249e: DUP2 0000249f: MSTORE 000024a0: RETURN 000024a1: JUMPDEST 000024a2: CALLVALUE 000024a3: PUSH2 0x0383 000024a6: JUMPI 000024a7: PUSH0 000024a8: CALLDATASIZE 000024a9: PUSH1 0x03 000024ab: NOT 000024ac: ADD 000024ad: SLT 000024ae: PUSH2 0x0383 000024b1: JUMPI 000024b2: PUSH0 000024b3: SLOAD 000024b4: PUSH1 0x40 000024b6: MLOAD 000024b7: PUSH1 0x01 000024b9: PUSH1 0x01 000024bb: PUSH1 0xa0 000024bd: SHL 000024be: SUB 000024bf: SWAP1 000024c0: SWAP2 000024c1: AND 000024c2: DUP2 000024c3: MSTORE 000024c4: PUSH1 0x20 000024c6: SWAP1 000024c7: RETURN 000024c8: JUMPDEST 000024c9: PUSH1 0x40 000024cb: CALLDATASIZE 000024cc: PUSH1 0x03 000024ce: NOT 000024cf: ADD 000024d0: SLT 000024d1: PUSH2 0x0383 000024d4: JUMPI 000024d5: PUSH1 0x20 000024d7: PUSH2 0x03fc 000024da: PUSH1 0x04 000024dc: CALLDATALOAD 000024dd: PUSH2 0x24e5 000024e0: DUP2 000024e1: PUSH2 0x0372 000024e4: JUMP 000024e5: JUMPDEST 000024e6: PUSH1 0x24 000024e8: CALLDATALOAD 000024e9: SWAP1 000024ea: PUSH2 0x075d 000024ed: DUP3 000024ee: PUSH2 0x0372 000024f1: JUMP 000024f2: JUMPDEST 000024f3: SWAP1 000024f4: DUP2 000024f5: PUSH1 0x20 000024f7: SWAP2 000024f8: SUB 000024f9: SLT 000024fa: PUSH2 0x0383 000024fd: JUMPI 000024fe: MLOAD 000024ff: SWAP1 00002500: JUMP 00002501: JUMPDEST 00002502: PUSH1 0x40 00002504: MLOAD 00002505: RETURNDATASIZE 00002506: PUSH0 00002507: DUP3 00002508: RETURNDATACOPY 00002509: RETURNDATASIZE 0000250a: SWAP1 0000250b: REVERT 0000250c: JUMPDEST 0000250d: SWAP1 0000250e: PUSH1 0x40 00002510: MLOAD 00002511: PUSH2 0x2519 00002514: DUP2 00002515: PUSH2 0x102a 00002518: JUMP 00002519: JUMPDEST 0000251a: SWAP2 0000251b: SLOAD 0000251c: PUSH1 0x01 0000251e: PUSH1 0x01 00002520: PUSH1 0x80 00002522: SHL 00002523: SUB 00002524: DUP2 00002525: AND 00002526: DUP4 00002527: MSTORE 00002528: PUSH1 0x80 0000252a: SHR 0000252b: PUSH1 0x20 0000252d: DUP4 0000252e: ADD 0000252f: MSTORE 00002530: JUMP 00002531: JUMPDEST 00002532: PUSH4 0x4e487b71 00002537: PUSH1 0xe0 00002539: SHL 0000253a: PUSH0 0000253b: MSTORE 0000253c: PUSH1 0x11 0000253e: PUSH1 0x04 00002540: MSTORE 00002541: PUSH1 0x24 00002543: PUSH0 00002544: REVERT 00002545: JUMPDEST 00002546: SWAP1 00002547: PUSH1 0x01 00002549: PUSH1 0x01 0000254b: PUSH1 0x80 0000254d: SHL 0000254e: SUB 0000254f: DUP1 00002550: SWAP2 00002551: AND 00002552: SWAP2 00002553: AND 00002554: SUB 00002555: SWAP1 00002556: PUSH1 0x01 00002558: PUSH1 0x01 0000255a: PUSH1 0x80 0000255c: SHL 0000255d: SUB 0000255e: DUP3 0000255f: GT 00002560: PUSH2 0x07c6 00002563: JUMPI 00002564: JUMP 00002565: JUMPDEST 00002566: DUP2 00002567: MLOAD 00002568: PUSH1 0x20 0000256a: SWAP1 0000256b: SWAP3 0000256c: ADD 0000256d: MLOAD 0000256e: PUSH1 0x80 00002570: SHL 00002571: PUSH16 0xffffffffffffffffffffffffffffffff 00002582: NOT 00002583: AND 00002584: PUSH1 0x01 00002586: PUSH1 0x01 00002588: PUSH1 0x80 0000258a: SHL 0000258b: SUB 0000258c: SWAP3 0000258d: SWAP1 0000258e: SWAP3 0000258f: AND 00002590: SWAP2 00002591: SWAP1 00002592: SWAP2 00002593: OR 00002594: SWAP1 00002595: SSTORE 00002596: JUMP 00002597: JUMPDEST 00002598: PUSH1 0x98 0000259a: SLOAD 0000259b: PUSH1 0x01 0000259d: PUSH1 0x01 0000259f: PUSH1 0x80 000025a1: SHL 000025a2: SUB 000025a3: DUP2 000025a4: AND 000025a5: SWAP1 000025a6: DUP2 000025a7: PUSH2 0x25af 000025aa: JUMPI 000025ab: POP 000025ac: POP 000025ad: SWAP1 000025ae: JUMP 000025af: JUMPDEST 000025b0: SWAP2 000025b1: PUSH2 0x0836 000025b4: SWAP3 000025b5: PUSH1 0x80 000025b7: SHR 000025b8: SWAP1 000025b9: PUSH2 0x3039 000025bc: JUMP 000025bd: JUMPDEST 000025be: SWAP1 000025bf: PUSH3 0x03f480 000025c3: DUP3 000025c4: ADD 000025c5: DUP1 000025c6: SWAP3 000025c7: GT 000025c8: PUSH2 0x07c6 000025cb: JUMPI 000025cc: JUMP 000025cd: JUMPDEST 000025ce: SWAP1 000025cf: PUSH1 0x01 000025d1: DUP3 000025d2: ADD 000025d3: DUP1 000025d4: SWAP3 000025d5: GT 000025d6: PUSH2 0x07c6 000025d9: JUMPI 000025da: JUMP 000025db: JUMPDEST 000025dc: SWAP2 000025dd: SWAP1 000025de: DUP3 000025df: ADD 000025e0: DUP1 000025e1: SWAP3 000025e2: GT 000025e3: PUSH2 0x07c6 000025e6: JUMPI 000025e7: JUMP 000025e8: JUMPDEST 000025e9: SWAP2 000025ea: SWAP1 000025eb: SWAP2 000025ec: PUSH0 000025ed: DUP4 000025ee: DUP3 000025ef: ADD 000025f0: SWAP4 000025f1: DUP5 000025f2: SLT 000025f3: SWAP2 000025f4: SLT 000025f5: SWAP1 000025f6: DUP1 000025f7: ISZERO 000025f8: DUP3 000025f9: AND 000025fa: SWAP2 000025fb: ISZERO 000025fc: AND 000025fd: OR 000025fe: PUSH2 0x07c6 00002601: JUMPI 00002602: JUMP 00002603: JUMPDEST 00002604: PUSH2 0x260f 00002607: PUSH2 0x261e 0000260a: SWAP2 0000260b: PUSH2 0x31ad 0000260e: JUMP 0000260f: JUMPDEST 00002610: SWAP2 00002611: SWAP1 00002612: DUP1 00002613: DUP4 00002614: PUSH2 0x262f 00002617: JUMPI 00002618: JUMPDEST 00002619: POP 0000261a: PUSH2 0x334d 0000261d: JUMP 0000261e: JUMPDEST 0000261f: PUSH2 0x2624 00002622: JUMPI 00002623: JUMP 00002624: JUMPDEST 00002625: PUSH2 0x262c 00002628: PUSH2 0x3501 0000262b: JUMP 0000262c: JUMPDEST 0000262d: POP 0000262e: JUMP 0000262f: JUMPDEST 00002630: PUSH1 0xa0 00002632: SLOAD 00002633: SWAP1 00002634: DUP2 00002635: PUSH2 0x263f 00002638: JUMPI 00002639: JUMPDEST 0000263a: POP 0000263b: PUSH2 0x2618 0000263e: JUMP 0000263f: JUMPDEST 00002640: PUSH2 0x264d 00002643: SWAP3 00002644: POP 00002645: PUSH0 00002646: PUSH1 0xa0 00002648: SSTORE 00002649: PUSH2 0x25e8 0000264c: JUMP 0000264d: JUMPDEST 0000264e: PUSH0 0000264f: DUP1 00002650: PUSH2 0x2639 00002653: JUMP 00002654: JUMPDEST 00002655: PUSH32 0x0000000000000000000000002296e122c1a20fca3cac3371357bdad3be0df079 00002676: PUSH1 0x01 00002678: PUSH1 0x01 0000267a: PUSH1 0xa0 0000267c: SHL 0000267d: SUB 0000267e: AND 0000267f: BALANCE 00002680: SELFBALANCE 00002681: ADD 00002682: PUSH1 0x99 00002684: SLOAD 00002685: PUSH2 0x2696 00002688: PUSH1 0x01 0000268a: PUSH1 0x01 0000268c: PUSH1 0x80 0000268e: SHL 0000268f: SUB 00002690: DUP3 00002691: AND 00002692: PUSH2 0x2597 00002695: JUMP 00002696: JUMPDEST 00002697: PUSH1 0x01 00002699: PUSH1 0x01 0000269b: PUSH1 0x80 0000269d: SHL 0000269e: SUB 0000269f: PUSH1 0x9e 000026a1: SLOAD 000026a2: AND 000026a3: ADD 000026a4: SWAP1 000026a5: PUSH1 0x80 000026a7: SHR 000026a8: ADD 000026a9: SWAP1 000026aa: DUP2 000026ab: DUP2 000026ac: GT 000026ad: PUSH0 000026ae: EQ 000026af: PUSH2 0x26b6 000026b2: JUMPI 000026b3: SUB 000026b4: SWAP1 000026b5: JUMP 000026b6: JUMPDEST 000026b7: POP 000026b8: POP 000026b9: PUSH0 000026ba: SWAP1 000026bb: JUMP 000026bc: JUMPDEST 000026bd: PUSH2 0x016a 000026c0: SLOAD 000026c1: PUSH1 0x01 000026c3: PUSH1 0x01 000026c5: PUSH1 0xa0 000026c7: SHL 000026c8: SUB 000026c9: AND 000026ca: DUP1 000026cb: ISZERO 000026cc: PUSH2 0x26d2 000026cf: JUMPI 000026d0: SWAP1 000026d1: JUMP 000026d2: JUMPDEST 000026d3: POP 000026d4: PUSH32 0x00000000000000000000000048319f97e5da1233c21c48b80097c0fb7a20ff86 000026f5: SWAP1 000026f6: JUMP 000026f7: JUMPDEST 000026f8: PUSH0 000026f9: SLOAD 000026fa: PUSH1 0x01 000026fc: PUSH1 0x01 000026fe: PUSH1 0xa0 00002700: SHL 00002701: SUB 00002702: AND 00002703: ISZERO 00002704: PUSH2 0x11ab 00002707: JUMPI 00002708: PUSH2 0x270f 0000270b: PUSH2 0x4dcf 0000270e: JUMP 0000270f: JUMPDEST 00002710: PUSH2 0x2717 00002713: PUSH2 0x4dfa 00002716: JUMP 00002717: JUMPDEST 00002718: PUSH1 0xd0 0000271a: SLOAD 0000271b: DUP1 0000271c: PUSH2 0x2771 0000271f: JUMPI 00002720: JUMPDEST 00002721: POP 00002722: PUSH1 0xd2 00002724: SLOAD 00002725: PUSH1 0x01 00002727: PUSH1 0x01 00002729: PUSH1 0xa0 0000272b: SHL 0000272c: SUB 0000272d: AND 0000272e: ISZERO 0000272f: PUSH2 0x2734 00002732: JUMPI 00002733: JUMP 00002734: JUMPDEST 00002735: PUSH1 0xd2 00002737: DUP1 00002738: SLOAD 00002739: PUSH1 0x01 0000273b: PUSH1 0x01 0000273d: PUSH1 0xa0 0000273f: SHL 00002740: SUB 00002741: NOT 00002742: AND 00002743: PUSH1 0x01 00002745: PUSH1 0x01 00002747: PUSH1 0xa0 00002749: SHL 0000274a: SUB 0000274b: PUSH32 0x00000000000000000000000075ab6ddce07556639333d3df1eaa684f5735223e 0000276c: AND 0000276d: OR 0000276e: SWAP1 0000276f: SSTORE 00002770: JUMP 00002771: JUMPDEST 00002772: PUSH1 0xd1 00002774: SLOAD 00002775: PUSH1 0xd2 00002777: SLOAD 00002778: SWAP1 00002779: SWAP2 0000277a: SWAP1 0000277b: PUSH1 0x01 0000277d: PUSH1 0x01 0000277f: PUSH1 0xa0 00002781: SHL 00002782: SUB 00002783: PUSH32 0x00000000000000000000000075ab6ddce07556639333d3df1eaa684f5735223e 000027a4: DUP2 000027a5: AND 000027a6: SWAP2 000027a7: AND 000027a8: SWAP1 000027a9: DUP1 000027aa: EXTCODESIZE 000027ab: ISZERO 000027ac: PUSH2 0x0383 000027af: JUMPI 000027b0: PUSH1 0x40 000027b2: MLOAD 000027b3: PUSH4 0x76615a55 000027b8: PUSH1 0xe0 000027ba: SHL 000027bb: DUP2 000027bc: MSTORE 000027bd: PUSH1 0x04 000027bf: DUP2 000027c0: ADD 000027c1: SWAP4 000027c2: SWAP1 000027c3: SWAP4 000027c4: MSTORE 000027c5: PUSH1 0x24 000027c7: DUP4 000027c8: ADD 000027c9: SWAP4 000027ca: SWAP1 000027cb: SWAP4 000027cc: MSTORE 000027cd: PUSH1 0x01 000027cf: PUSH1 0x01 000027d1: PUSH1 0xa0 000027d3: SHL 000027d4: SUB 000027d5: AND 000027d6: PUSH1 0x44 000027d8: DUP3 000027d9: ADD 000027da: MSTORE 000027db: SWAP1 000027dc: PUSH0 000027dd: SWAP1 000027de: DUP3 000027df: SWAP1 000027e0: PUSH1 0x64 000027e2: SWAP1 000027e3: DUP3 000027e4: SWAP1 000027e5: DUP5 000027e6: SWAP1 000027e7: GAS 000027e8: CALL 000027e9: DUP1 000027ea: ISZERO 000027eb: PUSH2 0x06ed 000027ee: JUMPI 000027ef: PUSH2 0x281c 000027f2: JUMPI 000027f3: JUMPDEST 000027f4: POP 000027f5: PUSH2 0x27fd 000027f8: PUSH0 000027f9: PUSH1 0xd1 000027fb: SSTORE 000027fc: JUMP 000027fd: JUMPDEST 000027fe: PUSH2 0x2806 00002801: PUSH0 00002802: PUSH1 0xd0 00002804: SSTORE 00002805: JUMP 00002806: JUMPDEST 00002807: PUSH1 0xd2 00002809: DUP1 0000280a: SLOAD 0000280b: PUSH1 0x01 0000280d: PUSH1 0x01 0000280f: PUSH1 0xa0 00002811: SHL 00002812: SUB 00002813: NOT 00002814: AND 00002815: SWAP1 00002816: SSTORE 00002817: PUSH0 00002818: PUSH2 0x2720 0000281b: JUMP 0000281c: JUMPDEST 0000281d: DUP1 0000281e: PUSH2 0x0c42 00002821: PUSH0 00002822: PUSH2 0x282a 00002825: SWAP4 00002826: PUSH2 0x104a 00002829: JUMP 0000282a: JUMPDEST 0000282b: PUSH0 0000282c: PUSH2 0x27f3 0000282f: JUMP 00002830: JUMPDEST 00002831: SWAP1 00002832: DUP2 00002833: PUSH1 0x20 00002835: SWAP2 00002836: SUB 00002837: SLT 00002838: PUSH2 0x0383 0000283b: JUMPI 0000283c: MLOAD 0000283d: PUSH2 0x0836 00002840: DUP2 00002841: PUSH2 0x0372 00002844: JUMP 00002845: JUMPDEST 00002846: PUSH1 0x01 00002848: DUP1 00002849: PUSH1 0xa0 0000284b: SHL 0000284c: SUB 0000284d: AND 0000284e: PUSH0 0000284f: MSTORE 00002850: PUSH2 0x0137 00002853: PUSH1 0x20 00002855: MSTORE 00002856: PUSH1 0x01 00002858: PUSH1 0x01 0000285a: PUSH1 0x80 0000285c: SHL 0000285d: SUB 0000285e: PUSH1 0x40 00002860: PUSH0 00002861: KECCAK256 00002862: PUSH1 0x40 00002864: MLOAD 00002865: SWAP1 00002866: PUSH2 0x286e 00002869: DUP3 0000286a: PUSH2 0x102a 0000286d: JUMP 0000286e: JUMPDEST 0000286f: SLOAD 00002870: DUP3 00002871: DUP2 00002872: AND 00002873: SWAP1 00002874: DUP2 00002875: DUP4 00002876: MSTORE 00002877: PUSH1 0x80 00002879: SHR 0000287a: PUSH1 0x20 0000287c: DUP4 0000287d: ADD 0000287e: MSTORE 0000287f: PUSH2 0x2887 00002882: JUMPI 00002883: MLOAD 00002884: AND 00002885: SWAP1 00002886: JUMP 00002887: JUMPDEST 00002888: PUSH2 0x2890 0000288b: DUP2 0000288c: PUSH2 0x2e7c 0000288f: JUMP 00002890: JUMPDEST 00002891: MLOAD 00002892: AND 00002893: SWAP1 00002894: JUMP 00002895: JUMPDEST 00002896: SWAP1 00002897: DUP1 00002898: PUSH1 0x20 0000289a: SWAP4 0000289b: SWAP3 0000289c: DUP2 0000289d: DUP5 0000289e: MSTORE 0000289f: DUP5 000028a0: DUP5 000028a1: ADD 000028a2: CALLDATACOPY 000028a3: PUSH0 000028a4: DUP3 000028a5: DUP3 000028a6: ADD 000028a7: DUP5 000028a8: ADD 000028a9: MSTORE 000028aa: PUSH1 0x1f 000028ac: ADD 000028ad: PUSH1 0x1f 000028af: NOT 000028b0: AND 000028b1: ADD 000028b2: ADD 000028b3: SWAP1 000028b4: JUMP 000028b5: JUMPDEST 000028b6: SWAP4 000028b7: SWAP2 000028b8: PUSH2 0x0836 000028bb: SWAP6 000028bc: SWAP4 000028bd: PUSH2 0x28db 000028c0: SWAP3 000028c1: PUSH1 0x01 000028c3: DUP1 000028c4: PUSH1 0xa0 000028c6: SHL 000028c7: SUB 000028c8: AND 000028c9: DUP7 000028ca: MSTORE 000028cb: PUSH1 0x60 000028cd: PUSH1 0x20 000028cf: DUP8 000028d0: ADD 000028d1: MSTORE 000028d2: PUSH1 0x60 000028d4: DUP7 000028d5: ADD 000028d6: SWAP2 000028d7: PUSH2 0x2895 000028da: JUMP 000028db: JUMPDEST 000028dc: SWAP3 000028dd: PUSH1 0x40 000028df: DUP2 000028e0: DUP6 000028e1: SUB 000028e2: SWAP2 000028e3: ADD 000028e4: MSTORE 000028e5: PUSH2 0x2895 000028e8: JUMP 000028e9: JUMPDEST 000028ea: SWAP3 000028eb: SWAP5 000028ec: SWAP4 000028ed: SWAP1 000028ee: PUSH2 0x2909 000028f1: SWAP1 000028f2: PUSH1 0x60 000028f4: SWAP4 000028f5: PUSH1 0xd4 000028f7: DUP7 000028f8: MSTORE 000028f9: PUSH1 0x80 000028fb: PUSH1 0x20 000028fd: DUP8 000028fe: ADD 000028ff: MSTORE 00002900: PUSH1 0x80 00002902: DUP7 00002903: ADD 00002904: SWAP2 00002905: PUSH2 0x2895 00002908: JUMP 00002909: JUMPDEST 0000290a: SWAP5 0000290b: ISZERO 0000290c: ISZERO 0000290d: PUSH1 0x40 0000290f: DUP5 00002910: ADD 00002911: MSTORE 00002912: PUSH1 0x01 00002914: PUSH1 0x01 00002916: PUSH1 0xa0 00002918: SHL 00002919: SUB 0000291a: AND 0000291b: SWAP2 0000291c: ADD 0000291d: MSTORE 0000291e: JUMP 0000291f: JUMPDEST 00002920: PUSH1 0x9d 00002922: SLOAD 00002923: DUP1 00002924: PUSH2 0x0836 00002927: JUMPI 00002928: POP 00002929: PUSH0 0000292a: NOT 0000292b: SWAP1 0000292c: JUMP 0000292d: JUMPDEST 0000292e: MLOAD 0000292f: SWAP1 00002930: DUP2 00002931: ISZERO 00002932: ISZERO 00002933: DUP3 00002934: SUB 00002935: PUSH2 0x0383 00002938: JUMPI 00002939: JUMP 0000293a: JUMPDEST 0000293b: SWAP1 0000293c: DUP2 0000293d: PUSH1 0x20 0000293f: SWAP2 00002940: SUB 00002941: SLT 00002942: PUSH2 0x0383 00002945: JUMPI 00002946: PUSH2 0x0836 00002949: SWAP1 0000294a: PUSH2 0x292d 0000294d: JUMP 0000294e: JUMPDEST 0000294f: SWAP2 00002950: SWAP1 00002951: DUP3 00002952: PUSH1 0x40 00002954: SWAP2 00002955: SUB 00002956: SLT 00002957: PUSH2 0x0383 0000295a: JUMPI 0000295b: PUSH1 0x20 0000295d: DUP3 0000295e: MLOAD 0000295f: SWAP3 00002960: ADD 00002961: MLOAD 00002962: SWAP1 00002963: JUMP 00002964: JUMPDEST 00002965: SWAP2 00002966: SWAP1 00002967: DUP3 00002968: SUB 00002969: SWAP2 0000296a: DUP3 0000296b: GT 0000296c: PUSH2 0x07c6 0000296f: JUMPI 00002970: JUMP 00002971: JUMPDEST 00002972: PUSH1 0x40 00002974: DUP1 00002975: MLOAD 00002976: PUSH1 0x01 00002978: PUSH1 0x01 0000297a: PUSH1 0xa0 0000297c: SHL 0000297d: SUB 0000297e: SWAP1 0000297f: SWAP3 00002980: AND 00002981: PUSH1 0x20 00002983: DUP4 00002984: ADD 00002985: SWAP1 00002986: DUP2 00002987: MSTORE 00002988: SWAP1 00002989: DUP3 0000298a: ADD 0000298b: SWAP4 0000298c: SWAP1 0000298d: SWAP4 0000298e: MSTORE 0000298f: PUSH1 0x60 00002991: DUP2 00002992: ADD 00002993: DUP3 00002994: SWAP1 00002995: MSTORE 00002996: SWAP1 00002997: SWAP2 00002998: PUSH2 0x29a8 0000299b: SWAP2 0000299c: PUSH2 0x1bbe 0000299f: DUP2 000029a0: PUSH1 0x80 000029a2: DUP2 000029a3: ADD 000029a4: PUSH2 0x1156 000029a7: JUMP 000029a8: JUMPDEST 000029a9: SLOAD 000029aa: SWAP2 000029ab: DUP3 000029ac: ISZERO 000029ad: PUSH2 0x2a67 000029b0: JUMPI 000029b1: PUSH1 0x40 000029b3: DUP1 000029b4: MLOAD 000029b5: PUSH4 0x776e861f 000029ba: PUSH1 0xe0 000029bc: SHL 000029bd: DUP2 000029be: MSTORE 000029bf: PUSH1 0x9a 000029c1: PUSH1 0x04 000029c3: DUP3 000029c4: ADD 000029c5: MSTORE 000029c6: PUSH1 0x24 000029c8: DUP2 000029c9: ADD 000029ca: SWAP3 000029cb: SWAP1 000029cc: SWAP3 000029cd: MSTORE 000029ce: PUSH1 0x44 000029d0: DUP3 000029d1: ADD 000029d2: SWAP3 000029d3: SWAP1 000029d4: SWAP3 000029d5: MSTORE 000029d6: PUSH1 0x64 000029d8: DUP2 000029d9: ADD 000029da: DUP4 000029db: SWAP1 000029dc: MSTORE 000029dd: SWAP3 000029de: SWAP1 000029df: DUP4 000029e0: PUSH1 0x84 000029e2: DUP2 000029e3: PUSH20 0x723399c5a3503a53af1bdf89bda7d6d1025cab97 000029f8: GAS 000029f9: DELEGATECALL 000029fa: DUP1 000029fb: ISZERO 000029fc: PUSH2 0x06ed 000029ff: JUMPI 00002a00: PUSH0 00002a01: SWAP4 00002a02: PUSH0 00002a03: SWAP2 00002a04: PUSH2 0x2a32 00002a07: JUMPI 00002a08: JUMPDEST 00002a09: POP 00002a0a: SWAP1 00002a0b: PUSH2 0x2a15 00002a0e: DUP5 00002a0f: DUP1 00002a10: SWAP5 00002a11: PUSH2 0x2964 00002a14: JUMP 00002a15: JUMPDEST 00002a16: SWAP4 00002a17: PUSH1 0x01 00002a19: DUP6 00002a1a: EQ 00002a1b: PUSH2 0x2a21 00002a1e: JUMPI 00002a1f: POP 00002a20: JUMP 00002a21: JUMPDEST 00002a22: SWAP4 00002a23: POP 00002a24: SWAP2 00002a25: POP 00002a26: PUSH2 0x2a2f 00002a29: PUSH0 00002a2a: SWAP4 00002a2b: PUSH2 0x25cd 00002a2e: JUMP 00002a2f: JUMPDEST 00002a30: SWAP2 00002a31: JUMP 00002a32: JUMPDEST 00002a33: SWAP1 00002a34: POP 00002a35: PUSH2 0x2a57 00002a38: SWAP2 00002a39: SWAP4 00002a3a: POP 00002a3b: PUSH1 0x40 00002a3d: RETURNDATASIZE 00002a3e: PUSH1 0x40 00002a40: GT 00002a41: PUSH2 0x2a60 00002a44: JUMPI 00002a45: JUMPDEST 00002a46: PUSH2 0x2a4f 00002a49: DUP2 00002a4a: DUP4 00002a4b: PUSH2 0x104a 00002a4e: JUMP 00002a4f: JUMPDEST 00002a50: DUP2 00002a51: ADD 00002a52: SWAP1 00002a53: PUSH2 0x294e 00002a56: JUMP 00002a57: JUMPDEST 00002a58: SWAP3 00002a59: SWAP1 00002a5a: SWAP3 00002a5b: PUSH0 00002a5c: PUSH2 0x2a08 00002a5f: JUMP 00002a60: JUMPDEST 00002a61: POP 00002a62: RETURNDATASIZE 00002a63: PUSH2 0x2a45 00002a66: JUMP 00002a67: JUMPDEST 00002a68: POP 00002a69: POP 00002a6a: POP 00002a6b: PUSH0 00002a6c: SWAP1 00002a6d: PUSH0 00002a6e: SWAP1 00002a6f: PUSH0 00002a70: SWAP1 00002a71: JUMP 00002a72: JUMPDEST 00002a73: SWAP1 00002a74: CALLDATALOAD 00002a75: PUSH1 0x1e 00002a77: NOT 00002a78: DUP3 00002a79: CALLDATASIZE 00002a7a: SUB 00002a7b: ADD 00002a7c: DUP2 00002a7d: SLT 00002a7e: ISZERO 00002a7f: PUSH2 0x0383 00002a82: JUMPI 00002a83: ADD 00002a84: PUSH1 0x20 00002a86: DUP2 00002a87: CALLDATALOAD 00002a88: SWAP2 00002a89: ADD 00002a8a: SWAP2 00002a8b: PUSH1 0x01 00002a8d: PUSH1 0x01 00002a8f: PUSH1 0x40 00002a91: SHL 00002a92: SUB 00002a93: DUP3 00002a94: GT 00002a95: PUSH2 0x0383 00002a98: JUMPI 00002a99: DUP2 00002a9a: CALLDATASIZE 00002a9b: SUB 00002a9c: DUP4 00002a9d: SGT 00002a9e: PUSH2 0x0383 00002aa1: JUMPI 00002aa2: JUMP 00002aa3: JUMPDEST 00002aa4: SWAP1 00002aa5: PUSH2 0x0836 00002aa8: SWAP2 00002aa9: PUSH1 0x20 00002aab: DUP2 00002aac: MSTORE 00002aad: DUP2 00002aae: CALLDATALOAD 00002aaf: PUSH1 0x20 00002ab1: DUP3 00002ab2: ADD 00002ab3: MSTORE 00002ab4: PUSH1 0x20 00002ab6: DUP3 00002ab7: ADD 00002ab8: CALLDATALOAD 00002ab9: PUSH1 0x40 00002abb: DUP3 00002abc: ADD 00002abd: MSTORE 00002abe: PUSH2 0x2b0e 00002ac1: PUSH2 0x2b03 00002ac4: PUSH2 0x2ae4 00002ac7: PUSH2 0x2ad3 00002aca: PUSH1 0x40 00002acc: DUP7 00002acd: ADD 00002ace: DUP7 00002acf: PUSH2 0x2a72 00002ad2: JUMP 00002ad3: JUMPDEST 00002ad4: PUSH1 0xa0 00002ad6: PUSH1 0x60 00002ad8: DUP8 00002ad9: ADD 00002ada: MSTORE 00002adb: PUSH1 0xc0 00002add: DUP7 00002ade: ADD 00002adf: SWAP2 00002ae0: PUSH2 0x2895 00002ae3: JUMP 00002ae4: JUMPDEST 00002ae5: PUSH2 0x2af1 00002ae8: PUSH1 0x60 00002aea: DUP7 00002aeb: ADD 00002aec: DUP7 00002aed: PUSH2 0x2a72 00002af0: JUMP 00002af1: JUMPDEST 00002af2: DUP6 00002af3: DUP4 00002af4: SUB 00002af5: PUSH1 0x1f 00002af7: NOT 00002af8: ADD 00002af9: PUSH1 0x80 00002afb: DUP8 00002afc: ADD 00002afd: MSTORE 00002afe: SWAP1 00002aff: PUSH2 0x2895 00002b02: JUMP 00002b03: JUMPDEST 00002b04: SWAP3 00002b05: PUSH1 0x80 00002b07: DUP2 00002b08: ADD 00002b09: SWAP1 00002b0a: PUSH2 0x2a72 00002b0d: JUMP 00002b0e: JUMPDEST 00002b0f: SWAP2 00002b10: PUSH1 0xa0 00002b12: PUSH1 0x1f 00002b14: NOT 00002b15: DUP3 00002b16: DUP7 00002b17: SUB 00002b18: ADD 00002b19: SWAP2 00002b1a: ADD 00002b1b: MSTORE 00002b1c: PUSH2 0x2895 00002b1f: JUMP 00002b20: JUMPDEST 00002b21: SWAP1 00002b22: CALLDATALOAD 00002b23: SWAP1 00002b24: PUSH1 0x1e 00002b26: NOT 00002b27: DUP2 00002b28: CALLDATASIZE 00002b29: SUB 00002b2a: ADD 00002b2b: DUP3 00002b2c: SLT 00002b2d: ISZERO 00002b2e: PUSH2 0x0383 00002b31: JUMPI 00002b32: ADD 00002b33: DUP1 00002b34: CALLDATALOAD 00002b35: SWAP1 00002b36: PUSH1 0x01 00002b38: PUSH1 0x01 00002b3a: PUSH1 0x40 00002b3c: SHL 00002b3d: SUB 00002b3e: DUP3 00002b3f: GT 00002b40: PUSH2 0x0383 00002b43: JUMPI 00002b44: PUSH1 0x20 00002b46: ADD 00002b47: SWAP2 00002b48: DUP2 00002b49: CALLDATASIZE 00002b4a: SUB 00002b4b: DUP4 00002b4c: SGT 00002b4d: PUSH2 0x0383 00002b50: JUMPI 00002b51: JUMP 00002b52: JUMPDEST 00002b53: PUSH1 0x01 00002b55: PUSH1 0x01 00002b57: PUSH1 0x40 00002b59: SHL 00002b5a: SUB 00002b5b: DUP2 00002b5c: GT 00002b5d: PUSH2 0x1045 00002b60: JUMPI 00002b61: PUSH1 0x05 00002b63: SHL 00002b64: PUSH1 0x20 00002b66: ADD 00002b67: SWAP1 00002b68: JUMP 00002b69: JUMPDEST 00002b6a: DUP2 00002b6b: PUSH1 0x1f 00002b6d: DUP3 00002b6e: ADD 00002b6f: SLT 00002b70: ISZERO 00002b71: PUSH2 0x0383 00002b74: JUMPI 00002b75: DUP1 00002b76: MLOAD 00002b77: SWAP1 00002b78: PUSH2 0x2b80 00002b7b: DUP3 00002b7c: PUSH2 0x108b 00002b7f: JUMP 00002b80: JUMPDEST 00002b81: SWAP3 00002b82: PUSH2 0x2b8e 00002b85: PUSH1 0x40 00002b87: MLOAD 00002b88: SWAP5 00002b89: DUP6 00002b8a: PUSH2 0x104a 00002b8d: JUMP 00002b8e: JUMPDEST 00002b8f: DUP3 00002b90: DUP5 00002b91: MSTORE 00002b92: PUSH1 0x20 00002b94: DUP4 00002b95: DUP4 00002b96: ADD 00002b97: ADD 00002b98: GT 00002b99: PUSH2 0x0383 00002b9c: JUMPI 00002b9d: DUP2 00002b9e: PUSH0 00002b9f: SWAP3 00002ba0: PUSH1 0x20 00002ba2: DUP1 00002ba3: SWAP4 00002ba4: ADD 00002ba5: DUP4 00002ba6: DUP7 00002ba7: ADD 00002ba8: MCOPY 00002ba9: DUP4 00002baa: ADD 00002bab: ADD 00002bac: MSTORE 00002bad: SWAP1 00002bae: JUMP 00002baf: JUMPDEST 00002bb0: PUSH1 0x20 00002bb2: DUP2 00002bb3: DUP4 00002bb4: SUB 00002bb5: SLT 00002bb6: PUSH2 0x0383 00002bb9: JUMPI 00002bba: DUP1 00002bbb: MLOAD 00002bbc: SWAP1 00002bbd: PUSH1 0x01 00002bbf: PUSH1 0x01 00002bc1: PUSH1 0x40 00002bc3: SHL 00002bc4: SUB 00002bc5: DUP3 00002bc6: GT 00002bc7: PUSH2 0x0383 00002bca: JUMPI 00002bcb: ADD 00002bcc: DUP2 00002bcd: PUSH1 0x1f 00002bcf: DUP3 00002bd0: ADD 00002bd1: SLT 00002bd2: ISZERO 00002bd3: PUSH2 0x0383 00002bd6: JUMPI 00002bd7: DUP1 00002bd8: MLOAD 00002bd9: SWAP1 00002bda: PUSH2 0x2be2 00002bdd: DUP3 00002bde: PUSH2 0x2b52 00002be1: JUMP 00002be2: JUMPDEST 00002be3: SWAP3 00002be4: PUSH2 0x2bf0 00002be7: PUSH1 0x40 00002be9: MLOAD 00002bea: SWAP5 00002beb: DUP6 00002bec: PUSH2 0x104a 00002bef: JUMP 00002bf0: JUMPDEST 00002bf1: DUP3 00002bf2: DUP5 00002bf3: MSTORE 00002bf4: PUSH1 0x20 00002bf6: DUP1 00002bf7: DUP6 00002bf8: ADD 00002bf9: SWAP4 00002bfa: PUSH1 0x05 00002bfc: SHL 00002bfd: DUP4 00002bfe: ADD 00002bff: ADD 00002c00: SWAP2 00002c01: DUP2 00002c02: DUP4 00002c03: GT 00002c04: PUSH2 0x0383 00002c07: JUMPI 00002c08: PUSH1 0x20 00002c0a: DUP2 00002c0b: ADD 00002c0c: SWAP4 00002c0d: JUMPDEST 00002c0e: DUP4 00002c0f: DUP6 00002c10: LT 00002c11: PUSH2 0x2c1c 00002c14: JUMPI 00002c15: POP 00002c16: POP 00002c17: POP 00002c18: POP 00002c19: POP 00002c1a: SWAP1 00002c1b: JUMP 00002c1c: JUMPDEST 00002c1d: DUP5 00002c1e: MLOAD 00002c1f: PUSH1 0x01 00002c21: PUSH1 0x01 00002c23: PUSH1 0x40 00002c25: SHL 00002c26: SUB 00002c27: DUP2 00002c28: GT 00002c29: PUSH2 0x0383 00002c2c: JUMPI 00002c2d: DUP3 00002c2e: ADD 00002c2f: PUSH1 0xa0 00002c31: DUP2 00002c32: DUP6 00002c33: SUB 00002c34: PUSH1 0x1f 00002c36: NOT 00002c37: ADD 00002c38: SLT 00002c39: PUSH2 0x0383 00002c3c: JUMPI 00002c3d: PUSH2 0x2c44 00002c40: PUSH2 0x106b 00002c43: JUMP 00002c44: JUMPDEST 00002c45: SWAP2 00002c46: PUSH1 0x20 00002c48: DUP3 00002c49: ADD 00002c4a: MLOAD 00002c4b: PUSH1 0x01 00002c4d: PUSH1 0x01 00002c4f: PUSH1 0x40 00002c51: SHL 00002c52: SUB 00002c53: DUP2 00002c54: GT 00002c55: PUSH2 0x0383 00002c58: JUMPI 00002c59: DUP6 00002c5a: PUSH1 0x20 00002c5c: PUSH2 0x2c67 00002c5f: SWAP3 00002c60: DUP6 00002c61: ADD 00002c62: ADD 00002c63: PUSH2 0x2b69 00002c66: JUMP 00002c67: JUMPDEST 00002c68: DUP4 00002c69: MSTORE 00002c6a: PUSH1 0x40 00002c6c: DUP3 00002c6d: ADD 00002c6e: MLOAD 00002c6f: PUSH1 0x01 00002c71: PUSH1 0x01 00002c73: PUSH1 0x40 00002c75: SHL 00002c76: SUB 00002c77: DUP2 00002c78: GT 00002c79: PUSH2 0x0383 00002c7c: JUMPI 00002c7d: DUP6 00002c7e: PUSH1 0x20 00002c80: PUSH2 0x2c8b 00002c83: SWAP3 00002c84: DUP6 00002c85: ADD 00002c86: ADD 00002c87: PUSH2 0x2b69 00002c8a: JUMP 00002c8b: JUMPDEST 00002c8c: PUSH1 0x20 00002c8e: DUP5 00002c8f: ADD 00002c90: MSTORE 00002c91: PUSH1 0x60 00002c93: DUP3 00002c94: ADD 00002c95: MLOAD 00002c96: SWAP3 00002c97: PUSH1 0x01 00002c99: PUSH1 0x01 00002c9b: PUSH1 0x40 00002c9d: SHL 00002c9e: SUB 00002c9f: DUP5 00002ca0: GT 00002ca1: PUSH2 0x0383 00002ca4: JUMPI 00002ca5: PUSH1 0xa0 00002ca7: DUP4 00002ca8: PUSH2 0x2cb8 00002cab: DUP9 00002cac: PUSH1 0x20 00002cae: DUP1 00002caf: SWAP9 00002cb0: DUP2 00002cb1: SWAP9 00002cb2: ADD 00002cb3: ADD 00002cb4: PUSH2 0x2b69 00002cb7: JUMP 00002cb8: JUMPDEST 00002cb9: PUSH1 0x40 00002cbb: DUP5 00002cbc: ADD 00002cbd: MSTORE 00002cbe: PUSH1 0x80 00002cc0: DUP2 00002cc1: ADD 00002cc2: MLOAD 00002cc3: PUSH1 0x60 00002cc5: DUP5 00002cc6: ADD 00002cc7: MSTORE 00002cc8: ADD 00002cc9: MLOAD 00002cca: PUSH1 0x80 00002ccc: DUP3 00002ccd: ADD 00002cce: MSTORE 00002ccf: DUP2 00002cd0: MSTORE 00002cd1: ADD 00002cd2: SWAP5 00002cd3: ADD 00002cd4: SWAP4 00002cd5: PUSH2 0x2c0d 00002cd8: JUMP 00002cd9: JUMPDEST 00002cda: SWAP3 00002cdb: SWAP2 00002cdc: PUSH2 0x2cf8 00002cdf: PUSH0 00002ce0: SWAP3 00002ce1: PUSH1 0x40 00002ce3: SWAP3 00002ce4: PUSH1 0xd4 00002ce6: DUP8 00002ce7: MSTORE 00002ce8: PUSH1 0x60 00002cea: PUSH1 0x20 00002cec: DUP9 00002ced: ADD 00002cee: MSTORE 00002cef: PUSH1 0x60 00002cf1: DUP8 00002cf2: ADD 00002cf3: SWAP2 00002cf4: PUSH2 0x2895 00002cf7: JUMP 00002cf8: JUMPDEST 00002cf9: SWAP4 00002cfa: ADD 00002cfb: MSTORE 00002cfc: JUMP 00002cfd: JUMPDEST 00002cfe: PUSH4 0x4e487b71 00002d03: PUSH1 0xe0 00002d05: SHL 00002d06: PUSH0 00002d07: MSTORE 00002d08: PUSH1 0x32 00002d0a: PUSH1 0x04 00002d0c: MSTORE 00002d0d: PUSH1 0x24 00002d0f: PUSH0 00002d10: REVERT 00002d11: JUMPDEST 00002d12: SWAP1 00002d13: DUP3 00002d14: LT 00002d15: ISZERO 00002d16: PUSH2 0x2d28 00002d19: JUMPI 00002d1a: PUSH2 0x0dc4 00002d1d: SWAP2 00002d1e: PUSH1 0x05 00002d20: SHL 00002d21: DUP2 00002d22: ADD 00002d23: SWAP1 00002d24: PUSH2 0x2b20 00002d27: JUMP 00002d28: JUMPDEST 00002d29: PUSH2 0x2cfd 00002d2c: JUMP 00002d2d: JUMPDEST 00002d2e: DUP1 00002d2f: MLOAD 00002d30: DUP3 00002d31: LT 00002d32: ISZERO 00002d33: PUSH2 0x2d28 00002d36: JUMPI 00002d37: PUSH1 0x20 00002d39: SWAP2 00002d3a: PUSH1 0x05 00002d3c: SHL 00002d3d: ADD 00002d3e: ADD 00002d3f: SWAP1 00002d40: JUMP 00002d41: JUMPDEST 00002d42: SWAP2 00002d43: SWAP1 00002d44: SWAP2 00002d45: PUSH2 0x2d4d 00002d48: DUP4 00002d49: PUSH2 0x2b52 00002d4c: JUMP 00002d4d: JUMPDEST 00002d4e: PUSH2 0x2d5a 00002d51: PUSH1 0x40 00002d53: MLOAD 00002d54: SWAP2 00002d55: DUP3 00002d56: PUSH2 0x104a 00002d59: JUMP 00002d5a: JUMPDEST 00002d5b: DUP4 00002d5c: DUP2 00002d5d: MSTORE 00002d5e: PUSH1 0x1f 00002d60: NOT 00002d61: PUSH2 0x2d69 00002d64: DUP6 00002d65: PUSH2 0x2b52 00002d68: JUMP 00002d69: JUMPDEST 00002d6a: ADD 00002d6b: PUSH0 00002d6c: JUMPDEST 00002d6d: DUP2 00002d6e: DUP2 00002d6f: LT 00002d70: PUSH2 0x2dc3 00002d73: JUMPI 00002d74: POP 00002d75: POP 00002d76: DUP1 00002d77: SWAP4 00002d78: PUSH0 00002d79: JUMPDEST 00002d7a: DUP2 00002d7b: DUP2 00002d7c: LT 00002d7d: PUSH2 0x2d86 00002d80: JUMPI 00002d81: POP 00002d82: POP 00002d83: POP 00002d84: POP 00002d85: JUMP 00002d86: JUMPDEST 00002d87: DUP1 00002d88: PUSH2 0x2da7 00002d8b: PUSH2 0x2da1 00002d8e: PUSH2 0x2d9a 00002d91: PUSH1 0x01 00002d93: SWAP5 00002d94: DUP7 00002d95: DUP10 00002d96: PUSH2 0x2d11 00002d99: JUMP 00002d9a: JUMPDEST 00002d9b: CALLDATASIZE 00002d9c: SWAP2 00002d9d: PUSH2 0x10a6 00002da0: JUMP 00002da1: JUMPDEST 00002da2: ADDRESS 00002da3: PUSH2 0x4365 00002da6: JUMP 00002da7: JUMPDEST 00002da8: PUSH2 0x2db1 00002dab: DUP3 00002dac: DUP7 00002dad: PUSH2 0x2d2d 00002db0: JUMP 00002db1: JUMPDEST 00002db2: MSTORE 00002db3: PUSH2 0x2dbc 00002db6: DUP2 00002db7: DUP6 00002db8: PUSH2 0x2d2d 00002dbb: JUMP 00002dbc: JUMPDEST 00002dbd: POP 00002dbe: ADD 00002dbf: PUSH2 0x2d79 00002dc2: JUMP 00002dc3: JUMPDEST 00002dc4: DUP1 00002dc5: PUSH1 0x60 00002dc7: PUSH1 0x20 00002dc9: DUP1 00002dca: SWAP4 00002dcb: DUP7 00002dcc: ADD 00002dcd: ADD 00002dce: MSTORE 00002dcf: ADD 00002dd0: PUSH2 0x2d6c 00002dd3: JUMP 00002dd4: JUMPDEST 00002dd5: SWAP1 00002dd6: PUSH1 0x01 00002dd8: PUSH1 0x01 00002dda: PUSH1 0x80 00002ddc: SHL 00002ddd: SUB 00002dde: DUP1 00002ddf: SWAP2 00002de0: AND 00002de1: SWAP2 00002de2: AND 00002de3: ADD 00002de4: SWAP1 00002de5: PUSH1 0x01 00002de7: PUSH1 0x01 00002de9: PUSH1 0x80 00002deb: SHL 00002dec: SUB 00002ded: DUP3 00002dee: GT 00002def: PUSH2 0x07c6 00002df2: JUMPI 00002df3: JUMP 00002df4: JUMPDEST 00002df5: PUSH32 0x0000000000000000000000002296e122c1a20fca3cac3371357bdad3be0df079 00002e16: PUSH1 0x01 00002e18: PUSH1 0x01 00002e1a: PUSH1 0xa0 00002e1c: SHL 00002e1d: SUB 00002e1e: AND 00002e1f: CALLER 00002e20: SUB 00002e21: PUSH2 0x2e26 00002e24: JUMPI 00002e25: JUMP 00002e26: JUMPDEST 00002e27: PUSH2 0x262c 00002e2a: CALLVALUE 00002e2b: CALLER 00002e2c: PUSH2 0x463e 00002e2f: JUMP 00002e30: JUMPDEST 00002e31: PUSH0 00002e32: SLOAD 00002e33: PUSH1 0x01 00002e35: PUSH1 0x01 00002e37: PUSH1 0xa0 00002e39: SHL 00002e3a: SUB 00002e3b: AND 00002e3c: CALLER 00002e3d: SUB 00002e3e: PUSH2 0x0f78 00002e41: JUMPI 00002e42: JUMP 00002e43: JUMPDEST 00002e44: SWAP1 00002e45: PUSH1 0x78 00002e47: DUP3 00002e48: MUL 00002e49: SWAP2 00002e4a: DUP1 00002e4b: DUP4 00002e4c: DIV 00002e4d: PUSH1 0x78 00002e4f: EQ 00002e50: SWAP1 00002e51: ISZERO 00002e52: OR 00002e53: ISZERO 00002e54: PUSH2 0x07c6 00002e57: JUMPI 00002e58: JUMP 00002e59: JUMPDEST 00002e5a: PUSH4 0x4e487b71 00002e5f: PUSH1 0xe0 00002e61: SHL 00002e62: PUSH0 00002e63: MSTORE 00002e64: PUSH1 0x12 00002e66: PUSH1 0x04 00002e68: MSTORE 00002e69: PUSH1 0x24 00002e6b: PUSH0 00002e6c: REVERT 00002e6d: JUMPDEST 00002e6e: DUP2 00002e6f: ISZERO 00002e70: PUSH2 0x2e77 00002e73: JUMPI 00002e74: DIV 00002e75: SWAP1 00002e76: JUMP 00002e77: JUMPDEST 00002e78: PUSH2 0x2e59 00002e7b: JUMP 00002e7c: JUMPDEST 00002e7d: PUSH1 0x40 00002e7f: MLOAD 00002e80: PUSH4 0x752a536d 00002e85: PUSH1 0xe0 00002e87: SHL 00002e88: DUP2 00002e89: MSTORE 00002e8a: SWAP1 00002e8b: PUSH1 0x20 00002e8d: DUP3 00002e8e: PUSH1 0x04 00002e90: DUP2 00002e91: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306 00002eb2: PUSH1 0x01 00002eb4: PUSH1 0x01 00002eb6: PUSH1 0xa0 00002eb8: SHL 00002eb9: SUB 00002eba: AND 00002ebb: GAS 00002ebc: STATICCALL 00002ebd: SWAP2 00002ebe: DUP3 00002ebf: ISZERO 00002ec0: PUSH2 0x06ed 00002ec3: JUMPI 00002ec4: PUSH0 00002ec5: SWAP3 00002ec6: PUSH2 0x2f3f 00002ec9: JUMPI 00002eca: JUMPDEST 00002ecb: POP 00002ecc: PUSH1 0x20 00002ece: DUP2 00002ecf: ADD 00002ed0: SWAP1 00002ed1: PUSH2 0x2ee1 00002ed4: DUP3 00002ed5: MLOAD 00002ed6: PUSH1 0x01 00002ed8: PUSH1 0x01 00002eda: PUSH1 0x80 00002edc: SHL 00002edd: SUB 00002ede: AND 00002edf: SWAP1 00002ee0: JUMP 00002ee1: JUMPDEST 00002ee2: SWAP3 00002ee3: PUSH1 0x01 00002ee5: PUSH1 0x01 00002ee7: PUSH1 0x80 00002ee9: SHL 00002eea: SUB 00002eeb: DUP5 00002eec: AND 00002eed: DUP2 00002eee: EQ 00002eef: PUSH2 0x2f39 00002ef2: JUMPI 00002ef3: PUSH2 0x2f27 00002ef6: DUP3 00002ef7: PUSH2 0x2f2c 00002efa: PUSH2 0x2f27 00002efd: PUSH2 0x107a 00002f00: SWAP8 00002f01: DUP6 00002f02: PUSH1 0x01 00002f04: PUSH1 0x01 00002f06: PUSH1 0x80 00002f08: SHL 00002f09: SUB 00002f0a: DUP1 00002f0b: PUSH2 0x2f1e 00002f0e: PUSH2 0x2f2c 00002f11: SWAP11 00002f12: MLOAD 00002f13: PUSH1 0x01 00002f15: PUSH1 0x01 00002f17: PUSH1 0x80 00002f19: SHL 00002f1a: SUB 00002f1b: AND 00002f1c: SWAP1 00002f1d: JUMP 00002f1e: JUMPDEST 00002f1f: AND 00002f20: SWAP3 00002f21: AND 00002f22: SWAP2 00002f23: PUSH2 0x3039 00002f26: JUMP 00002f27: JUMPDEST 00002f28: PUSH2 0x4305 00002f2b: JUMP 00002f2c: JUMPDEST 00002f2d: PUSH1 0x01 00002f2f: PUSH1 0x01 00002f31: PUSH1 0x80 00002f33: SHL 00002f34: SUB 00002f35: AND 00002f36: SWAP1 00002f37: MSTORE 00002f38: JUMP 00002f39: JUMPDEST 00002f3a: POP 00002f3b: POP 00002f3c: POP 00002f3d: POP 00002f3e: JUMP 00002f3f: JUMPDEST 00002f40: PUSH2 0x2f59 00002f43: SWAP2 00002f44: SWAP3 00002f45: POP 00002f46: PUSH1 0x20 00002f48: RETURNDATASIZE 00002f49: PUSH1 0x20 00002f4b: GT 00002f4c: PUSH2 0x06e6 00002f4f: JUMPI 00002f50: PUSH2 0x06d8 00002f53: DUP2 00002f54: DUP4 00002f55: PUSH2 0x104a 00002f58: JUMP 00002f59: JUMPDEST 00002f5a: SWAP1 00002f5b: PUSH0 00002f5c: PUSH2 0x2eca 00002f5f: JUMP 00002f60: JUMPDEST 00002f61: PUSH2 0x2f6a 00002f64: DUP3 00002f65: DUP3 00002f66: PUSH2 0x478b 00002f69: JUMP 00002f6a: JUMPDEST 00002f6b: SWAP2 00002f6c: DUP2 00002f6d: ISZERO 00002f6e: PUSH2 0x2fbc 00002f71: JUMPI 00002f72: DUP2 00002f73: PUSH2 0x2710 00002f76: GT 00002f77: ISZERO 00002f78: PUSH2 0x2fb5 00002f7b: JUMPI 00002f7c: PUSH32 0xbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e91 00002f9d: SWAP4 00002f9e: PUSH2 0x2710 00002fa1: SWAP2 00002fa2: MULMOD 00002fa3: SWAP1 00002fa4: DUP3 00002fa5: DUP3 00002fa6: GT 00002fa7: SWAP1 00002fa8: SUB 00002fa9: PUSH1 0xfc 00002fab: SHL 00002fac: SWAP2 00002fad: SUB 00002fae: PUSH1 0x04 00002fb0: SHR 00002fb1: OR 00002fb2: MUL 00002fb3: SWAP1 00002fb4: JUMP 00002fb5: JUMPDEST 00002fb6: PUSH1 0x11 00002fb8: PUSH2 0x479e 00002fbb: JUMP 00002fbc: JUMPDEST 00002fbd: POP 00002fbe: PUSH2 0x2710 00002fc1: SWAP3 00002fc2: POP 00002fc3: POP 00002fc4: DIV 00002fc5: SWAP1 00002fc6: JUMP 00002fc7: JUMPDEST 00002fc8: PUSH2 0x2fd1 00002fcb: DUP3 00002fcc: DUP3 00002fcd: PUSH2 0x478b 00002fd0: JUMP 00002fd1: JUMPDEST 00002fd2: SWAP2 00002fd3: DUP2 00002fd4: ISZERO 00002fd5: PUSH2 0x3028 00002fd8: JUMPI 00002fd9: DUP2 00002fda: PUSH8 0x0de0b6b3a7640000 00002fe3: GT 00002fe4: ISZERO 00002fe5: PUSH2 0x2fb5 00002fe8: JUMPI 00002fe9: PUSH32 0xaccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac10669 0000300a: SWAP4 0000300b: PUSH8 0x0de0b6b3a7640000 00003014: SWAP2 00003015: MULMOD 00003016: SWAP1 00003017: DUP3 00003018: DUP3 00003019: GT 0000301a: SWAP1 0000301b: SUB 0000301c: PUSH1 0xee 0000301e: SHL 0000301f: SWAP2 00003020: SUB 00003021: PUSH1 0x12 00003023: SHR 00003024: OR 00003025: MUL 00003026: SWAP1 00003027: JUMP 00003028: JUMPDEST 00003029: POP 0000302a: PUSH8 0x0de0b6b3a7640000 00003033: SWAP3 00003034: POP 00003035: POP 00003036: DIV 00003037: SWAP1 00003038: JUMP 00003039: JUMPDEST 0000303a: SWAP2 0000303b: PUSH2 0x3044 0000303e: DUP3 0000303f: DUP5 00003040: PUSH2 0x478b 00003043: JUMP 00003044: JUMPDEST 00003045: SWAP3 00003046: SWAP1 00003047: SWAP4 00003048: DUP5 00003049: ISZERO 0000304a: PUSH2 0x30b7 0000304d: JUMPI 0000304e: DUP5 0000304f: DUP4 00003050: GT 00003051: ISZERO 00003052: PUSH2 0x30aa 00003055: JUMPI 00003056: SWAP1 00003057: DUP3 00003058: SWAP2 00003059: MULMOD 0000305a: DUP2 0000305b: PUSH0 0000305c: SUB 0000305d: DUP3 0000305e: AND 0000305f: DUP1 00003060: SWAP3 00003061: DIV 00003062: PUSH1 0x02 00003064: DUP2 00003065: PUSH1 0x03 00003067: MUL 00003068: XOR 00003069: DUP1 0000306a: DUP3 0000306b: MUL 0000306c: PUSH1 0x02 0000306e: SUB 0000306f: MUL 00003070: DUP1 00003071: DUP3 00003072: MUL 00003073: PUSH1 0x02 00003075: SUB 00003076: MUL 00003077: DUP1 00003078: DUP3 00003079: MUL 0000307a: PUSH1 0x02 0000307c: SUB 0000307d: MUL 0000307e: DUP1 0000307f: DUP3 00003080: MUL 00003081: PUSH1 0x02 00003083: SUB 00003084: MUL 00003085: DUP1 00003086: DUP3 00003087: MUL 00003088: PUSH1 0x02 0000308a: SUB 0000308b: MUL 0000308c: DUP1 0000308d: SWAP2 0000308e: MUL 0000308f: PUSH1 0x02 00003091: SUB 00003092: MUL 00003093: SWAP4 00003094: PUSH1 0x01 00003096: DUP4 00003097: DUP1 00003098: PUSH0 00003099: SUB 0000309a: DIV 0000309b: ADD 0000309c: SWAP1 0000309d: DUP5 0000309e: DUP4 0000309f: GT 000030a0: SWAP1 000030a1: SUB 000030a2: MUL 000030a3: SWAP3 000030a4: SUB 000030a5: DIV 000030a6: OR 000030a7: MUL 000030a8: SWAP1 000030a9: JUMP 000030aa: JUMPDEST 000030ab: PUSH1 0x11 000030ad: PUSH1 0x03 000030af: DUP5 000030b0: ISZERO 000030b1: MUL 000030b2: XOR 000030b3: PUSH2 0x479e 000030b6: JUMP 000030b7: JUMPDEST 000030b8: POP 000030b9: POP 000030ba: SWAP1 000030bb: PUSH2 0x0836 000030be: SWAP3 000030bf: POP 000030c0: PUSH2 0x2e6d 000030c3: JUMP 000030c4: JUMPDEST 000030c5: PUSH2 0x30cc 000030c8: PUSH2 0x40be 000030cb: JUMP 000030cc: JUMPDEST 000030cd: ISZERO 000030ce: PUSH2 0x30d3 000030d1: JUMPI 000030d2: JUMP 000030d3: JUMPDEST 000030d4: PUSH4 0x0a62fbdb 000030d9: PUSH1 0xe1 000030db: SHL 000030dc: PUSH0 000030dd: MSTORE 000030de: PUSH1 0x04 000030e0: PUSH0 000030e1: REVERT 000030e2: JUMPDEST 000030e3: SWAP1 000030e4: DUP2 000030e5: PUSH1 0x60 000030e7: SWAP2 000030e8: SUB 000030e9: SLT 000030ea: PUSH2 0x0383 000030ed: JUMPI 000030ee: DUP1 000030ef: MLOAD 000030f0: SWAP2 000030f1: PUSH2 0x0836 000030f4: PUSH1 0x40 000030f6: PUSH1 0x20 000030f8: DUP5 000030f9: ADD 000030fa: MLOAD 000030fb: SWAP4 000030fc: ADD 000030fd: PUSH2 0x292d 00003100: JUMP 00003101: JUMPDEST 00003102: DUP2 00003103: DUP4 00003104: MSTORE 00003105: SWAP1 00003106: SWAP2 00003107: PUSH1 0x01 00003109: PUSH1 0x01 0000310b: PUSH1 0xfb 0000310d: SHL 0000310e: SUB 0000310f: DUP4 00003110: GT 00003111: PUSH2 0x0383 00003114: JUMPI 00003115: PUSH1 0x20 00003117: SWAP3 00003118: PUSH1 0x05 0000311a: SHL 0000311b: DUP1 0000311c: SWAP3 0000311d: DUP5 0000311e: DUP4 0000311f: ADD 00003120: CALLDATACOPY 00003121: ADD 00003122: ADD 00003123: SWAP1 00003124: JUMP 00003125: JUMPDEST 00003126: SWAP1 00003127: PUSH1 0x20 00003129: DUP3 0000312a: MSTORE 0000312b: DUP1 0000312c: CALLDATALOAD 0000312d: PUSH1 0x20 0000312f: DUP4 00003130: ADD 00003131: MSTORE 00003132: PUSH1 0x20 00003134: DUP2 00003135: ADD 00003136: CALLDATALOAD 00003137: DUP1 00003138: PUSH1 0x13 0000313a: SIGNEXTEND 0000313b: DUP1 0000313c: SWAP2 0000313d: SUB 0000313e: PUSH2 0x0383 00003141: JUMPI 00003142: PUSH1 0x40 00003144: DUP4 00003145: ADD 00003146: MSTORE 00003147: PUSH1 0x40 00003149: DUP2 0000314a: ADD 0000314b: CALLDATALOAD 0000314c: PUSH2 0x3154 0000314f: DUP2 00003150: PUSH2 0x0372 00003153: JUMP 00003154: JUMPDEST 00003155: PUSH1 0x01 00003157: PUSH1 0x01 00003159: PUSH1 0xa0 0000315b: SHL 0000315c: SUB 0000315d: AND 0000315e: PUSH1 0x60 00003160: DUP4 00003161: DUP2 00003162: ADD 00003163: SWAP2 00003164: SWAP1 00003165: SWAP2 00003166: MSTORE 00003167: DUP2 00003168: ADD 00003169: CALLDATALOAD 0000316a: CALLDATASIZE 0000316b: DUP3 0000316c: SWAP1 0000316d: SUB 0000316e: PUSH1 0x1e 00003170: NOT 00003171: ADD 00003172: DUP2 00003173: SLT 00003174: ISZERO 00003175: PUSH2 0x0383 00003178: JUMPI 00003179: ADD 0000317a: PUSH1 0x20 0000317c: DUP2 0000317d: CALLDATALOAD 0000317e: SWAP2 0000317f: ADD 00003180: SWAP1 00003181: PUSH1 0x01 00003183: PUSH1 0x01 00003185: PUSH1 0x40 00003187: SHL 00003188: SUB 00003189: DUP2 0000318a: GT 0000318b: PUSH2 0x0383 0000318e: JUMPI 0000318f: DUP1 00003190: PUSH1 0x05 00003192: SHL 00003193: CALLDATASIZE 00003194: SUB 00003195: DUP3 00003196: SGT 00003197: PUSH2 0x0383 0000319a: JUMPI 0000319b: PUSH1 0xa0 0000319d: DUP4 0000319e: PUSH1 0x80 000031a0: DUP1 000031a1: PUSH2 0x0836 000031a4: SWAP7 000031a5: ADD 000031a6: MSTORE 000031a7: ADD 000031a8: SWAP2 000031a9: PUSH2 0x3101 000031ac: JUMP 000031ad: JUMPDEST 000031ae: SWAP1 000031af: PUSH1 0x60 000031b1: PUSH2 0x31ce 000031b4: SWAP3 000031b5: PUSH1 0x40 000031b7: MLOAD 000031b8: DUP1 000031b9: SWAP5 000031ba: DUP2 000031bb: SWAP3 000031bc: PUSH4 0x25f56f11 000031c1: PUSH1 0xe0 000031c3: SHL 000031c4: DUP4 000031c5: MSTORE 000031c6: PUSH1 0x04 000031c8: DUP4 000031c9: ADD 000031ca: PUSH2 0x3125 000031cd: JUMP 000031ce: JUMPDEST 000031cf: SUB 000031d0: DUP2 000031d1: PUSH0 000031d2: PUSH32 0x0000000000000000000000006b5815467da09daa7dc83db21c9239d98bb487b5 000031f3: PUSH1 0x01 000031f5: PUSH1 0x01 000031f7: PUSH1 0xa0 000031f9: SHL 000031fa: SUB 000031fb: AND 000031fc: GAS 000031fd: CALL 000031fe: SWAP1 000031ff: DUP2 00003200: ISZERO 00003201: PUSH2 0x06ed 00003204: JUMPI 00003205: PUSH0 00003206: SWAP3 00003207: PUSH0 00003208: SWAP1 00003209: PUSH0 0000320a: SWAP4 0000320b: PUSH2 0x3307 0000320e: JUMPI 0000320f: JUMPDEST 00003210: POP 00003211: DUP3 00003212: DUP5 00003213: DUP2 00003214: ISZERO 00003215: PUSH2 0x3300 00003218: JUMPI 00003219: POP 0000321a: PUSH1 0x01 0000321c: PUSH1 0x01 0000321e: PUSH1 0xa0 00003220: SHL 00003221: SUB 00003222: SWAP1 00003223: POP 00003224: PUSH2 0x322b 00003227: PUSH2 0x26bc 0000322a: JUMP 0000322b: JUMPDEST 0000322c: AND 0000322d: PUSH32 0x00000000000000000000000048319f97e5da1233c21c48b80097c0fb7a20ff86 0000324e: PUSH1 0x01 00003250: PUSH1 0x01 00003252: PUSH1 0xa0 00003254: SHL 00003255: SUB 00003256: AND 00003257: DUP2 00003258: SUB 00003259: PUSH2 0x32aa 0000325c: JUMPI 0000325d: DUP2 0000325e: PUSH2 0x3266 00003261: JUMPI 00003262: JUMPDEST 00003263: POP 00003264: POP 00003265: JUMP 00003266: JUMPDEST 00003267: DUP1 00003268: EXTCODESIZE 00003269: ISZERO 0000326a: PUSH2 0x0383 0000326d: JUMPI 0000326e: PUSH1 0x40 00003270: MLOAD 00003271: PUSH4 0x6ee31931 00003276: PUSH1 0xe1 00003278: SHL 00003279: DUP2 0000327a: MSTORE 0000327b: PUSH1 0x04 0000327d: DUP2 0000327e: ADD 0000327f: SWAP3 00003280: SWAP1 00003281: SWAP3 00003282: MSTORE 00003283: PUSH0 00003284: SWAP1 00003285: DUP3 00003286: SWAP1 00003287: PUSH1 0x24 00003289: SWAP1 0000328a: DUP3 0000328b: SWAP1 0000328c: DUP5 0000328d: SWAP1 0000328e: GAS 0000328f: CALL 00003290: DUP1 00003291: ISZERO 00003292: PUSH2 0x06ed 00003295: JUMPI 00003296: PUSH2 0x329c 00003299: JUMPI 0000329a: POP 0000329b: JUMP 0000329c: JUMPDEST 0000329d: DUP1 0000329e: PUSH2 0x0c42 000032a1: PUSH0 000032a2: PUSH2 0x107a 000032a5: SWAP4 000032a6: PUSH2 0x104a 000032a9: JUMP 000032aa: JUMPDEST 000032ab: PUSH0 000032ac: SWAP3 000032ad: SWAP5 000032ae: SWAP2 000032af: POP 000032b0: PUSH1 0x20 000032b2: SWAP1 000032b3: PUSH1 0x04 000032b5: PUSH1 0x40 000032b7: MLOAD 000032b8: DUP1 000032b9: SWAP6 000032ba: DUP2 000032bb: SWAP4 000032bc: PUSH4 0x4641257d 000032c1: PUSH1 0xe0 000032c3: SHL 000032c4: DUP4 000032c5: MSTORE 000032c6: GAS 000032c7: CALL 000032c8: SWAP1 000032c9: DUP2 000032ca: ISZERO 000032cb: PUSH2 0x06ed 000032ce: JUMPI 000032cf: PUSH2 0x2a2f 000032d2: SWAP3 000032d3: PUSH0 000032d4: SWAP3 000032d5: PUSH2 0x32df 000032d8: JUMPI 000032d9: JUMPDEST 000032da: POP 000032db: PUSH2 0x25e8 000032de: JUMP 000032df: JUMPDEST 000032e0: PUSH2 0x32f9 000032e3: SWAP2 000032e4: SWAP3 000032e5: POP 000032e6: PUSH1 0x20 000032e8: RETURNDATASIZE 000032e9: PUSH1 0x20 000032eb: GT 000032ec: PUSH2 0x06e6 000032ef: JUMPI 000032f0: PUSH2 0x06d8 000032f3: DUP2 000032f4: DUP4 000032f5: PUSH2 0x104a 000032f8: JUMP 000032f9: JUMPDEST 000032fa: SWAP1 000032fb: PUSH0 000032fc: PUSH2 0x32d9 000032ff: JUMP 00003300: JUMPDEST 00003301: SWAP5 00003302: POP 00003303: SWAP3 00003304: POP 00003305: POP 00003306: JUMP 00003307: JUMPDEST 00003308: SWAP2 00003309: SWAP4 0000330a: POP 0000330b: POP 0000330c: PUSH2 0x332d 0000330f: SWAP2 00003310: POP 00003311: PUSH1 0x60 00003313: RETURNDATASIZE 00003314: PUSH1 0x60 00003316: GT 00003317: PUSH2 0x3336 0000331a: JUMPI 0000331b: JUMPDEST 0000331c: PUSH2 0x3325 0000331f: DUP2 00003320: DUP4 00003321: PUSH2 0x104a 00003324: JUMP 00003325: JUMPDEST 00003326: DUP2 00003327: ADD 00003328: SWAP1 00003329: PUSH2 0x30e2 0000332c: JUMP 0000332d: JUMPDEST 0000332e: SWAP2 0000332f: SWAP3 00003330: SWAP1 00003331: PUSH0 00003332: PUSH2 0x320f 00003335: JUMP 00003336: JUMPDEST 00003337: POP 00003338: RETURNDATASIZE 00003339: PUSH2 0x331b 0000333c: JUMP 0000333d: JUMPDEST 0000333e: PUSH1 0x01 00003340: PUSH1 0xff 00003342: SHL 00003343: DUP2 00003344: EQ 00003345: PUSH2 0x07c6 00003348: JUMPI 00003349: PUSH0 0000334a: SUB 0000334b: SWAP1 0000334c: JUMP 0000334d: JUMPDEST 0000334e: DUP1 0000334f: ISZERO 00003350: PUSH2 0x262c 00003353: JUMPI 00003354: PUSH2 0x3362 00003357: PUSH2 0x1d3c 0000335a: PUSH1 0x98 0000335c: SLOAD 0000335d: PUSH1 0x80 0000335f: SHR 00003360: SWAP1 00003361: JUMP 00003362: JUMPDEST 00003363: PUSH0 00003364: DUP3 00003365: SLT 00003366: PUSH2 0x3450 00003369: JUMPI 0000336a: DUP2 0000336b: PUSH2 0x3373 0000336e: SWAP2 0000336f: PUSH2 0x25db 00003372: JUMP 00003373: JUMPDEST 00003374: SWAP1 00003375: PUSH2 0x3380 00003378: PUSH2 0x0b6d 0000337b: DUP4 0000337c: PUSH2 0x4305 0000337f: JUMP 00003380: JUMPDEST 00003381: PUSH2 0x33a0 00003384: PUSH1 0x65 00003386: SLOAD 00003387: SWAP2 00003388: PUSH2 0xffff 0000338b: PUSH2 0x3399 0000338e: DUP5 0000338f: PUSH2 0xffff 00003392: SWAP1 00003393: PUSH1 0xa0 00003395: SHR 00003396: AND 00003397: SWAP1 00003398: JUMP 00003399: JUMPDEST 0000339a: AND 0000339b: SWAP1 0000339c: PUSH2 0x2f60 0000339f: JUMP 000033a0: JUMPDEST 000033a1: DUP1 000033a2: ISZERO 000033a3: PUSH2 0x344b 000033a6: JUMPI 000033a7: PUSH32 0x555ee6b2ef9506d870f386c067e47d3689435330b012ad263d8cc35318686547 000033c8: SWAP3 000033c9: DUP2 000033ca: PUSH2 0x33de 000033cd: PUSH2 0x1d3c 000033d0: PUSH1 0x98 000033d2: SLOAD 000033d3: PUSH1 0x01 000033d5: PUSH1 0x01 000033d7: PUSH1 0x80 000033d9: SHL 000033da: SUB 000033db: AND 000033dc: SWAP1 000033dd: JUMP 000033de: JUMPDEST 000033df: SWAP2 000033e0: DUP3 000033e1: PUSH2 0x342a 000033e4: JUMPI 000033e5: POP 000033e6: SWAP3 000033e7: PUSH2 0x3425 000033ea: SWAP2 000033eb: POP 000033ec: PUSH1 0x01 000033ee: PUSH1 0x01 000033f0: PUSH1 0xa0 000033f2: SHL 000033f3: SUB 000033f4: AND 000033f5: JUMPDEST 000033f6: SWAP2 000033f7: PUSH2 0x3400 000033fa: DUP5 000033fb: DUP5 000033fc: PUSH2 0x4382 000033ff: JUMP 00003400: JUMPDEST 00003401: PUSH1 0x40 00003403: MLOAD 00003404: SWAP4 00003405: DUP5 00003406: SWAP4 00003407: DUP5 00003408: PUSH1 0x40 0000340a: SWAP2 0000340b: SWAP5 0000340c: SWAP4 0000340d: SWAP3 0000340e: PUSH1 0x60 00003410: DUP3 00003411: ADD 00003412: SWAP6 00003413: PUSH1 0x01 00003415: DUP1 00003416: PUSH1 0xa0 00003418: SHL 00003419: SUB 0000341a: AND 0000341b: DUP3 0000341c: MSTORE 0000341d: PUSH1 0x20 0000341f: DUP3 00003420: ADD 00003421: MSTORE 00003422: ADD 00003423: MSTORE 00003424: JUMP 00003425: JUMPDEST 00003426: SUB 00003427: SWAP1 00003428: LOG1 00003429: JUMP 0000342a: JUMPDEST 0000342b: PUSH2 0x3425 0000342e: SWAP3 0000342f: PUSH2 0x33f5 00003432: SWAP3 00003433: PUSH2 0x343e 00003436: SWAP3 00003437: SUB 00003438: SWAP1 00003439: DUP6 0000343a: PUSH2 0x3039 0000343d: JUMP 0000343e: JUMPDEST 0000343f: SWAP4 00003440: PUSH1 0x01 00003442: PUSH1 0x01 00003444: PUSH1 0xa0 00003446: SHL 00003447: SUB 00003448: AND 00003449: SWAP1 0000344a: JUMP 0000344b: JUMPDEST 0000344c: POP 0000344d: POP 0000344e: POP 0000344f: JUMP 00003450: JUMPDEST 00003451: SWAP1 00003452: PUSH2 0x345a 00003455: SWAP1 00003456: PUSH2 0x333d 00003459: JUMP 0000345a: JUMPDEST 0000345b: PUSH2 0x346f 0000345e: PUSH2 0x1d3c 00003461: PUSH1 0x9e 00003463: SLOAD 00003464: PUSH1 0x01 00003466: PUSH1 0x01 00003468: PUSH1 0x80 0000346a: SHL 0000346b: SUB 0000346c: AND 0000346d: SWAP1 0000346e: JUMP 0000346f: JUMPDEST 00003470: DUP1 00003471: PUSH2 0x348f 00003474: JUMPI 00003475: JUMPDEST 00003476: POP 00003477: DUP1 00003478: PUSH2 0x347f 0000347b: JUMPI 0000347c: POP 0000347d: POP 0000347e: JUMP 0000347f: JUMPDEST 00003480: PUSH2 0x2f27 00003483: PUSH2 0x0b6d 00003486: SWAP2 00003487: PUSH2 0x107a 0000348a: SWAP4 0000348b: PUSH2 0x2964 0000348e: JUMP 0000348f: JUMPDEST 00003490: SWAP1 00003491: PUSH2 0x34f8 00003494: PUSH32 0x3623a54e8078be0d90ecfbef82da6a31ff3e6be8aa1718e7a7f3d0d33ff1d32a 000034b5: SWAP2 000034b6: PUSH2 0x1675 000034b9: PUSH2 0x34dc 000034bc: PUSH2 0x2f27 000034bf: PUSH2 0x34d2 000034c2: PUSH2 0x34cb 000034c5: DUP10 000034c6: DUP10 000034c7: PUSH2 0x25db 000034ca: JUMP 000034cb: JUMPDEST 000034cc: DUP9 000034cd: DUP7 000034ce: PUSH2 0x3039 000034d1: JUMP 000034d2: JUMPDEST 000034d3: DUP1 000034d4: DUP1 000034d5: SWAP6 000034d6: SUB 000034d7: SWAP8 000034d8: PUSH2 0x2964 000034db: JUMP 000034dc: JUMPDEST 000034dd: PUSH1 0x01 000034df: PUSH1 0x01 000034e1: PUSH1 0x80 000034e3: SHL 000034e4: SUB 000034e5: AND 000034e6: PUSH1 0x01 000034e8: PUSH1 0x01 000034ea: PUSH1 0x80 000034ec: SHL 000034ed: SUB 000034ee: NOT 000034ef: PUSH1 0x9e 000034f1: SLOAD 000034f2: AND 000034f3: OR 000034f4: PUSH1 0x9e 000034f6: SSTORE 000034f7: JUMP 000034f8: JUMPDEST 000034f9: SUB 000034fa: SWAP1 000034fb: LOG1 000034fc: PUSH0 000034fd: PUSH2 0x3475 00003500: JUMP 00003501: JUMPDEST 00003502: PUSH2 0x3546 00003505: PUSH32 0x0000000000000000000000002296e122c1a20fca3cac3371357bdad3be0df079 00003526: PUSH1 0x01 00003528: PUSH1 0x01 0000352a: PUSH1 0xa0 0000352c: SHL 0000352d: SUB 0000352e: AND 0000352f: BALANCE 00003530: SELFBALANCE 00003531: ADD 00003532: PUSH2 0x3540 00003535: PUSH2 0x1d3c 00003538: PUSH1 0x99 0000353a: SLOAD 0000353b: PUSH1 0x80 0000353d: SHR 0000353e: SWAP1 0000353f: JUMP 00003540: JUMPDEST 00003541: SWAP1 00003542: PUSH2 0x2964 00003545: JUMP 00003546: JUMPDEST 00003547: SWAP1 00003548: DUP2 00003549: ISZERO 0000354a: PUSH2 0x3722 0000354d: JUMPI 0000354e: PUSH1 0x9e 00003550: SLOAD 00003551: PUSH2 0x3562 00003554: PUSH1 0x01 00003556: PUSH1 0x01 00003558: PUSH1 0x80 0000355a: SHL 0000355b: SUB 0000355c: DUP3 0000355d: AND 0000355e: PUSH2 0x1d3c 00003561: JUMP 00003562: JUMPDEST 00003563: SWAP1 00003564: DUP2 00003565: PUSH2 0x368e 00003568: JUMPI 00003569: JUMPDEST 0000356a: POP 0000356b: POP 0000356c: PUSH2 0x3580 0000356f: PUSH2 0x1d3c 00003572: PUSH1 0x99 00003574: SLOAD 00003575: PUSH1 0x01 00003577: PUSH1 0x01 00003579: PUSH1 0x80 0000357b: SHL 0000357c: SUB 0000357d: AND 0000357e: SWAP1 0000357f: JUMP 00003580: JUMPDEST 00003581: SWAP2 00003582: DUP3 00003583: ISZERO 00003584: DUP1 00003585: ISZERO 00003586: PUSH2 0x3686 00003589: JUMPI 0000358a: JUMPDEST 0000358b: PUSH2 0x3680 0000358e: JUMPI 0000358f: PUSH2 0x359b 00003592: SWAP1 00003593: PUSH2 0x21ef 00003596: DUP5 00003597: PUSH2 0x2597 0000359a: JUMP 0000359b: JUMPDEST 0000359c: DUP1 0000359d: ISZERO 0000359e: PUSH2 0x3680 000035a1: JUMPI 000035a2: PUSH2 0x35aa 000035a5: DUP2 000035a6: PUSH2 0x45b9 000035a9: JUMP 000035aa: JUMPDEST 000035ab: SWAP3 000035ac: DUP4 000035ad: ISZERO 000035ae: PUSH2 0x3679 000035b1: JUMPI 000035b2: PUSH2 0x0b62 000035b5: PUSH2 0x107a 000035b8: SWAP3 000035b9: PUSH2 0x35e7 000035bc: PUSH2 0x35cb 000035bf: PUSH2 0x2f27 000035c2: DUP9 000035c3: PUSH2 0x0b6d 000035c6: SWAP7 000035c7: PUSH2 0x2964 000035ca: JUMP 000035cb: JUMPDEST 000035cc: PUSH1 0x01 000035ce: PUSH1 0x01 000035d0: PUSH1 0x80 000035d2: SHL 000035d3: SUB 000035d4: AND 000035d5: PUSH1 0x01 000035d7: PUSH1 0x01 000035d9: PUSH1 0x80 000035db: SHL 000035dc: SUB 000035dd: NOT 000035de: PUSH1 0x99 000035e0: SLOAD 000035e1: AND 000035e2: OR 000035e3: PUSH1 0x99 000035e5: SSTORE 000035e6: JUMP 000035e7: JUMPDEST 000035e8: PUSH2 0x3601 000035eb: PUSH2 0x1b77 000035ee: PUSH2 0x35f6 000035f1: DUP4 000035f2: PUSH2 0x4305 000035f5: JUMP 000035f6: JUMPDEST 000035f7: PUSH1 0x99 000035f9: SLOAD 000035fa: PUSH1 0x80 000035fc: SHR 000035fd: PUSH2 0x2dd4 00003600: JUMP 00003601: JUMPDEST 00003602: PUSH2 0x360b 00003605: DUP2 00003606: DUP8 00003607: PUSH2 0x4802 0000360a: JUMP 0000360b: JUMPDEST 0000360c: PUSH1 0x40 0000360e: DUP1 0000360f: MLOAD 00003610: DUP8 00003611: DUP2 00003612: MSTORE 00003613: PUSH1 0x20 00003615: DUP2 00003616: ADD 00003617: DUP4 00003618: SWAP1 00003619: MSTORE 0000361a: PUSH32 0x624ea167e477f9d39f7f4094b9dfe2e6346eb4a7aada54338db51abd554c4b9f 0000363b: SWAP2 0000363c: SWAP1 0000363d: LOG1 0000363e: PUSH2 0x2f27 00003641: PUSH2 0x365d 00003644: PUSH2 0x364c 00003647: DUP9 00003648: PUSH2 0x4305 0000364b: JUMP 0000364c: JUMPDEST 0000364d: PUSH1 0x98 0000364f: SLOAD 00003650: PUSH1 0x01 00003652: PUSH1 0x01 00003654: PUSH1 0x80 00003656: SHL 00003657: SUB 00003658: AND 00003659: PUSH2 0x2545 0000365c: JUMP 0000365d: JUMPDEST 0000365e: PUSH1 0x01 00003660: PUSH1 0x01 00003662: PUSH1 0x80 00003664: SHL 00003665: SUB 00003666: AND 00003667: PUSH1 0x01 00003669: PUSH1 0x01 0000366b: PUSH1 0x80 0000366d: SHL 0000366e: SUB 0000366f: NOT 00003670: PUSH1 0x98 00003672: SLOAD 00003673: AND 00003674: OR 00003675: PUSH1 0x98 00003677: SSTORE 00003678: JUMP 00003679: JUMPDEST 0000367a: POP 0000367b: PUSH0 0000367c: SWAP3 0000367d: POP 0000367e: POP 0000367f: JUMP 00003680: JUMPDEST 00003681: POP 00003682: PUSH0 00003683: SWAP2 00003684: POP 00003685: JUMP 00003686: JUMPDEST 00003687: POP 00003688: DUP1 00003689: ISZERO 0000368a: PUSH2 0x358a 0000368d: JUMP 0000368e: JUMPDEST 0000368f: DUP2 00003690: DUP5 00003691: SWAP3 00003692: SWAP5 00003693: LT 00003694: PUSH2 0x3679 00003697: JUMPI 00003698: PUSH2 0x35f6 0000369b: DUP5 0000369c: PUSH2 0x36f2 0000369f: SWAP4 000036a0: PUSH32 0x624ea167e477f9d39f7f4094b9dfe2e6346eb4a7aada54338db51abd554c4b9f 000036c1: DUP3 000036c2: PUSH2 0x36d1 000036c5: PUSH2 0x1d3c 000036c8: PUSH2 0x1b77 000036cb: SWAP8 000036cc: PUSH1 0x80 000036ce: SHR 000036cf: SWAP1 000036d0: JUMP 000036d1: JUMPDEST 000036d2: PUSH2 0x36db 000036d5: DUP3 000036d6: DUP3 000036d7: PUSH2 0x4802 000036da: JUMP 000036db: JUMPDEST 000036dc: PUSH1 0x40 000036de: DUP1 000036df: MLOAD 000036e0: SWAP2 000036e1: DUP3 000036e2: MSTORE 000036e3: PUSH1 0x20 000036e5: DUP3 000036e6: ADD 000036e7: SWAP3 000036e8: SWAP1 000036e9: SWAP3 000036ea: MSTORE 000036eb: LOG1 000036ec: SUB 000036ed: SWAP5 000036ee: PUSH2 0x4305 000036f1: JUMP 000036f2: JUMPDEST 000036f3: PUSH2 0x3706 000036f6: PUSH1 0x01 000036f8: PUSH1 0x01 000036fa: PUSH1 0x80 000036fc: SHL 000036fd: SUB 000036fe: PUSH1 0x9e 00003700: SLOAD 00003701: AND 00003702: PUSH1 0x9e 00003704: SSTORE 00003705: JUMP 00003706: JUMPDEST 00003707: PUSH2 0x371b 0000370a: PUSH1 0x01 0000370c: PUSH1 0x01 0000370e: PUSH1 0x80 00003710: SHL 00003711: SUB 00003712: NOT 00003713: PUSH1 0x9e 00003715: SLOAD 00003716: AND 00003717: PUSH1 0x9e 00003719: SSTORE 0000371a: JUMP 0000371b: JUMPDEST 0000371c: PUSH0 0000371d: DUP1 0000371e: PUSH2 0x3569 00003721: JUMP 00003722: JUMPDEST 00003723: PUSH0 00003724: SWAP2 00003725: POP 00003726: JUMP 00003727: JUMPDEST 00003728: SWAP3 00003729: SWAP2 0000372a: PUSH2 0x3731 0000372d: PUSH2 0x30c4 00003730: JUMP 00003731: JUMPDEST 00003732: PUSH2 0x3739 00003735: PUSH2 0x41a2 00003738: JUMP 00003739: JUMPDEST 0000373a: PUSH1 0x01 0000373c: PUSH1 0x01 0000373e: PUSH1 0xa0 00003740: SHL 00003741: SUB 00003742: DUP5 00003743: AND 00003744: PUSH0 00003745: SWAP1 00003746: DUP2 00003747: MSTORE 00003748: PUSH2 0x0137 0000374b: PUSH1 0x20 0000374d: MSTORE 0000374e: PUSH1 0x40 00003750: SWAP1 00003751: KECCAK256 00003752: PUSH2 0x375a 00003755: SWAP1 00003756: PUSH2 0x250c 00003759: JUMP 0000375a: JUMPDEST 0000375b: SWAP1 0000375c: PUSH1 0x01 0000375e: PUSH1 0x01 00003760: PUSH1 0x80 00003762: SHL 00003763: SUB 00003764: PUSH2 0x3774 00003767: DUP4 00003768: MLOAD 00003769: PUSH1 0x01 0000376b: PUSH1 0x01 0000376d: PUSH1 0x80 0000376f: SHL 00003770: SUB 00003771: AND 00003772: SWAP1 00003773: JUMP 00003774: JUMPDEST 00003775: AND 00003776: ISZERO 00003777: PUSH2 0x3943 0000377a: JUMPI 0000377b: PUSH2 0x3783 0000377e: DUP3 0000377f: PUSH2 0x2e7c 00003782: JUMP 00003783: JUMPDEST 00003784: PUSH1 0x01 00003786: PUSH1 0x01 00003788: PUSH1 0xa0 0000378a: SHL 0000378b: SUB 0000378c: DUP6 0000378d: AND 0000378e: PUSH0 0000378f: SWAP1 00003790: DUP2 00003791: MSTORE 00003792: PUSH1 0x9c 00003794: PUSH1 0x20 00003796: MSTORE 00003797: PUSH1 0x40 00003799: SWAP1 0000379a: KECCAK256 0000379b: PUSH2 0x37ac 0000379e: SWAP1 0000379f: PUSH2 0x37a7 000037a2: SWAP1 000037a3: PUSH2 0x09d2 000037a6: JUMP 000037a7: JUMPDEST 000037a8: PUSH2 0x4493 000037ab: JUMP 000037ac: JUMPDEST 000037ad: SWAP5 000037ae: PUSH0 000037af: NOT 000037b0: DUP3 000037b1: EQ 000037b2: PUSH2 0x3914 000037b5: JUMPI 000037b6: JUMPDEST 000037b7: PUSH1 0x40 000037b9: MLOAD 000037ba: PUSH4 0x29460cc5 000037bf: PUSH1 0xe1 000037c1: SHL 000037c2: DUP2 000037c3: MSTORE 000037c4: PUSH1 0x01 000037c6: PUSH1 0x01 000037c8: PUSH1 0xa0 000037ca: SHL 000037cb: SUB 000037cc: DUP6 000037cd: AND 000037ce: PUSH1 0x04 000037d0: DUP3 000037d1: ADD 000037d2: MSTORE 000037d3: PUSH1 0x24 000037d5: DUP2 000037d6: ADD 000037d7: DUP4 000037d8: SWAP1 000037d9: MSTORE 000037da: SWAP2 000037db: PUSH1 0x20 000037dd: DUP4 000037de: DUP1 000037df: PUSH1 0x44 000037e1: DUP2 000037e2: ADD 000037e3: SUB 000037e4: DUP2 000037e5: PUSH0 000037e6: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306 00003807: PUSH1 0x01 00003809: PUSH1 0x01 0000380b: PUSH1 0xa0 0000380d: SHL 0000380e: SUB 0000380f: AND 00003810: GAS 00003811: CALL 00003812: SWAP3 00003813: DUP4 00003814: ISZERO 00003815: PUSH2 0x06ed 00003818: JUMPI 00003819: PUSH0 0000381a: SWAP4 0000381b: PUSH2 0x38f3 0000381e: JUMPI 0000381f: JUMPDEST 00003820: POP 00003821: DUP3 00003822: SWAP7 00003823: PUSH2 0x384e 00003826: PUSH2 0x3841 00003829: PUSH2 0x3831 0000382c: DUP5 0000382d: PUSH2 0x4305 00003830: JUMP 00003831: JUMPDEST 00003832: DUP8 00003833: MLOAD 00003834: PUSH1 0x01 00003836: PUSH1 0x01 00003838: PUSH1 0x80 0000383a: SHL 0000383b: SUB 0000383c: AND 0000383d: PUSH2 0x2dd4 00003840: JUMP 00003841: JUMPDEST 00003842: PUSH1 0x01 00003844: PUSH1 0x01 00003846: PUSH1 0x80 00003848: SHL 00003849: SUB 0000384a: AND 0000384b: DUP7 0000384c: MSTORE 0000384d: JUMP 0000384e: JUMPDEST 0000384f: PUSH2 0x3862 00003852: PUSH2 0x1d3c 00003855: DUP7 00003856: MLOAD 00003857: PUSH1 0x01 00003859: PUSH1 0x01 0000385b: PUSH1 0x80 0000385d: SHL 0000385e: SUB 0000385f: AND 00003860: SWAP1 00003861: JUMP 00003862: JUMPDEST 00003863: GT 00003864: PUSH2 0x38e4 00003867: JUMPI 00003868: PUSH1 0x01 0000386a: PUSH1 0x01 0000386c: PUSH1 0xa0 0000386e: SHL 0000386f: SUB 00003870: DUP3 00003871: AND 00003872: PUSH0 00003873: SWAP1 00003874: DUP2 00003875: MSTORE 00003876: PUSH2 0x0137 00003879: PUSH1 0x20 0000387b: MSTORE 0000387c: PUSH1 0x40 0000387e: DUP2 0000387f: KECCAK256 00003880: PUSH32 0xa16d97739893e1436c9753925fb5cef174c4f368699dc86cc8fdb0e6e60f8e58 000038a1: SWAP6 000038a2: PUSH2 0x38df 000038a5: SWAP4 000038a6: SWAP2 000038a7: PUSH2 0x38b0 000038aa: SWAP2 000038ab: SWAP1 000038ac: PUSH2 0x2565 000038af: JUMP 000038b0: JUMPDEST 000038b1: PUSH1 0x40 000038b3: DUP1 000038b4: MLOAD 000038b5: PUSH1 0x01 000038b7: PUSH1 0x01 000038b9: PUSH1 0xa0 000038bb: SHL 000038bc: SUB 000038bd: SWAP9 000038be: DUP10 000038bf: AND 000038c0: DUP2 000038c1: MSTORE 000038c2: PUSH1 0x20 000038c4: DUP2 000038c5: ADD 000038c6: SWAP7 000038c7: SWAP1 000038c8: SWAP7 000038c9: MSTORE 000038ca: DUP6 000038cb: ADD 000038cc: MSTORE 000038cd: DUP6 000038ce: AND 000038cf: PUSH1 0x60 000038d1: DUP5 000038d2: ADD 000038d3: MSTORE 000038d4: SWAP4 000038d5: AND 000038d6: SWAP3 000038d7: DUP2 000038d8: SWAP1 000038d9: PUSH1 0x80 000038db: DUP3 000038dc: ADD 000038dd: SWAP1 000038de: JUMP 000038df: JUMPDEST 000038e0: SUB 000038e1: SWAP1 000038e2: LOG2 000038e3: JUMP 000038e4: JUMPDEST 000038e5: PUSH4 0x3684c659 000038ea: PUSH1 0xe0 000038ec: SHL 000038ed: PUSH0 000038ee: MSTORE 000038ef: PUSH1 0x04 000038f1: PUSH0 000038f2: REVERT 000038f3: JUMPDEST 000038f4: PUSH2 0x390d 000038f7: SWAP2 000038f8: SWAP4 000038f9: POP 000038fa: PUSH1 0x20 000038fc: RETURNDATASIZE 000038fd: PUSH1 0x20 000038ff: GT 00003900: PUSH2 0x06e6 00003903: JUMPI 00003904: PUSH2 0x06d8 00003907: DUP2 00003908: DUP4 00003909: PUSH2 0x104a 0000390c: JUMP 0000390d: JUMPDEST 0000390e: SWAP2 0000390f: PUSH0 00003910: PUSH2 0x381f 00003913: JUMP 00003914: JUMPDEST 00003915: SWAP1 00003916: POP 00003917: PUSH2 0x392a 0000391a: PUSH2 0x1d3c 0000391d: DUP4 0000391e: MLOAD 0000391f: PUSH1 0x01 00003921: PUSH1 0x01 00003923: PUSH1 0x80 00003925: SHL 00003926: SUB 00003927: AND 00003928: SWAP1 00003929: JUMP 0000392a: JUMPDEST 0000392b: DUP1 0000392c: DUP7 0000392d: GT 0000392e: ISZERO 0000392f: PUSH2 0x393a 00003932: JUMPI 00003933: DUP6 00003934: SUB 00003935: SWAP1 00003936: PUSH2 0x37b6 00003939: JUMP 0000393a: JUMPDEST 0000393b: POP 0000393c: PUSH0 0000393d: SWAP5 0000393e: POP 0000393f: POP 00003940: POP 00003941: POP 00003942: JUMP 00003943: JUMPDEST 00003944: PUSH1 0x40 00003946: MLOAD 00003947: PUSH4 0x752a536d 0000394c: PUSH1 0xe0 0000394e: SHL 0000394f: DUP2 00003950: MSTORE 00003951: PUSH1 0x20 00003953: DUP2 00003954: PUSH1 0x04 00003956: DUP2 00003957: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306 00003978: PUSH1 0x01 0000397a: PUSH1 0x01 0000397c: PUSH1 0xa0 0000397e: SHL 0000397f: SUB 00003980: AND 00003981: GAS 00003982: STATICCALL 00003983: SWAP1 00003984: DUP2 00003985: ISZERO 00003986: PUSH2 0x06ed 00003989: JUMPI 0000398a: PUSH2 0x39ae 0000398d: SWAP2 0000398e: PUSH2 0x399e 00003991: SWAP2 00003992: PUSH0 00003993: SWAP2 00003994: PUSH2 0x39b3 00003997: JUMPI 00003998: JUMPDEST 00003999: POP 0000399a: PUSH2 0x4305 0000399d: JUMP 0000399e: JUMPDEST 0000399f: PUSH1 0x01 000039a1: PUSH1 0x01 000039a3: PUSH1 0x80 000039a5: SHL 000039a6: SUB 000039a7: AND 000039a8: PUSH1 0x20 000039aa: DUP5 000039ab: ADD 000039ac: MSTORE 000039ad: JUMP 000039ae: JUMPDEST 000039af: PUSH2 0x3783 000039b2: JUMP 000039b3: JUMPDEST 000039b4: PUSH2 0x39cc 000039b7: SWAP2 000039b8: POP 000039b9: PUSH1 0x20 000039bb: RETURNDATASIZE 000039bc: PUSH1 0x20 000039be: GT 000039bf: PUSH2 0x06e6 000039c2: JUMPI 000039c3: PUSH2 0x06d8 000039c6: DUP2 000039c7: DUP4 000039c8: PUSH2 0x104a 000039cb: JUMP 000039cc: JUMPDEST 000039cd: PUSH0 000039ce: PUSH2 0x3998 000039d1: JUMP 000039d2: JUMPDEST 000039d3: SWAP4 000039d4: SWAP3 000039d5: SWAP2 000039d6: SWAP1 000039d7: SWAP2 000039d8: PUSH2 0x39df 000039db: PUSH2 0x30c4 000039de: JUMP 000039df: JUMPDEST 000039e0: PUSH2 0x39e7 000039e3: PUSH2 0x41a2 000039e6: JUMP 000039e7: JUMPDEST 000039e8: PUSH1 0x01 000039ea: PUSH1 0x01 000039ec: PUSH1 0xa0 000039ee: SHL 000039ef: SUB 000039f0: DUP6 000039f1: AND 000039f2: PUSH0 000039f3: SWAP1 000039f4: DUP2 000039f5: MSTORE 000039f6: PUSH2 0x0137 000039f9: PUSH1 0x20 000039fb: MSTORE 000039fc: PUSH1 0x40 000039fe: SWAP1 000039ff: KECCAK256 00003a00: PUSH2 0x3a08 00003a03: SWAP1 00003a04: PUSH2 0x250c 00003a07: JUMP 00003a08: JUMPDEST 00003a09: SWAP5 00003a0a: PUSH1 0x01 00003a0c: PUSH1 0x01 00003a0e: PUSH1 0x80 00003a10: SHL 00003a11: SUB 00003a12: PUSH2 0x3a22 00003a15: DUP8 00003a16: MLOAD 00003a17: PUSH1 0x01 00003a19: PUSH1 0x01 00003a1b: PUSH1 0x80 00003a1d: SHL 00003a1e: SUB 00003a1f: AND 00003a20: SWAP1 00003a21: JUMP 00003a22: JUMPDEST 00003a23: AND 00003a24: ISZERO 00003a25: PUSH2 0x3ba5 00003a28: JUMPI 00003a29: PUSH2 0x3a31 00003a2c: DUP7 00003a2d: PUSH2 0x2e7c 00003a30: JUMP 00003a31: JUMPDEST 00003a32: PUSH1 0x01 00003a34: PUSH1 0x01 00003a36: PUSH1 0xa0 00003a38: SHL 00003a39: SUB 00003a3a: DUP2 00003a3b: AND 00003a3c: PUSH0 00003a3d: SWAP1 00003a3e: DUP2 00003a3f: MSTORE 00003a40: PUSH1 0x9c 00003a42: PUSH1 0x20 00003a44: MSTORE 00003a45: PUSH1 0x40 00003a47: SWAP1 00003a48: KECCAK256 00003a49: PUSH2 0x3a55 00003a4c: SWAP1 00003a4d: PUSH2 0x37a7 00003a50: SWAP1 00003a51: PUSH2 0x09d2 00003a54: JUMP 00003a55: JUMPDEST 00003a56: SWAP6 00003a57: PUSH0 00003a58: NOT 00003a59: DUP5 00003a5a: EQ 00003a5b: PUSH2 0x3b75 00003a5e: JUMPI 00003a5f: JUMPDEST 00003a60: PUSH1 0x40 00003a62: MLOAD 00003a63: PUSH4 0x29460cc5 00003a68: PUSH1 0xe1 00003a6a: SHL 00003a6b: DUP2 00003a6c: MSTORE 00003a6d: PUSH1 0x01 00003a6f: PUSH1 0x01 00003a71: PUSH1 0xa0 00003a73: SHL 00003a74: SUB 00003a75: DUP7 00003a76: AND 00003a77: PUSH1 0x04 00003a79: DUP3 00003a7a: ADD 00003a7b: MSTORE 00003a7c: PUSH1 0x24 00003a7e: DUP2 00003a7f: ADD 00003a80: DUP6 00003a81: SWAP1 00003a82: MSTORE 00003a83: SWAP3 00003a84: PUSH1 0x20 00003a86: DUP5 00003a87: DUP1 00003a88: PUSH1 0x44 00003a8a: DUP2 00003a8b: ADD 00003a8c: SUB 00003a8d: DUP2 00003a8e: PUSH0 00003a8f: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306 00003ab0: PUSH1 0x01 00003ab2: PUSH1 0x01 00003ab4: PUSH1 0xa0 00003ab6: SHL 00003ab7: SUB 00003ab8: AND 00003ab9: GAS 00003aba: CALL 00003abb: SWAP4 00003abc: DUP5 00003abd: ISZERO 00003abe: PUSH2 0x06ed 00003ac1: JUMPI 00003ac2: PUSH0 00003ac3: SWAP5 00003ac4: PUSH2 0x3b54 00003ac7: JUMPI 00003ac8: JUMPDEST 00003ac9: POP 00003aca: DUP4 00003acb: SWAP8 00003acc: PUSH2 0x3af7 00003acf: PUSH2 0x3aea 00003ad2: PUSH2 0x3ada 00003ad5: DUP9 00003ad6: PUSH2 0x4305 00003ad9: JUMP 00003ada: JUMPDEST 00003adb: DUP6 00003adc: MLOAD 00003add: PUSH1 0x01 00003adf: PUSH1 0x01 00003ae1: PUSH1 0x80 00003ae3: SHL 00003ae4: SUB 00003ae5: AND 00003ae6: PUSH2 0x2dd4 00003ae9: JUMP 00003aea: JUMPDEST 00003aeb: PUSH1 0x01 00003aed: PUSH1 0x01 00003aef: PUSH1 0x80 00003af1: SHL 00003af2: SUB 00003af3: AND 00003af4: DUP5 00003af5: MSTORE 00003af6: JUMP 00003af7: JUMPDEST 00003af8: PUSH2 0x3b0b 00003afb: PUSH2 0x1d3c 00003afe: DUP5 00003aff: MLOAD 00003b00: PUSH1 0x01 00003b02: PUSH1 0x01 00003b04: PUSH1 0x80 00003b06: SHL 00003b07: SUB 00003b08: AND 00003b09: SWAP1 00003b0a: JUMP 00003b0b: JUMPDEST 00003b0c: GT 00003b0d: PUSH2 0x38e4 00003b10: JUMPI 00003b11: PUSH32 0xa16d97739893e1436c9753925fb5cef174c4f368699dc86cc8fdb0e6e60f8e58 00003b32: SWAP5 00003b33: PUSH2 0x38b0 00003b36: PUSH2 0x38df 00003b39: SWAP4 00003b3a: PUSH2 0x0658 00003b3d: DUP7 00003b3e: PUSH1 0x01 00003b40: DUP1 00003b41: PUSH1 0xa0 00003b43: SHL 00003b44: SUB 00003b45: AND 00003b46: PUSH0 00003b47: MSTORE 00003b48: PUSH2 0x0137 00003b4b: PUSH1 0x20 00003b4d: MSTORE 00003b4e: PUSH1 0x40 00003b50: PUSH0 00003b51: KECCAK256 00003b52: SWAP1 00003b53: JUMP 00003b54: JUMPDEST 00003b55: PUSH2 0x3b6e 00003b58: SWAP2 00003b59: SWAP5 00003b5a: POP 00003b5b: PUSH1 0x20 00003b5d: RETURNDATASIZE 00003b5e: PUSH1 0x20 00003b60: GT 00003b61: PUSH2 0x06e6 00003b64: JUMPI 00003b65: PUSH2 0x06d8 00003b68: DUP2 00003b69: DUP4 00003b6a: PUSH2 0x104a 00003b6d: JUMP 00003b6e: JUMPDEST 00003b6f: SWAP3 00003b70: PUSH0 00003b71: PUSH2 0x3ac8 00003b74: JUMP 00003b75: JUMPDEST 00003b76: SWAP3 00003b77: POP 00003b78: PUSH2 0x3b8b 00003b7b: PUSH2 0x1d3c 00003b7e: DUP5 00003b7f: MLOAD 00003b80: PUSH1 0x01 00003b82: PUSH1 0x01 00003b84: PUSH1 0x80 00003b86: SHL 00003b87: SUB 00003b88: AND 00003b89: SWAP1 00003b8a: JUMP 00003b8b: JUMPDEST 00003b8c: DUP1 00003b8d: DUP8 00003b8e: GT 00003b8f: ISZERO 00003b90: PUSH2 0x3b9b 00003b93: JUMPI 00003b94: DUP7 00003b95: SUB 00003b96: SWAP3 00003b97: PUSH2 0x3a5f 00003b9a: JUMP 00003b9b: JUMPDEST 00003b9c: POP 00003b9d: PUSH0 00003b9e: SWAP6 00003b9f: POP 00003ba0: POP 00003ba1: POP 00003ba2: POP 00003ba3: POP 00003ba4: JUMP 00003ba5: JUMPDEST 00003ba6: PUSH1 0x40 00003ba8: MLOAD 00003ba9: PUSH4 0x752a536d 00003bae: PUSH1 0xe0 00003bb0: SHL 00003bb1: DUP2 00003bb2: MSTORE 00003bb3: PUSH1 0x20 00003bb5: DUP2 00003bb6: PUSH1 0x04 00003bb8: DUP2 00003bb9: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306 00003bda: PUSH1 0x01 00003bdc: PUSH1 0x01 00003bde: PUSH1 0xa0 00003be0: SHL 00003be1: SUB 00003be2: AND 00003be3: GAS 00003be4: STATICCALL 00003be5: SWAP1 00003be6: DUP2 00003be7: ISZERO 00003be8: PUSH2 0x06ed 00003beb: JUMPI 00003bec: PUSH2 0x3c0f 00003bef: SWAP2 00003bf0: PUSH2 0x3bff 00003bf3: SWAP2 00003bf4: PUSH0 00003bf5: SWAP2 00003bf6: PUSH2 0x39b3 00003bf9: JUMPI 00003bfa: POP 00003bfb: PUSH2 0x4305 00003bfe: JUMP 00003bff: JUMPDEST 00003c00: PUSH1 0x01 00003c02: PUSH1 0x01 00003c04: PUSH1 0x80 00003c06: SHL 00003c07: SUB 00003c08: AND 00003c09: PUSH1 0x20 00003c0b: DUP9 00003c0c: ADD 00003c0d: MSTORE 00003c0e: JUMP 00003c0f: JUMPDEST 00003c10: PUSH2 0x3a31 00003c13: JUMP 00003c14: JUMPDEST 00003c15: SWAP3 00003c16: SWAP1 00003c17: PUSH1 0x01 00003c19: PUSH1 0x01 00003c1b: PUSH1 0xa0 00003c1d: SHL 00003c1e: SUB 00003c1f: DUP2 00003c20: AND 00003c21: ISZERO 00003c22: PUSH2 0x0c4e 00003c25: JUMPI 00003c26: PUSH2 0x3c2d 00003c29: PUSH2 0x41a2 00003c2c: JUMP 00003c2d: JUMPDEST 00003c2e: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306 00003c4f: PUSH1 0x01 00003c51: PUSH1 0x01 00003c53: PUSH1 0xa0 00003c55: SHL 00003c56: SUB 00003c57: DUP2 00003c58: AND 00003c59: SWAP2 00003c5a: DUP3 00003c5b: EXTCODESIZE 00003c5c: ISZERO 00003c5d: PUSH2 0x0383 00003c60: JUMPI 00003c61: PUSH1 0x40 00003c63: MLOAD 00003c64: PUSH4 0x1d8557d7 00003c69: PUSH1 0xe0 00003c6b: SHL 00003c6c: DUP2 00003c6d: MSTORE 00003c6e: PUSH0 00003c6f: DUP2 00003c70: PUSH1 0x04 00003c72: DUP2 00003c73: DUP4 00003c74: DUP9 00003c75: GAS 00003c76: CALL 00003c77: DUP1 00003c78: ISZERO 00003c79: PUSH2 0x06ed 00003c7c: JUMPI 00003c7d: PUSH2 0x3e66 00003c80: JUMPI 00003c81: JUMPDEST 00003c82: POP 00003c83: PUSH1 0x01 00003c85: PUSH1 0x01 00003c87: PUSH1 0xa0 00003c89: SHL 00003c8a: SUB 00003c8b: DUP7 00003c8c: AND 00003c8d: PUSH0 00003c8e: SWAP1 00003c8f: DUP2 00003c90: MSTORE 00003c91: PUSH2 0x0137 00003c94: PUSH1 0x20 00003c96: MSTORE 00003c97: PUSH1 0x40 00003c99: SWAP1 00003c9a: KECCAK256 00003c9b: PUSH2 0x3ca3 00003c9e: SWAP1 00003c9f: PUSH2 0x250c 00003ca2: JUMP 00003ca3: JUMPDEST 00003ca4: SWAP5 00003ca5: PUSH1 0x01 00003ca7: PUSH1 0x01 00003ca9: PUSH1 0x80 00003cab: SHL 00003cac: SUB 00003cad: PUSH2 0x3cbd 00003cb0: DUP8 00003cb1: MLOAD 00003cb2: PUSH1 0x01 00003cb4: PUSH1 0x01 00003cb6: PUSH1 0x80 00003cb8: SHL 00003cb9: SUB 00003cba: AND 00003cbb: SWAP1 00003cbc: JUMP 00003cbd: JUMPDEST 00003cbe: AND 00003cbf: ISZERO 00003cc0: PUSH2 0x06af 00003cc3: JUMPI 00003cc4: PUSH2 0x3ccc 00003cc7: DUP7 00003cc8: PUSH2 0x2e7c 00003ccb: JUMP 00003ccc: JUMPDEST 00003ccd: PUSH2 0x3ce2 00003cd0: PUSH1 0x20 00003cd2: PUSH2 0x0973 00003cd5: DUP9 00003cd6: MLOAD 00003cd7: PUSH1 0x01 00003cd9: PUSH1 0x01 00003cdb: PUSH1 0x80 00003cdd: SHL 00003cde: SUB 00003cdf: AND 00003ce0: SWAP1 00003ce1: JUMP 00003ce2: JUMPDEST 00003ce3: SUB 00003ce4: DUP2 00003ce5: DUP9 00003ce6: GAS 00003ce7: STATICCALL 00003ce8: DUP1 00003ce9: ISZERO 00003cea: PUSH2 0x06ed 00003ced: JUMPI 00003cee: PUSH2 0x3d4b 00003cf1: SWAP5 00003cf2: PUSH1 0x20 00003cf4: SWAP3 00003cf5: PUSH0 00003cf6: SWAP3 00003cf7: PUSH2 0x3e47 00003cfa: JUMPI 00003cfb: JUMPDEST 00003cfc: POP 00003cfd: PUSH1 0x01 00003cff: PUSH1 0x01 00003d01: PUSH1 0xa0 00003d03: SHL 00003d04: SUB 00003d05: DUP11 00003d06: AND 00003d07: PUSH0 00003d08: SWAP1 00003d09: DUP2 00003d0a: MSTORE 00003d0b: PUSH1 0x9c 00003d0d: PUSH1 0x20 00003d0f: MSTORE 00003d10: PUSH1 0x40 00003d12: SWAP1 00003d13: KECCAK256 00003d14: PUSH2 0x3d1c 00003d17: SWAP1 00003d18: PUSH2 0x09d2 00003d1b: JUMP 00003d1c: JUMPDEST 00003d1d: PUSH2 0x3d24 00003d20: PUSH2 0x2654 00003d23: JUMP 00003d24: JUMPDEST 00003d25: SWAP1 00003d26: PUSH2 0x3d2d 00003d29: PUSH2 0x106b 00003d2c: JUMP 00003d2d: JUMPDEST 00003d2e: SWAP4 00003d2f: DUP5 00003d30: MSTORE 00003d31: DUP5 00003d32: DUP5 00003d33: ADD 00003d34: MSTORE 00003d35: PUSH1 0x40 00003d37: DUP4 00003d38: ADD 00003d39: DUP6 00003d3a: SWAP1 00003d3b: MSTORE 00003d3c: PUSH1 0x60 00003d3e: DUP4 00003d3f: ADD 00003d40: MSTORE 00003d41: PUSH0 00003d42: PUSH1 0x80 00003d44: DUP4 00003d45: ADD 00003d46: MSTORE 00003d47: PUSH2 0x0a04 00003d4a: JUMP 00003d4b: JUMPDEST 00003d4c: SUB 00003d4d: DUP2 00003d4e: PUSH20 0xb3ce222b28fda660c1375246a179d2acce4a0f74 00003d63: GAS 00003d64: DELEGATECALL 00003d65: SWAP3 00003d66: DUP4 00003d67: ISZERO 00003d68: PUSH2 0x06ed 00003d6b: JUMPI 00003d6c: PUSH0 00003d6d: SWAP4 00003d6e: PUSH2 0x3e26 00003d71: JUMPI 00003d72: JUMPDEST 00003d73: POP 00003d74: PUSH1 0x40 00003d76: MLOAD 00003d77: PUSH4 0x3b9e9f01 00003d7c: PUSH1 0xe2 00003d7e: SHL 00003d7f: DUP2 00003d80: MSTORE 00003d81: CALLER 00003d82: PUSH1 0x04 00003d84: DUP3 00003d85: ADD 00003d86: MSTORE 00003d87: PUSH1 0x24 00003d89: DUP2 00003d8a: ADD 00003d8b: DUP3 00003d8c: SWAP1 00003d8d: MSTORE 00003d8e: SWAP3 00003d8f: SWAP6 00003d90: SWAP3 00003d91: SWAP4 00003d92: DUP7 00003d93: SWAP4 00003d94: SWAP1 00003d95: PUSH1 0x20 00003d97: SWAP1 00003d98: DUP7 00003d99: SWAP1 00003d9a: PUSH1 0x44 00003d9c: SWAP1 00003d9d: DUP3 00003d9e: SWAP1 00003d9f: PUSH0 00003da0: SWAP1 00003da1: GAS 00003da2: CALL 00003da3: SWAP2 00003da4: DUP3 00003da5: ISZERO 00003da6: PUSH2 0x06ed 00003da9: JUMPI 00003daa: PUSH2 0x0637 00003dad: PUSH2 0x0b19 00003db0: PUSH2 0x3dc5 00003db3: SWAP3 00003db4: PUSH2 0x107a 00003db7: SWAP9 00003db8: PUSH2 0x3de2 00003dbb: SWAP7 00003dbc: PUSH2 0x3e09 00003dbf: JUMPI 00003dc0: POP 00003dc1: PUSH2 0x4305 00003dc4: JUMP 00003dc5: JUMPDEST 00003dc6: PUSH1 0x01 00003dc8: PUSH1 0x01 00003dca: PUSH1 0xa0 00003dcc: SHL 00003dcd: SUB 00003dce: DUP9 00003dcf: AND 00003dd0: PUSH0 00003dd1: SWAP1 00003dd2: DUP2 00003dd3: MSTORE 00003dd4: PUSH2 0x0137 00003dd7: PUSH1 0x20 00003dd9: MSTORE 00003dda: PUSH1 0x40 00003ddc: SWAP1 00003ddd: KECCAK256 00003dde: PUSH2 0x2565 00003de1: JUMP 00003de2: JUMPDEST 00003de3: PUSH2 0x3e04 00003de6: PUSH2 0x3dee 00003de9: DUP4 00003dea: PUSH2 0x45b9 00003ded: JUMP 00003dee: JUMPDEST 00003def: DUP1 00003df0: SWAP8 00003df1: PUSH2 0x3dff 00003df4: PUSH2 0x0b6d 00003df7: PUSH2 0x0b62 00003dfa: DUP8 00003dfb: PUSH2 0x4305 00003dfe: JUMP 00003dff: JUMPDEST 00003e00: PUSH2 0x48bb 00003e03: JUMP 00003e04: JUMPDEST 00003e05: PUSH2 0x412d 00003e08: JUMP 00003e09: JUMPDEST 00003e0a: PUSH2 0x3e21 00003e0d: SWAP1 00003e0e: PUSH1 0x20 00003e10: RETURNDATASIZE 00003e11: PUSH1 0x20 00003e13: GT 00003e14: PUSH2 0x06e6 00003e17: JUMPI 00003e18: PUSH2 0x06d8 00003e1b: DUP2 00003e1c: DUP4 00003e1d: PUSH2 0x104a 00003e20: JUMP 00003e21: JUMPDEST 00003e22: PUSH2 0x3998 00003e25: JUMP 00003e26: JUMPDEST 00003e27: PUSH2 0x3e40 00003e2a: SWAP2 00003e2b: SWAP4 00003e2c: POP 00003e2d: PUSH1 0x20 00003e2f: RETURNDATASIZE 00003e30: PUSH1 0x20 00003e32: GT 00003e33: PUSH2 0x06e6 00003e36: JUMPI 00003e37: PUSH2 0x06d8 00003e3a: DUP2 00003e3b: DUP4 00003e3c: PUSH2 0x104a 00003e3f: JUMP 00003e40: JUMPDEST 00003e41: SWAP2 00003e42: PUSH0 00003e43: PUSH2 0x3d72 00003e46: JUMP 00003e47: JUMPDEST 00003e48: PUSH2 0x3e5f 00003e4b: SWAP2 00003e4c: SWAP3 00003e4d: POP 00003e4e: DUP4 00003e4f: RETURNDATASIZE 00003e50: DUP6 00003e51: GT 00003e52: PUSH2 0x06e6 00003e55: JUMPI 00003e56: PUSH2 0x06d8 00003e59: DUP2 00003e5a: DUP4 00003e5b: PUSH2 0x104a 00003e5e: JUMP 00003e5f: JUMPDEST 00003e60: SWAP1 00003e61: PUSH0 00003e62: PUSH2 0x3cfb 00003e65: JUMP 00003e66: JUMPDEST 00003e67: DUP1 00003e68: PUSH2 0x0c42 00003e6b: PUSH0 00003e6c: PUSH2 0x3e74 00003e6f: SWAP4 00003e70: PUSH2 0x104a 00003e73: JUMP 00003e74: JUMPDEST 00003e75: PUSH0 00003e76: PUSH2 0x3c81 00003e79: JUMP 00003e7a: JUMPDEST 00003e7b: PUSH1 0x9a 00003e7d: SLOAD 00003e7e: DUP1 00003e7f: PUSH2 0x3e87 00003e82: JUMPI 00003e83: POP 00003e84: PUSH0 00003e85: SWAP1 00003e86: JUMP 00003e87: JUMPDEST 00003e88: PUSH1 0x9a 00003e8a: PUSH0 00003e8b: MSTORE 00003e8c: PUSH32 0x44da158ba27f9252712a74ff6a55c5d531f69609f1f6e7f17c4443a8e2089be3 00003ead: ADD 00003eae: SLOAD 00003eaf: PUSH1 0x01 00003eb1: PUSH1 0x01 00003eb3: PUSH1 0xa0 00003eb5: SHL 00003eb6: SUB 00003eb7: AND 00003eb8: PUSH2 0x0366 00003ebb: JUMP 00003ebc: JUMPDEST 00003ebd: DUP1 00003ebe: SLOAD 00003ebf: SWAP1 00003ec0: DUP2 00003ec1: PUSH2 0x3ecb 00003ec4: JUMPI 00003ec5: POP 00003ec6: PUSH0 00003ec7: SWAP2 00003ec8: SWAP1 00003ec9: POP 00003eca: JUMP 00003ecb: JUMPDEST 00003ecc: PUSH0 00003ecd: SWAP1 00003ece: DUP2 00003ecf: MSTORE 00003ed0: PUSH1 0x20 00003ed2: SWAP1 00003ed3: KECCAK256 00003ed4: ADD 00003ed5: PUSH0 00003ed6: NOT 00003ed7: ADD 00003ed8: SLOAD 00003ed9: PUSH1 0x01 00003edb: PUSH1 0x01 00003edd: PUSH1 0xa0 00003edf: SHL 00003ee0: SUB 00003ee1: AND 00003ee2: PUSH2 0x0366 00003ee5: JUMP 00003ee6: JUMPDEST 00003ee7: PUSH1 0x01 00003ee9: PUSH1 0x01 00003eeb: PUSH1 0xa0 00003eed: SHL 00003eee: SUB 00003eef: PUSH32 0x000000000000000000000000f113bfd6423291b1dd2ca76f897bff54456e7c88 00003f10: AND 00003f11: ADDRESS 00003f12: DUP2 00003f13: EQ 00003f14: SWAP1 00003f15: DUP2 00003f16: ISZERO 00003f17: PUSH2 0x3f22 00003f1a: JUMPI 00003f1b: JUMPDEST 00003f1c: POP 00003f1d: PUSH2 0x13ab 00003f20: JUMPI 00003f21: JUMP 00003f22: JUMPDEST 00003f23: PUSH0 00003f24: DUP1 00003f25: MLOAD 00003f26: PUSH1 0x20 00003f28: PUSH2 0x4e53 00003f2b: DUP4 00003f2c: CODECOPY 00003f2d: DUP2 00003f2e: MLOAD 00003f2f: SWAP2 00003f30: MSTORE 00003f31: SLOAD 00003f32: PUSH1 0x01 00003f34: PUSH1 0x01 00003f36: PUSH1 0xa0 00003f38: SHL 00003f39: SUB 00003f3a: AND 00003f3b: EQ 00003f3c: ISZERO 00003f3d: SWAP1 00003f3e: POP 00003f3f: PUSH0 00003f40: PUSH2 0x3f1b 00003f43: JUMP 00003f44: JUMPDEST 00003f45: PUSH1 0x02 00003f47: PUSH0 00003f48: DUP1 00003f49: MLOAD 00003f4a: PUSH1 0x20 00003f4c: PUSH2 0x4e73 00003f4f: DUP4 00003f50: CODECOPY 00003f51: DUP2 00003f52: MLOAD 00003f53: SWAP2 00003f54: MSTORE 00003f55: SLOAD 00003f56: EQ 00003f57: PUSH2 0x3f6d 00003f5a: JUMPI 00003f5b: PUSH1 0x02 00003f5d: PUSH0 00003f5e: DUP1 00003f5f: MLOAD 00003f60: PUSH1 0x20 00003f62: PUSH2 0x4e73 00003f65: DUP4 00003f66: CODECOPY 00003f67: DUP2 00003f68: MLOAD 00003f69: SWAP2 00003f6a: MSTORE 00003f6b: SSTORE 00003f6c: JUMP 00003f6d: JUMPDEST 00003f6e: PUSH4 0x3ee5aeb5 00003f73: PUSH1 0xe0 00003f75: SHL 00003f76: PUSH0 00003f77: MSTORE 00003f78: PUSH1 0x04 00003f7a: PUSH0 00003f7b: REVERT 00003f7c: JUMPDEST 00003f7d: SWAP6 00003f7e: SWAP4 00003f7f: SWAP2 00003f80: SWAP3 00003f81: PUSH2 0x3faf 00003f84: SWAP4 00003f85: PUSH2 0x0836 00003f88: SWAP9 00003f89: SWAP7 00003f8a: SWAP3 00003f8b: DUP9 00003f8c: MSTORE 00003f8d: PUSH1 0x20 00003f8f: DUP9 00003f90: ADD 00003f91: MSTORE 00003f92: PUSH1 0x01 00003f94: DUP1 00003f95: PUSH1 0xa0 00003f97: SHL 00003f98: SUB 00003f99: AND 00003f9a: PUSH1 0x40 00003f9c: DUP8 00003f9d: ADD 00003f9e: MSTORE 00003f9f: PUSH1 0xa0 00003fa1: PUSH1 0x60 00003fa3: DUP8 00003fa4: ADD 00003fa5: MSTORE 00003fa6: PUSH1 0xa0 00003fa8: DUP7 00003fa9: ADD 00003faa: SWAP2 00003fab: PUSH2 0x2895 00003fae: JUMP 00003faf: JUMPDEST 00003fb0: SWAP3 00003fb1: PUSH1 0x80 00003fb3: DUP2 00003fb4: DUP6 00003fb5: SUB 00003fb6: SWAP2 00003fb7: ADD 00003fb8: MSTORE 00003fb9: PUSH2 0x2895 00003fbc: JUMP 00003fbd: JUMPDEST 00003fbe: PUSH1 0xd2 00003fc0: SLOAD 00003fc1: PUSH1 0x01 00003fc3: PUSH1 0x01 00003fc5: PUSH1 0xa0 00003fc7: SHL 00003fc8: SUB 00003fc9: AND 00003fca: SWAP4 00003fcb: SWAP1 00003fcc: SWAP3 00003fcd: SWAP2 00003fce: DUP5 00003fcf: DUP1 00003fd0: ISZERO 00003fd1: DUP1 00003fd2: ISZERO 00003fd3: PUSH2 0x40b6 00003fd6: JUMPI 00003fd7: JUMPDEST 00003fd8: PUSH2 0x40ab 00003fdb: JUMPI 00003fdc: DUP7 00003fdd: ISZERO 00003fde: PUSH2 0x409f 00003fe1: JUMPI 00003fe2: POP 00003fe3: SWAP5 00003fe4: PUSH2 0x4034 00003fe7: SWAP2 00003fe8: PUSH1 0x20 00003fea: SWAP6 00003feb: SWAP7 00003fec: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 0000400d: CHAINID 0000400e: EQ 0000400f: PUSH0 00004010: EQ 00004011: PUSH2 0x4091 00004014: JUMPI 00004015: PUSH1 0xd3 00004017: SLOAD 00004018: SWAP6 00004019: JUMPDEST 0000401a: PUSH1 0x40 0000401c: MLOAD 0000401d: PUSH4 0x0b1192e1 00004022: PUSH1 0xe1 00004024: SHL 00004025: DUP2 00004026: MSTORE 00004027: SWAP9 00004028: DUP10 00004029: SWAP8 0000402a: DUP9 0000402b: SWAP8 0000402c: PUSH1 0x04 0000402e: DUP10 0000402f: ADD 00004030: PUSH2 0x3f7c 00004033: JUMP 00004034: JUMPDEST 00004035: SUB 00004036: DUP2 00004037: PUSH20 0x2319ace2793561520fb600da1c4b09a660a4adb5 0000404c: GAS 0000404d: DELEGATECALL 0000404e: SWAP1 0000404f: DUP2 00004050: ISZERO 00004051: PUSH2 0x06ed 00004054: JUMPI 00004055: PUSH0 00004056: SWAP2 00004057: PUSH2 0x4072 0000405a: JUMPI 0000405b: JUMPDEST 0000405c: POP 0000405d: DUP1 0000405e: PUSH2 0x4064 00004061: JUMPI 00004062: SWAP1 00004063: JUMP 00004064: JUMPDEST 00004065: PUSH2 0x0836 00004068: PUSH1 0x01 0000406a: PUSH1 0xd5 0000406c: SLOAD 0000406d: ADD 0000406e: PUSH1 0xd5 00004070: SSTORE 00004071: JUMP 00004072: JUMPDEST 00004073: PUSH2 0x408b 00004076: SWAP2 00004077: POP 00004078: PUSH1 0x20 0000407a: RETURNDATASIZE 0000407b: PUSH1 0x20 0000407d: GT 0000407e: PUSH2 0x124a 00004081: JUMPI 00004082: PUSH2 0x123c 00004085: DUP2 00004086: DUP4 00004087: PUSH2 0x104a 0000408a: JUMP 0000408b: JUMPDEST 0000408c: PUSH0 0000408d: PUSH2 0x405b 00004090: JUMP 00004091: JUMPDEST 00004092: PUSH2 0x4099 00004095: PUSH2 0x4a51 00004098: JUMP 00004099: JUMPDEST 0000409a: SWAP6 0000409b: PUSH2 0x4019 0000409e: JUMP 0000409f: JUMPDEST 000040a0: SWAP6 000040a1: POP 000040a2: POP 000040a3: POP 000040a4: POP 000040a5: POP 000040a6: POP 000040a7: CALLER 000040a8: EQ 000040a9: SWAP1 000040aa: JUMP 000040ab: JUMPDEST 000040ac: POP 000040ad: POP 000040ae: POP 000040af: POP 000040b0: POP 000040b1: POP 000040b2: POP 000040b3: PUSH0 000040b4: SWAP1 000040b5: JUMP 000040b6: JUMPDEST 000040b7: POP 000040b8: DUP2 000040b9: ISZERO 000040ba: PUSH2 0x3fd7 000040bd: JUMP 000040be: JUMPDEST 000040bf: PUSH1 0x40 000040c1: MLOAD 000040c2: PUSH4 0x0156a695 000040c7: PUSH1 0xe1 000040c9: SHL 000040ca: DUP2 000040cb: MSTORE 000040cc: ADDRESS 000040cd: PUSH1 0x04 000040cf: DUP3 000040d0: ADD 000040d1: MSTORE 000040d2: PUSH1 0x20 000040d4: DUP2 000040d5: PUSH1 0x24 000040d7: DUP2 000040d8: PUSH32 0x0000000000000000000000006b5815467da09daa7dc83db21c9239d98bb487b5 000040f9: PUSH1 0x01 000040fb: PUSH1 0x01 000040fd: PUSH1 0xa0 000040ff: SHL 00004100: SUB 00004101: AND 00004102: GAS 00004103: STATICCALL 00004104: SWAP1 00004105: DUP2 00004106: ISZERO 00004107: PUSH2 0x06ed 0000410a: JUMPI 0000410b: PUSH0 0000410c: SWAP2 0000410d: PUSH2 0x4114 00004110: JUMPI 00004111: POP 00004112: SWAP1 00004113: JUMP 00004114: JUMPDEST 00004115: PUSH2 0x0836 00004118: SWAP2 00004119: POP 0000411a: PUSH1 0x20 0000411c: RETURNDATASIZE 0000411d: PUSH1 0x20 0000411f: GT 00004120: PUSH2 0x124a 00004123: JUMPI 00004124: PUSH2 0x123c 00004127: DUP2 00004128: DUP4 00004129: PUSH2 0x104a 0000412c: JUMP 0000412d: JUMPDEST 0000412e: SELFBALANCE 0000412f: DUP3 00004130: GT 00004131: PUSH2 0x4195 00004134: JUMPI 00004135: JUMPDEST 00004136: PUSH2 0x413d 00004139: PUSH2 0x3f44 0000413c: JUMP 0000413d: JUMPDEST 0000413e: DUP2 0000413f: SELFBALANCE 00004140: LT 00004141: PUSH2 0x417e 00004144: JUMPI 00004145: PUSH0 00004146: SWAP2 00004147: DUP3 00004148: SWAP2 00004149: DUP3 0000414a: SWAP2 0000414b: DUP3 0000414c: SWAP2 0000414d: PUSH1 0x01 0000414f: PUSH1 0x01 00004151: PUSH1 0xa0 00004153: SHL 00004154: SUB 00004155: AND 00004156: GAS 00004157: CALL 00004158: PUSH2 0x415f 0000415b: PUSH2 0x4336 0000415e: JUMP 0000415f: JUMPDEST 00004160: SWAP1 00004161: ISZERO 00004162: PUSH2 0x4179 00004165: JUMPI 00004166: POP 00004167: PUSH1 0x01 00004169: PUSH0 0000416a: DUP1 0000416b: MLOAD 0000416c: PUSH1 0x20 0000416e: PUSH2 0x4e73 00004171: DUP4 00004172: CODECOPY 00004173: DUP2 00004174: MLOAD 00004175: SWAP2 00004176: MSTORE 00004177: SSTORE 00004178: JUMP 00004179: JUMPDEST 0000417a: PUSH2 0x4e34 0000417d: JUMP 0000417e: JUMPDEST 0000417f: POP 00004180: SELFBALANCE 00004181: PUSH4 0xcf479181 00004186: PUSH1 0xe0 00004188: SHL 00004189: PUSH0 0000418a: MSTORE 0000418b: PUSH1 0x04 0000418d: MSTORE 0000418e: PUSH1 0x24 00004190: MSTORE 00004191: PUSH1 0x44 00004193: PUSH0 00004194: REVERT 00004195: JUMPDEST 00004196: PUSH2 0x419d 00004199: PUSH2 0x4ab8 0000419c: JUMP 0000419d: JUMPDEST 0000419e: PUSH2 0x4135 000041a1: JUMP 000041a2: JUMPDEST 000041a3: PUSH1 0x40 000041a5: MLOAD 000041a6: PUSH4 0x3eb1acf7 000041ab: PUSH1 0xe1 000041ad: SHL 000041ae: DUP2 000041af: MSTORE 000041b0: ADDRESS 000041b1: PUSH1 0x04 000041b3: DUP3 000041b4: ADD 000041b5: MSTORE 000041b6: PUSH1 0x20 000041b8: DUP2 000041b9: PUSH1 0x24 000041bb: DUP2 000041bc: PUSH32 0x0000000000000000000000006b5815467da09daa7dc83db21c9239d98bb487b5 000041dd: PUSH1 0x01 000041df: PUSH1 0x01 000041e1: PUSH1 0xa0 000041e3: SHL 000041e4: SUB 000041e5: AND 000041e6: GAS 000041e7: STATICCALL 000041e8: SWAP1 000041e9: DUP2 000041ea: ISZERO 000041eb: PUSH2 0x06ed 000041ee: JUMPI 000041ef: PUSH0 000041f0: SWAP2 000041f1: PUSH2 0x420b 000041f4: JUMPI 000041f5: JUMPDEST 000041f6: POP 000041f7: PUSH2 0x41fc 000041fa: JUMPI 000041fb: JUMP 000041fc: JUMPDEST 000041fd: PUSH4 0xe7757151 00004202: PUSH1 0xe0 00004204: SHL 00004205: PUSH0 00004206: MSTORE 00004207: PUSH1 0x04 00004209: PUSH0 0000420a: REVERT 0000420b: JUMPDEST 0000420c: PUSH2 0x4224 0000420f: SWAP2 00004210: POP 00004211: PUSH1 0x20 00004213: RETURNDATASIZE 00004214: PUSH1 0x20 00004216: GT 00004217: PUSH2 0x124a 0000421a: JUMPI 0000421b: PUSH2 0x123c 0000421e: DUP2 0000421f: DUP4 00004220: PUSH2 0x104a 00004223: JUMP 00004224: JUMPDEST 00004225: PUSH0 00004226: PUSH2 0x41f5 00004229: JUMP 0000422a: JUMPDEST 0000422b: PUSH2 0x4232 0000422e: PUSH2 0x4ab8 00004231: JUMP 00004232: JUMPDEST 00004233: DUP1 00004234: MLOAD 00004235: PUSH2 0x423c 00004238: PUSH2 0x2654 0000423b: JUMP 0000423c: JUMPDEST 0000423d: PUSH0 0000423e: SWAP3 0000423f: PUSH32 0x00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa 00004260: PUSH1 0x01 00004262: PUSH1 0x01 00004264: PUSH1 0xa0 00004266: SHL 00004267: SUB 00004268: AND 00004269: SWAP2 0000426a: JUMPDEST 0000426b: DUP4 0000426c: DUP6 0000426d: LT 0000426e: PUSH2 0x4278 00004271: JUMPI 00004272: POP 00004273: POP 00004274: POP 00004275: POP 00004276: POP 00004277: JUMP 00004278: JUMPDEST 00004279: PUSH2 0x4282 0000427c: DUP6 0000427d: DUP4 0000427e: PUSH2 0x2d2d 00004281: JUMP 00004282: JUMPDEST 00004283: MLOAD 00004284: SWAP1 00004285: PUSH1 0x80 00004287: DUP3 00004288: ADD 00004289: SWAP1 0000428a: DUP2 0000428b: MLOAD 0000428c: SWAP3 0000428d: DUP1 0000428e: MLOAD 0000428f: SWAP1 00004290: PUSH1 0x40 00004292: DUP2 00004293: ADD 00004294: MLOAD 00004295: SWAP5 00004296: PUSH1 0x60 00004298: PUSH1 0x20 0000429a: DUP4 0000429b: ADD 0000429c: MLOAD 0000429d: SWAP3 0000429e: ADD 0000429f: MLOAD 000042a0: SWAP6 000042a1: DUP9 000042a2: EXTCODESIZE 000042a3: ISZERO 000042a4: PUSH2 0x0383 000042a7: JUMPI 000042a8: PUSH0 000042a9: SWAP4 000042aa: PUSH2 0x42c9 000042ad: PUSH1 0x40 000042af: MLOAD 000042b0: SWAP9 000042b1: DUP10 000042b2: SWAP6 000042b3: DUP7 000042b4: SWAP5 000042b5: DUP6 000042b6: SWAP5 000042b7: PUSH4 0x04512a23 000042bc: PUSH1 0xe3 000042be: SHL 000042bf: DUP7 000042c0: MSTORE 000042c1: PUSH1 0x04 000042c3: DUP7 000042c4: ADD 000042c5: PUSH2 0x4b30 000042c8: JUMP 000042c9: JUMPDEST 000042ca: SUB 000042cb: SWAP2 000042cc: DUP10 000042cd: GAS 000042ce: CALL 000042cf: SWAP2 000042d0: DUP3 000042d1: ISZERO 000042d2: PUSH2 0x06ed 000042d5: JUMPI 000042d6: PUSH1 0x01 000042d8: SWAP4 000042d9: PUSH2 0x42e9 000042dc: SWAP4 000042dd: PUSH2 0x42f1 000042e0: JUMPI 000042e1: JUMPDEST 000042e2: POP 000042e3: MLOAD 000042e4: SWAP1 000042e5: PUSH2 0x2964 000042e8: JUMP 000042e9: JUMPDEST 000042ea: SWAP5 000042eb: ADD 000042ec: SWAP4 000042ed: PUSH2 0x426a 000042f0: JUMP 000042f1: JUMPDEST 000042f2: DUP1 000042f3: PUSH2 0x0c42 000042f6: PUSH0 000042f7: PUSH2 0x42ff 000042fa: SWAP4 000042fb: PUSH2 0x104a 000042fe: JUMP 000042ff: JUMPDEST 00004300: PUSH0 00004301: PUSH2 0x42e1 00004304: JUMP 00004305: JUMPDEST 00004306: PUSH1 0x01 00004308: PUSH1 0x01 0000430a: PUSH1 0x80 0000430c: SHL 0000430d: SUB 0000430e: DUP2 0000430f: GT 00004310: PUSH2 0x431f 00004313: JUMPI 00004314: PUSH1 0x01 00004316: PUSH1 0x01 00004318: PUSH1 0x80 0000431a: SHL 0000431b: SUB 0000431c: AND 0000431d: SWAP1 0000431e: JUMP 0000431f: JUMPDEST 00004320: PUSH4 0x06dfcc65 00004325: PUSH1 0xe4 00004327: SHL 00004328: PUSH0 00004329: MSTORE 0000432a: PUSH1 0x80 0000432c: PUSH1 0x04 0000432e: MSTORE 0000432f: PUSH1 0x24 00004331: MSTORE 00004332: PUSH1 0x44 00004334: PUSH0 00004335: REVERT 00004336: JUMPDEST 00004337: RETURNDATASIZE 00004338: ISZERO 00004339: PUSH2 0x4360 0000433c: JUMPI 0000433d: RETURNDATASIZE 0000433e: SWAP1 0000433f: PUSH2 0x4347 00004342: DUP3 00004343: PUSH2 0x108b 00004346: JUMP 00004347: JUMPDEST 00004348: SWAP2 00004349: PUSH2 0x4355 0000434c: PUSH1 0x40 0000434e: MLOAD 0000434f: SWAP4 00004350: DUP5 00004351: PUSH2 0x104a 00004354: JUMP 00004355: JUMPDEST 00004356: DUP3 00004357: MSTORE 00004358: RETURNDATASIZE 00004359: PUSH0 0000435a: PUSH1 0x20 0000435c: DUP5 0000435d: ADD 0000435e: RETURNDATACOPY 0000435f: JUMP 00004360: JUMPDEST 00004361: PUSH1 0x60 00004363: SWAP1 00004364: JUMP 00004365: JUMPDEST 00004366: PUSH0 00004367: DUP1 00004368: PUSH2 0x0836 0000436b: SWAP4 0000436c: PUSH1 0x20 0000436e: DUP2 0000436f: MLOAD 00004370: SWAP2 00004371: ADD 00004372: DUP5 00004373: GAS 00004374: DELEGATECALL 00004375: PUSH2 0x437c 00004378: PUSH2 0x4336 0000437b: JUMP 0000437c: JUMPDEST 0000437d: SWAP2 0000437e: PUSH2 0x4d8a 00004381: JUMP 00004382: JUMPDEST 00004383: PUSH2 0x438b 00004386: DUP3 00004387: PUSH2 0x4305 0000438a: JUMP 0000438b: JUMPDEST 0000438c: PUSH1 0x01 0000438e: PUSH1 0x01 00004390: PUSH1 0x80 00004392: SHL 00004393: SUB 00004394: PUSH2 0x43a2 00004397: PUSH1 0x98 00004399: SLOAD 0000439a: SWAP3 0000439b: DUP3 0000439c: DUP5 0000439d: AND 0000439e: PUSH2 0x2dd4 000043a1: JUMP 000043a2: JUMPDEST 000043a3: AND 000043a4: SWAP1 000043a5: PUSH1 0x01 000043a7: PUSH1 0x01 000043a9: PUSH1 0x80 000043ab: SHL 000043ac: SUB 000043ad: NOT 000043ae: AND 000043af: OR 000043b0: PUSH1 0x98 000043b2: SSTORE 000043b3: PUSH1 0x01 000043b5: DUP1 000043b6: PUSH1 0xa0 000043b8: SHL 000043b9: SUB 000043ba: AND 000043bb: PUSH0 000043bc: MSTORE 000043bd: PUSH1 0x9c 000043bf: PUSH1 0x20 000043c1: MSTORE 000043c2: PUSH1 0x40 000043c4: PUSH0 000043c5: KECCAK256 000043c6: SWAP1 000043c7: DUP2 000043c8: SLOAD 000043c9: ADD 000043ca: SWAP1 000043cb: SSTORE 000043cc: JUMP 000043cd: JUMPDEST 000043ce: PUSH1 0x01 000043d0: PUSH1 0x01 000043d2: PUSH1 0xa0 000043d4: SHL 000043d5: SUB 000043d6: DUP2 000043d7: AND 000043d8: PUSH0 000043d9: SWAP1 000043da: DUP2 000043db: MSTORE 000043dc: PUSH1 0x9c 000043de: PUSH1 0x20 000043e0: MSTORE 000043e1: PUSH1 0x40 000043e3: SWAP1 000043e4: KECCAK256 000043e5: SLOAD 000043e6: PUSH2 0x43ee 000043e9: SWAP1 000043ea: PUSH2 0x2597 000043ed: JUMP 000043ee: JUMPDEST 000043ef: SWAP1 000043f0: DUP2 000043f1: ISZERO 000043f2: PUSH2 0x26b6 000043f5: JUMPI 000043f6: PUSH1 0x01 000043f8: PUSH1 0x01 000043fa: PUSH1 0x80 000043fc: SHL 000043fd: SUB 000043fe: PUSH2 0x4409 00004401: PUSH2 0x4410 00004404: SWAP3 00004405: PUSH2 0x2845 00004408: JUMP 00004409: JUMPDEST 0000440a: AND 0000440b: SWAP2 0000440c: PUSH2 0x4493 0000440f: JUMP 00004410: JUMPDEST 00004411: SWAP1 00004412: DUP2 00004413: DUP2 00004414: LT 00004415: ISZERO 00004416: PUSH2 0x26b6 00004419: JUMPI 0000441a: DUP2 0000441b: SUB 0000441c: SWAP1 0000441d: DUP2 0000441e: GT 0000441f: PUSH2 0x07c6 00004422: JUMPI 00004423: SWAP1 00004424: JUMP 00004425: JUMPDEST 00004426: MLOAD 00004427: SWAP1 00004428: PUSH1 0x01 0000442a: PUSH1 0x01 0000442c: PUSH1 0x40 0000442e: SHL 0000442f: SUB 00004430: DUP3 00004431: AND 00004432: DUP3 00004433: SUB 00004434: PUSH2 0x0383 00004437: JUMPI 00004438: JUMP 00004439: JUMPDEST 0000443a: SWAP1 0000443b: DUP2 0000443c: PUSH1 0x60 0000443e: SWAP2 0000443f: SUB 00004440: SLT 00004441: PUSH2 0x0383 00004444: JUMPI 00004445: PUSH1 0x40 00004447: MLOAD 00004448: SWAP1 00004449: PUSH1 0x60 0000444b: DUP3 0000444c: ADD 0000444d: DUP3 0000444e: DUP2 0000444f: LT 00004450: PUSH1 0x01 00004452: PUSH1 0x01 00004454: PUSH1 0x40 00004456: SHL 00004457: SUB 00004458: DUP3 00004459: GT 0000445a: OR 0000445b: PUSH2 0x1045 0000445e: JUMPI 0000445f: PUSH2 0x448b 00004462: SWAP2 00004463: PUSH1 0x40 00004465: SWAP2 00004466: DUP3 00004467: MSTORE 00004468: DUP1 00004469: MLOAD 0000446a: PUSH2 0x4472 0000446d: DUP2 0000446e: PUSH2 0x0540 00004471: JUMP 00004472: JUMPDEST 00004473: DUP5 00004474: MSTORE 00004475: PUSH2 0x4480 00004478: PUSH1 0x20 0000447a: DUP3 0000447b: ADD 0000447c: PUSH2 0x4425 0000447f: JUMP 00004480: JUMPDEST 00004481: PUSH1 0x20 00004483: DUP6 00004484: ADD 00004485: MSTORE 00004486: ADD 00004487: PUSH2 0x4425 0000448a: JUMP 0000448b: JUMPDEST 0000448c: PUSH1 0x40 0000448e: DUP3 0000448f: ADD 00004490: MSTORE 00004491: SWAP1 00004492: JUMP 00004493: JUMPDEST 00004494: PUSH1 0x40 00004496: MLOAD 00004497: PUSH4 0xe48a5f7b 0000449c: PUSH1 0xe0 0000449e: SHL 0000449f: DUP2 000044a0: MSTORE 000044a1: ADDRESS 000044a2: PUSH1 0x04 000044a4: DUP3 000044a5: ADD 000044a6: MSTORE 000044a7: PUSH1 0x60 000044a9: DUP2 000044aa: PUSH1 0x24 000044ac: DUP2 000044ad: PUSH1 0x01 000044af: PUSH1 0x01 000044b1: PUSH1 0xa0 000044b3: SHL 000044b4: SUB 000044b5: PUSH32 0x000000000000000000000000287d1e2a8de183a8bf8f2b09fa1340fbd766eb59 000044d6: AND 000044d7: GAS 000044d8: STATICCALL 000044d9: DUP1 000044da: ISZERO 000044db: PUSH2 0x06ed 000044de: JUMPI 000044df: PUSH2 0x4532 000044e2: SWAP3 000044e3: PUSH1 0x01 000044e5: PUSH1 0x01 000044e7: PUSH1 0x40 000044e9: SHL 000044ea: SUB 000044eb: PUSH2 0x450c 000044ee: PUSH1 0x40 000044f0: PUSH2 0x4513 000044f3: SWAP5 000044f4: PUSH1 0x20 000044f6: SWAP7 000044f7: PUSH0 000044f8: SWAP2 000044f9: PUSH2 0x458a 000044fc: JUMPI 000044fd: JUMPDEST 000044fe: POP 000044ff: ADD 00004500: MLOAD 00004501: PUSH1 0x01 00004503: PUSH1 0x01 00004505: PUSH1 0x40 00004507: SHL 00004508: SUB 00004509: AND 0000450a: SWAP1 0000450b: JUMP 0000450c: JUMPDEST 0000450d: AND 0000450e: SWAP1 0000450f: PUSH2 0x2fc7 00004512: JUMP 00004513: JUMPDEST 00004514: PUSH1 0x40 00004516: MLOAD 00004517: DUP1 00004518: SWAP4 00004519: DUP2 0000451a: SWAP3 0000451b: PUSH4 0x63737ac9 00004520: PUSH1 0xe1 00004522: SHL 00004523: DUP4 00004524: MSTORE 00004525: PUSH1 0x04 00004527: DUP4 00004528: ADD 00004529: SWAP2 0000452a: SWAP1 0000452b: PUSH1 0x20 0000452d: DUP4 0000452e: ADD 0000452f: SWAP3 00004530: MSTORE 00004531: JUMP 00004532: JUMPDEST 00004533: SUB 00004534: DUP2 00004535: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306 00004556: PUSH1 0x01 00004558: PUSH1 0x01 0000455a: PUSH1 0xa0 0000455c: SHL 0000455d: SUB 0000455e: AND 0000455f: GAS 00004560: STATICCALL 00004561: SWAP1 00004562: DUP2 00004563: ISZERO 00004564: PUSH2 0x06ed 00004567: JUMPI 00004568: PUSH0 00004569: SWAP2 0000456a: PUSH2 0x4571 0000456d: JUMPI 0000456e: POP 0000456f: SWAP1 00004570: JUMP 00004571: JUMPDEST 00004572: PUSH2 0x0836 00004575: SWAP2 00004576: POP 00004577: PUSH1 0x20 00004579: RETURNDATASIZE 0000457a: PUSH1 0x20 0000457c: GT 0000457d: PUSH2 0x06e6 00004580: JUMPI 00004581: PUSH2 0x06d8 00004584: DUP2 00004585: DUP4 00004586: PUSH2 0x104a 00004589: JUMP 0000458a: JUMPDEST 0000458b: PUSH2 0x45ac 0000458e: SWAP2 0000458f: POP 00004590: PUSH1 0x60 00004592: RETURNDATASIZE 00004593: PUSH1 0x60 00004595: GT 00004596: PUSH2 0x45b2 00004599: JUMPI 0000459a: JUMPDEST 0000459b: PUSH2 0x45a4 0000459e: DUP2 0000459f: DUP4 000045a0: PUSH2 0x104a 000045a3: JUMP 000045a4: JUMPDEST 000045a5: DUP2 000045a6: ADD 000045a7: SWAP1 000045a8: PUSH2 0x4439 000045ab: JUMP 000045ac: JUMPDEST 000045ad: PUSH0 000045ae: PUSH2 0x44fd 000045b1: JUMP 000045b2: JUMPDEST 000045b3: POP 000045b4: RETURNDATASIZE 000045b5: PUSH2 0x459a 000045b8: JUMP 000045b9: JUMPDEST 000045ba: PUSH1 0x98 000045bc: SLOAD 000045bd: SWAP1 000045be: PUSH1 0x01 000045c0: PUSH1 0x01 000045c2: PUSH1 0x80 000045c4: SHL 000045c5: SUB 000045c6: DUP3 000045c7: AND 000045c8: DUP2 000045c9: ISZERO 000045ca: DUP1 000045cb: ISZERO 000045cc: PUSH2 0x45e8 000045cf: JUMPI 000045d0: JUMPDEST 000045d1: ISZERO 000045d2: PUSH2 0x45db 000045d5: JUMPI 000045d6: POP 000045d7: SWAP1 000045d8: POP 000045d9: SWAP1 000045da: JUMP 000045db: JUMPDEST 000045dc: PUSH2 0x0836 000045df: SWAP3 000045e0: PUSH1 0x80 000045e2: SHR 000045e3: SWAP2 000045e4: PUSH2 0x3039 000045e7: JUMP 000045e8: JUMPDEST 000045e9: POP 000045ea: DUP1 000045eb: ISZERO 000045ec: PUSH2 0x45d0 000045ef: JUMP 000045f0: JUMPDEST 000045f1: PUSH1 0x98 000045f3: SLOAD 000045f4: PUSH1 0x01 000045f6: PUSH1 0x01 000045f8: PUSH1 0x80 000045fa: SHL 000045fb: SUB 000045fc: DUP2 000045fd: AND 000045fe: SWAP1 000045ff: DUP3 00004600: ISZERO 00004601: DUP1 00004602: ISZERO 00004603: PUSH2 0x4636 00004606: JUMPI 00004607: JUMPDEST 00004608: ISZERO 00004609: PUSH2 0x4611 0000460c: JUMPI 0000460d: POP 0000460e: POP 0000460f: SWAP1 00004610: JUMP 00004611: JUMPDEST 00004612: PUSH1 0x80 00004614: SHR 00004615: SWAP1 00004616: PUSH2 0x4620 00004619: DUP3 0000461a: DUP3 0000461b: DUP6 0000461c: PUSH2 0x3039 0000461f: JUMP 00004620: JUMPDEST 00004621: SWAP3 00004622: DUP3 00004623: ISZERO 00004624: PUSH2 0x2e77 00004627: JUMPI 00004628: MULMOD 00004629: ISZERO 0000462a: ISZERO 0000462b: DUP2 0000462c: ADD 0000462d: DUP1 0000462e: SWAP2 0000462f: GT 00004630: PUSH2 0x07c6 00004633: JUMPI 00004634: SWAP1 00004635: JUMP 00004636: JUMPDEST 00004637: POP 00004638: DUP2 00004639: ISZERO 0000463a: PUSH2 0x4607 0000463d: JUMP 0000463e: JUMPDEST 0000463f: SWAP2 00004640: SWAP1 00004641: PUSH2 0x4648 00004644: PUSH2 0x41a2 00004647: JUMP 00004648: JUMPDEST 00004649: PUSH1 0x01 0000464b: PUSH1 0x01 0000464d: PUSH1 0xa0 0000464f: SHL 00004650: SUB 00004651: DUP4 00004652: AND 00004653: SWAP1 00004654: DUP2 00004655: ISZERO 00004656: PUSH2 0x0c4e 00004659: JUMPI 0000465a: DUP1 0000465b: ISZERO 0000465c: PUSH2 0x07cb 0000465f: JUMPI 00004660: PUSH1 0x98 00004662: SLOAD 00004663: PUSH1 0x80 00004665: SHR 00004666: DUP2 00004667: ADD 00004668: SWAP4 00004669: PUSH2 0x4670 0000466c: PUSH2 0x291f 0000466f: JUMP 00004670: JUMPDEST 00004671: DUP6 00004672: GT 00004673: PUSH2 0x46d4 00004676: JUMPI 00004677: PUSH2 0x0b6d 0000467a: SWAP5 0000467b: PUSH2 0x4697 0000467e: SWAP2 0000467f: PUSH2 0x4692 00004682: PUSH2 0x468a 00004685: DUP6 00004686: PUSH2 0x45f0 00004689: JUMP 0000468a: JUMPDEST 0000468b: SWAP8 0000468c: DUP9 0000468d: SWAP4 0000468e: PUSH2 0x4305 00004691: JUMP 00004692: JUMPDEST 00004693: PUSH2 0x4382 00004696: JUMP 00004697: JUMPDEST 00004698: PUSH1 0x40 0000469a: DUP1 0000469b: MLOAD 0000469c: SWAP2 0000469d: DUP3 0000469e: MSTORE 0000469f: PUSH1 0x20 000046a1: DUP3 000046a2: ADD 000046a3: DUP6 000046a4: SWAP1 000046a5: MSTORE 000046a6: PUSH0 000046a7: SWAP1 000046a8: DUP3 000046a9: ADD 000046aa: MSTORE 000046ab: CALLER 000046ac: SWAP1 000046ad: PUSH32 0x861a4138e41fb21c121a7dbb1053df465c837fc77380cc7226189a662281be2c 000046ce: SWAP1 000046cf: PUSH1 0x60 000046d1: SWAP1 000046d2: LOG3 000046d3: JUMP 000046d4: JUMPDEST 000046d5: PUSH4 0x04ffa0ff 000046da: PUSH1 0xe5 000046dc: SHL 000046dd: PUSH0 000046de: MSTORE 000046df: PUSH1 0x04 000046e1: PUSH0 000046e2: REVERT 000046e3: JUMPDEST 000046e4: SWAP1 000046e5: SWAP3 000046e6: SWAP2 000046e7: SWAP3 000046e8: PUSH2 0x46ef 000046eb: PUSH2 0x41a2 000046ee: JUMP 000046ef: JUMPDEST 000046f0: PUSH1 0x01 000046f2: PUSH1 0x01 000046f4: PUSH1 0xa0 000046f6: SHL 000046f7: SUB 000046f8: DUP3 000046f9: AND 000046fa: SWAP2 000046fb: DUP3 000046fc: ISZERO 000046fd: PUSH2 0x0c4e 00004700: JUMPI 00004701: DUP2 00004702: ISZERO 00004703: PUSH2 0x07cb 00004706: JUMPI 00004707: PUSH1 0x98 00004709: SLOAD 0000470a: PUSH1 0x80 0000470c: SHR 0000470d: DUP3 0000470e: ADD 0000470f: PUSH2 0x4716 00004712: PUSH2 0x291f 00004715: JUMP 00004716: JUMPDEST 00004717: DUP2 00004718: GT 00004719: PUSH2 0x46d4 0000471c: JUMPI 0000471d: PUSH2 0x0b6d 00004720: SWAP6 00004721: PUSH2 0x475d 00004724: PUSH2 0x4786 00004727: SWAP3 00004728: PUSH32 0x861a4138e41fb21c121a7dbb1053df465c837fc77380cc7226189a662281be2c 00004749: SWAP5 0000474a: PUSH2 0x4692 0000474d: PUSH2 0x4755 00004750: DUP9 00004751: PUSH2 0x45f0 00004754: JUMP 00004755: JUMPDEST 00004756: SWAP11 00004757: DUP12 00004758: SWAP4 00004759: PUSH2 0x4305 0000475c: JUMP 0000475d: JUMPDEST 0000475e: PUSH1 0x40 00004760: DUP1 00004761: MLOAD 00004762: SWAP5 00004763: DUP6 00004764: MSTORE 00004765: PUSH1 0x20 00004767: DUP6 00004768: ADD 00004769: DUP9 0000476a: SWAP1 0000476b: MSTORE 0000476c: PUSH1 0x01 0000476e: PUSH1 0x01 00004770: PUSH1 0xa0 00004772: SHL 00004773: SUB 00004774: SWAP1 00004775: SWAP2 00004776: AND 00004777: SWAP1 00004778: DUP5 00004779: ADD 0000477a: MSTORE 0000477b: CALLER 0000477c: SWAP3 0000477d: SWAP1 0000477e: DUP2 0000477f: SWAP1 00004780: PUSH1 0x60 00004782: DUP3 00004783: ADD 00004784: SWAP1 00004785: JUMP 00004786: JUMPDEST 00004787: SUB 00004788: SWAP1 00004789: LOG3 0000478a: JUMP 0000478b: JUMPDEST 0000478c: SWAP1 0000478d: PUSH0 0000478e: NOT 0000478f: DUP2 00004790: DUP4 00004791: MULMOD 00004792: SWAP2 00004793: MUL 00004794: SWAP1 00004795: DUP2 00004796: DUP1 00004797: DUP3 00004798: LT 00004799: SWAP2 0000479a: SUB 0000479b: SUB 0000479c: SWAP2 0000479d: JUMP 0000479e: JUMPDEST 0000479f: PUSH4 0x4e487b71 000047a4: PUSH0 000047a5: MSTORE 000047a6: PUSH1 0x20 000047a8: MSTORE 000047a9: PUSH1 0x24 000047ab: PUSH1 0x1c 000047ad: REVERT 000047ae: JUMPDEST 000047af: DUP1 000047b0: SLOAD 000047b1: PUSH9 0x010000000000000000 000047bb: DUP2 000047bc: LT 000047bd: ISZERO 000047be: PUSH2 0x1045 000047c1: JUMPI 000047c2: PUSH1 0x01 000047c4: DUP2 000047c5: ADD 000047c6: DUP1 000047c7: DUP4 000047c8: SSTORE 000047c9: DUP2 000047ca: LT 000047cb: ISZERO 000047cc: PUSH2 0x2d28 000047cf: JUMPI 000047d0: PUSH0 000047d1: SWAP2 000047d2: DUP3 000047d3: MSTORE 000047d4: PUSH1 0x20 000047d6: SWAP2 000047d7: DUP3 000047d8: SWAP1 000047d9: KECCAK256 000047da: DUP4 000047db: MLOAD 000047dc: SWAP4 000047dd: SWAP1 000047de: SWAP3 000047df: ADD 000047e0: MLOAD 000047e1: PUSH1 0xa0 000047e3: SHL 000047e4: PUSH1 0x01 000047e6: PUSH1 0x01 000047e8: PUSH1 0xa0 000047ea: SHL 000047eb: SUB 000047ec: NOT 000047ed: AND 000047ee: PUSH1 0x01 000047f0: PUSH1 0x01 000047f2: PUSH1 0xa0 000047f4: SHL 000047f5: SUB 000047f6: SWAP4 000047f7: SWAP1 000047f8: SWAP4 000047f9: AND 000047fa: SWAP3 000047fb: SWAP1 000047fc: SWAP3 000047fd: OR 000047fe: SWAP2 000047ff: ADD 00004800: SSTORE 00004801: JUMP 00004802: JUMPDEST 00004803: SWAP2 00004804: SWAP1 00004805: SWAP2 00004806: DUP1 00004807: ISZERO 00004808: PUSH2 0x48ac 0000480b: JUMPI 0000480c: PUSH2 0x4815 0000480f: PUSH1 0x9a 00004811: PUSH2 0x3ebc 00004814: JUMP 00004815: JUMPDEST 00004816: SWAP1 00004817: DUP2 00004818: ADD 00004819: DUP1 0000481a: SWAP2 0000481b: GT 0000481c: PUSH2 0x07c6 0000481f: JUMPI 00004820: PUSH1 0x01 00004822: PUSH1 0x01 00004824: PUSH1 0xa0 00004826: SHL 00004827: SUB 00004828: DUP2 00004829: GT 0000482a: PUSH2 0x4895 0000482d: JUMPI 0000482e: PUSH1 0x01 00004830: PUSH1 0x01 00004832: PUSH1 0x60 00004834: SHL 00004835: SUB 00004836: DUP4 00004837: GT 00004838: PUSH2 0x487d 0000483b: JUMPI 0000483c: PUSH2 0x4876 0000483f: PUSH1 0x01 00004841: PUSH1 0x01 00004843: PUSH1 0x60 00004845: SHL 00004846: SUB 00004847: PUSH2 0x107a 0000484a: SWAP4 0000484b: SWAP5 0000484c: PUSH2 0x4865 0000484f: PUSH2 0x4856 00004852: PUSH2 0x107c 00004855: JUMP 00004856: JUMPDEST 00004857: PUSH1 0x01 00004859: PUSH1 0x01 0000485b: PUSH1 0xa0 0000485d: SHL 0000485e: SUB 0000485f: SWAP1 00004860: SWAP6 00004861: AND 00004862: DUP6 00004863: MSTORE 00004864: JUMP 00004865: JUMPDEST 00004866: AND 00004867: PUSH1 0x01 00004869: PUSH1 0x01 0000486b: PUSH1 0x60 0000486d: SHL 0000486e: SUB 0000486f: AND 00004870: PUSH1 0x20 00004872: DUP4 00004873: ADD 00004874: MSTORE 00004875: JUMP 00004876: JUMPDEST 00004877: PUSH1 0x9a 00004879: PUSH2 0x47ae 0000487c: JUMP 0000487d: JUMPDEST 0000487e: DUP3 0000487f: PUSH4 0x06dfcc65 00004884: PUSH1 0xe4 00004886: SHL 00004887: PUSH0 00004888: MSTORE 00004889: PUSH1 0x60 0000488b: PUSH1 0x04 0000488d: MSTORE 0000488e: PUSH1 0x24 00004890: MSTORE 00004891: PUSH1 0x44 00004893: PUSH0 00004894: REVERT 00004895: JUMPDEST 00004896: PUSH4 0x06dfcc65 0000489b: PUSH1 0xe4 0000489d: SHL 0000489e: PUSH0 0000489f: MSTORE 000048a0: PUSH1 0xa0 000048a2: PUSH1 0x04 000048a4: MSTORE 000048a5: PUSH1 0x24 000048a7: MSTORE 000048a8: PUSH1 0x44 000048aa: PUSH0 000048ab: REVERT 000048ac: JUMPDEST 000048ad: PUSH4 0x2ec8835b 000048b2: PUSH1 0xe2 000048b4: SHL 000048b5: PUSH0 000048b6: MSTORE 000048b7: PUSH1 0x04 000048b9: PUSH0 000048ba: REVERT 000048bb: JUMPDEST 000048bc: PUSH1 0x01 000048be: DUP1 000048bf: PUSH1 0xa0 000048c1: SHL 000048c2: SUB 000048c3: AND 000048c4: PUSH0 000048c5: MSTORE 000048c6: PUSH1 0x9c 000048c8: PUSH1 0x20 000048ca: MSTORE 000048cb: PUSH1 0x40 000048cd: PUSH0 000048ce: KECCAK256 000048cf: SWAP1 000048d0: DUP2 000048d1: SLOAD 000048d2: DUP2 000048d3: DUP2 000048d4: SUB 000048d5: SWAP1 000048d6: DUP2 000048d7: GT 000048d8: PUSH2 0x07c6 000048db: JUMPI 000048dc: PUSH2 0x48e5 000048df: SWAP3 000048e0: SSTORE 000048e1: PUSH2 0x4305 000048e4: JUMP 000048e5: JUMPDEST 000048e6: PUSH1 0x01 000048e8: PUSH1 0x01 000048ea: PUSH1 0x80 000048ec: SHL 000048ed: SUB 000048ee: PUSH1 0x98 000048f0: SLOAD 000048f1: SWAP2 000048f2: DUP2 000048f3: DUP4 000048f4: AND 000048f5: SUB 000048f6: AND 000048f7: SWAP1 000048f8: PUSH1 0x01 000048fa: PUSH1 0x01 000048fc: PUSH1 0x80 000048fe: SHL 000048ff: SUB 00004900: NOT 00004901: AND 00004902: OR 00004903: PUSH1 0x98 00004905: SSTORE 00004906: JUMP 00004907: JUMPDEST 00004908: SWAP1 00004909: DUP2 0000490a: PUSH1 0x20 0000490c: SWAP2 0000490d: SUB 0000490e: SLT 0000490f: PUSH2 0x0383 00004912: JUMPI 00004913: MLOAD 00004914: PUSH1 0xff 00004916: DUP2 00004917: AND 00004918: DUP2 00004919: SUB 0000491a: PUSH2 0x0383 0000491d: JUMPI 0000491e: SWAP1 0000491f: JUMP 00004920: JUMPDEST 00004921: PUSH1 0x40 00004923: MLOAD 00004924: PUSH4 0x52d1902d 00004929: PUSH1 0xe0 0000492b: SHL 0000492c: DUP2 0000492d: MSTORE 0000492e: SWAP1 0000492f: SWAP2 00004930: SWAP1 00004931: PUSH1 0x20 00004933: DUP2 00004934: PUSH1 0x04 00004936: DUP2 00004937: PUSH1 0x01 00004939: PUSH1 0x01 0000493b: PUSH1 0xa0 0000493d: SHL 0000493e: SUB 0000493f: DUP8 00004940: AND 00004941: GAS 00004942: STATICCALL 00004943: PUSH0 00004944: SWAP2 00004945: DUP2 00004946: PUSH2 0x4a30 00004949: JUMPI 0000494a: JUMPDEST 0000494b: POP 0000494c: PUSH2 0x496b 0000494f: JUMPI 00004950: PUSH4 0x4c9c8ce3 00004955: PUSH1 0xe0 00004957: SHL 00004958: PUSH0 00004959: MSTORE 0000495a: PUSH1 0x01 0000495c: PUSH1 0x01 0000495e: PUSH1 0xa0 00004960: SHL 00004961: SUB 00004962: DUP4 00004963: AND 00004964: PUSH1 0x04 00004966: MSTORE 00004967: PUSH1 0x24 00004969: PUSH0 0000496a: REVERT 0000496b: JUMPDEST 0000496c: PUSH0 0000496d: DUP1 0000496e: MLOAD 0000496f: PUSH1 0x20 00004971: PUSH2 0x4e53 00004974: DUP4 00004975: CODECOPY 00004976: DUP2 00004977: MLOAD 00004978: SWAP2 00004979: MSTORE 0000497a: DUP2 0000497b: SUB 0000497c: PUSH2 0x4a1e 0000497f: JUMPI 00004980: POP 00004981: DUP2 00004982: EXTCODESIZE 00004983: ISZERO 00004984: PUSH2 0x49fd 00004987: JUMPI 00004988: PUSH0 00004989: DUP1 0000498a: MLOAD 0000498b: PUSH1 0x20 0000498d: PUSH2 0x4e53 00004990: DUP4 00004991: CODECOPY 00004992: DUP2 00004993: MLOAD 00004994: SWAP2 00004995: MSTORE 00004996: DUP1 00004997: SLOAD 00004998: PUSH1 0x01 0000499a: PUSH1 0x01 0000499c: PUSH1 0xa0 0000499e: SHL 0000499f: SUB 000049a0: NOT 000049a1: AND 000049a2: PUSH1 0x01 000049a4: PUSH1 0x01 000049a6: PUSH1 0xa0 000049a8: SHL 000049a9: SUB 000049aa: DUP5 000049ab: AND 000049ac: SWAP1 000049ad: DUP2 000049ae: OR 000049af: SWAP1 000049b0: SWAP2 000049b1: SSTORE 000049b2: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b 000049d3: PUSH0 000049d4: DUP1 000049d5: LOG2 000049d6: DUP1 000049d7: MLOAD 000049d8: ISZERO 000049d9: PUSH2 0x49e5 000049dc: JUMPI 000049dd: PUSH2 0x262c 000049e0: SWAP2 000049e1: PUSH2 0x4365 000049e4: JUMP 000049e5: JUMPDEST 000049e6: POP 000049e7: POP 000049e8: CALLVALUE 000049e9: PUSH2 0x49ee 000049ec: JUMPI 000049ed: JUMP 000049ee: JUMPDEST 000049ef: PUSH4 0xb398979f 000049f4: PUSH1 0xe0 000049f6: SHL 000049f7: PUSH0 000049f8: MSTORE 000049f9: PUSH1 0x04 000049fb: PUSH0 000049fc: REVERT 000049fd: JUMPDEST 000049fe: POP 000049ff: PUSH4 0x4c9c8ce3 00004a04: PUSH1 0xe0 00004a06: SHL 00004a07: PUSH0 00004a08: SWAP1 00004a09: DUP2 00004a0a: MSTORE 00004a0b: PUSH1 0x01 00004a0d: PUSH1 0x01 00004a0f: PUSH1 0xa0 00004a11: SHL 00004a12: SUB 00004a13: SWAP2 00004a14: SWAP1 00004a15: SWAP2 00004a16: AND 00004a17: PUSH1 0x04 00004a19: MSTORE 00004a1a: PUSH1 0x24 00004a1c: SWAP1 00004a1d: REVERT 00004a1e: JUMPDEST 00004a1f: PUSH4 0x2a875269 00004a24: PUSH1 0xe2 00004a26: SHL 00004a27: PUSH0 00004a28: MSTORE 00004a29: PUSH1 0x04 00004a2b: MSTORE 00004a2c: PUSH1 0x24 00004a2e: PUSH0 00004a2f: REVERT 00004a30: JUMPDEST 00004a31: PUSH2 0x4a4a 00004a34: SWAP2 00004a35: SWAP3 00004a36: POP 00004a37: PUSH1 0x20 00004a39: RETURNDATASIZE 00004a3a: PUSH1 0x20 00004a3c: GT 00004a3d: PUSH2 0x06e6 00004a40: JUMPI 00004a41: PUSH2 0x06d8 00004a44: DUP2 00004a45: DUP4 00004a46: PUSH2 0x104a 00004a49: JUMP 00004a4a: JUMPDEST 00004a4b: SWAP1 00004a4c: PUSH0 00004a4d: PUSH2 0x494a 00004a50: JUMP 00004a51: JUMPDEST 00004a52: PUSH1 0x40 00004a54: MLOAD 00004a55: PUSH4 0x703f96f7 00004a5a: PUSH1 0xe1 00004a5c: SHL 00004a5d: DUP2 00004a5e: MSTORE 00004a5f: PUSH1 0x40 00004a61: PUSH1 0x04 00004a63: DUP3 00004a64: ADD 00004a65: MSTORE 00004a66: PUSH1 0x0f 00004a68: PUSH1 0x44 00004a6a: DUP3 00004a6b: ADD 00004a6c: MSTORE 00004a6d: PUSH15 0x5661756c7456616c696461746f7273 00004a7d: PUSH1 0x88 00004a7f: SHL 00004a80: PUSH1 0x64 00004a82: DUP3 00004a83: ADD 00004a84: MSTORE 00004a85: ADDRESS 00004a86: PUSH1 0x24 00004a88: DUP3 00004a89: ADD 00004a8a: MSTORE 00004a8b: PUSH1 0x20 00004a8d: DUP2 00004a8e: PUSH1 0x84 00004a90: DUP2 00004a91: PUSH20 0x26314bd892cea77e2731ebbfb7c47af0bdcfe773 00004aa6: GAS 00004aa7: DELEGATECALL 00004aa8: SWAP1 00004aa9: DUP2 00004aaa: ISZERO 00004aab: PUSH2 0x06ed 00004aae: JUMPI 00004aaf: PUSH0 00004ab0: SWAP2 00004ab1: PUSH2 0x4571 00004ab4: JUMPI 00004ab5: POP 00004ab6: SWAP1 00004ab7: JUMP 00004ab8: JUMPDEST 00004ab9: PUSH32 0x0000000000000000000000002296e122c1a20fca3cac3371357bdad3be0df079 00004ada: PUSH1 0x01 00004adc: PUSH1 0x01 00004ade: PUSH1 0xa0 00004ae0: SHL 00004ae1: SUB 00004ae2: AND 00004ae3: DUP1 00004ae4: BALANCE 00004ae5: DUP1 00004ae6: PUSH2 0x4aed 00004ae9: JUMPI 00004aea: POP 00004aeb: POP 00004aec: JUMP 00004aed: JUMPDEST 00004aee: DUP2 00004aef: EXTCODESIZE 00004af0: ISZERO 00004af1: PUSH2 0x0383 00004af4: JUMPI 00004af5: PUSH0 00004af6: SWAP2 00004af7: PUSH1 0x44 00004af9: DUP4 00004afa: SWAP3 00004afb: PUSH1 0x40 00004afd: MLOAD 00004afe: SWAP5 00004aff: DUP6 00004b00: SWAP4 00004b01: DUP5 00004b02: SWAP3 00004b03: PUSH4 0xf3fef3a3 00004b08: PUSH1 0xe0 00004b0a: SHL 00004b0b: DUP5 00004b0c: MSTORE 00004b0d: ADDRESS 00004b0e: PUSH1 0x04 00004b10: DUP6 00004b11: ADD 00004b12: MSTORE 00004b13: PUSH1 0x24 00004b15: DUP5 00004b16: ADD 00004b17: MSTORE 00004b18: GAS 00004b19: CALL 00004b1a: DUP1 00004b1b: ISZERO 00004b1c: PUSH2 0x06ed 00004b1f: JUMPI 00004b20: PUSH2 0x4b26 00004b23: JUMPI 00004b24: POP 00004b25: JUMP 00004b26: JUMPDEST 00004b27: PUSH0 00004b28: PUSH2 0x107a 00004b2b: SWAP2 00004b2c: PUSH2 0x104a 00004b2f: JUMP 00004b30: JUMPDEST 00004b31: SWAP5 00004b32: SWAP4 00004b33: SWAP3 00004b34: PUSH2 0x4b5c 00004b37: PUSH1 0x60 00004b39: SWAP4 00004b3a: PUSH2 0x4b4e 00004b3d: PUSH2 0x2cf8 00004b40: SWAP5 00004b41: PUSH1 0x80 00004b43: DUP11 00004b44: MSTORE 00004b45: PUSH1 0x80 00004b47: DUP11 00004b48: ADD 00004b49: SWAP1 00004b4a: PUSH2 0x1fd3 00004b4d: JUMP 00004b4e: JUMPDEST 00004b4f: SWAP1 00004b50: DUP9 00004b51: DUP3 00004b52: SUB 00004b53: PUSH1 0x20 00004b55: DUP11 00004b56: ADD 00004b57: MSTORE 00004b58: PUSH2 0x1fd3 00004b5b: JUMP 00004b5c: JUMPDEST 00004b5d: SWAP1 00004b5e: DUP7 00004b5f: DUP3 00004b60: SUB 00004b61: PUSH1 0x40 00004b63: DUP9 00004b64: ADD 00004b65: MSTORE 00004b66: PUSH2 0x1fd3 00004b69: JUMP 00004b6a: JUMPDEST 00004b6b: PUSH1 0x01 00004b6d: DUP1 00004b6e: PUSH1 0xa0 00004b70: SHL 00004b71: SUB 00004b72: DUP2 00004b73: AND 00004b74: PUSH0 00004b75: MSTORE 00004b76: PUSH2 0x0137 00004b79: PUSH1 0x20 00004b7b: MSTORE 00004b7c: PUSH1 0x40 00004b7e: PUSH0 00004b7f: KECCAK256 00004b80: SWAP1 00004b81: PUSH1 0x01 00004b83: PUSH1 0x01 00004b85: PUSH1 0x80 00004b87: SHL 00004b88: SUB 00004b89: DUP1 00004b8a: PUSH1 0x40 00004b8c: MLOAD 00004b8d: SWAP4 00004b8e: PUSH2 0x4b96 00004b91: DUP6 00004b92: PUSH2 0x102a 00004b95: JUMP 00004b96: JUMPDEST 00004b97: SLOAD 00004b98: DUP2 00004b99: DUP2 00004b9a: AND 00004b9b: SWAP1 00004b9c: DUP2 00004b9d: DUP7 00004b9e: MSTORE 00004b9f: PUSH1 0x80 00004ba1: SHR 00004ba2: PUSH1 0x20 00004ba4: DUP7 00004ba5: ADD 00004ba6: MSTORE 00004ba7: AND 00004ba8: AND 00004ba9: ISZERO 00004baa: PUSH2 0x3262 00004bad: JUMPI 00004bae: PUSH2 0x1d3c 00004bb1: PUSH2 0x4be7 00004bb4: PUSH2 0x37a7 00004bb7: PUSH2 0x09d2 00004bba: PUSH2 0x4bf5 00004bbd: SWAP5 00004bbe: PUSH2 0x4bc5 00004bc1: PUSH2 0x41a2 00004bc4: JUMP 00004bc5: JUMPDEST 00004bc6: PUSH2 0x4bce 00004bc9: DUP8 00004bca: PUSH2 0x2e7c 00004bcd: JUMP 00004bce: JUMPDEST 00004bcf: PUSH1 0x01 00004bd1: PUSH1 0x01 00004bd3: PUSH1 0xa0 00004bd5: SHL 00004bd6: SUB 00004bd7: AND 00004bd8: PUSH0 00004bd9: SWAP1 00004bda: DUP2 00004bdb: MSTORE 00004bdc: PUSH1 0x9c 00004bde: PUSH1 0x20 00004be0: MSTORE 00004be1: PUSH1 0x40 00004be3: SWAP1 00004be4: KECCAK256 00004be5: SWAP1 00004be6: JUMP 00004be7: JUMPDEST 00004be8: SWAP3 00004be9: MLOAD 00004bea: PUSH1 0x01 00004bec: PUSH1 0x01 00004bee: PUSH1 0x80 00004bf0: SHL 00004bf1: SUB 00004bf2: AND 00004bf3: SWAP1 00004bf4: JUMP 00004bf5: JUMPDEST 00004bf6: GT 00004bf7: PUSH2 0x38e4 00004bfa: JUMPI 00004bfb: JUMP 00004bfc: JUMPDEST 00004bfd: SWAP1 00004bfe: SWAP3 00004bff: SWAP2 00004c00: SWAP3 00004c01: DUP1 00004c02: ISZERO 00004c03: PUSH2 0x1e93 00004c06: JUMPI 00004c07: PUSH1 0x01 00004c09: PUSH1 0x01 00004c0b: PUSH1 0xa0 00004c0d: SHL 00004c0e: SUB 00004c0f: DUP5 00004c10: AND 00004c11: SWAP2 00004c12: DUP3 00004c13: ISZERO 00004c14: PUSH2 0x0c4e 00004c17: JUMPI 00004c18: PUSH2 0x4c22 00004c1b: PUSH2 0x1488 00004c1e: PUSH2 0x40be 00004c21: JUMP 00004c22: JUMPDEST 00004c23: PUSH2 0x4d18 00004c26: JUMPI 00004c27: PUSH2 0x4786 00004c2a: PUSH32 0x211091c5bf013c1230f996c3bb2bc327e3de429a3d3c356dcea9a0c858bc407f 00004c4b: SWAP2 00004c4c: PUSH2 0x4cf5 00004c4f: PUSH2 0x35cb 00004c52: DUP6 00004c53: PUSH2 0x1bbe 00004c56: SWAP10 00004c57: DUP2 00004c58: PUSH2 0x4cca 00004c5b: PUSH2 0x4c6f 00004c5e: PUSH2 0x1d3c 00004c61: PUSH1 0x99 00004c63: SLOAD 00004c64: PUSH1 0x01 00004c66: PUSH1 0x01 00004c68: PUSH1 0x80 00004c6a: SHL 00004c6b: SUB 00004c6c: AND 00004c6d: SWAP1 00004c6e: JUMP 00004c6f: JUMPDEST 00004c70: SWAP3 00004c71: PUSH2 0x1156 00004c74: PUSH2 0x4c9c 00004c77: DUP6 00004c78: PUSH2 0x4c97 00004c7b: PUSH2 0x4c82 00004c7e: PUSH2 0x3e7a 00004c81: JUMP 00004c82: JUMPDEST 00004c83: PUSH2 0x4c91 00004c86: PUSH2 0x1d3c 00004c89: PUSH1 0x9e 00004c8b: SLOAD 00004c8c: PUSH1 0x80 00004c8e: SHR 00004c8f: SWAP1 00004c90: JUMP 00004c91: JUMPDEST 00004c92: SWAP1 00004c93: PUSH2 0x25db 00004c96: JUMP 00004c97: JUMPDEST 00004c98: PUSH2 0x25db 00004c9b: JUMP 00004c9c: JUMPDEST 00004c9d: SWAP15 00004c9e: DUP16 00004c9f: PUSH1 0x40 00004ca1: MLOAD 00004ca2: SWAP3 00004ca3: DUP4 00004ca4: SWAP2 00004ca5: PUSH1 0x20 00004ca7: DUP4 00004ca8: ADD 00004ca9: SWAP6 00004caa: TIMESTAMP 00004cab: SWAP1 00004cac: DUP8 00004cad: PUSH1 0x40 00004caf: SWAP2 00004cb0: SWAP5 00004cb1: SWAP4 00004cb2: SWAP3 00004cb3: PUSH1 0x60 00004cb5: DUP3 00004cb6: ADD 00004cb7: SWAP6 00004cb8: PUSH1 0x01 00004cba: DUP1 00004cbb: PUSH1 0xa0 00004cbd: SHL 00004cbe: SUB 00004cbf: AND 00004cc0: DUP3 00004cc1: MSTORE 00004cc2: PUSH1 0x20 00004cc4: DUP3 00004cc5: ADD 00004cc6: MSTORE 00004cc7: ADD 00004cc8: MSTORE 00004cc9: JUMP 00004cca: JUMPDEST 00004ccb: SSTORE 00004ccc: PUSH1 0x01 00004cce: PUSH1 0x01 00004cd0: PUSH1 0xa0 00004cd2: SHL 00004cd3: SUB 00004cd4: DUP6 00004cd5: AND 00004cd6: PUSH0 00004cd7: SWAP1 00004cd8: DUP2 00004cd9: MSTORE 00004cda: PUSH1 0x9c 00004cdc: PUSH1 0x20 00004cde: MSTORE 00004cdf: PUSH1 0x40 00004ce1: SWAP1 00004ce2: KECCAK256 00004ce3: PUSH2 0x4ced 00004ce6: DUP4 00004ce7: DUP3 00004ce8: SLOAD 00004ce9: PUSH2 0x2964 00004cec: JUMP 00004ced: JUMPDEST 00004cee: SWAP1 00004cef: SSTORE 00004cf0: ADD 00004cf1: PUSH2 0x4305 00004cf4: JUMP 00004cf5: JUMPDEST 00004cf6: PUSH1 0x40 00004cf8: DUP1 00004cf9: MLOAD 00004cfa: DUP9 00004cfb: DUP2 00004cfc: MSTORE 00004cfd: PUSH1 0x20 00004cff: DUP2 00004d00: ADD 00004d01: SWAP6 00004d02: SWAP1 00004d03: SWAP6 00004d04: MSTORE 00004d05: PUSH1 0x01 00004d07: PUSH1 0x01 00004d09: PUSH1 0xa0 00004d0b: SHL 00004d0c: SUB 00004d0d: SWAP1 00004d0e: SWAP2 00004d0f: AND 00004d10: SWAP4 00004d11: SWAP2 00004d12: DUP3 00004d13: SWAP2 00004d14: DUP3 00004d15: ADD 00004d16: SWAP1 00004d17: JUMP 00004d18: JUMPDEST 00004d19: SWAP2 00004d1a: SWAP3 00004d1b: SWAP4 00004d1c: SWAP1 00004d1d: PUSH2 0x4d25 00004d20: DUP2 00004d21: PUSH2 0x2597 00004d24: JUMP 00004d25: JUMPDEST 00004d26: SWAP3 00004d27: DUP4 00004d28: ISZERO 00004d29: PUSH2 0x07cb 00004d2c: JUMPI 00004d2d: PUSH2 0x4d6b 00004d30: DUP5 00004d31: PUSH32 0x5cdf07ad0fc222442720b108e3ed4c4640f0fadc2ab2253e66f259a0fea83480 00004d52: SWAP5 00004d53: PUSH2 0x4d61 00004d56: PUSH2 0x0b6d 00004d59: PUSH2 0x0b62 00004d5c: DUP5 00004d5d: PUSH2 0x4305 00004d60: JUMP 00004d61: JUMPDEST 00004d62: PUSH2 0x3e04 00004d65: DUP6 00004d66: DUP6 00004d67: PUSH2 0x48bb 00004d6a: JUMP 00004d6b: JUMPDEST 00004d6c: PUSH1 0x40 00004d6e: DUP1 00004d6f: MLOAD 00004d70: SWAP5 00004d71: DUP6 00004d72: MSTORE 00004d73: PUSH1 0x20 00004d75: DUP6 00004d76: ADD 00004d77: SWAP3 00004d78: SWAP1 00004d79: SWAP3 00004d7a: MSTORE 00004d7b: PUSH1 0x01 00004d7d: PUSH1 0x01 00004d7f: PUSH1 0xa0 00004d81: SHL 00004d82: SUB 00004d83: AND 00004d84: SWAP3 00004d85: LOG3 00004d86: PUSH0 00004d87: NOT 00004d88: SWAP1 00004d89: JUMP 00004d8a: JUMPDEST 00004d8b: SWAP1 00004d8c: PUSH2 0x4d95 00004d8f: JUMPI 00004d90: POP 00004d91: PUSH2 0x4e34 00004d94: JUMP 00004d95: JUMPDEST 00004d96: DUP2 00004d97: MLOAD 00004d98: ISZERO 00004d99: DUP1 00004d9a: PUSH2 0x4dc6 00004d9d: JUMPI 00004d9e: JUMPDEST 00004d9f: PUSH2 0x4da6 00004da2: JUMPI 00004da3: POP 00004da4: SWAP1 00004da5: JUMP 00004da6: JUMPDEST 00004da7: PUSH4 0x9996b315 00004dac: PUSH1 0xe0 00004dae: SHL 00004daf: PUSH0 00004db0: SWAP1 00004db1: DUP2 00004db2: MSTORE 00004db3: PUSH1 0x01 00004db5: PUSH1 0x01 00004db7: PUSH1 0xa0 00004db9: SHL 00004dba: SUB 00004dbb: SWAP2 00004dbc: SWAP1 00004dbd: SWAP2 00004dbe: AND 00004dbf: PUSH1 0x04 00004dc1: MSTORE 00004dc2: PUSH1 0x24 00004dc4: SWAP1 00004dc5: REVERT 00004dc6: JUMPDEST 00004dc7: POP 00004dc8: DUP1 00004dc9: EXTCODESIZE 00004dca: ISZERO 00004dcb: PUSH2 0x4d9e 00004dce: JUMP 00004dcf: JUMPDEST 00004dd0: PUSH1 0xff 00004dd2: PUSH0 00004dd3: DUP1 00004dd4: MLOAD 00004dd5: PUSH1 0x20 00004dd7: PUSH2 0x4e93 00004dda: DUP4 00004ddb: CODECOPY 00004ddc: DUP2 00004ddd: MLOAD 00004dde: SWAP2 00004ddf: MSTORE 00004de0: SLOAD 00004de1: PUSH1 0x40 00004de3: SHR 00004de4: AND 00004de5: ISZERO 00004de6: PUSH2 0x4deb 00004de9: JUMPI 00004dea: JUMP 00004deb: JUMPDEST 00004dec: PUSH4 0x1afcd79f 00004df1: PUSH1 0xe3 00004df3: SHL 00004df4: PUSH0 00004df5: MSTORE 00004df6: PUSH1 0x04 00004df8: PUSH0 00004df9: REVERT 00004dfa: JUMPDEST 00004dfb: PUSH2 0x4e02 00004dfe: PUSH2 0x4dcf 00004e01: JUMP 00004e02: JUMPDEST 00004e03: PUSH2 0x4e0a 00004e06: PUSH2 0x4dcf 00004e09: JUMP 00004e0a: JUMPDEST 00004e0b: PUSH1 0x01 00004e0d: PUSH0 00004e0e: DUP1 00004e0f: MLOAD 00004e10: PUSH1 0x20 00004e12: PUSH2 0x4e73 00004e15: DUP4 00004e16: CODECOPY 00004e17: DUP2 00004e18: MLOAD 00004e19: SWAP2 00004e1a: MSTORE 00004e1b: SSTORE 00004e1c: PUSH2 0x4e23 00004e1f: PUSH2 0x4a51 00004e22: JUMP 00004e23: JUMPDEST 00004e24: PUSH1 0xd3 00004e26: SLOAD 00004e27: DUP2 00004e28: SUB 00004e29: PUSH2 0x4e2f 00004e2c: JUMPI 00004e2d: POP 00004e2e: JUMP 00004e2f: JUMPDEST 00004e30: PUSH1 0xd3 00004e32: SSTORE 00004e33: JUMP 00004e34: JUMPDEST 00004e35: DUP1 00004e36: MLOAD 00004e37: ISZERO 00004e38: PUSH2 0x4e43 00004e3b: JUMPI 00004e3c: DUP1 00004e3d: MLOAD 00004e3e: SWAP1 00004e3f: PUSH1 0x20 00004e41: ADD 00004e42: REVERT 00004e43: JUMPDEST 00004e44: PUSH4 0xd6bda275 00004e49: PUSH1 0xe0 00004e4b: SHL 00004e4c: PUSH0 00004e4d: MSTORE 00004e4e: PUSH1 0x04 00004e50: PUSH0 00004e51: REVERT 00004e52: INVALID 00004e53: CALLDATASIZE 00004e54: ADDMOD 00004e55: SWAP5 00004e56: LOG1 00004e57: EXTCODESIZE 00004e58: LOG1 00004e59: LOG3 00004e5a: UNKNOWN(0x21) 00004e5b: MOD 00004e5c: PUSH8 0xc828492db98dca3e 00004e65: KECCAK256 00004e66: PUSH23 0xcc3735a920a3ca505d382bbc9b779b17422d0df9222301 00004e7e: DUP12 00004e7f: ORIGIN 00004e80: UNKNOWN(0xB4) 00004e81: UNKNOWN(0xD1) 00004e82: STATICCALL 00004e83: CHAINID 00004e84: UNKNOWN(0xE0) 00004e85: PUSH18 0x723d6817e2486d003becc55f00f0c57e1684 00004e98: UNKNOWN(0x0D) 00004e99: CREATE 00004e9a: BLOCKHASH 00004e9b: CALL 00004e9c: POP 00004e9d: DUP9 00004e9e: UNKNOWN(0xDC) 00004e9f: UNKNOWN(0x2F) 00004ea0: DUP2 00004ea1: INVALID 00004ea2: CODECOPY 00004ea3: SHR 00004ea4: CODECOPY 00004ea5: UNKNOWN(0x23) 00004ea6: UNKNOWN(0xBE) 00004ea7: UNKNOWN(0xC7) 00004ea8: RETURNDATACOPY 00004ea9: UNKNOWN(0x23) 00004eaa: UNKNOWN(0xA9) 00004eab: PUSH7 0x2efc9c229c6a00 00004eb3: LOG1 00004eb4: PUSH5 0x736f6c6343 00004eba: STOP 00004ebb: ADDMOD 00004ebc: BYTE 00004ebd: STOP 00004ebe: EXP
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0x5326008d89f25831370a088cb5c05f9ef43b46d9cac7084afe4d1fabdf126b4b
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0x5326008d89f25831370a088cb5c05f9ef43b46d9cac7084afe4d1fabdf126b4b",
"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": "0x01d523b6",
"selector": "0x01d523b6",
"calldata_variants": [
"0x01d523b6",
"0x01d523b60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0402f196",
"selector": "0x0402f196",
"calldata_variants": [
"0x0402f196",
"0x0402f1960000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x066055e0",
"selector": "0x066055e0",
"calldata_variants": [
"0x066055e0",
"0x066055e00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07a2d13a",
"selector": "0x07a2d13a",
"calldata_variants": [
"0x07a2d13a",
"0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18f72950",
"selector": "0x18f72950",
"calldata_variants": [
"0x18f72950",
"0x18f729500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1913bb24",
"selector": "0x1913bb24",
"calldata_variants": [
"0x1913bb24",
"0x1913bb240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1a7ff553",
"selector": "0x1a7ff553",
"calldata_variants": [
"0x1a7ff553",
"0x1a7ff5530000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2719,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 5375,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 5719,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 20095,
"type": "tx_origin_used"
}
],
"delegatecall_count": 11,
"untrusted_delegatecall_count": 11
}
|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x01d523b6",
"selector": "0x01d523b6",
"calldata_variants": [
"0x01d523b6",
"0x01d523b60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0402f196",
"selector": "0x0402f196",
"calldata_variants": [
"0x0402f196",
"0x0402f1960000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x066055e0",
"selector": "0x066055e0",
"calldata_variants": [
"0x066055e0",
"0x066055e00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07a2d13a",
"selector": "0x07a2d13a",
"calldata_variants": [
"0x07a2d13a",
"0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18f72950",
"selector": "0x18f72950",
"calldata_variants": [
"0x18f72950",
"0x18f729500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1913bb24",
"selector": "0x1913bb24",
"calldata_variants": [
"0x1913bb24",
"0x1913bb240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1a7ff553",
"selector": "0x1a7ff553",
"calldata_variants": [
"0x1a7ff553",
"0x1a7ff5530000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 20095,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x146d14da2c7fe0b1d393410974ad81760cc982a30ca50c7a4c48ac2de3bc8127
call_targets:
0xf113bfd6423291b1dd2ca76f897bff54456e7c88
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x146d14da2c7fe0b1d393410974ad81760cc982a30ca50c7a4c48ac2de3bc8127",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf113bfd6423291b1dd2ca76f897bff54456e7c88"
],
"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": "0x01d523b6",
"selector": "0x01d523b6",
"calldata_variants": [
"0x01d523b6",
"0x01d523b60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0402f196",
"selector": "0x0402f196",
"calldata_variants": [
"0x0402f196",
"0x0402f1960000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x066055e0",
"selector": "0x066055e0",
"calldata_variants": [
"0x066055e0",
"0x066055e00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07a2d13a",
"selector": "0x07a2d13a",
"calldata_variants": [
"0x07a2d13a",
"0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18f72950",
"selector": "0x18f72950",
"calldata_variants": [
"0x18f72950",
"0x18f729500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1913bb24",
"selector": "0x1913bb24",
"calldata_variants": [
"0x1913bb24",
"0x1913bb240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1a7ff553",
"selector": "0x1a7ff553",
"calldata_variants": [
"0x1a7ff553",
"0x1a7ff5530000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1475,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2312,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2775,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 18,
"guards_detected": [
{
"pc": 20095,
"type": "tx_origin_used"
}
]
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 11
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x9a1d53ba808ffe184df9fe39b274acce5b21ca2232deb2edeba7dea6633ccf56
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x9a1d53ba808ffe184df9fe39b274acce5b21ca2232deb2edeba7dea6633ccf56",
"confirmed": false,
"trace_mode": "structLogs",
"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": "0x01d523b6",
"selector": "0x01d523b6",
"calldata_variants": [
"0x01d523b6",
"0x01d523b60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0402f196",
"selector": "0x0402f196",
"calldata_variants": [
"0x0402f196",
"0x0402f1960000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x066055e0",
"selector": "0x066055e0",
"calldata_variants": [
"0x066055e0",
"0x066055e00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07a2d13a",
"selector": "0x07a2d13a",
"calldata_variants": [
"0x07a2d13a",
"0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18f72950",
"selector": "0x18f72950",
"calldata_variants": [
"0x18f72950",
"0x18f729500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1913bb24",
"selector": "0x1913bb24",
"calldata_variants": [
"0x1913bb24",
"0x1913bb240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1a7ff553",
"selector": "0x1a7ff553",
"calldata_variants": [
"0x1a7ff553",
"0x1a7ff5530000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 0
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x146d14da2c7fe0b1d393410974ad81760cc982a30ca50c7a4c48ac2de3bc8127
call_targets:
0xf113bfd6423291b1dd2ca76f897bff54456e7c88
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x146d14da2c7fe0b1d393410974ad81760cc982a30ca50c7a4c48ac2de3bc8127",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf113bfd6423291b1dd2ca76f897bff54456e7c88"
],
"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": "0x01d523b6",
"selector": "0x01d523b6",
"calldata_variants": [
"0x01d523b6",
"0x01d523b60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0402f196",
"selector": "0x0402f196",
"calldata_variants": [
"0x0402f196",
"0x0402f1960000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x066055e0",
"selector": "0x066055e0",
"calldata_variants": [
"0x066055e0",
"0x066055e00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07a2d13a",
"selector": "0x07a2d13a",
"calldata_variants": [
"0x07a2d13a",
"0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18f72950",
"selector": "0x18f72950",
"calldata_variants": [
"0x18f72950",
"0x18f729500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1913bb24",
"selector": "0x1913bb24",
"calldata_variants": [
"0x1913bb24",
"0x1913bb240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1a7ff553",
"selector": "0x1a7ff553",
"calldata_variants": [
"0x1a7ff553",
"0x1a7ff5530000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1475,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2312,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2775,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 18,
"guards_detected": [
{
"pc": 20095,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 18
}
|
| medium | math | codex | Floor rounding on share burn allows zero-share liquidations that drain yield | 75 | no | — |
viewevidence_json{
"evidence": "`_redeemOsToken` computes `burnedShares = convertToShares(receivedAssets)` and then `_burnShares(owner, burnedShares)`; `convertToShares` uses floor rounding, enabling `burnedShares` to be 0 when `receivedAssets < assetsPerShare`.",
"locations": [
"contracts/contracts/vaults/modules/VaultOsToken.sol:87",
"contracts/contracts/vaults/modules/VaultOsToken.sol:248",
"contracts/contracts/vaults/modules/VaultOsToken.sol:251",
"contracts/contracts/vaults/modules/VaultOsToken.sol:254",
"contracts/contracts/vaults/modules/VaultState.sol:78",
"contracts/contracts/vaults/modules/VaultState.sol:79"
],
"recommendation": "When burning shares for redeemed assets, round up instead of down (e.g., use `Math.Rounding.Ceil`), or enforce a minimum burn of 1 share for any nonzero `receivedAssets`, or require `receivedAssets >= assetsPerShare` to proceed.",
"exploit_scenario": "1) Wait until the vault has accrued rewards so `totalAssets > totalShares` (asset-per-share > 1) and a position is liquidatable (health factor below threshold). 2) Acquire osToken shares (mint against collateral or buy) and call `liquidateOsToken` with a very small `osTokenShares` amount so `receivedAssets < totalAssets/totalShares`. 3) In `_redeemOsToken`, `burnedShares = convertToShares(receivedAssets)` rounds down to 0, yet `_totalAssets` is reduced and assets are transferred to the attacker. 4) Repeat small liquidations to drain up to the vault\u2019s surplus (`totalAssets - totalShares`) or current `withdrawableAssets`, extracting value from other shareholders without burning the target\u2019s collateral shares."
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 0
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 35
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 18
}
|