ff932ff9-2ce9-490b-9514-dd6f80ed85c1
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 |
|---|---|---|---|---|
| 30886 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 94327 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 94328 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 94329 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 94330 | capability.graph | complete | 1 / 3 | 1 week ago |
| 94331 | detector.run | complete | 1 / 3 | 1 week ago |
| 94332 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1482466] OpenAI Codex v0.77.0 (research preview)
[codex:1482466] --------
[codex:1482466] workdir: /tmp/codex-multi-9yxva5ju
[codex:1482466] model: gpt-5.2-codex
[codex:1482466] provider: openai
[codex:1482466] approval: never
[codex:1482466] sandbox: read-only
[codex:1482466] reasoning effort: xhigh
[codex:1482466] reasoning summaries: auto
[codex:1482466] session id: 019b75a3-d72d-7cb0-a882-acb32e42c6d7
[codex:1482466] --------
[codex:1482466] user
[codex:1482466] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1482466]
[codex:1482466] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1482466]
[codex:1482466] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1482466] - Gas inefficiency, code quality, naming, or best practices
[codex:1482466] - Theoretical vulnerabilities without a clear extraction path
[codex:1482466] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1482466] - Front-running unless it enables theft beyond MEV
[codex:1482466] - DoS, griefing, or issues that don't result in attacker profit
[codex:1482466] - Missing events, view function issues, or informational findings
[codex:1482466]
[codex:1482466] HIGH-VALUE PATTERNS TO HUNT:
[codex:1482466] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1482466] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1482466] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1482466] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1482466] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1482466] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1482466] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1482466] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1482466] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1482466]
[codex:1482466] For each finding, you MUST provide:
[codex:1482466] 1. Exact file and line numbers of vulnerable code
[codex:1482466] 2. Step-by-step exploit transaction sequence
[codex:1482466] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1482466]
[codex:1482466] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1482466]
[codex:1482466] Output MUST be valid JSON matching the provided schema.
[codex:1482466] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1482466] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1482466] mcp startup: no servers
[codex:1482466]
[codex:1482466] thinking
[codex:1482466] **Checking for AGENTS and AUDIT_BUNDLE files**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc ls in /tmp/codex-multi-9yxva5ju succeeded in 5ms:
[codex:1482466] AUDIT_BUNDLE.txt
[codex:1482466] codex-output-schema.json
[codex:1482466] contracts
[codex:1482466]
[codex:1482466] thinking
[codex:1482466] **Searching for instruction files**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc "rg --files -g 'AGENTS.md'" in /tmp/codex-multi-9yxva5ju exited 1 in 8ms:
[codex:1482466]
[codex:1482466]
[codex:1482466] thinking
[codex:1482466] **Checking for AGENTS and reading AUDIT_BUNDLE.txt**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-9yxva5ju succeeded in 6ms:
[codex:1482466] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1482466]
[codex:1482466] ================================================================================
[codex:1482466] FILE: contracts/Contract.sol
[codex:1482466] ================================================================================
[codex:1482466] /**
[codex:1482466] *Submitted for verification at basescan.org on 2025-07-18
[codex:1482466] */
[codex:1482466]
[codex:1482466] // SPDX-License-Identifier: MIT
[codex:1482466]
[codex:1482466] pragma solidity 0.8.10;
[codex:1482466]
[codex:1482466] // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)
[codex:1482466]
[codex:1482466] // OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
[codex:1482466]
[codex:1482466] // OpenZeppelin Contracts (last updated v4.6.0) (proxy/utils/Initializable.sol)
[codex:1482466]
[codex:1482466] // OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)
[codex:1482466]
[codex:1482466] thinking
[codex:1482466] **Planning vulnerability search**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc 'rg --files' in /tmp/codex-multi-9yxva5ju succeeded in 8ms:
[codex:1482466] codex-output-schema.json
[codex:1482466] AUDIT_BUNDLE.txt
[codex:1482466] contracts/Contract.sol
[codex:1482466]
[codex:1482466]
[codex:1482466]
[codex:1482466]
[codex:1482466] thinking
[codex:1482466] **Analyzing reentrancy and initializer risks**
[codex:1482466]
[codex:1482466] I'm unpacking how an unprotected initializer combined with an external initializePoolV2 function resetting the reentrancy guard could enable a reentrancy attack. This might let an attacker manipulate reward credits by reentering deposit functions via malicious tokens with callbacks, potentially draining rewards if the attacker exploits pools with valuable reward tokens.
[codex:1482466] thinking
[codex:1482466] **Exploring token callbacks impact on reentrancy**
[codex:1482466]
[codex:1482466] I’m evaluating how the requirement for the staking token to have callback hooks (like ERC777) affects the reentrancy exploit feasibility. The key is whether attackers can leverage token callbacks to bypass protections and multiply reward credits, depending heavily on token standards and pool configurations.
[codex:1482466] thinking
[codex:1482466] **Analyzing reentrancy effects on reward accounting and access control**
[codex:1482466]
[codex:1482466] There is a detailed look into which functions allow reentrancy with state updates after external calls, finding deposit is vulnerable since it updates rewardCredit before user.amount. The discussion confirms reentrancy can multiply pending rewards via repeated deposits if the staking token supports callbacks, but withdraw and claimReward are safe due to state updates before transfers. I’m also exploring how missing access control on initializePoolV2 can reset the reentrancy guard, enabling this attack once. Additional thoughts consider potential cross-pool reward token draining via stopReward if reward tokens are commingled, but limitations and protections reduce direct profit from that vector.
[codex:1482466] thinking
[codex:1482466] **Examining token behavior impact and initializer risks**
[codex:1482466]
[codex:1482466] The focus is on how fee-on-transfer tokens interact with pool accounting, concluding leftover tokens usually don’t accumulate to enable profit. I’m also considering risks around uninitialized proxies with external initializers that let attackers take ownership and drain tokens if not called—but this depends on deployment state. Meanwhile, initializePoolV2 remains a concrete reentrancy enabler that can be exploited when paired with tokens supporting callbacks. I’ll prepare to locate exact line numbers to clearly reference these vulnerable areas for further reporting.
[codex:1482466] exec
[codex:1482466] /bin/bash -lc "rg -n \"function initialize\\(|function initializePoolV2|modifier nonReentrant|function deposit\\(|function transferFunds\" contracts/Contract.sol" in /tmp/codex-multi-9yxva5ju succeeded in 12ms:
[codex:1482466] 223: * function initialize() initializer public {
[codex:1482466] 2254: modifier nonReentrant() {
[codex:1482466] 2265: function initialize() external initializer {
[codex:1482466] 2428: function deposit(uint256 _amount, uint256 poolId) external nonReentrant {
[codex:1482466] 2631: function initializePoolV2() external {
[codex:1482466] 2669: function transferFunds(IERC20Upgradeable token, uint256 amount) internal returns (uint256) {
[codex:1482466]
[codex:1482466] thinking
[codex:1482466] **Examining code context around deposit and initializePoolV2**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '2245,2355p'" in /tmp/codex-multi-9yxva5ju succeeded in 7ms:
[codex:1482466] 2245 error CannotStopRewards();
[codex:1482466] 2246 error CannotClaimBeforePoolEnds();
[codex:1482466] 2247 error InvalidStakeLimit(uint256 totalStaked, uint256 stakeLimit);
[codex:1482466] 2248 error MaximumStakeAmountReached(uint256 stakeLimit);
[codex:1482466] 2249
[codex:1482466] 2250 /**
[codex:1482466] 2251 * @notice Modifier to prevent reentrant calls to certain functions.
[codex:1482466] 2252 * @dev Keep for new deployment and comment for contract upgrade.
[codex:1482466] 2253 */
[codex:1482466] 2254 modifier nonReentrant() {
[codex:1482466] 2255 require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
[codex:1482466] 2256 _status = _ENTERED;
[codex:1482466] 2257 _;
[codex:1482466] 2258 _status = _NOT_ENTERED;
[codex:1482466] 2259 }
[codex:1482466] 2260
[codex:1482466] 2261 /**
[codex:1482466] 2262 * @dev Initializes the staking pool contract, setting up the Ownable module and reentrancy guard.
[codex:1482466] 2263 * @notice This function sets the contract's owner and initial status for the reentrancy guard.
[codex:1482466] 2264 */
[codex:1482466]
[codex:1482466] thinking
[codex:1482466] **Identifying needed lines for functions**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '2415,2495p'" in /tmp/codex-multi-9yxva5ju succeeded in 8ms:
[codex:1482466] 2415 uint256 rewards = ((min(block.timestamp, end) - max(start, lastRewardTimestamp)) * pool.totalReward) /
[codex:1482466] 2416 (end - start);
[codex:1482466] 2417
[codex:1482466] 2418 pool.accTokenPerShare = pool.accTokenPerShare + (rewards * pool.precision) / lpSupply;
[codex:1482466] 2419 pool.lastRewardTimestamp = block.timestamp;
[codex:1482466] 2420 }
[codex:1482466] 2421
[codex:1482466] 2422 /**
[codex:1482466] 2423 * @dev Allows a user to deposit staking tokens into a specific pool.
[codex:1482466] 2424 * @notice Users can deposit tokens to start earning rewards, without claiming existing rewards.
[codex:1482466] 2425 * @param _amount The amount of tokens to deposit.
[codex:1482466] 2426 * @param poolId The ID of the pool to deposit into.
[codex:1482466] 2427 */
[codex:1482466] 2428 function deposit(uint256 _amount, uint256 poolId) external nonReentrant {
[codex:1482466] 2429 if (_amount == 0) revert AmountIsZero();
[codex:1482466] 2430 if (poolId >= poolInfo.length) {
[codex:1482466] 2431 revert PoolDoesNotExist(poolId);
[codex:1482466] 2432 }
[codex:1482466] 2433 PoolInfo storage pool = poolInfo[poolId];
[codex:1482466] 2434 if (pool.totalStaked + _amount > poolStakeLimit[poolId] && poolStakeLimit[poolId] > 0) {
[codex:1482466]
[codex:1482466] thinking
[codex:1482466] **Preparing to implement pool initialization and fund transfer**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '2605,2685p'" in /tmp/codex-multi-9yxva5ju succeeded in 6ms:
[codex:1482466] 2605 }
[codex:1482466] 2606
[codex:1482466] 2607 /**
[codex:1482466] 2608 * @dev Allows the owner to transfer tokens out of the contract for recovery purposes.
[codex:1482466] 2609 * @notice This emergency function is used to recover tokens mistakenly sent to the contract.
[codex:1482466] 2610 * @param tokenAddress The address of the token to transfer out.
[codex:1482466] 2611 * @param amount The amount of tokens to transfer.
[codex:1482466] 2612 */
[codex:1482466] 2613 function saveMe(address tokenAddress, uint256 amount) external onlyOwner nonReentrant {
[codex:1482466] 2614 IERC20Upgradeable token = IERC20Upgradeable(tokenAddress);
[codex:1482466] 2615 token.safeTransfer(address(msg.sender), amount);
[codex:1482466] 2616 }
[codex:1482466] 2617
[codex:1482466] 2618 /**
[codex:1482466] 2619 * @dev Updates the current version of the staking pool contract.
[codex:1482466] 2620 * @notice Used to track contract upgrades and changes over time.
[codex:1482466] 2621 * @param _currentVersion The new version number to set.
[codex:1482466] 2622 */
[codex:1482466] 2623 function updateVersion(uint256 _currentVersion) external onlyOwner {
[codex:1482466] 2624 currentVersion = _currentVersion;
[codex:1482466]
[codex:1482466]
[codex:1482466] thinking
[codex:1482466] **Analyzing detailed reentrancy exploit scenario**
[codex:1482466]
[codex:1482466] I’m mapping out how reentrancy can inflate rewardCredit in deposit calls due to lack of nonReentrant guard reset, especially with ERC777 staking tokens allowing callbacks. This shows an attacker could multiply their rewards and even drain tokens from other pools sharing the same reward token balance, exploiting the resettable reentrancy guard via initializePoolV2 and open addPool calls. I’m weighing whether ownership and initialization edge cases yield concrete exploits too.
[codex:1482466] thinking
[codex:1482466] **Evaluating multi-pool reward token impact**
[codex:1482466]
[codex:1482466] I’m considering how sharing reward tokens across multiple pools could enable profit from inflated rewards, and whether to report this exploit path with its prerequisites. I’m also planning a quick search for other access control issues linked to pool staking limits or pool versioning.
[codex:1482466] exec
[codex:1482466] /bin/bash -lc 'rg -n "onlyOwner|external" contracts/Contract.sol' in /tmp/codex-multi-9yxva5ju succeeded in 7ms:
[codex:1482466] 27: * false is an externally-owned account (EOA) and not a contract.
[codex:1482466] 32: * - an externally-owned account
[codex:1482466] 211: * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
[codex:1482466] 392: * `onlyOwner`, which can be applied to your functions to restrict their use to
[codex:1482466] 421: modifier onlyOwner() {
[codex:1482466] 428: * `onlyOwner` functions anymore. Can only be called by the current owner.
[codex:1482466] 433: function renounceOwnership() public virtual onlyOwner {
[codex:1482466] 441: function transferOwnership(address newOwner) public virtual onlyOwner {
[codex:1482466] 489: function totalSupply() external view returns (uint256);
[codex:1482466] 494: function balanceOf(address account) external view returns (uint256);
[codex:1482466] 503: function transfer(address to, uint256 amount) external returns (bool);
[codex:1482466] 512: function allowance(address owner, address spender) external view returns (uint256);
[codex:1482466] 528: function approve(address spender, uint256 amount) external returns (bool);
[codex:1482466] 543: ) external returns (bool);
[codex:1482466] 2265: function initialize() external initializer {
[codex:1482466] 2288: ) external nonReentrant {
[codex:1482466] 2320: function stopReward(uint256 poolId) external nonReentrant {
[codex:1482466] 2351: function getUserInfo(address user, uint256 poolId) external view returns (UserInfo memory) {
[codex:1482466] 2362: function pendingReward(address _user, uint256 poolId) external view returns (uint256) {
[codex:1482466] 2428: function deposit(uint256 _amount, uint256 poolId) external nonReentrant {
[codex:1482466]
[codex:1482466]
[codex:1482466] thinking
[codex:1482466] **Summarizing detailed exploit analysis**
[codex:1482466]
[codex:1482466] I’m gathering and organizing two main findings: a reentrancy vulnerability through `initializePoolV2` that resets the reentrancy guard and enables reward inflation, and an unprotected `initialize` function risk that could allow an attacker to become owner and drain tokens via `saveMe`. I’m carefully checking relevant line numbers and crafting clear step-by-step exploit scenarios, assessing severity, and preparing a JSON report per the expected schema. The reentrancy issue looks potentially high severity as it allows reward token draining under specific conditions, while unprotected initialize is classified as critical. I’m making sure to include exact file and line references and structured recommendations.
[codex:1482466] thinking
[codex:1482466] **Compiling final vulnerability report**
[codex:1482466]
[codex:1482466] I’m finalizing a detailed JSON report including two main findings: the critical risk of uninitialized ownership takeover allowing full token drain, and the high-severity reentrancy guard reset via `initializePoolV2` enabling reward inflation attacks. I carefully put together clear step-by-step exploit scenarios, precise line number references without ranges, severity assessments, and focused recommendations, all formatted to match the required JSON schema exactly with valid syntax and escaped strings.
[codex:1482466] codex
[codex:1482466] {"no_findings":false,"summary":"Found 2 profit paths: an unauthenticated V2 initializer lets attackers reset the reentrancy guard and inflate rewards, and a still-initializable deployment allows owner takeover and token drain.","findings":[{"severity":"high","category":"reentrancy","title":"Anyone can reset the reentrancy guard via initializePoolV2, enabling reward inflation in deposit","exploit_scenario":"1) Target a pool whose staking token is ERC777 or otherwise calls back during transferFrom, and ensure initializePoolV2 has not been called yet (initializedV2 == false). 2) Stake normally to build pending rewards. 3) Call deposit() from an attacker contract; during transferFunds() the token callback calls initializePoolV2() to set _status back to _NOT_ENTERED, then reenters deposit() repeatedly before the original call finishes. Each reentrant deposit adds the same pending rewards to rewardCredit because user.amount and user.rewardDebt are not updated yet. 4) After the pool ends, call withdraw()/claimReward() to receive the inflated rewardCredit. Profit: up to the remaining rewardToken balance held by the contract for that token (order of magnitude: the pool totalReward, or more if other pools share the same reward token).","recommendation":"Make initializePoolV2 a proper reinitializer restricted to onlyOwner and never touch _status, or remove it entirely. If it must exist, add nonReentrant/onlyOwner and redesign deposit to update user state before external transfers.","evidence":"initializePoolV2 is external and resets _status (contracts/Contract.sol:2631, contracts/Contract.sol:2637). nonReentrant relies on _status (contracts/Contract.sol:2254). deposit calls transferFunds before updating user.amount/rewardDebt (contracts/Contract.sol:2446, contracts/Contract.sol:2449). transferFunds performs external token.safeTransferFrom (contracts/Contract.sol:2669, contracts/Contract.sol:2671).","locations":["contracts/Contract.sol:2254","contracts/Contract.sol:2428","contracts/Contract.sol:2446","contracts/Contract.sol:2449","contracts/Contract.sol:2631","contracts/Contract.sol:2637","contracts/Contract.sol:2669","contracts/Contract.sol:2671"]},{"severity":"critical","category":"access_control","title":"Uninitialized deployment lets anyone become owner and drain all tokens","exploit_scenario":"1) If the proxy/contract is deployed without calling initialize(), an attacker calls initialize() to become owner (Ownable sets owner = msg.sender). 2) The attacker calls saveMe() to transfer out any ERC20 balances held by the contract (reward tokens and staked tokens). Profit: entire contract token balances (order of magnitude: total TVL in all pools).","recommendation":"Call initialize during deployment and add a constructor that calls _disableInitializers() on the implementation; alternatively restrict initialize to a trusted deployer via an initializer-only access control pattern.","evidence":"initialize() is external and assigns ownership via __Ownable_init (contracts/Contract.sol:2265). saveMe() allows the owner to transfer arbitrary ERC20 balances (contracts/Contract.sol:2613).","locations":["contracts/Contract.sol:2265","contracts/Contract.sol:2613"]}]}
[codex:1482466] tokens used
[codex:1482466] 68,293
[codex:1482466] {"no_findings":false,"summary":"Found 2 profit paths: an unauthenticated V2 initializer lets attackers reset the reentrancy guard and inflate rewards, and a still-initializable deployment allows owner takeover and token drain.","findings":[{"severity":"high","category":"reentrancy","title":"Anyone can reset the reentrancy guard via initializePoolV2, enabling reward inflation in deposit","exploit_scenario":"1) Target a pool whose staking token is ERC777 or otherwise calls back during transferFrom, and ensure initializePoolV2 has not been called yet (initializedV2 == false). 2) Stake normally to build pending rewards. 3) Call deposit() from an attacker contract; during transferFunds() the token callback calls initializePoolV2() to set _status back to _NOT_ENTERED, then reenters deposit() repeatedly before the original call finishes. Each reentrant deposit adds the same pending rewards to rewardCredit because user.amount and user.rewardDebt are not updated yet. 4) After the pool ends, call withdraw()/claimReward() to receive the inflated rewardCredit. Profit: up to the remaining rewardToken balance held by the contract for that token (order of magnitude: the pool totalReward, or more if other pools share the same reward token).","recommendation":"Make initializePoolV2 a proper reinitializer restricted to onlyOwner and never touch _status, or remove it entirely. If it must exist, add nonReentrant/onlyOwner and redesign deposit to update user state before external transfers.","evidence":"initializePoolV2 is external and resets _status (contracts/Contract.sol:2631, contracts/Contract.sol:2637). nonReentrant relies on _status (contracts/Contract.sol:2254). deposit calls transferFunds before updating user.amount/rewardDebt (contracts/Contract.sol:2446, contracts/Contract.sol:2449). transferFunds performs external token.safeTransferFrom (contracts/Contract.sol:2669, contracts/Contract.sol:2671).","locations":["contracts/Contract.sol:2254","contracts/Contract.sol:2428","contracts/Contract.sol:2446","contracts/Contract.sol:2449","contracts/Contract.sol:2631","contracts/Contract.sol:2637","contracts/Contract.sol:2669","contracts/Contract.sol:2671"]},{"severity":"critical","category":"access_control","title":"Uninitialized deployment lets anyone become owner and drain all tokens","exploit_scenario":"1) If the proxy/contract is deployed without calling initialize(), an attacker calls initialize() to become owner (Ownable sets owner = msg.sender). 2) The attacker calls saveMe() to transfer out any ERC20 balances held by the contract (reward tokens and staked tokens). Profit: entire contract token balances (order of magnitude: total TVL in all pools).","recommendation":"Call initialize during deployment and add a constructor that calls _disableInitializers() on the implementation; alternatively restrict initialize to a trusted deployer via an initializer-only access control pattern.","evidence":"initialize() is external and assigns ownership via __Ownable_init (contracts/Contract.sol:2265). saveMe() allows the owner to transfer arbitrary ERC20 balances (contracts/Contract.sol:2613).","locations":["contracts/Contract.sol:2265","contracts/Contract.sol:2613"]}]}
{
"codex": {
"ran_at": "2025-12-31T18:27:38.107868+00:00",
"returncode": 0
},
"summary": "Found 2 profit paths: an unauthenticated V2 initializer lets attackers reset the reentrancy guard and inflate rewards, and a still-initializable deployment allows owner takeover and token drain.",
"raw_final": {
"summary": "Found 2 profit paths: an unauthenticated V2 initializer lets attackers reset the reentrancy guard and inflate rewards, and a still-initializable deployment allows owner takeover and token drain.",
"findings": [
{
"title": "Anyone can reset the reentrancy guard via initializePoolV2, enabling reward inflation in deposit",
"category": "reentrancy",
"evidence": "initializePoolV2 is external and resets _status (contracts/Contract.sol:2631, contracts/Contract.sol:2637). nonReentrant relies on _status (contracts/Contract.sol:2254). deposit calls transferFunds before updating user.amount/rewardDebt (contracts/Contract.sol:2446, contracts/Contract.sol:2449). transferFunds performs external token.safeTransferFrom (contracts/Contract.sol:2669, contracts/Contract.sol:2671).",
"severity": "high",
"locations": [
"contracts/Contract.sol:2254",
"contracts/Contract.sol:2428",
"contracts/Contract.sol:2446",
"contracts/Contract.sol:2449",
"contracts/Contract.sol:2631",
"contracts/Contract.sol:2637",
"contracts/Contract.sol:2669",
"contracts/Contract.sol:2671"
],
"recommendation": "Make initializePoolV2 a proper reinitializer restricted to onlyOwner and never touch _status, or remove it entirely. If it must exist, add nonReentrant/onlyOwner and redesign deposit to update user state before external transfers.",
"exploit_scenario": "1) Target a pool whose staking token is ERC777 or otherwise calls back during transferFrom, and ensure initializePoolV2 has not been called yet (initializedV2 == false). 2) Stake normally to build pending rewards. 3) Call deposit() from an attacker contract; during transferFunds() the token callback calls initializePoolV2() to set _status back to _NOT_ENTERED, then reenters deposit() repeatedly before the original call finishes. Each reentrant deposit adds the same pending rewards to rewardCredit because user.amount and user.rewardDebt are not updated yet. 4) After the pool ends, call withdraw()/claimReward() to receive the inflated rewardCredit. Profit: up to the remaining rewardToken balance held by the contract for that token (order of magnitude: the pool totalReward, or more if other pools share the same reward token)."
},
{
"title": "Uninitialized deployment lets anyone become owner and drain all tokens",
"category": "access_control",
"evidence": "initialize() is external and assigns ownership via __Ownable_init (contracts/Contract.sol:2265). saveMe() allows the owner to transfer arbitrary ERC20 balances (contracts/Contract.sol:2613).",
"severity": "critical",
"locations": [
"contracts/Contract.sol:2265",
"contracts/Contract.sol:2613"
],
"recommendation": "Call initialize during deployment and add a constructor that calls _disableInitializers() on the implementation; alternatively restrict initialize to a trusted deployer via an initializer-only access control pattern.",
"exploit_scenario": "1) If the proxy/contract is deployed without calling initialize(), an attacker calls initialize() to become owner (Ownable sets owner = msg.sender). 2) The attacker calls saveMe() to transfer out any ERC20 balances held by the contract (reward tokens and staked tokens). Profit: entire contract token balances (order of magnitude: total TVL in all pools)."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x0010 0000000b: JUMPI 0000000c: PUSH1 0x00 0000000e: DUP1 0000000f: REVERT 00000010: JUMPDEST 00000011: POP 00000012: PUSH1 0x04 00000014: CALLDATASIZE 00000015: LT 00000016: PUSH2 0x018e 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x8129fc1c 00000026: GT 00000027: PUSH2 0x00de 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xb3944d52 00000031: GT 00000032: PUSH2 0x0097 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xf2fde38b 0000003c: GT 0000003d: PUSH2 0x0071 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xf2fde38b 00000047: EQ 00000048: PUSH2 0x0463 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xf430cf0d 00000052: EQ 00000053: PUSH2 0x047f 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xfa31a89c 0000005d: EQ 0000005e: PUSH2 0x04af 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0xffd47db9 00000068: EQ 00000069: PUSH2 0x04cb 0000006c: JUMPI 0000006d: PUSH2 0x018e 00000070: JUMP 00000071: JUMPDEST 00000072: DUP1 00000073: PUSH4 0xb3944d52 00000078: EQ 00000079: PUSH2 0x041f 0000007c: JUMPI 0000007d: DUP1 0000007e: PUSH4 0xc5f879dc 00000083: EQ 00000084: PUSH2 0x043d 00000087: JUMPI 00000088: DUP1 00000089: PUSH4 0xe2bbb158 0000008e: EQ 0000008f: PUSH2 0x0447 00000092: JUMPI 00000093: PUSH2 0x018e 00000096: JUMP 00000097: JUMPDEST 00000098: DUP1 00000099: PUSH4 0x8129fc1c 0000009e: EQ 0000009f: PUSH2 0x0371 000000a2: JUMPI 000000a3: DUP1 000000a4: PUSH4 0x8da5cb5b 000000a9: EQ 000000aa: PUSH2 0x037b 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0x93c335ad 000000b4: EQ 000000b5: PUSH2 0x0399 000000b8: JUMPI 000000b9: DUP1 000000ba: PUSH4 0x9d888e86 000000bf: EQ 000000c0: PUSH2 0x03c9 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0xa87f884e 000000ca: EQ 000000cb: PUSH2 0x03e7 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0xae169a50 000000d5: EQ 000000d6: PUSH2 0x0403 000000d9: JUMPI 000000da: PUSH2 0x018e 000000dd: JUMP 000000de: JUMPDEST 000000df: DUP1 000000e0: PUSH4 0x51eb05a6 000000e5: GT 000000e6: PUSH2 0x014b 000000e9: JUMPI 000000ea: DUP1 000000eb: PUSH4 0x6968ff72 000000f0: GT 000000f1: PUSH2 0x0125 000000f4: JUMPI 000000f5: DUP1 000000f6: PUSH4 0x6968ff72 000000fb: EQ 000000fc: PUSH2 0x02eb 000000ff: JUMPI 00000100: DUP1 00000101: PUSH4 0x715018a6 00000106: EQ 00000107: PUSH2 0x031b 0000010a: JUMPI 0000010b: DUP1 0000010c: PUSH4 0x76e8424f 00000111: EQ 00000112: PUSH2 0x0325 00000115: JUMPI 00000116: DUP1 00000117: PUSH4 0x77300089 0000011c: EQ 0000011d: PUSH2 0x0355 00000120: JUMPI 00000121: PUSH2 0x018e 00000124: JUMP 00000125: JUMPDEST 00000126: DUP1 00000127: PUSH4 0x51eb05a6 0000012c: EQ 0000012d: PUSH2 0x0295 00000130: JUMPI 00000131: DUP1 00000132: PUSH4 0x5312ea8e 00000137: EQ 00000138: PUSH2 0x02b1 0000013b: JUMPI 0000013c: DUP1 0000013d: PUSH4 0x673a2a1f 00000142: EQ 00000143: PUSH2 0x02cd 00000146: JUMPI 00000147: PUSH2 0x018e 0000014a: JUMP 0000014b: JUMPDEST 0000014c: DUP1 0000014d: PUSH4 0x097f0f11 00000152: EQ 00000153: PUSH2 0x0193 00000156: JUMPI 00000157: DUP1 00000158: PUSH4 0x1526fe27 0000015d: EQ 0000015e: PUSH2 0x01c3 00000161: JUMPI 00000162: DUP1 00000163: PUSH4 0x214ac2f6 00000168: EQ 00000169: PUSH2 0x01fc 0000016c: JUMPI 0000016d: DUP1 0000016e: PUSH4 0x21ce919d 00000173: EQ 00000174: PUSH2 0x0218 00000177: JUMPI 00000178: DUP1 00000179: PUSH4 0x3b9a4d03 0000017e: EQ 0000017f: PUSH2 0x0249 00000182: JUMPI 00000183: DUP1 00000184: PUSH4 0x441a3e70 00000189: EQ 0000018a: PUSH2 0x0279 0000018d: JUMPI 0000018e: JUMPDEST 0000018f: PUSH1 0x00 00000191: DUP1 00000192: REVERT 00000193: JUMPDEST 00000194: PUSH2 0x01ad 00000197: PUSH1 0x04 00000199: DUP1 0000019a: CALLDATASIZE 0000019b: SUB 0000019c: DUP2 0000019d: ADD 0000019e: SWAP1 0000019f: PUSH2 0x01a8 000001a2: SWAP2 000001a3: SWAP1 000001a4: PUSH2 0x3071 000001a7: JUMP 000001a8: JUMPDEST 000001a9: PUSH2 0x04e7 000001ac: JUMP 000001ad: JUMPDEST 000001ae: PUSH1 0x40 000001b0: MLOAD 000001b1: PUSH2 0x01ba 000001b4: SWAP2 000001b5: SWAP1 000001b6: PUSH2 0x30ad 000001b9: JUMP 000001ba: JUMPDEST 000001bb: PUSH1 0x40 000001bd: MLOAD 000001be: DUP1 000001bf: SWAP2 000001c0: SUB 000001c1: SWAP1 000001c2: RETURN 000001c3: JUMPDEST 000001c4: PUSH2 0x01dd 000001c7: PUSH1 0x04 000001c9: DUP1 000001ca: CALLDATASIZE 000001cb: SUB 000001cc: DUP2 000001cd: ADD 000001ce: SWAP1 000001cf: PUSH2 0x01d8 000001d2: SWAP2 000001d3: SWAP1 000001d4: PUSH2 0x3071 000001d7: JUMP 000001d8: JUMPDEST 000001d9: PUSH2 0x04ff 000001dc: JUMP 000001dd: JUMPDEST 000001de: PUSH1 0x40 000001e0: MLOAD 000001e1: PUSH2 0x01f3 000001e4: SWAP11 000001e5: SWAP10 000001e6: SWAP9 000001e7: SWAP8 000001e8: SWAP7 000001e9: SWAP6 000001ea: SWAP5 000001eb: SWAP4 000001ec: SWAP3 000001ed: SWAP2 000001ee: SWAP1 000001ef: PUSH2 0x3168 000001f2: JUMP 000001f3: JUMPDEST 000001f4: PUSH1 0x40 000001f6: MLOAD 000001f7: DUP1 000001f8: SWAP2 000001f9: SUB 000001fa: SWAP1 000001fb: RETURN 000001fc: JUMPDEST 000001fd: PUSH2 0x0216 00000200: PUSH1 0x04 00000202: DUP1 00000203: CALLDATASIZE 00000204: SUB 00000205: DUP2 00000206: ADD 00000207: SWAP1 00000208: PUSH2 0x0211 0000020b: SWAP2 0000020c: SWAP1 0000020d: PUSH2 0x3204 00000210: JUMP 00000211: JUMPDEST 00000212: PUSH2 0x05c3 00000215: JUMP 00000216: JUMPDEST 00000217: STOP 00000218: JUMPDEST 00000219: PUSH2 0x0232 0000021c: PUSH1 0x04 0000021e: DUP1 0000021f: CALLDATASIZE 00000220: SUB 00000221: DUP2 00000222: ADD 00000223: SWAP1 00000224: PUSH2 0x022d 00000227: SWAP2 00000228: SWAP1 00000229: PUSH2 0x3270 0000022c: JUMP 0000022d: JUMPDEST 0000022e: PUSH2 0x08aa 00000231: JUMP 00000232: JUMPDEST 00000233: PUSH1 0x40 00000235: MLOAD 00000236: PUSH2 0x0240 00000239: SWAP3 0000023a: SWAP2 0000023b: SWAP1 0000023c: PUSH2 0x32b0 0000023f: JUMP 00000240: JUMPDEST 00000241: PUSH1 0x40 00000243: MLOAD 00000244: DUP1 00000245: SWAP2 00000246: SUB 00000247: SWAP1 00000248: RETURN 00000249: JUMPDEST 0000024a: PUSH2 0x0263 0000024d: PUSH1 0x04 0000024f: DUP1 00000250: CALLDATASIZE 00000251: SUB 00000252: DUP2 00000253: ADD 00000254: SWAP1 00000255: PUSH2 0x025e 00000258: SWAP2 00000259: SWAP1 0000025a: PUSH2 0x3071 0000025d: JUMP 0000025e: JUMPDEST 0000025f: PUSH2 0x08db 00000262: JUMP 00000263: JUMPDEST 00000264: PUSH1 0x40 00000266: MLOAD 00000267: PUSH2 0x0270 0000026a: SWAP2 0000026b: SWAP1 0000026c: PUSH2 0x30ad 0000026f: JUMP 00000270: JUMPDEST 00000271: PUSH1 0x40 00000273: MLOAD 00000274: DUP1 00000275: SWAP2 00000276: SUB 00000277: SWAP1 00000278: RETURN 00000279: JUMPDEST 0000027a: PUSH2 0x0293 0000027d: PUSH1 0x04 0000027f: DUP1 00000280: CALLDATASIZE 00000281: SUB 00000282: DUP2 00000283: ADD 00000284: SWAP1 00000285: PUSH2 0x028e 00000288: SWAP2 00000289: SWAP1 0000028a: PUSH2 0x3204 0000028d: JUMP 0000028e: JUMPDEST 0000028f: PUSH2 0x08f3 00000292: JUMP 00000293: JUMPDEST 00000294: STOP 00000295: JUMPDEST 00000296: PUSH2 0x02af 00000299: PUSH1 0x04 0000029b: DUP1 0000029c: CALLDATASIZE 0000029d: SUB 0000029e: DUP2 0000029f: ADD 000002a0: SWAP1 000002a1: PUSH2 0x02aa 000002a4: SWAP2 000002a5: SWAP1 000002a6: PUSH2 0x3071 000002a9: JUMP 000002aa: JUMPDEST 000002ab: PUSH2 0x0dfa 000002ae: JUMP 000002af: JUMPDEST 000002b0: STOP 000002b1: JUMPDEST 000002b2: PUSH2 0x02cb 000002b5: PUSH1 0x04 000002b7: DUP1 000002b8: CALLDATASIZE 000002b9: SUB 000002ba: DUP2 000002bb: ADD 000002bc: SWAP1 000002bd: PUSH2 0x02c6 000002c0: SWAP2 000002c1: SWAP1 000002c2: PUSH2 0x3071 000002c5: JUMP 000002c6: JUMPDEST 000002c7: PUSH2 0x0f5e 000002ca: JUMP 000002cb: JUMPDEST 000002cc: STOP 000002cd: JUMPDEST 000002ce: PUSH2 0x02d5 000002d1: PUSH2 0x1225 000002d4: JUMP 000002d5: JUMPDEST 000002d6: PUSH1 0x40 000002d8: MLOAD 000002d9: PUSH2 0x02e2 000002dc: SWAP2 000002dd: SWAP1 000002de: PUSH2 0x3482 000002e1: JUMP 000002e2: JUMPDEST 000002e3: PUSH1 0x40 000002e5: MLOAD 000002e6: DUP1 000002e7: SWAP2 000002e8: SUB 000002e9: SWAP1 000002ea: RETURN 000002eb: JUMPDEST 000002ec: PUSH2 0x0305 000002ef: PUSH1 0x04 000002f1: DUP1 000002f2: CALLDATASIZE 000002f3: SUB 000002f4: DUP2 000002f5: ADD 000002f6: SWAP1 000002f7: PUSH2 0x0300 000002fa: SWAP2 000002fb: SWAP1 000002fc: PUSH2 0x3071 000002ff: JUMP 00000300: JUMPDEST 00000301: PUSH2 0x13cd 00000304: JUMP 00000305: JUMPDEST 00000306: PUSH1 0x40 00000308: MLOAD 00000309: PUSH2 0x0312 0000030c: SWAP2 0000030d: SWAP1 0000030e: PUSH2 0x34bf 00000311: JUMP 00000312: JUMPDEST 00000313: PUSH1 0x40 00000315: MLOAD 00000316: DUP1 00000317: SWAP2 00000318: SUB 00000319: SWAP1 0000031a: RETURN 0000031b: JUMPDEST 0000031c: PUSH2 0x0323 0000031f: PUSH2 0x13ed 00000322: JUMP 00000323: JUMPDEST 00000324: STOP 00000325: JUMPDEST 00000326: PUSH2 0x033f 00000329: PUSH1 0x04 0000032b: DUP1 0000032c: CALLDATASIZE 0000032d: SUB 0000032e: DUP2 0000032f: ADD 00000330: SWAP1 00000331: PUSH2 0x033a 00000334: SWAP2 00000335: SWAP1 00000336: PUSH2 0x3270 00000339: JUMP 0000033a: JUMPDEST 0000033b: PUSH2 0x1475 0000033e: JUMP 0000033f: JUMPDEST 00000340: PUSH1 0x40 00000342: MLOAD 00000343: PUSH2 0x034c 00000346: SWAP2 00000347: SWAP1 00000348: PUSH2 0x3509 0000034b: JUMP 0000034c: JUMPDEST 0000034d: PUSH1 0x40 0000034f: MLOAD 00000350: DUP1 00000351: SWAP2 00000352: SUB 00000353: SWAP1 00000354: RETURN 00000355: JUMPDEST 00000356: PUSH2 0x036f 00000359: PUSH1 0x04 0000035b: DUP1 0000035c: CALLDATASIZE 0000035d: SUB 0000035e: DUP2 0000035f: ADD 00000360: SWAP1 00000361: PUSH2 0x036a 00000364: SWAP2 00000365: SWAP1 00000366: PUSH2 0x3071 00000369: JUMP 0000036a: JUMPDEST 0000036b: PUSH2 0x14f4 0000036e: JUMP 0000036f: JUMPDEST 00000370: STOP 00000371: JUMPDEST 00000372: PUSH2 0x0379 00000375: PUSH2 0x1780 00000378: JUMP 00000379: JUMPDEST 0000037a: STOP 0000037b: JUMPDEST 0000037c: PUSH2 0x0383 0000037f: PUSH2 0x1824 00000382: JUMP 00000383: JUMPDEST 00000384: PUSH1 0x40 00000386: MLOAD 00000387: PUSH2 0x0390 0000038a: SWAP2 0000038b: SWAP1 0000038c: PUSH2 0x3524 0000038f: JUMP 00000390: JUMPDEST 00000391: PUSH1 0x40 00000393: MLOAD 00000394: DUP1 00000395: SWAP2 00000396: SUB 00000397: SWAP1 00000398: RETURN 00000399: JUMPDEST 0000039a: PUSH2 0x03b3 0000039d: PUSH1 0x04 0000039f: DUP1 000003a0: CALLDATASIZE 000003a1: SUB 000003a2: DUP2 000003a3: ADD 000003a4: SWAP1 000003a5: PUSH2 0x03ae 000003a8: SWAP2 000003a9: SWAP1 000003aa: PUSH2 0x3270 000003ad: JUMP 000003ae: JUMPDEST 000003af: PUSH2 0x184e 000003b2: JUMP 000003b3: JUMPDEST 000003b4: PUSH1 0x40 000003b6: MLOAD 000003b7: PUSH2 0x03c0 000003ba: SWAP2 000003bb: SWAP1 000003bc: PUSH2 0x30ad 000003bf: JUMP 000003c0: JUMPDEST 000003c1: PUSH1 0x40 000003c3: MLOAD 000003c4: DUP1 000003c5: SWAP2 000003c6: SUB 000003c7: SWAP1 000003c8: RETURN 000003c9: JUMPDEST 000003ca: PUSH2 0x03d1 000003cd: PUSH2 0x1873 000003d0: JUMP 000003d1: JUMPDEST 000003d2: PUSH1 0x40 000003d4: MLOAD 000003d5: PUSH2 0x03de 000003d8: SWAP2 000003d9: SWAP1 000003da: PUSH2 0x30ad 000003dd: JUMP 000003de: JUMPDEST 000003df: PUSH1 0x40 000003e1: MLOAD 000003e2: DUP1 000003e3: SWAP2 000003e4: SUB 000003e5: SWAP1 000003e6: RETURN 000003e7: JUMPDEST 000003e8: PUSH2 0x0401 000003eb: PUSH1 0x04 000003ed: DUP1 000003ee: CALLDATASIZE 000003ef: SUB 000003f0: DUP2 000003f1: ADD 000003f2: SWAP1 000003f3: PUSH2 0x03fc 000003f6: SWAP2 000003f7: SWAP1 000003f8: PUSH2 0x3071 000003fb: JUMP 000003fc: JUMPDEST 000003fd: PUSH2 0x1879 00000400: JUMP 00000401: JUMPDEST 00000402: STOP 00000403: JUMPDEST 00000404: PUSH2 0x041d 00000407: PUSH1 0x04 00000409: DUP1 0000040a: CALLDATASIZE 0000040b: SUB 0000040c: DUP2 0000040d: ADD 0000040e: SWAP1 0000040f: PUSH2 0x0418 00000412: SWAP2 00000413: SWAP1 00000414: PUSH2 0x3071 00000417: JUMP 00000418: JUMPDEST 00000419: PUSH2 0x18ff 0000041c: JUMP 0000041d: JUMPDEST 0000041e: STOP 0000041f: JUMPDEST 00000420: PUSH2 0x0427 00000423: PUSH2 0x1c22 00000426: JUMP 00000427: JUMPDEST 00000428: PUSH1 0x40 0000042a: MLOAD 0000042b: PUSH2 0x0434 0000042e: SWAP2 0000042f: SWAP1 00000430: PUSH2 0x30ad 00000433: JUMP 00000434: JUMPDEST 00000435: PUSH1 0x40 00000437: MLOAD 00000438: DUP1 00000439: SWAP2 0000043a: SUB 0000043b: SWAP1 0000043c: RETURN 0000043d: JUMPDEST 0000043e: PUSH2 0x0445 00000441: PUSH2 0x1c2f 00000444: JUMP 00000445: JUMPDEST 00000446: STOP 00000447: JUMPDEST 00000448: PUSH2 0x0461 0000044b: PUSH1 0x04 0000044d: DUP1 0000044e: CALLDATASIZE 0000044f: SUB 00000450: DUP2 00000451: ADD 00000452: SWAP1 00000453: PUSH2 0x045c 00000456: SWAP2 00000457: SWAP1 00000458: PUSH2 0x3204 0000045b: JUMP 0000045c: JUMPDEST 0000045d: PUSH2 0x1cac 00000460: JUMP 00000461: JUMPDEST 00000462: STOP 00000463: JUMPDEST 00000464: PUSH2 0x047d 00000467: PUSH1 0x04 00000469: DUP1 0000046a: CALLDATASIZE 0000046b: SUB 0000046c: DUP2 0000046d: ADD 0000046e: SWAP1 0000046f: PUSH2 0x0478 00000472: SWAP2 00000473: SWAP1 00000474: PUSH2 0x353f 00000477: JUMP 00000478: JUMPDEST 00000479: PUSH2 0x2032 0000047c: JUMP 0000047d: JUMPDEST 0000047e: STOP 0000047f: JUMPDEST 00000480: PUSH2 0x0499 00000483: PUSH1 0x04 00000485: DUP1 00000486: CALLDATASIZE 00000487: SUB 00000488: DUP2 00000489: ADD 0000048a: SWAP1 0000048b: PUSH2 0x0494 0000048e: SWAP2 0000048f: SWAP1 00000490: PUSH2 0x3270 00000493: JUMP 00000494: JUMPDEST 00000495: PUSH2 0x212a 00000498: JUMP 00000499: JUMPDEST 0000049a: PUSH1 0x40 0000049c: MLOAD 0000049d: PUSH2 0x04a6 000004a0: SWAP2 000004a1: SWAP1 000004a2: PUSH2 0x30ad 000004a5: JUMP 000004a6: JUMPDEST 000004a7: PUSH1 0x40 000004a9: MLOAD 000004aa: DUP1 000004ab: SWAP2 000004ac: SUB 000004ad: SWAP1 000004ae: RETURN 000004af: JUMPDEST 000004b0: PUSH2 0x04c9 000004b3: PUSH1 0x04 000004b5: DUP1 000004b6: CALLDATASIZE 000004b7: SUB 000004b8: DUP2 000004b9: ADD 000004ba: SWAP1 000004bb: PUSH2 0x04c4 000004be: SWAP2 000004bf: SWAP1 000004c0: PUSH2 0x356c 000004c3: JUMP 000004c4: JUMPDEST 000004c5: PUSH2 0x2362 000004c8: JUMP 000004c9: JUMPDEST 000004ca: STOP 000004cb: JUMPDEST 000004cc: PUSH2 0x04e5 000004cf: PUSH1 0x04 000004d1: DUP1 000004d2: CALLDATASIZE 000004d3: SUB 000004d4: DUP2 000004d5: ADD 000004d6: SWAP1 000004d7: PUSH2 0x04e0 000004da: SWAP2 000004db: SWAP1 000004dc: PUSH2 0x3270 000004df: JUMP 000004e0: JUMPDEST 000004e1: PUSH2 0x279f 000004e4: JUMP 000004e5: JUMPDEST 000004e6: STOP 000004e7: JUMPDEST 000004e8: PUSH1 0x6b 000004ea: PUSH1 0x20 000004ec: MSTORE 000004ed: DUP1 000004ee: PUSH1 0x00 000004f0: MSTORE 000004f1: PUSH1 0x40 000004f3: PUSH1 0x00 000004f5: KECCAK256 000004f6: PUSH1 0x00 000004f8: SWAP2 000004f9: POP 000004fa: SWAP1 000004fb: POP 000004fc: SLOAD 000004fd: DUP2 000004fe: JUMP 000004ff: JUMPDEST 00000500: PUSH1 0x65 00000502: DUP2 00000503: DUP2 00000504: SLOAD 00000505: DUP2 00000506: LT 00000507: PUSH2 0x050f 0000050a: JUMPI 0000050b: PUSH1 0x00 0000050d: DUP1 0000050e: REVERT 0000050f: JUMPDEST 00000510: SWAP1 00000511: PUSH1 0x00 00000513: MSTORE 00000514: PUSH1 0x20 00000516: PUSH1 0x00 00000518: KECCAK256 00000519: SWAP1 0000051a: PUSH1 0x0a 0000051c: MUL 0000051d: ADD 0000051e: PUSH1 0x00 00000520: SWAP2 00000521: POP 00000522: SWAP1 00000523: POP 00000524: DUP1 00000525: PUSH1 0x00 00000527: ADD 00000528: PUSH1 0x00 0000052a: SWAP1 0000052b: SLOAD 0000052c: SWAP1 0000052d: PUSH2 0x0100 00000530: EXP 00000531: SWAP1 00000532: DIV 00000533: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000548: AND 00000549: SWAP1 0000054a: DUP1 0000054b: PUSH1 0x01 0000054d: ADD 0000054e: PUSH1 0x00 00000550: SWAP1 00000551: SLOAD 00000552: SWAP1 00000553: PUSH2 0x0100 00000556: EXP 00000557: SWAP1 00000558: DIV 00000559: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000056e: AND 0000056f: SWAP1 00000570: DUP1 00000571: PUSH1 0x02 00000573: ADD 00000574: SLOAD 00000575: SWAP1 00000576: DUP1 00000577: PUSH1 0x03 00000579: ADD 0000057a: SLOAD 0000057b: SWAP1 0000057c: DUP1 0000057d: PUSH1 0x04 0000057f: ADD 00000580: SLOAD 00000581: SWAP1 00000582: DUP1 00000583: PUSH1 0x05 00000585: ADD 00000586: SLOAD 00000587: SWAP1 00000588: DUP1 00000589: PUSH1 0x06 0000058b: ADD 0000058c: SLOAD 0000058d: SWAP1 0000058e: DUP1 0000058f: PUSH1 0x07 00000591: ADD 00000592: SLOAD 00000593: SWAP1 00000594: DUP1 00000595: PUSH1 0x08 00000597: ADD 00000598: SLOAD 00000599: SWAP1 0000059a: DUP1 0000059b: PUSH1 0x09 0000059d: ADD 0000059e: PUSH1 0x00 000005a0: SWAP1 000005a1: SLOAD 000005a2: SWAP1 000005a3: PUSH2 0x0100 000005a6: EXP 000005a7: SWAP1 000005a8: DIV 000005a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005be: AND 000005bf: SWAP1 000005c0: POP 000005c1: DUP11 000005c2: JUMP 000005c3: JUMPDEST 000005c4: PUSH1 0x65 000005c6: DUP1 000005c7: SLOAD 000005c8: SWAP1 000005c9: POP 000005ca: DUP3 000005cb: LT 000005cc: PUSH2 0x060c 000005cf: JUMPI 000005d0: DUP2 000005d1: PUSH1 0x40 000005d3: MLOAD 000005d4: PUSH32 0x1e657b1d00000000000000000000000000000000000000000000000000000000 000005f5: DUP2 000005f6: MSTORE 000005f7: PUSH1 0x04 000005f9: ADD 000005fa: PUSH2 0x0603 000005fd: SWAP2 000005fe: SWAP1 000005ff: PUSH2 0x30ad 00000602: JUMP 00000603: JUMPDEST 00000604: PUSH1 0x40 00000606: MLOAD 00000607: DUP1 00000608: SWAP2 00000609: SUB 0000060a: SWAP1 0000060b: REVERT 0000060c: JUMPDEST 0000060d: PUSH1 0x00 0000060f: PUSH1 0x65 00000611: DUP4 00000612: DUP2 00000613: SLOAD 00000614: DUP2 00000615: LT 00000616: PUSH2 0x0622 00000619: JUMPI 0000061a: PUSH2 0x0621 0000061d: PUSH2 0x35f9 00000620: JUMP 00000621: JUMPDEST 00000622: JUMPDEST 00000623: SWAP1 00000624: PUSH1 0x00 00000626: MSTORE 00000627: PUSH1 0x20 00000629: PUSH1 0x00 0000062b: KECCAK256 0000062c: SWAP1 0000062d: PUSH1 0x0a 0000062f: MUL 00000630: ADD 00000631: PUSH1 0x40 00000633: MLOAD 00000634: DUP1 00000635: PUSH2 0x0140 00000638: ADD 00000639: PUSH1 0x40 0000063b: MSTORE 0000063c: SWAP1 0000063d: DUP2 0000063e: PUSH1 0x00 00000640: DUP3 00000641: ADD 00000642: PUSH1 0x00 00000644: SWAP1 00000645: SLOAD 00000646: SWAP1 00000647: PUSH2 0x0100 0000064a: EXP 0000064b: SWAP1 0000064c: DIV 0000064d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000662: AND 00000663: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000678: AND 00000679: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000068e: AND 0000068f: DUP2 00000690: MSTORE 00000691: PUSH1 0x20 00000693: ADD 00000694: PUSH1 0x01 00000696: DUP3 00000697: ADD 00000698: PUSH1 0x00 0000069a: SWAP1 0000069b: SLOAD 0000069c: SWAP1 0000069d: PUSH2 0x0100 000006a0: EXP 000006a1: SWAP1 000006a2: DIV 000006a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006b8: AND 000006b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006ce: AND 000006cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006e4: AND 000006e5: DUP2 000006e6: MSTORE 000006e7: PUSH1 0x20 000006e9: ADD 000006ea: PUSH1 0x02 000006ec: DUP3 000006ed: ADD 000006ee: SLOAD 000006ef: DUP2 000006f0: MSTORE 000006f1: PUSH1 0x20 000006f3: ADD 000006f4: PUSH1 0x03 000006f6: DUP3 000006f7: ADD 000006f8: SLOAD 000006f9: DUP2 000006fa: MSTORE 000006fb: PUSH1 0x20 000006fd: ADD 000006fe: PUSH1 0x04 00000700: DUP3 00000701: ADD 00000702: SLOAD 00000703: DUP2 00000704: MSTORE 00000705: PUSH1 0x20 00000707: ADD 00000708: PUSH1 0x05 0000070a: DUP3 0000070b: ADD 0000070c: SLOAD 0000070d: DUP2 0000070e: MSTORE 0000070f: PUSH1 0x20 00000711: ADD 00000712: PUSH1 0x06 00000714: DUP3 00000715: ADD 00000716: SLOAD 00000717: DUP2 00000718: MSTORE 00000719: PUSH1 0x20 0000071b: ADD 0000071c: PUSH1 0x07 0000071e: DUP3 0000071f: ADD 00000720: SLOAD 00000721: DUP2 00000722: MSTORE 00000723: PUSH1 0x20 00000725: ADD 00000726: PUSH1 0x08 00000728: DUP3 00000729: ADD 0000072a: SLOAD 0000072b: DUP2 0000072c: MSTORE 0000072d: PUSH1 0x20 0000072f: ADD 00000730: PUSH1 0x09 00000732: DUP3 00000733: ADD 00000734: PUSH1 0x00 00000736: SWAP1 00000737: SLOAD 00000738: SWAP1 00000739: PUSH2 0x0100 0000073c: EXP 0000073d: SWAP1 0000073e: DIV 0000073f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000754: AND 00000755: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000076a: AND 0000076b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000780: AND 00000781: DUP2 00000782: MSTORE 00000783: POP 00000784: POP 00000785: SWAP1 00000786: POP 00000787: DUP1 00000788: PUSH2 0x0120 0000078b: ADD 0000078c: MLOAD 0000078d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007a2: AND 000007a3: CALLER 000007a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007b9: AND 000007ba: EQ 000007bb: PUSH2 0x0802 000007be: JUMPI 000007bf: DUP1 000007c0: PUSH2 0x0120 000007c3: ADD 000007c4: MLOAD 000007c5: CALLER 000007c6: PUSH1 0x40 000007c8: MLOAD 000007c9: PUSH32 0x15a39f3500000000000000000000000000000000000000000000000000000000 000007ea: DUP2 000007eb: MSTORE 000007ec: PUSH1 0x04 000007ee: ADD 000007ef: PUSH2 0x07f9 000007f2: SWAP3 000007f3: SWAP2 000007f4: SWAP1 000007f5: PUSH2 0x3628 000007f8: JUMP 000007f9: JUMPDEST 000007fa: PUSH1 0x40 000007fc: MLOAD 000007fd: DUP1 000007fe: SWAP2 000007ff: SUB 00000800: SWAP1 00000801: REVERT 00000802: JUMPDEST 00000803: DUP1 00000804: PUSH1 0xa0 00000806: ADD 00000807: MLOAD 00000808: TIMESTAMP 00000809: LT 0000080a: PUSH2 0x083f 0000080d: JUMPI 0000080e: PUSH1 0x40 00000810: MLOAD 00000811: PUSH32 0xba56b90400000000000000000000000000000000000000000000000000000000 00000832: DUP2 00000833: MSTORE 00000834: PUSH1 0x04 00000836: ADD 00000837: PUSH1 0x40 00000839: MLOAD 0000083a: DUP1 0000083b: SWAP2 0000083c: SUB 0000083d: SWAP1 0000083e: REVERT 0000083f: JUMPDEST 00000840: DUP2 00000841: DUP2 00000842: PUSH1 0xe0 00000844: ADD 00000845: MLOAD 00000846: LT 00000847: PUSH2 0x088d 0000084a: JUMPI 0000084b: DUP1 0000084c: PUSH1 0xe0 0000084e: ADD 0000084f: MLOAD 00000850: DUP3 00000851: PUSH1 0x40 00000853: MLOAD 00000854: PUSH32 0xbc4fada100000000000000000000000000000000000000000000000000000000 00000875: DUP2 00000876: MSTORE 00000877: PUSH1 0x04 00000879: ADD 0000087a: PUSH2 0x0884 0000087d: SWAP3 0000087e: SWAP2 0000087f: SWAP1 00000880: PUSH2 0x32b0 00000883: JUMP 00000884: JUMPDEST 00000885: PUSH1 0x40 00000887: MLOAD 00000888: DUP1 00000889: SWAP2 0000088a: SUB 0000088b: SWAP1 0000088c: REVERT 0000088d: JUMPDEST 0000088e: DUP2 0000088f: PUSH1 0x6c 00000891: PUSH1 0x00 00000893: DUP6 00000894: DUP2 00000895: MSTORE 00000896: PUSH1 0x20 00000898: ADD 00000899: SWAP1 0000089a: DUP2 0000089b: MSTORE 0000089c: PUSH1 0x20 0000089e: ADD 0000089f: PUSH1 0x00 000008a1: KECCAK256 000008a2: DUP2 000008a3: SWAP1 000008a4: SSTORE 000008a5: POP 000008a6: POP 000008a7: POP 000008a8: POP 000008a9: JUMP 000008aa: JUMPDEST 000008ab: PUSH1 0x66 000008ad: PUSH1 0x20 000008af: MSTORE 000008b0: DUP2 000008b1: PUSH1 0x00 000008b3: MSTORE 000008b4: PUSH1 0x40 000008b6: PUSH1 0x00 000008b8: KECCAK256 000008b9: PUSH1 0x20 000008bb: MSTORE 000008bc: DUP1 000008bd: PUSH1 0x00 000008bf: MSTORE 000008c0: PUSH1 0x40 000008c2: PUSH1 0x00 000008c4: KECCAK256 000008c5: PUSH1 0x00 000008c7: SWAP2 000008c8: POP 000008c9: SWAP2 000008ca: POP 000008cb: POP 000008cc: DUP1 000008cd: PUSH1 0x00 000008cf: ADD 000008d0: SLOAD 000008d1: SWAP1 000008d2: DUP1 000008d3: PUSH1 0x01 000008d5: ADD 000008d6: SLOAD 000008d7: SWAP1 000008d8: POP 000008d9: DUP3 000008da: JUMP 000008db: JUMPDEST 000008dc: PUSH1 0x6c 000008de: PUSH1 0x20 000008e0: MSTORE 000008e1: DUP1 000008e2: PUSH1 0x00 000008e4: MSTORE 000008e5: PUSH1 0x40 000008e7: PUSH1 0x00 000008e9: KECCAK256 000008ea: PUSH1 0x00 000008ec: SWAP2 000008ed: POP 000008ee: SWAP1 000008ef: POP 000008f0: SLOAD 000008f1: DUP2 000008f2: JUMP 000008f3: JUMPDEST 000008f4: PUSH1 0x02 000008f6: PUSH1 0x67 000008f8: SLOAD 000008f9: EQ 000008fa: ISZERO 000008fb: PUSH2 0x0939 000008fe: JUMPI 000008ff: PUSH1 0x40 00000901: MLOAD 00000902: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000923: DUP2 00000924: MSTORE 00000925: PUSH1 0x04 00000927: ADD 00000928: PUSH2 0x0930 0000092b: SWAP1 0000092c: PUSH2 0x36ae 0000092f: JUMP 00000930: JUMPDEST 00000931: PUSH1 0x40 00000933: MLOAD 00000934: DUP1 00000935: SWAP2 00000936: SUB 00000937: SWAP1 00000938: REVERT 00000939: JUMPDEST 0000093a: PUSH1 0x02 0000093c: PUSH1 0x67 0000093e: DUP2 0000093f: SWAP1 00000940: SSTORE 00000941: POP 00000942: PUSH1 0x00 00000944: DUP3 00000945: EQ 00000946: ISZERO 00000947: PUSH2 0x097c 0000094a: JUMPI 0000094b: PUSH1 0x40 0000094d: MLOAD 0000094e: PUSH32 0x43ad20fc00000000000000000000000000000000000000000000000000000000 0000096f: DUP2 00000970: MSTORE 00000971: PUSH1 0x04 00000973: ADD 00000974: PUSH1 0x40 00000976: MLOAD 00000977: DUP1 00000978: SWAP2 00000979: SUB 0000097a: SWAP1 0000097b: REVERT 0000097c: JUMPDEST 0000097d: PUSH1 0x65 0000097f: DUP1 00000980: SLOAD 00000981: SWAP1 00000982: POP 00000983: DUP2 00000984: LT 00000985: PUSH2 0x09c5 00000988: JUMPI 00000989: DUP1 0000098a: PUSH1 0x40 0000098c: MLOAD 0000098d: PUSH32 0x1e657b1d00000000000000000000000000000000000000000000000000000000 000009ae: DUP2 000009af: MSTORE 000009b0: PUSH1 0x04 000009b2: ADD 000009b3: PUSH2 0x09bc 000009b6: SWAP2 000009b7: SWAP1 000009b8: PUSH2 0x30ad 000009bb: JUMP 000009bc: JUMPDEST 000009bd: PUSH1 0x40 000009bf: MLOAD 000009c0: DUP1 000009c1: SWAP2 000009c2: SUB 000009c3: SWAP1 000009c4: REVERT 000009c5: JUMPDEST 000009c6: PUSH1 0x00 000009c8: PUSH1 0x65 000009ca: DUP3 000009cb: DUP2 000009cc: SLOAD 000009cd: DUP2 000009ce: LT 000009cf: PUSH2 0x09db 000009d2: JUMPI 000009d3: PUSH2 0x09da 000009d6: PUSH2 0x35f9 000009d9: JUMP 000009da: JUMPDEST 000009db: JUMPDEST 000009dc: SWAP1 000009dd: PUSH1 0x00 000009df: MSTORE 000009e0: PUSH1 0x20 000009e2: PUSH1 0x00 000009e4: KECCAK256 000009e5: SWAP1 000009e6: PUSH1 0x0a 000009e8: MUL 000009e9: ADD 000009ea: SWAP1 000009eb: POP 000009ec: DUP1 000009ed: PUSH1 0x05 000009ef: ADD 000009f0: SLOAD 000009f1: TIMESTAMP 000009f2: LT 000009f3: ISZERO 000009f4: PUSH2 0x0a29 000009f7: JUMPI 000009f8: PUSH1 0x40 000009fa: MLOAD 000009fb: PUSH32 0x4614779a00000000000000000000000000000000000000000000000000000000 00000a1c: DUP2 00000a1d: MSTORE 00000a1e: PUSH1 0x04 00000a20: ADD 00000a21: PUSH1 0x40 00000a23: MLOAD 00000a24: DUP1 00000a25: SWAP2 00000a26: SUB 00000a27: SWAP1 00000a28: REVERT 00000a29: JUMPDEST 00000a2a: PUSH1 0x00 00000a2c: PUSH1 0x66 00000a2e: PUSH1 0x00 00000a30: CALLER 00000a31: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a46: AND 00000a47: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a5c: AND 00000a5d: DUP2 00000a5e: MSTORE 00000a5f: PUSH1 0x20 00000a61: ADD 00000a62: SWAP1 00000a63: DUP2 00000a64: MSTORE 00000a65: PUSH1 0x20 00000a67: ADD 00000a68: PUSH1 0x00 00000a6a: KECCAK256 00000a6b: PUSH1 0x00 00000a6d: DUP5 00000a6e: DUP2 00000a6f: MSTORE 00000a70: PUSH1 0x20 00000a72: ADD 00000a73: SWAP1 00000a74: DUP2 00000a75: MSTORE 00000a76: PUSH1 0x20 00000a78: ADD 00000a79: PUSH1 0x00 00000a7b: KECCAK256 00000a7c: SWAP1 00000a7d: POP 00000a7e: PUSH1 0x00 00000a80: DUP2 00000a81: PUSH1 0x00 00000a83: ADD 00000a84: SLOAD 00000a85: SWAP1 00000a86: POP 00000a87: PUSH1 0x00 00000a89: DUP6 00000a8a: DUP3 00000a8b: PUSH2 0x0a94 00000a8e: SWAP2 00000a8f: SWAP1 00000a90: PUSH2 0x36fd 00000a93: JUMP 00000a94: JUMPDEST 00000a95: SWAP1 00000a96: POP 00000a97: PUSH2 0x0a9f 00000a9a: DUP6 00000a9b: PUSH2 0x0dfa 00000a9e: JUMP 00000a9f: JUMPDEST 00000aa0: PUSH1 0x00 00000aa2: DUP5 00000aa3: PUSH1 0x03 00000aa5: ADD 00000aa6: SLOAD 00000aa7: SWAP1 00000aa8: POP 00000aa9: PUSH1 0x00 00000aab: DUP6 00000aac: PUSH1 0x06 00000aae: ADD 00000aaf: SLOAD 00000ab0: SWAP1 00000ab1: POP 00000ab2: PUSH1 0x00 00000ab4: PUSH1 0x6d 00000ab6: PUSH1 0x00 00000ab8: CALLER 00000ab9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ace: AND 00000acf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ae4: AND 00000ae5: DUP2 00000ae6: MSTORE 00000ae7: PUSH1 0x20 00000ae9: ADD 00000aea: SWAP1 00000aeb: DUP2 00000aec: MSTORE 00000aed: PUSH1 0x20 00000aef: ADD 00000af0: PUSH1 0x00 00000af2: KECCAK256 00000af3: PUSH1 0x00 00000af5: DUP10 00000af6: DUP2 00000af7: MSTORE 00000af8: PUSH1 0x20 00000afa: ADD 00000afb: SWAP1 00000afc: DUP2 00000afd: MSTORE 00000afe: PUSH1 0x20 00000b00: ADD 00000b01: PUSH1 0x00 00000b03: KECCAK256 00000b04: SLOAD 00000b05: DUP7 00000b06: PUSH1 0x01 00000b08: ADD 00000b09: SLOAD 00000b0a: DUP4 00000b0b: DUP6 00000b0c: DUP9 00000b0d: PUSH2 0x0b16 00000b10: SWAP2 00000b11: SWAP1 00000b12: PUSH2 0x3731 00000b15: JUMP 00000b16: JUMPDEST 00000b17: PUSH2 0x0b20 00000b1a: SWAP2 00000b1b: SWAP1 00000b1c: PUSH2 0x37ba 00000b1f: JUMP 00000b20: JUMPDEST 00000b21: PUSH2 0x0b2a 00000b24: SWAP2 00000b25: SWAP1 00000b26: PUSH2 0x36fd 00000b29: JUMP 00000b2a: JUMPDEST 00000b2b: PUSH2 0x0b34 00000b2e: SWAP2 00000b2f: SWAP1 00000b30: PUSH2 0x37eb 00000b33: JUMP 00000b34: JUMPDEST 00000b35: SWAP1 00000b36: POP 00000b37: PUSH1 0x00 00000b39: PUSH1 0x6d 00000b3b: PUSH1 0x00 00000b3d: CALLER 00000b3e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b53: AND 00000b54: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b69: AND 00000b6a: DUP2 00000b6b: MSTORE 00000b6c: PUSH1 0x20 00000b6e: ADD 00000b6f: SWAP1 00000b70: DUP2 00000b71: MSTORE 00000b72: PUSH1 0x20 00000b74: ADD 00000b75: PUSH1 0x00 00000b77: KECCAK256 00000b78: PUSH1 0x00 00000b7a: DUP11 00000b7b: DUP2 00000b7c: MSTORE 00000b7d: PUSH1 0x20 00000b7f: ADD 00000b80: SWAP1 00000b81: DUP2 00000b82: MSTORE 00000b83: PUSH1 0x20 00000b85: ADD 00000b86: PUSH1 0x00 00000b88: KECCAK256 00000b89: DUP2 00000b8a: SWAP1 00000b8b: SSTORE 00000b8c: POP 00000b8d: DUP4 00000b8e: DUP7 00000b8f: PUSH1 0x00 00000b91: ADD 00000b92: DUP2 00000b93: SWAP1 00000b94: SSTORE 00000b95: POP 00000b96: DUP9 00000b97: DUP8 00000b98: PUSH1 0x07 00000b9a: ADD 00000b9b: PUSH1 0x00 00000b9d: DUP3 00000b9e: DUP3 00000b9f: SLOAD 00000ba0: PUSH2 0x0ba9 00000ba3: SWAP2 00000ba4: SWAP1 00000ba5: PUSH2 0x36fd 00000ba8: JUMP 00000ba9: JUMPDEST 00000baa: SWAP3 00000bab: POP 00000bac: POP 00000bad: DUP2 00000bae: SWAP1 00000baf: SSTORE 00000bb0: POP 00000bb1: DUP2 00000bb2: DUP4 00000bb3: DUP6 00000bb4: PUSH2 0x0bbd 00000bb7: SWAP2 00000bb8: SWAP1 00000bb9: PUSH2 0x3731 00000bbc: JUMP 00000bbd: JUMPDEST 00000bbe: PUSH2 0x0bc7 00000bc1: SWAP2 00000bc2: SWAP1 00000bc3: PUSH2 0x37ba 00000bc6: JUMP 00000bc7: JUMPDEST 00000bc8: DUP7 00000bc9: PUSH1 0x01 00000bcb: ADD 00000bcc: DUP2 00000bcd: SWAP1 00000bce: SSTORE 00000bcf: POP 00000bd0: PUSH1 0x00 00000bd2: DUP2 00000bd3: EQ 00000bd4: ISZERO 00000bd5: PUSH2 0x0c2c 00000bd8: JUMPI 00000bd9: PUSH2 0x0c27 00000bdc: CALLER 00000bdd: DUP11 00000bde: DUP10 00000bdf: PUSH1 0x00 00000be1: ADD 00000be2: PUSH1 0x00 00000be4: SWAP1 00000be5: SLOAD 00000be6: SWAP1 00000be7: PUSH2 0x0100 00000bea: EXP 00000beb: SWAP1 00000bec: DIV 00000bed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c02: AND 00000c03: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c18: AND 00000c19: PUSH2 0x28a6 00000c1c: SWAP1 00000c1d: SWAP3 00000c1e: SWAP2 00000c1f: SWAP1 00000c20: PUSH4 0xffffffff 00000c25: AND 00000c26: JUMP 00000c27: JUMPDEST 00000c28: PUSH2 0x0d97 00000c2b: JUMP 00000c2c: JUMPDEST 00000c2d: PUSH1 0x00 00000c2f: DUP8 00000c30: PUSH1 0x00 00000c32: ADD 00000c33: PUSH1 0x00 00000c35: SWAP1 00000c36: SLOAD 00000c37: SWAP1 00000c38: PUSH2 0x0100 00000c3b: EXP 00000c3c: SWAP1 00000c3d: DIV 00000c3e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c53: AND 00000c54: SWAP1 00000c55: POP 00000c56: PUSH1 0x00 00000c58: DUP9 00000c59: PUSH1 0x01 00000c5b: ADD 00000c5c: PUSH1 0x00 00000c5e: SWAP1 00000c5f: SLOAD 00000c60: SWAP1 00000c61: PUSH2 0x0100 00000c64: EXP 00000c65: SWAP1 00000c66: DIV 00000c67: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c7c: AND 00000c7d: SWAP1 00000c7e: POP 00000c7f: DUP1 00000c80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c95: AND 00000c96: DUP3 00000c97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cac: AND 00000cad: EQ 00000cae: ISZERO 00000caf: PUSH2 0x0ced 00000cb2: JUMPI 00000cb3: PUSH2 0x0ce8 00000cb6: CALLER 00000cb7: DUP5 00000cb8: DUP14 00000cb9: PUSH2 0x0cc2 00000cbc: SWAP2 00000cbd: SWAP1 00000cbe: PUSH2 0x37eb 00000cc1: JUMP 00000cc2: JUMPDEST 00000cc3: DUP5 00000cc4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cd9: AND 00000cda: PUSH2 0x28a6 00000cdd: SWAP1 00000cde: SWAP3 00000cdf: SWAP2 00000ce0: SWAP1 00000ce1: PUSH4 0xffffffff 00000ce6: AND 00000ce7: JUMP 00000ce8: JUMPDEST 00000ce9: PUSH2 0x0d44 00000cec: JUMP 00000ced: JUMPDEST 00000cee: PUSH2 0x0d18 00000cf1: CALLER 00000cf2: DUP5 00000cf3: DUP4 00000cf4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d09: AND 00000d0a: PUSH2 0x28a6 00000d0d: SWAP1 00000d0e: SWAP3 00000d0f: SWAP2 00000d10: SWAP1 00000d11: PUSH4 0xffffffff 00000d16: AND 00000d17: JUMP 00000d18: JUMPDEST 00000d19: PUSH2 0x0d43 00000d1c: CALLER 00000d1d: DUP13 00000d1e: DUP5 00000d1f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d34: AND 00000d35: PUSH2 0x28a6 00000d38: SWAP1 00000d39: SWAP3 00000d3a: SWAP2 00000d3b: SWAP1 00000d3c: PUSH4 0xffffffff 00000d41: AND 00000d42: JUMP 00000d43: JUMPDEST 00000d44: JUMPDEST 00000d45: CALLER 00000d46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d5b: AND 00000d5c: PUSH32 0x34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf7 00000d7d: DUP5 00000d7e: DUP13 00000d7f: PUSH1 0x40 00000d81: MLOAD 00000d82: PUSH2 0x0d8c 00000d85: SWAP3 00000d86: SWAP2 00000d87: SWAP1 00000d88: PUSH2 0x32b0 00000d8b: JUMP 00000d8c: JUMPDEST 00000d8d: PUSH1 0x40 00000d8f: MLOAD 00000d90: DUP1 00000d91: SWAP2 00000d92: SUB 00000d93: SWAP1 00000d94: LOG2 00000d95: POP 00000d96: POP 00000d97: JUMPDEST 00000d98: CALLER 00000d99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dae: AND 00000daf: PUSH32 0xf279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568 00000dd0: DUP11 00000dd1: DUP11 00000dd2: PUSH1 0x40 00000dd4: MLOAD 00000dd5: PUSH2 0x0ddf 00000dd8: SWAP3 00000dd9: SWAP2 00000dda: SWAP1 00000ddb: PUSH2 0x32b0 00000dde: JUMP 00000ddf: JUMPDEST 00000de0: PUSH1 0x40 00000de2: MLOAD 00000de3: DUP1 00000de4: SWAP2 00000de5: SUB 00000de6: SWAP1 00000de7: LOG2 00000de8: POP 00000de9: POP 00000dea: POP 00000deb: POP 00000dec: POP 00000ded: POP 00000dee: POP 00000def: PUSH1 0x01 00000df1: PUSH1 0x67 00000df3: DUP2 00000df4: SWAP1 00000df5: SSTORE 00000df6: POP 00000df7: POP 00000df8: POP 00000df9: JUMP 00000dfa: JUMPDEST 00000dfb: PUSH1 0x65 00000dfd: DUP1 00000dfe: SLOAD 00000dff: SWAP1 00000e00: POP 00000e01: DUP2 00000e02: LT 00000e03: PUSH2 0x0e43 00000e06: JUMPI 00000e07: DUP1 00000e08: PUSH1 0x40 00000e0a: MLOAD 00000e0b: PUSH32 0x1e657b1d00000000000000000000000000000000000000000000000000000000 00000e2c: DUP2 00000e2d: MSTORE 00000e2e: PUSH1 0x04 00000e30: ADD 00000e31: PUSH2 0x0e3a 00000e34: SWAP2 00000e35: SWAP1 00000e36: PUSH2 0x30ad 00000e39: JUMP 00000e3a: JUMPDEST 00000e3b: PUSH1 0x40 00000e3d: MLOAD 00000e3e: DUP1 00000e3f: SWAP2 00000e40: SUB 00000e41: SWAP1 00000e42: REVERT 00000e43: JUMPDEST 00000e44: PUSH1 0x00 00000e46: PUSH1 0x65 00000e48: DUP3 00000e49: DUP2 00000e4a: SLOAD 00000e4b: DUP2 00000e4c: LT 00000e4d: PUSH2 0x0e59 00000e50: JUMPI 00000e51: PUSH2 0x0e58 00000e54: PUSH2 0x35f9 00000e57: JUMP 00000e58: JUMPDEST 00000e59: JUMPDEST 00000e5a: SWAP1 00000e5b: PUSH1 0x00 00000e5d: MSTORE 00000e5e: PUSH1 0x20 00000e60: PUSH1 0x00 00000e62: KECCAK256 00000e63: SWAP1 00000e64: PUSH1 0x0a 00000e66: MUL 00000e67: ADD 00000e68: SWAP1 00000e69: POP 00000e6a: PUSH1 0x00 00000e6c: DUP2 00000e6d: PUSH1 0x02 00000e6f: ADD 00000e70: SLOAD 00000e71: SWAP1 00000e72: POP 00000e73: DUP1 00000e74: TIMESTAMP 00000e75: GT 00000e76: PUSH2 0x0e80 00000e79: JUMPI 00000e7a: POP 00000e7b: POP 00000e7c: PUSH2 0x0f5b 00000e7f: JUMP 00000e80: JUMPDEST 00000e81: PUSH1 0x00 00000e83: DUP3 00000e84: PUSH1 0x07 00000e86: ADD 00000e87: SLOAD 00000e88: SWAP1 00000e89: POP 00000e8a: PUSH1 0x00 00000e8c: DUP4 00000e8d: PUSH1 0x04 00000e8f: ADD 00000e90: SLOAD 00000e91: SWAP1 00000e92: POP 00000e93: PUSH1 0x00 00000e95: DUP3 00000e96: EQ 00000e97: DUP1 00000e98: PUSH2 0x0ea0 00000e9b: JUMPI 00000e9c: POP 00000e9d: TIMESTAMP 00000e9e: DUP2 00000e9f: GT 00000ea0: JUMPDEST 00000ea1: ISZERO 00000ea2: PUSH2 0x0eb7 00000ea5: JUMPI 00000ea6: TIMESTAMP 00000ea7: DUP5 00000ea8: PUSH1 0x02 00000eaa: ADD 00000eab: DUP2 00000eac: SWAP1 00000ead: SSTORE 00000eae: POP 00000eaf: POP 00000eb0: POP 00000eb1: POP 00000eb2: POP 00000eb3: PUSH2 0x0f5b 00000eb6: JUMP 00000eb7: JUMPDEST 00000eb8: PUSH1 0x00 00000eba: DUP5 00000ebb: PUSH1 0x05 00000ebd: ADD 00000ebe: SLOAD 00000ebf: SWAP1 00000ec0: POP 00000ec1: DUP1 00000ec2: DUP5 00000ec3: GT 00000ec4: ISZERO 00000ec5: PUSH2 0x0ed2 00000ec8: JUMPI 00000ec9: POP 00000eca: POP 00000ecb: POP 00000ecc: POP 00000ecd: POP 00000ece: PUSH2 0x0f5b 00000ed1: JUMP 00000ed2: JUMPDEST 00000ed3: PUSH1 0x00 00000ed5: DUP3 00000ed6: DUP3 00000ed7: PUSH2 0x0ee0 00000eda: SWAP2 00000edb: SWAP1 00000edc: PUSH2 0x36fd 00000edf: JUMP 00000ee0: JUMPDEST 00000ee1: DUP7 00000ee2: PUSH1 0x08 00000ee4: ADD 00000ee5: SLOAD 00000ee6: PUSH2 0x0eef 00000ee9: DUP6 00000eea: DUP9 00000eeb: PUSH2 0x292c 00000eee: JUMP 00000eef: JUMPDEST 00000ef0: PUSH2 0x0ef9 00000ef3: TIMESTAMP 00000ef4: DUP7 00000ef5: PUSH2 0x2945 00000ef8: JUMP 00000ef9: JUMPDEST 00000efa: PUSH2 0x0f03 00000efd: SWAP2 00000efe: SWAP1 00000eff: PUSH2 0x36fd 00000f02: JUMP 00000f03: JUMPDEST 00000f04: PUSH2 0x0f0d 00000f07: SWAP2 00000f08: SWAP1 00000f09: PUSH2 0x3731 00000f0c: JUMP 00000f0d: JUMPDEST 00000f0e: PUSH2 0x0f17 00000f11: SWAP2 00000f12: SWAP1 00000f13: PUSH2 0x37ba 00000f16: JUMP 00000f17: JUMPDEST 00000f18: SWAP1 00000f19: POP 00000f1a: DUP4 00000f1b: DUP7 00000f1c: PUSH1 0x06 00000f1e: ADD 00000f1f: SLOAD 00000f20: DUP3 00000f21: PUSH2 0x0f2a 00000f24: SWAP2 00000f25: SWAP1 00000f26: PUSH2 0x3731 00000f29: JUMP 00000f2a: JUMPDEST 00000f2b: PUSH2 0x0f34 00000f2e: SWAP2 00000f2f: SWAP1 00000f30: PUSH2 0x37ba 00000f33: JUMP 00000f34: JUMPDEST 00000f35: DUP7 00000f36: PUSH1 0x03 00000f38: ADD 00000f39: SLOAD 00000f3a: PUSH2 0x0f43 00000f3d: SWAP2 00000f3e: SWAP1 00000f3f: PUSH2 0x37eb 00000f42: JUMP 00000f43: JUMPDEST 00000f44: DUP7 00000f45: PUSH1 0x03 00000f47: ADD 00000f48: DUP2 00000f49: SWAP1 00000f4a: SSTORE 00000f4b: POP 00000f4c: TIMESTAMP 00000f4d: DUP7 00000f4e: PUSH1 0x02 00000f50: ADD 00000f51: DUP2 00000f52: SWAP1 00000f53: SSTORE 00000f54: POP 00000f55: POP 00000f56: POP 00000f57: POP 00000f58: POP 00000f59: POP 00000f5a: POP 00000f5b: JUMPDEST 00000f5c: POP 00000f5d: JUMP 00000f5e: JUMPDEST 00000f5f: PUSH1 0x02 00000f61: PUSH1 0x67 00000f63: SLOAD 00000f64: EQ 00000f65: ISZERO 00000f66: PUSH2 0x0fa4 00000f69: JUMPI 00000f6a: PUSH1 0x40 00000f6c: MLOAD 00000f6d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000f8e: DUP2 00000f8f: MSTORE 00000f90: PUSH1 0x04 00000f92: ADD 00000f93: PUSH2 0x0f9b 00000f96: SWAP1 00000f97: PUSH2 0x36ae 00000f9a: JUMP 00000f9b: JUMPDEST 00000f9c: PUSH1 0x40 00000f9e: MLOAD 00000f9f: DUP1 00000fa0: SWAP2 00000fa1: SUB 00000fa2: SWAP1 00000fa3: REVERT 00000fa4: JUMPDEST 00000fa5: PUSH1 0x02 00000fa7: PUSH1 0x67 00000fa9: DUP2 00000faa: SWAP1 00000fab: SSTORE 00000fac: POP 00000fad: PUSH1 0x65 00000faf: DUP1 00000fb0: SLOAD 00000fb1: SWAP1 00000fb2: POP 00000fb3: DUP2 00000fb4: LT 00000fb5: PUSH2 0x0ff5 00000fb8: JUMPI 00000fb9: DUP1 00000fba: PUSH1 0x40 00000fbc: MLOAD 00000fbd: PUSH32 0x1e657b1d00000000000000000000000000000000000000000000000000000000 00000fde: DUP2 00000fdf: MSTORE 00000fe0: PUSH1 0x04 00000fe2: ADD 00000fe3: PUSH2 0x0fec 00000fe6: SWAP2 00000fe7: SWAP1 00000fe8: PUSH2 0x30ad 00000feb: JUMP 00000fec: JUMPDEST 00000fed: PUSH1 0x40 00000fef: MLOAD 00000ff0: DUP1 00000ff1: SWAP2 00000ff2: SUB 00000ff3: SWAP1 00000ff4: REVERT 00000ff5: JUMPDEST 00000ff6: PUSH1 0x00 00000ff8: PUSH1 0x65 00000ffa: DUP3 00000ffb: DUP2 00000ffc: SLOAD 00000ffd: DUP2 00000ffe: LT 00000fff: PUSH2 0x100b 00001002: JUMPI 00001003: PUSH2 0x100a 00001006: PUSH2 0x35f9 00001009: JUMP 0000100a: JUMPDEST 0000100b: JUMPDEST 0000100c: SWAP1 0000100d: PUSH1 0x00 0000100f: MSTORE 00001010: PUSH1 0x20 00001012: PUSH1 0x00 00001014: KECCAK256 00001015: SWAP1 00001016: PUSH1 0x0a 00001018: MUL 00001019: ADD 0000101a: SWAP1 0000101b: POP 0000101c: DUP1 0000101d: PUSH1 0x05 0000101f: ADD 00001020: SLOAD 00001021: TIMESTAMP 00001022: LT 00001023: ISZERO 00001024: PUSH2 0x1059 00001027: JUMPI 00001028: PUSH1 0x40 0000102a: MLOAD 0000102b: PUSH32 0x4614779a00000000000000000000000000000000000000000000000000000000 0000104c: DUP2 0000104d: MSTORE 0000104e: PUSH1 0x04 00001050: ADD 00001051: PUSH1 0x40 00001053: MLOAD 00001054: DUP1 00001055: SWAP2 00001056: SUB 00001057: SWAP1 00001058: REVERT 00001059: JUMPDEST 0000105a: PUSH1 0x00 0000105c: PUSH1 0x66 0000105e: PUSH1 0x00 00001060: CALLER 00001061: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001076: AND 00001077: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000108c: AND 0000108d: DUP2 0000108e: MSTORE 0000108f: PUSH1 0x20 00001091: ADD 00001092: SWAP1 00001093: DUP2 00001094: MSTORE 00001095: PUSH1 0x20 00001097: ADD 00001098: PUSH1 0x00 0000109a: KECCAK256 0000109b: PUSH1 0x00 0000109d: DUP5 0000109e: DUP2 0000109f: MSTORE 000010a0: PUSH1 0x20 000010a2: ADD 000010a3: SWAP1 000010a4: DUP2 000010a5: MSTORE 000010a6: PUSH1 0x20 000010a8: ADD 000010a9: PUSH1 0x00 000010ab: KECCAK256 000010ac: SWAP1 000010ad: POP 000010ae: PUSH1 0x00 000010b0: DUP2 000010b1: PUSH1 0x00 000010b3: ADD 000010b4: SLOAD 000010b5: SWAP1 000010b6: POP 000010b7: PUSH1 0x00 000010b9: DUP2 000010ba: EQ 000010bb: ISZERO 000010bc: PUSH2 0x10f1 000010bf: JUMPI 000010c0: PUSH1 0x40 000010c2: MLOAD 000010c3: PUSH32 0x43ad20fc00000000000000000000000000000000000000000000000000000000 000010e4: DUP2 000010e5: MSTORE 000010e6: PUSH1 0x04 000010e8: ADD 000010e9: PUSH1 0x40 000010eb: MLOAD 000010ec: DUP1 000010ed: SWAP2 000010ee: SUB 000010ef: SWAP1 000010f0: REVERT 000010f1: JUMPDEST 000010f2: DUP2 000010f3: PUSH1 0x00 000010f5: ADD 000010f6: SLOAD 000010f7: DUP4 000010f8: PUSH1 0x07 000010fa: ADD 000010fb: PUSH1 0x00 000010fd: DUP3 000010fe: DUP3 000010ff: SLOAD 00001100: PUSH2 0x1109 00001103: SWAP2 00001104: SWAP1 00001105: PUSH2 0x36fd 00001108: JUMP 00001109: JUMPDEST 0000110a: SWAP3 0000110b: POP 0000110c: POP 0000110d: DUP2 0000110e: SWAP1 0000110f: SSTORE 00001110: POP 00001111: PUSH1 0x00 00001113: DUP3 00001114: PUSH1 0x00 00001116: ADD 00001117: DUP2 00001118: SWAP1 00001119: SSTORE 0000111a: POP 0000111b: PUSH1 0x00 0000111d: DUP3 0000111e: PUSH1 0x01 00001120: ADD 00001121: DUP2 00001122: SWAP1 00001123: SSTORE 00001124: POP 00001125: PUSH1 0x00 00001127: PUSH1 0x6d 00001129: PUSH1 0x00 0000112b: CALLER 0000112c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001141: AND 00001142: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001157: AND 00001158: DUP2 00001159: MSTORE 0000115a: PUSH1 0x20 0000115c: ADD 0000115d: SWAP1 0000115e: DUP2 0000115f: MSTORE 00001160: PUSH1 0x20 00001162: ADD 00001163: PUSH1 0x00 00001165: KECCAK256 00001166: PUSH1 0x00 00001168: DUP7 00001169: DUP2 0000116a: MSTORE 0000116b: PUSH1 0x20 0000116d: ADD 0000116e: SWAP1 0000116f: DUP2 00001170: MSTORE 00001171: PUSH1 0x20 00001173: ADD 00001174: PUSH1 0x00 00001176: KECCAK256 00001177: DUP2 00001178: SWAP1 00001179: SSTORE 0000117a: POP 0000117b: PUSH2 0x11c9 0000117e: CALLER 0000117f: DUP3 00001180: DUP6 00001181: PUSH1 0x00 00001183: ADD 00001184: PUSH1 0x00 00001186: SWAP1 00001187: SLOAD 00001188: SWAP1 00001189: PUSH2 0x0100 0000118c: EXP 0000118d: SWAP1 0000118e: DIV 0000118f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011a4: AND 000011a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011ba: AND 000011bb: PUSH2 0x28a6 000011be: SWAP1 000011bf: SWAP3 000011c0: SWAP2 000011c1: SWAP1 000011c2: PUSH4 0xffffffff 000011c7: AND 000011c8: JUMP 000011c9: JUMPDEST 000011ca: CALLER 000011cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011e0: AND 000011e1: PUSH32 0x5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd9695 00001202: DUP3 00001203: PUSH1 0x40 00001205: MLOAD 00001206: PUSH2 0x120f 00001209: SWAP2 0000120a: SWAP1 0000120b: PUSH2 0x30ad 0000120e: JUMP 0000120f: JUMPDEST 00001210: PUSH1 0x40 00001212: MLOAD 00001213: DUP1 00001214: SWAP2 00001215: SUB 00001216: SWAP1 00001217: LOG2 00001218: POP 00001219: POP 0000121a: POP 0000121b: PUSH1 0x01 0000121d: PUSH1 0x67 0000121f: DUP2 00001220: SWAP1 00001221: SSTORE 00001222: POP 00001223: POP 00001224: JUMP 00001225: JUMPDEST 00001226: PUSH1 0x60 00001228: PUSH1 0x65 0000122a: DUP1 0000122b: SLOAD 0000122c: DUP1 0000122d: PUSH1 0x20 0000122f: MUL 00001230: PUSH1 0x20 00001232: ADD 00001233: PUSH1 0x40 00001235: MLOAD 00001236: SWAP1 00001237: DUP2 00001238: ADD 00001239: PUSH1 0x40 0000123b: MSTORE 0000123c: DUP1 0000123d: SWAP3 0000123e: SWAP2 0000123f: SWAP1 00001240: DUP2 00001241: DUP2 00001242: MSTORE 00001243: PUSH1 0x20 00001245: ADD 00001246: PUSH1 0x00 00001248: SWAP1 00001249: JUMPDEST 0000124a: DUP3 0000124b: DUP3 0000124c: LT 0000124d: ISZERO 0000124e: PUSH2 0x13c4 00001251: JUMPI 00001252: DUP4 00001253: DUP3 00001254: SWAP1 00001255: PUSH1 0x00 00001257: MSTORE 00001258: PUSH1 0x20 0000125a: PUSH1 0x00 0000125c: KECCAK256 0000125d: SWAP1 0000125e: PUSH1 0x0a 00001260: MUL 00001261: ADD 00001262: PUSH1 0x40 00001264: MLOAD 00001265: DUP1 00001266: PUSH2 0x0140 00001269: ADD 0000126a: PUSH1 0x40 0000126c: MSTORE 0000126d: SWAP1 0000126e: DUP2 0000126f: PUSH1 0x00 00001271: DUP3 00001272: ADD 00001273: PUSH1 0x00 00001275: SWAP1 00001276: SLOAD 00001277: SWAP1 00001278: PUSH2 0x0100 0000127b: EXP 0000127c: SWAP1 0000127d: DIV 0000127e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001293: AND 00001294: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012a9: AND 000012aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012bf: AND 000012c0: DUP2 000012c1: MSTORE 000012c2: PUSH1 0x20 000012c4: ADD 000012c5: PUSH1 0x01 000012c7: DUP3 000012c8: ADD 000012c9: PUSH1 0x00 000012cb: SWAP1 000012cc: SLOAD 000012cd: SWAP1 000012ce: PUSH2 0x0100 000012d1: EXP 000012d2: SWAP1 000012d3: DIV 000012d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012e9: AND 000012ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012ff: AND 00001300: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001315: AND 00001316: DUP2 00001317: MSTORE 00001318: PUSH1 0x20 0000131a: ADD 0000131b: PUSH1 0x02 0000131d: DUP3 0000131e: ADD 0000131f: SLOAD 00001320: DUP2 00001321: MSTORE 00001322: PUSH1 0x20 00001324: ADD 00001325: PUSH1 0x03 00001327: DUP3 00001328: ADD 00001329: SLOAD 0000132a: DUP2 0000132b: MSTORE 0000132c: PUSH1 0x20 0000132e: ADD 0000132f: PUSH1 0x04 00001331: DUP3 00001332: ADD 00001333: SLOAD 00001334: DUP2 00001335: MSTORE 00001336: PUSH1 0x20 00001338: ADD 00001339: PUSH1 0x05 0000133b: DUP3 0000133c: ADD 0000133d: SLOAD 0000133e: DUP2 0000133f: MSTORE 00001340: PUSH1 0x20 00001342: ADD 00001343: PUSH1 0x06 00001345: DUP3 00001346: ADD 00001347: SLOAD 00001348: DUP2 00001349: MSTORE 0000134a: PUSH1 0x20 0000134c: ADD 0000134d: PUSH1 0x07 0000134f: DUP3 00001350: ADD 00001351: SLOAD 00001352: DUP2 00001353: MSTORE 00001354: PUSH1 0x20 00001356: ADD 00001357: PUSH1 0x08 00001359: DUP3 0000135a: ADD 0000135b: SLOAD 0000135c: DUP2 0000135d: MSTORE 0000135e: PUSH1 0x20 00001360: ADD 00001361: PUSH1 0x09 00001363: DUP3 00001364: ADD 00001365: PUSH1 0x00 00001367: SWAP1 00001368: SLOAD 00001369: SWAP1 0000136a: PUSH2 0x0100 0000136d: EXP 0000136e: SWAP1 0000136f: DIV 00001370: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001385: AND 00001386: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000139b: AND 0000139c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013b1: AND 000013b2: DUP2 000013b3: MSTORE 000013b4: POP 000013b5: POP 000013b6: DUP2 000013b7: MSTORE 000013b8: PUSH1 0x20 000013ba: ADD 000013bb: SWAP1 000013bc: PUSH1 0x01 000013be: ADD 000013bf: SWAP1 000013c0: PUSH2 0x1249 000013c3: JUMP 000013c4: JUMPDEST 000013c5: POP 000013c6: POP 000013c7: POP 000013c8: POP 000013c9: SWAP1 000013ca: POP 000013cb: SWAP1 000013cc: JUMP 000013cd: JUMPDEST 000013ce: PUSH1 0x6a 000013d0: PUSH1 0x20 000013d2: MSTORE 000013d3: DUP1 000013d4: PUSH1 0x00 000013d6: MSTORE 000013d7: PUSH1 0x40 000013d9: PUSH1 0x00 000013db: KECCAK256 000013dc: PUSH1 0x00 000013de: SWAP2 000013df: POP 000013e0: SLOAD 000013e1: SWAP1 000013e2: PUSH2 0x0100 000013e5: EXP 000013e6: SWAP1 000013e7: DIV 000013e8: PUSH1 0xff 000013ea: AND 000013eb: DUP2 000013ec: JUMP 000013ed: JUMPDEST 000013ee: PUSH2 0x13f5 000013f1: PUSH2 0x295e 000013f4: JUMP 000013f5: JUMPDEST 000013f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000140b: AND 0000140c: PUSH2 0x1413 0000140f: PUSH2 0x1824 00001412: JUMP 00001413: JUMPDEST 00001414: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001429: AND 0000142a: EQ 0000142b: PUSH2 0x1469 0000142e: JUMPI 0000142f: PUSH1 0x40 00001431: MLOAD 00001432: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001453: DUP2 00001454: MSTORE 00001455: PUSH1 0x04 00001457: ADD 00001458: PUSH2 0x1460 0000145b: SWAP1 0000145c: PUSH2 0x388d 0000145f: JUMP 00001460: JUMPDEST 00001461: PUSH1 0x40 00001463: MLOAD 00001464: DUP1 00001465: SWAP2 00001466: SUB 00001467: SWAP1 00001468: REVERT 00001469: JUMPDEST 0000146a: PUSH2 0x1473 0000146d: PUSH1 0x00 0000146f: PUSH2 0x2966 00001472: JUMP 00001473: JUMPDEST 00001474: JUMP 00001475: JUMPDEST 00001476: PUSH2 0x147d 00001479: PUSH2 0x301c 0000147c: JUMP 0000147d: JUMPDEST 0000147e: PUSH1 0x66 00001480: PUSH1 0x00 00001482: DUP5 00001483: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001498: AND 00001499: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014ae: AND 000014af: DUP2 000014b0: MSTORE 000014b1: PUSH1 0x20 000014b3: ADD 000014b4: SWAP1 000014b5: DUP2 000014b6: MSTORE 000014b7: PUSH1 0x20 000014b9: ADD 000014ba: PUSH1 0x00 000014bc: KECCAK256 000014bd: PUSH1 0x00 000014bf: DUP4 000014c0: DUP2 000014c1: MSTORE 000014c2: PUSH1 0x20 000014c4: ADD 000014c5: SWAP1 000014c6: DUP2 000014c7: MSTORE 000014c8: PUSH1 0x20 000014ca: ADD 000014cb: PUSH1 0x00 000014cd: KECCAK256 000014ce: PUSH1 0x40 000014d0: MLOAD 000014d1: DUP1 000014d2: PUSH1 0x40 000014d4: ADD 000014d5: PUSH1 0x40 000014d7: MSTORE 000014d8: SWAP1 000014d9: DUP2 000014da: PUSH1 0x00 000014dc: DUP3 000014dd: ADD 000014de: SLOAD 000014df: DUP2 000014e0: MSTORE 000014e1: PUSH1 0x20 000014e3: ADD 000014e4: PUSH1 0x01 000014e6: DUP3 000014e7: ADD 000014e8: SLOAD 000014e9: DUP2 000014ea: MSTORE 000014eb: POP 000014ec: POP 000014ed: SWAP1 000014ee: POP 000014ef: SWAP3 000014f0: SWAP2 000014f1: POP 000014f2: POP 000014f3: JUMP 000014f4: JUMPDEST 000014f5: PUSH1 0x02 000014f7: PUSH1 0x67 000014f9: SLOAD 000014fa: EQ 000014fb: ISZERO 000014fc: PUSH2 0x153a 000014ff: JUMPI 00001500: PUSH1 0x40 00001502: MLOAD 00001503: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001524: DUP2 00001525: MSTORE 00001526: PUSH1 0x04 00001528: ADD 00001529: PUSH2 0x1531 0000152c: SWAP1 0000152d: PUSH2 0x36ae 00001530: JUMP 00001531: JUMPDEST 00001532: PUSH1 0x40 00001534: MLOAD 00001535: DUP1 00001536: SWAP2 00001537: SUB 00001538: SWAP1 00001539: REVERT 0000153a: JUMPDEST 0000153b: PUSH1 0x02 0000153d: PUSH1 0x67 0000153f: DUP2 00001540: SWAP1 00001541: SSTORE 00001542: POP 00001543: PUSH2 0x154b 00001546: DUP2 00001547: PUSH2 0x0dfa 0000154a: JUMP 0000154b: JUMPDEST 0000154c: PUSH1 0x00 0000154e: PUSH1 0x65 00001550: DUP3 00001551: DUP2 00001552: SLOAD 00001553: DUP2 00001554: LT 00001555: PUSH2 0x1561 00001558: JUMPI 00001559: PUSH2 0x1560 0000155c: PUSH2 0x35f9 0000155f: JUMP 00001560: JUMPDEST 00001561: JUMPDEST 00001562: SWAP1 00001563: PUSH1 0x00 00001565: MSTORE 00001566: PUSH1 0x20 00001568: PUSH1 0x00 0000156a: KECCAK256 0000156b: SWAP1 0000156c: PUSH1 0x0a 0000156e: MUL 0000156f: ADD 00001570: SWAP1 00001571: POP 00001572: PUSH1 0x00 00001574: DUP2 00001575: PUSH1 0x09 00001577: ADD 00001578: PUSH1 0x00 0000157a: SWAP1 0000157b: SLOAD 0000157c: SWAP1 0000157d: PUSH2 0x0100 00001580: EXP 00001581: SWAP1 00001582: DIV 00001583: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001598: AND 00001599: SWAP1 0000159a: POP 0000159b: CALLER 0000159c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015b1: AND 000015b2: DUP2 000015b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015c8: AND 000015c9: EQ 000015ca: PUSH2 0x160c 000015cd: JUMPI 000015ce: DUP1 000015cf: CALLER 000015d0: PUSH1 0x40 000015d2: MLOAD 000015d3: PUSH32 0x15a39f3500000000000000000000000000000000000000000000000000000000 000015f4: DUP2 000015f5: MSTORE 000015f6: PUSH1 0x04 000015f8: ADD 000015f9: PUSH2 0x1603 000015fc: SWAP3 000015fd: SWAP2 000015fe: SWAP1 000015ff: PUSH2 0x3628 00001602: JUMP 00001603: JUMPDEST 00001604: PUSH1 0x40 00001606: MLOAD 00001607: DUP1 00001608: SWAP2 00001609: SUB 0000160a: SWAP1 0000160b: REVERT 0000160c: JUMPDEST 0000160d: PUSH1 0x00 0000160f: DUP3 00001610: PUSH1 0x05 00001612: ADD 00001613: SLOAD 00001614: SWAP1 00001615: POP 00001616: TIMESTAMP 00001617: DUP2 00001618: GT 00001619: PUSH2 0x164e 0000161c: JUMPI 0000161d: PUSH1 0x40 0000161f: MLOAD 00001620: PUSH32 0xba56b90400000000000000000000000000000000000000000000000000000000 00001641: DUP2 00001642: MSTORE 00001643: PUSH1 0x04 00001645: ADD 00001646: PUSH1 0x40 00001648: MLOAD 00001649: DUP1 0000164a: SWAP2 0000164b: SUB 0000164c: SWAP1 0000164d: REVERT 0000164e: JUMPDEST 0000164f: PUSH1 0x00 00001651: DUP4 00001652: PUSH1 0x04 00001654: ADD 00001655: SLOAD 00001656: SWAP1 00001657: POP 00001658: TIMESTAMP 00001659: DUP2 0000165a: LT 0000165b: DUP1 0000165c: ISZERO 0000165d: PUSH2 0x1672 00001660: JUMPI 00001661: POP 00001662: PUSH2 0x0e10 00001665: DUP2 00001666: DUP4 00001667: PUSH2 0x1670 0000166a: SWAP2 0000166b: SWAP1 0000166c: PUSH2 0x36fd 0000166f: JUMP 00001670: JUMPDEST 00001671: LT 00001672: JUMPDEST 00001673: ISZERO 00001674: PUSH2 0x16a9 00001677: JUMPI 00001678: PUSH1 0x40 0000167a: MLOAD 0000167b: PUSH32 0xb2ef032800000000000000000000000000000000000000000000000000000000 0000169c: DUP2 0000169d: MSTORE 0000169e: PUSH1 0x04 000016a0: ADD 000016a1: PUSH1 0x40 000016a3: MLOAD 000016a4: DUP1 000016a5: SWAP2 000016a6: SUB 000016a7: SWAP1 000016a8: REVERT 000016a9: JUMPDEST 000016aa: TIMESTAMP 000016ab: DUP5 000016ac: PUSH1 0x05 000016ae: ADD 000016af: DUP2 000016b0: SWAP1 000016b1: SSTORE 000016b2: POP 000016b3: PUSH2 0x173a 000016b6: DUP4 000016b7: DUP3 000016b8: DUP5 000016b9: PUSH2 0x16c2 000016bc: SWAP2 000016bd: SWAP1 000016be: PUSH2 0x36fd 000016c1: JUMP 000016c2: JUMPDEST 000016c3: DUP7 000016c4: PUSH1 0x08 000016c6: ADD 000016c7: SLOAD 000016c8: PUSH2 0x16d1 000016cb: TIMESTAMP 000016cc: DUP7 000016cd: PUSH2 0x292c 000016d0: JUMP 000016d1: JUMPDEST 000016d2: DUP7 000016d3: PUSH2 0x16dc 000016d6: SWAP2 000016d7: SWAP1 000016d8: PUSH2 0x36fd 000016db: JUMP 000016dc: JUMPDEST 000016dd: PUSH2 0x16e6 000016e0: SWAP2 000016e1: SWAP1 000016e2: PUSH2 0x3731 000016e5: JUMP 000016e6: JUMPDEST 000016e7: PUSH2 0x16f0 000016ea: SWAP2 000016eb: SWAP1 000016ec: PUSH2 0x37ba 000016ef: JUMP 000016f0: JUMPDEST 000016f1: DUP7 000016f2: PUSH1 0x01 000016f4: ADD 000016f5: PUSH1 0x00 000016f7: SWAP1 000016f8: SLOAD 000016f9: SWAP1 000016fa: PUSH2 0x0100 000016fd: EXP 000016fe: SWAP1 000016ff: DIV 00001700: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001715: AND 00001716: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000172b: AND 0000172c: PUSH2 0x28a6 0000172f: SWAP1 00001730: SWAP3 00001731: SWAP2 00001732: SWAP1 00001733: PUSH4 0xffffffff 00001738: AND 00001739: JUMP 0000173a: JUMPDEST 0000173b: PUSH32 0xc2c6bc4b1942f09f130e276e73f6b1242d5ee60f65446bdc726ae019e13a4821 0000175c: DUP6 0000175d: PUSH1 0x40 0000175f: MLOAD 00001760: PUSH2 0x1769 00001763: SWAP2 00001764: SWAP1 00001765: PUSH2 0x30ad 00001768: JUMP 00001769: JUMPDEST 0000176a: PUSH1 0x40 0000176c: MLOAD 0000176d: DUP1 0000176e: SWAP2 0000176f: SUB 00001770: SWAP1 00001771: LOG1 00001772: POP 00001773: POP 00001774: POP 00001775: POP 00001776: PUSH1 0x01 00001778: PUSH1 0x67 0000177a: DUP2 0000177b: SWAP1 0000177c: SSTORE 0000177d: POP 0000177e: POP 0000177f: JUMP 00001780: JUMPDEST 00001781: PUSH1 0x00 00001783: PUSH2 0x178c 00001786: PUSH1 0x01 00001788: PUSH2 0x2a2c 0000178b: JUMP 0000178c: JUMPDEST 0000178d: SWAP1 0000178e: POP 0000178f: DUP1 00001790: ISZERO 00001791: PUSH2 0x17b0 00001794: JUMPI 00001795: PUSH1 0x01 00001797: PUSH1 0x00 00001799: PUSH1 0x01 0000179b: PUSH2 0x0100 0000179e: EXP 0000179f: DUP2 000017a0: SLOAD 000017a1: DUP2 000017a2: PUSH1 0xff 000017a4: MUL 000017a5: NOT 000017a6: AND 000017a7: SWAP1 000017a8: DUP4 000017a9: ISZERO 000017aa: ISZERO 000017ab: MUL 000017ac: OR 000017ad: SWAP1 000017ae: SSTORE 000017af: POP 000017b0: JUMPDEST 000017b1: PUSH2 0x17b8 000017b4: PUSH2 0x2b1c 000017b7: JUMP 000017b8: JUMPDEST 000017b9: PUSH1 0x01 000017bb: PUSH1 0x67 000017bd: DUP2 000017be: SWAP1 000017bf: SSTORE 000017c0: POP 000017c1: PUSH1 0x02 000017c3: PUSH1 0x68 000017c5: DUP2 000017c6: SWAP1 000017c7: SSTORE 000017c8: POP 000017c9: DUP1 000017ca: ISZERO 000017cb: PUSH2 0x1821 000017ce: JUMPI 000017cf: PUSH1 0x00 000017d1: DUP1 000017d2: PUSH1 0x01 000017d4: PUSH2 0x0100 000017d7: EXP 000017d8: DUP2 000017d9: SLOAD 000017da: DUP2 000017db: PUSH1 0xff 000017dd: MUL 000017de: NOT 000017df: AND 000017e0: SWAP1 000017e1: DUP4 000017e2: ISZERO 000017e3: ISZERO 000017e4: MUL 000017e5: OR 000017e6: SWAP1 000017e7: SSTORE 000017e8: POP 000017e9: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498 0000180a: PUSH1 0x01 0000180c: PUSH1 0x40 0000180e: MLOAD 0000180f: PUSH2 0x1818 00001812: SWAP2 00001813: SWAP1 00001814: PUSH2 0x38f5 00001817: JUMP 00001818: JUMPDEST 00001819: PUSH1 0x40 0000181b: MLOAD 0000181c: DUP1 0000181d: SWAP2 0000181e: SUB 0000181f: SWAP1 00001820: LOG1 00001821: JUMPDEST 00001822: POP 00001823: JUMP 00001824: JUMPDEST 00001825: PUSH1 0x00 00001827: PUSH1 0x33 00001829: PUSH1 0x00 0000182b: SWAP1 0000182c: SLOAD 0000182d: SWAP1 0000182e: PUSH2 0x0100 00001831: EXP 00001832: SWAP1 00001833: DIV 00001834: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001849: AND 0000184a: SWAP1 0000184b: POP 0000184c: SWAP1 0000184d: JUMP 0000184e: JUMPDEST 0000184f: PUSH1 0x6d 00001851: PUSH1 0x20 00001853: MSTORE 00001854: DUP2 00001855: PUSH1 0x00 00001857: MSTORE 00001858: PUSH1 0x40 0000185a: PUSH1 0x00 0000185c: KECCAK256 0000185d: PUSH1 0x20 0000185f: MSTORE 00001860: DUP1 00001861: PUSH1 0x00 00001863: MSTORE 00001864: PUSH1 0x40 00001866: PUSH1 0x00 00001868: KECCAK256 00001869: PUSH1 0x00 0000186b: SWAP2 0000186c: POP 0000186d: SWAP2 0000186e: POP 0000186f: POP 00001870: SLOAD 00001871: DUP2 00001872: JUMP 00001873: JUMPDEST 00001874: PUSH1 0x68 00001876: SLOAD 00001877: DUP2 00001878: JUMP 00001879: JUMPDEST 0000187a: PUSH2 0x1881 0000187d: PUSH2 0x295e 00001880: JUMP 00001881: JUMPDEST 00001882: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001897: AND 00001898: PUSH2 0x189f 0000189b: PUSH2 0x1824 0000189e: JUMP 0000189f: JUMPDEST 000018a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018b5: AND 000018b6: EQ 000018b7: PUSH2 0x18f5 000018ba: JUMPI 000018bb: PUSH1 0x40 000018bd: MLOAD 000018be: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000018df: DUP2 000018e0: MSTORE 000018e1: PUSH1 0x04 000018e3: ADD 000018e4: PUSH2 0x18ec 000018e7: SWAP1 000018e8: PUSH2 0x388d 000018eb: JUMP 000018ec: JUMPDEST 000018ed: PUSH1 0x40 000018ef: MLOAD 000018f0: DUP1 000018f1: SWAP2 000018f2: SUB 000018f3: SWAP1 000018f4: REVERT 000018f5: JUMPDEST 000018f6: DUP1 000018f7: PUSH1 0x68 000018f9: DUP2 000018fa: SWAP1 000018fb: SSTORE 000018fc: POP 000018fd: POP 000018fe: JUMP 000018ff: JUMPDEST 00001900: PUSH1 0x02 00001902: PUSH1 0x67 00001904: SLOAD 00001905: EQ 00001906: ISZERO 00001907: PUSH2 0x1945 0000190a: JUMPI 0000190b: PUSH1 0x40 0000190d: MLOAD 0000190e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000192f: DUP2 00001930: MSTORE 00001931: PUSH1 0x04 00001933: ADD 00001934: PUSH2 0x193c 00001937: SWAP1 00001938: PUSH2 0x36ae 0000193b: JUMP 0000193c: JUMPDEST 0000193d: PUSH1 0x40 0000193f: MLOAD 00001940: DUP1 00001941: SWAP2 00001942: SUB 00001943: SWAP1 00001944: REVERT 00001945: JUMPDEST 00001946: PUSH1 0x02 00001948: PUSH1 0x67 0000194a: DUP2 0000194b: SWAP1 0000194c: SSTORE 0000194d: POP 0000194e: PUSH1 0x65 00001950: DUP1 00001951: SLOAD 00001952: SWAP1 00001953: POP 00001954: DUP2 00001955: LT 00001956: PUSH2 0x1996 00001959: JUMPI 0000195a: DUP1 0000195b: PUSH1 0x40 0000195d: MLOAD 0000195e: PUSH32 0x1e657b1d00000000000000000000000000000000000000000000000000000000 0000197f: DUP2 00001980: MSTORE 00001981: PUSH1 0x04 00001983: ADD 00001984: PUSH2 0x198d 00001987: SWAP2 00001988: SWAP1 00001989: PUSH2 0x30ad 0000198c: JUMP 0000198d: JUMPDEST 0000198e: PUSH1 0x40 00001990: MLOAD 00001991: DUP1 00001992: SWAP2 00001993: SUB 00001994: SWAP1 00001995: REVERT 00001996: JUMPDEST 00001997: PUSH1 0x00 00001999: PUSH1 0x65 0000199b: DUP3 0000199c: DUP2 0000199d: SLOAD 0000199e: DUP2 0000199f: LT 000019a0: PUSH2 0x19ac 000019a3: JUMPI 000019a4: PUSH2 0x19ab 000019a7: PUSH2 0x35f9 000019aa: JUMP 000019ab: JUMPDEST 000019ac: JUMPDEST 000019ad: SWAP1 000019ae: PUSH1 0x00 000019b0: MSTORE 000019b1: PUSH1 0x20 000019b3: PUSH1 0x00 000019b5: KECCAK256 000019b6: SWAP1 000019b7: PUSH1 0x0a 000019b9: MUL 000019ba: ADD 000019bb: SWAP1 000019bc: POP 000019bd: DUP1 000019be: PUSH1 0x05 000019c0: ADD 000019c1: SLOAD 000019c2: TIMESTAMP 000019c3: LT 000019c4: ISZERO 000019c5: PUSH2 0x19fa 000019c8: JUMPI 000019c9: PUSH1 0x40 000019cb: MLOAD 000019cc: PUSH32 0x4614779a00000000000000000000000000000000000000000000000000000000 000019ed: DUP2 000019ee: MSTORE 000019ef: PUSH1 0x04 000019f1: ADD 000019f2: PUSH1 0x40 000019f4: MLOAD 000019f5: DUP1 000019f6: SWAP2 000019f7: SUB 000019f8: SWAP1 000019f9: REVERT 000019fa: JUMPDEST 000019fb: PUSH1 0x00 000019fd: PUSH1 0x66 000019ff: PUSH1 0x00 00001a01: CALLER 00001a02: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a17: AND 00001a18: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a2d: AND 00001a2e: DUP2 00001a2f: MSTORE 00001a30: PUSH1 0x20 00001a32: ADD 00001a33: SWAP1 00001a34: DUP2 00001a35: MSTORE 00001a36: PUSH1 0x20 00001a38: ADD 00001a39: PUSH1 0x00 00001a3b: KECCAK256 00001a3c: PUSH1 0x00 00001a3e: DUP5 00001a3f: DUP2 00001a40: MSTORE 00001a41: PUSH1 0x20 00001a43: ADD 00001a44: SWAP1 00001a45: DUP2 00001a46: MSTORE 00001a47: PUSH1 0x20 00001a49: ADD 00001a4a: PUSH1 0x00 00001a4c: KECCAK256 00001a4d: SWAP1 00001a4e: POP 00001a4f: PUSH2 0x1a57 00001a52: DUP4 00001a53: PUSH2 0x0dfa 00001a56: JUMP 00001a57: JUMPDEST 00001a58: PUSH1 0x00 00001a5a: DUP3 00001a5b: PUSH1 0x03 00001a5d: ADD 00001a5e: SLOAD 00001a5f: SWAP1 00001a60: POP 00001a61: PUSH1 0x00 00001a63: PUSH1 0x6d 00001a65: PUSH1 0x00 00001a67: CALLER 00001a68: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a7d: AND 00001a7e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a93: AND 00001a94: DUP2 00001a95: MSTORE 00001a96: PUSH1 0x20 00001a98: ADD 00001a99: SWAP1 00001a9a: DUP2 00001a9b: MSTORE 00001a9c: PUSH1 0x20 00001a9e: ADD 00001a9f: PUSH1 0x00 00001aa1: KECCAK256 00001aa2: PUSH1 0x00 00001aa4: DUP7 00001aa5: DUP2 00001aa6: MSTORE 00001aa7: PUSH1 0x20 00001aa9: ADD 00001aaa: SWAP1 00001aab: DUP2 00001aac: MSTORE 00001aad: PUSH1 0x20 00001aaf: ADD 00001ab0: PUSH1 0x00 00001ab2: KECCAK256 00001ab3: SLOAD 00001ab4: DUP4 00001ab5: PUSH1 0x01 00001ab7: ADD 00001ab8: SLOAD 00001ab9: DUP6 00001aba: PUSH1 0x06 00001abc: ADD 00001abd: SLOAD 00001abe: DUP5 00001abf: DUP7 00001ac0: PUSH1 0x00 00001ac2: ADD 00001ac3: SLOAD 00001ac4: PUSH2 0x1acd 00001ac7: SWAP2 00001ac8: SWAP1 00001ac9: PUSH2 0x3731 00001acc: JUMP 00001acd: JUMPDEST 00001ace: PUSH2 0x1ad7 00001ad1: SWAP2 00001ad2: SWAP1 00001ad3: PUSH2 0x37ba 00001ad6: JUMP 00001ad7: JUMPDEST 00001ad8: PUSH2 0x1ae1 00001adb: SWAP2 00001adc: SWAP1 00001add: PUSH2 0x36fd 00001ae0: JUMP 00001ae1: JUMPDEST 00001ae2: PUSH2 0x1aeb 00001ae5: SWAP2 00001ae6: SWAP1 00001ae7: PUSH2 0x37eb 00001aea: JUMP 00001aeb: JUMPDEST 00001aec: SWAP1 00001aed: POP 00001aee: DUP4 00001aef: PUSH1 0x06 00001af1: ADD 00001af2: SLOAD 00001af3: DUP3 00001af4: DUP5 00001af5: PUSH1 0x00 00001af7: ADD 00001af8: SLOAD 00001af9: PUSH2 0x1b02 00001afc: SWAP2 00001afd: SWAP1 00001afe: PUSH2 0x3731 00001b01: JUMP 00001b02: JUMPDEST 00001b03: PUSH2 0x1b0c 00001b06: SWAP2 00001b07: SWAP1 00001b08: PUSH2 0x37ba 00001b0b: JUMP 00001b0c: JUMPDEST 00001b0d: DUP4 00001b0e: PUSH1 0x01 00001b10: ADD 00001b11: DUP2 00001b12: SWAP1 00001b13: SSTORE 00001b14: POP 00001b15: PUSH1 0x00 00001b17: PUSH1 0x6d 00001b19: PUSH1 0x00 00001b1b: CALLER 00001b1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b31: AND 00001b32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b47: AND 00001b48: DUP2 00001b49: MSTORE 00001b4a: PUSH1 0x20 00001b4c: ADD 00001b4d: SWAP1 00001b4e: DUP2 00001b4f: MSTORE 00001b50: PUSH1 0x20 00001b52: ADD 00001b53: PUSH1 0x00 00001b55: KECCAK256 00001b56: PUSH1 0x00 00001b58: DUP8 00001b59: DUP2 00001b5a: MSTORE 00001b5b: PUSH1 0x20 00001b5d: ADD 00001b5e: SWAP1 00001b5f: DUP2 00001b60: MSTORE 00001b61: PUSH1 0x20 00001b63: ADD 00001b64: PUSH1 0x00 00001b66: KECCAK256 00001b67: DUP2 00001b68: SWAP1 00001b69: SSTORE 00001b6a: POP 00001b6b: PUSH1 0x00 00001b6d: DUP2 00001b6e: GT 00001b6f: ISZERO 00001b70: PUSH2 0x1c13 00001b73: JUMPI 00001b74: PUSH2 0x1bc2 00001b77: CALLER 00001b78: DUP3 00001b79: DUP7 00001b7a: PUSH1 0x01 00001b7c: ADD 00001b7d: PUSH1 0x00 00001b7f: SWAP1 00001b80: SLOAD 00001b81: SWAP1 00001b82: PUSH2 0x0100 00001b85: EXP 00001b86: SWAP1 00001b87: DIV 00001b88: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b9d: AND 00001b9e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bb3: AND 00001bb4: PUSH2 0x28a6 00001bb7: SWAP1 00001bb8: SWAP3 00001bb9: SWAP2 00001bba: SWAP1 00001bbb: PUSH4 0xffffffff 00001bc0: AND 00001bc1: JUMP 00001bc2: JUMPDEST 00001bc3: CALLER 00001bc4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bd9: AND 00001bda: PUSH32 0x34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf7 00001bfb: DUP3 00001bfc: DUP8 00001bfd: PUSH1 0x40 00001bff: MLOAD 00001c00: PUSH2 0x1c0a 00001c03: SWAP3 00001c04: SWAP2 00001c05: SWAP1 00001c06: PUSH2 0x32b0 00001c09: JUMP 00001c0a: JUMPDEST 00001c0b: PUSH1 0x40 00001c0d: MLOAD 00001c0e: DUP1 00001c0f: SWAP2 00001c10: SUB 00001c11: SWAP1 00001c12: LOG2 00001c13: JUMPDEST 00001c14: POP 00001c15: POP 00001c16: POP 00001c17: POP 00001c18: PUSH1 0x01 00001c1a: PUSH1 0x67 00001c1c: DUP2 00001c1d: SWAP1 00001c1e: SSTORE 00001c1f: POP 00001c20: POP 00001c21: JUMP 00001c22: JUMPDEST 00001c23: PUSH1 0x00 00001c25: PUSH1 0x65 00001c27: DUP1 00001c28: SLOAD 00001c29: SWAP1 00001c2a: POP 00001c2b: SWAP1 00001c2c: POP 00001c2d: SWAP1 00001c2e: JUMP 00001c2f: JUMPDEST 00001c30: PUSH1 0x69 00001c32: PUSH1 0x00 00001c34: SWAP1 00001c35: SLOAD 00001c36: SWAP1 00001c37: PUSH2 0x0100 00001c3a: EXP 00001c3b: SWAP1 00001c3c: DIV 00001c3d: PUSH1 0xff 00001c3f: AND 00001c40: ISZERO 00001c41: PUSH2 0x1c7f 00001c44: JUMPI 00001c45: PUSH1 0x40 00001c47: MLOAD 00001c48: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001c69: DUP2 00001c6a: MSTORE 00001c6b: PUSH1 0x04 00001c6d: ADD 00001c6e: PUSH2 0x1c76 00001c71: SWAP1 00001c72: PUSH2 0x395c 00001c75: JUMP 00001c76: JUMPDEST 00001c77: PUSH1 0x40 00001c79: MLOAD 00001c7a: DUP1 00001c7b: SWAP2 00001c7c: SUB 00001c7d: SWAP1 00001c7e: REVERT 00001c7f: JUMPDEST 00001c80: PUSH1 0x01 00001c82: PUSH1 0x69 00001c84: PUSH1 0x00 00001c86: PUSH2 0x0100 00001c89: EXP 00001c8a: DUP2 00001c8b: SLOAD 00001c8c: DUP2 00001c8d: PUSH1 0xff 00001c8f: MUL 00001c90: NOT 00001c91: AND 00001c92: SWAP1 00001c93: DUP4 00001c94: ISZERO 00001c95: ISZERO 00001c96: MUL 00001c97: OR 00001c98: SWAP1 00001c99: SSTORE 00001c9a: POP 00001c9b: PUSH1 0x02 00001c9d: PUSH1 0x68 00001c9f: DUP2 00001ca0: SWAP1 00001ca1: SSTORE 00001ca2: POP 00001ca3: PUSH1 0x01 00001ca5: PUSH1 0x67 00001ca7: DUP2 00001ca8: SWAP1 00001ca9: SSTORE 00001caa: POP 00001cab: JUMP 00001cac: JUMPDEST 00001cad: PUSH1 0x02 00001caf: PUSH1 0x67 00001cb1: SLOAD 00001cb2: EQ 00001cb3: ISZERO 00001cb4: PUSH2 0x1cf2 00001cb7: JUMPI 00001cb8: PUSH1 0x40 00001cba: MLOAD 00001cbb: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001cdc: DUP2 00001cdd: MSTORE 00001cde: PUSH1 0x04 00001ce0: ADD 00001ce1: PUSH2 0x1ce9 00001ce4: SWAP1 00001ce5: PUSH2 0x36ae 00001ce8: JUMP 00001ce9: JUMPDEST 00001cea: PUSH1 0x40 00001cec: MLOAD 00001ced: DUP1 00001cee: SWAP2 00001cef: SUB 00001cf0: SWAP1 00001cf1: REVERT 00001cf2: JUMPDEST 00001cf3: PUSH1 0x02 00001cf5: PUSH1 0x67 00001cf7: DUP2 00001cf8: SWAP1 00001cf9: SSTORE 00001cfa: POP 00001cfb: PUSH1 0x00 00001cfd: DUP3 00001cfe: EQ 00001cff: ISZERO 00001d00: PUSH2 0x1d35 00001d03: JUMPI 00001d04: PUSH1 0x40 00001d06: MLOAD 00001d07: PUSH32 0x43ad20fc00000000000000000000000000000000000000000000000000000000 00001d28: DUP2 00001d29: MSTORE 00001d2a: PUSH1 0x04 00001d2c: ADD 00001d2d: PUSH1 0x40 00001d2f: MLOAD 00001d30: DUP1 00001d31: SWAP2 00001d32: SUB 00001d33: SWAP1 00001d34: REVERT 00001d35: JUMPDEST 00001d36: PUSH1 0x65 00001d38: DUP1 00001d39: SLOAD 00001d3a: SWAP1 00001d3b: POP 00001d3c: DUP2 00001d3d: LT 00001d3e: PUSH2 0x1d7e 00001d41: JUMPI 00001d42: DUP1 00001d43: PUSH1 0x40 00001d45: MLOAD 00001d46: PUSH32 0x1e657b1d00000000000000000000000000000000000000000000000000000000 00001d67: DUP2 00001d68: MSTORE 00001d69: PUSH1 0x04 00001d6b: ADD 00001d6c: PUSH2 0x1d75 00001d6f: SWAP2 00001d70: SWAP1 00001d71: PUSH2 0x30ad 00001d74: JUMP 00001d75: JUMPDEST 00001d76: PUSH1 0x40 00001d78: MLOAD 00001d79: DUP1 00001d7a: SWAP2 00001d7b: SUB 00001d7c: SWAP1 00001d7d: REVERT 00001d7e: JUMPDEST 00001d7f: PUSH1 0x00 00001d81: PUSH1 0x65 00001d83: DUP3 00001d84: DUP2 00001d85: SLOAD 00001d86: DUP2 00001d87: LT 00001d88: PUSH2 0x1d94 00001d8b: JUMPI 00001d8c: PUSH2 0x1d93 00001d8f: PUSH2 0x35f9 00001d92: JUMP 00001d93: JUMPDEST 00001d94: JUMPDEST 00001d95: SWAP1 00001d96: PUSH1 0x00 00001d98: MSTORE 00001d99: PUSH1 0x20 00001d9b: PUSH1 0x00 00001d9d: KECCAK256 00001d9e: SWAP1 00001d9f: PUSH1 0x0a 00001da1: MUL 00001da2: ADD 00001da3: SWAP1 00001da4: POP 00001da5: PUSH1 0x6c 00001da7: PUSH1 0x00 00001da9: DUP4 00001daa: DUP2 00001dab: MSTORE 00001dac: PUSH1 0x20 00001dae: ADD 00001daf: SWAP1 00001db0: DUP2 00001db1: MSTORE 00001db2: PUSH1 0x20 00001db4: ADD 00001db5: PUSH1 0x00 00001db7: KECCAK256 00001db8: SLOAD 00001db9: DUP4 00001dba: DUP3 00001dbb: PUSH1 0x07 00001dbd: ADD 00001dbe: SLOAD 00001dbf: PUSH2 0x1dc8 00001dc2: SWAP2 00001dc3: SWAP1 00001dc4: PUSH2 0x37eb 00001dc7: JUMP 00001dc8: JUMPDEST 00001dc9: GT 00001dca: DUP1 00001dcb: ISZERO 00001dcc: PUSH2 0x1de8 00001dcf: JUMPI 00001dd0: POP 00001dd1: PUSH1 0x00 00001dd3: PUSH1 0x6c 00001dd5: PUSH1 0x00 00001dd7: DUP5 00001dd8: DUP2 00001dd9: MSTORE 00001dda: PUSH1 0x20 00001ddc: ADD 00001ddd: SWAP1 00001dde: DUP2 00001ddf: MSTORE 00001de0: PUSH1 0x20 00001de2: ADD 00001de3: PUSH1 0x00 00001de5: KECCAK256 00001de6: SLOAD 00001de7: GT 00001de8: JUMPDEST 00001de9: ISZERO 00001dea: PUSH2 0x1e3d 00001ded: JUMPI 00001dee: PUSH1 0x6c 00001df0: PUSH1 0x00 00001df2: DUP4 00001df3: DUP2 00001df4: MSTORE 00001df5: PUSH1 0x20 00001df7: ADD 00001df8: SWAP1 00001df9: DUP2 00001dfa: MSTORE 00001dfb: PUSH1 0x20 00001dfd: ADD 00001dfe: PUSH1 0x00 00001e00: KECCAK256 00001e01: SLOAD 00001e02: PUSH1 0x40 00001e04: MLOAD 00001e05: PUSH32 0x8c5402b500000000000000000000000000000000000000000000000000000000 00001e26: DUP2 00001e27: MSTORE 00001e28: PUSH1 0x04 00001e2a: ADD 00001e2b: PUSH2 0x1e34 00001e2e: SWAP2 00001e2f: SWAP1 00001e30: PUSH2 0x30ad 00001e33: JUMP 00001e34: JUMPDEST 00001e35: PUSH1 0x40 00001e37: MLOAD 00001e38: DUP1 00001e39: SWAP2 00001e3a: SUB 00001e3b: SWAP1 00001e3c: REVERT 00001e3d: JUMPDEST 00001e3e: PUSH1 0x00 00001e40: PUSH1 0x66 00001e42: PUSH1 0x00 00001e44: CALLER 00001e45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e5a: AND 00001e5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e70: AND 00001e71: DUP2 00001e72: MSTORE 00001e73: PUSH1 0x20 00001e75: ADD 00001e76: SWAP1 00001e77: DUP2 00001e78: MSTORE 00001e79: PUSH1 0x20 00001e7b: ADD 00001e7c: PUSH1 0x00 00001e7e: KECCAK256 00001e7f: PUSH1 0x00 00001e81: DUP5 00001e82: DUP2 00001e83: MSTORE 00001e84: PUSH1 0x20 00001e86: ADD 00001e87: SWAP1 00001e88: DUP2 00001e89: MSTORE 00001e8a: PUSH1 0x20 00001e8c: ADD 00001e8d: PUSH1 0x00 00001e8f: KECCAK256 00001e90: SWAP1 00001e91: POP 00001e92: PUSH2 0x1e9a 00001e95: DUP4 00001e96: PUSH2 0x0dfa 00001e99: JUMP 00001e9a: JUMPDEST 00001e9b: PUSH1 0x00 00001e9d: DUP2 00001e9e: PUSH1 0x00 00001ea0: ADD 00001ea1: SLOAD 00001ea2: GT 00001ea3: ISZERO 00001ea4: PUSH2 0x1f40 00001ea7: JUMPI 00001ea8: DUP1 00001ea9: PUSH1 0x01 00001eab: ADD 00001eac: SLOAD 00001ead: DUP3 00001eae: PUSH1 0x06 00001eb0: ADD 00001eb1: SLOAD 00001eb2: DUP4 00001eb3: PUSH1 0x03 00001eb5: ADD 00001eb6: SLOAD 00001eb7: DUP4 00001eb8: PUSH1 0x00 00001eba: ADD 00001ebb: SLOAD 00001ebc: PUSH2 0x1ec5 00001ebf: SWAP2 00001ec0: SWAP1 00001ec1: PUSH2 0x3731 00001ec4: JUMP 00001ec5: JUMPDEST 00001ec6: PUSH2 0x1ecf 00001ec9: SWAP2 00001eca: SWAP1 00001ecb: PUSH2 0x37ba 00001ece: JUMP 00001ecf: JUMPDEST 00001ed0: PUSH2 0x1ed9 00001ed3: SWAP2 00001ed4: SWAP1 00001ed5: PUSH2 0x36fd 00001ed8: JUMP 00001ed9: JUMPDEST 00001eda: PUSH1 0x6d 00001edc: PUSH1 0x00 00001ede: CALLER 00001edf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ef4: AND 00001ef5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f0a: AND 00001f0b: DUP2 00001f0c: MSTORE 00001f0d: PUSH1 0x20 00001f0f: ADD 00001f10: SWAP1 00001f11: DUP2 00001f12: MSTORE 00001f13: PUSH1 0x20 00001f15: ADD 00001f16: PUSH1 0x00 00001f18: KECCAK256 00001f19: PUSH1 0x00 00001f1b: DUP6 00001f1c: DUP2 00001f1d: MSTORE 00001f1e: PUSH1 0x20 00001f20: ADD 00001f21: SWAP1 00001f22: DUP2 00001f23: MSTORE 00001f24: PUSH1 0x20 00001f26: ADD 00001f27: PUSH1 0x00 00001f29: KECCAK256 00001f2a: PUSH1 0x00 00001f2c: DUP3 00001f2d: DUP3 00001f2e: SLOAD 00001f2f: PUSH2 0x1f38 00001f32: SWAP2 00001f33: SWAP1 00001f34: PUSH2 0x37eb 00001f37: JUMP 00001f38: JUMPDEST 00001f39: SWAP3 00001f3a: POP 00001f3b: POP 00001f3c: DUP2 00001f3d: SWAP1 00001f3e: SSTORE 00001f3f: POP 00001f40: JUMPDEST 00001f41: PUSH1 0x00 00001f43: PUSH2 0x1f70 00001f46: DUP4 00001f47: PUSH1 0x00 00001f49: ADD 00001f4a: PUSH1 0x00 00001f4c: SWAP1 00001f4d: SLOAD 00001f4e: SWAP1 00001f4f: PUSH2 0x0100 00001f52: EXP 00001f53: SWAP1 00001f54: DIV 00001f55: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f6a: AND 00001f6b: DUP7 00001f6c: PUSH2 0x2b75 00001f6f: JUMP 00001f70: JUMPDEST 00001f71: SWAP1 00001f72: POP 00001f73: DUP1 00001f74: DUP3 00001f75: PUSH1 0x00 00001f77: ADD 00001f78: PUSH1 0x00 00001f7a: DUP3 00001f7b: DUP3 00001f7c: SLOAD 00001f7d: PUSH2 0x1f86 00001f80: SWAP2 00001f81: SWAP1 00001f82: PUSH2 0x37eb 00001f85: JUMP 00001f86: JUMPDEST 00001f87: SWAP3 00001f88: POP 00001f89: POP 00001f8a: DUP2 00001f8b: SWAP1 00001f8c: SSTORE 00001f8d: POP 00001f8e: DUP3 00001f8f: PUSH1 0x06 00001f91: ADD 00001f92: SLOAD 00001f93: DUP4 00001f94: PUSH1 0x03 00001f96: ADD 00001f97: SLOAD 00001f98: DUP4 00001f99: PUSH1 0x00 00001f9b: ADD 00001f9c: SLOAD 00001f9d: PUSH2 0x1fa6 00001fa0: SWAP2 00001fa1: SWAP1 00001fa2: PUSH2 0x3731 00001fa5: JUMP 00001fa6: JUMPDEST 00001fa7: PUSH2 0x1fb0 00001faa: SWAP2 00001fab: SWAP1 00001fac: PUSH2 0x37ba 00001faf: JUMP 00001fb0: JUMPDEST 00001fb1: DUP3 00001fb2: PUSH1 0x01 00001fb4: ADD 00001fb5: DUP2 00001fb6: SWAP1 00001fb7: SSTORE 00001fb8: POP 00001fb9: DUP1 00001fba: DUP4 00001fbb: PUSH1 0x07 00001fbd: ADD 00001fbe: PUSH1 0x00 00001fc0: DUP3 00001fc1: DUP3 00001fc2: SLOAD 00001fc3: PUSH2 0x1fcc 00001fc6: SWAP2 00001fc7: SWAP1 00001fc8: PUSH2 0x37eb 00001fcb: JUMP 00001fcc: JUMPDEST 00001fcd: SWAP3 00001fce: POP 00001fcf: POP 00001fd0: DUP2 00001fd1: SWAP1 00001fd2: SSTORE 00001fd3: POP 00001fd4: CALLER 00001fd5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fea: AND 00001feb: PUSH32 0x90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15 0000200c: DUP3 0000200d: DUP7 0000200e: PUSH1 0x40 00002010: MLOAD 00002011: PUSH2 0x201b 00002014: SWAP3 00002015: SWAP2 00002016: SWAP1 00002017: PUSH2 0x32b0 0000201a: JUMP 0000201b: JUMPDEST 0000201c: PUSH1 0x40 0000201e: MLOAD 0000201f: DUP1 00002020: SWAP2 00002021: SUB 00002022: SWAP1 00002023: LOG2 00002024: POP 00002025: POP 00002026: POP 00002027: PUSH1 0x01 00002029: PUSH1 0x67 0000202b: DUP2 0000202c: SWAP1 0000202d: SSTORE 0000202e: POP 0000202f: POP 00002030: POP 00002031: JUMP 00002032: JUMPDEST 00002033: PUSH2 0x203a 00002036: PUSH2 0x295e 00002039: JUMP 0000203a: JUMPDEST 0000203b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002050: AND 00002051: PUSH2 0x2058 00002054: PUSH2 0x1824 00002057: JUMP 00002058: JUMPDEST 00002059: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000206e: AND 0000206f: EQ 00002070: PUSH2 0x20ae 00002073: JUMPI 00002074: PUSH1 0x40 00002076: MLOAD 00002077: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002098: DUP2 00002099: MSTORE 0000209a: PUSH1 0x04 0000209c: ADD 0000209d: PUSH2 0x20a5 000020a0: SWAP1 000020a1: PUSH2 0x388d 000020a4: JUMP 000020a5: JUMPDEST 000020a6: PUSH1 0x40 000020a8: MLOAD 000020a9: DUP1 000020aa: SWAP2 000020ab: SUB 000020ac: SWAP1 000020ad: REVERT 000020ae: JUMPDEST 000020af: PUSH1 0x00 000020b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020c6: AND 000020c7: DUP2 000020c8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020dd: AND 000020de: EQ 000020df: ISZERO 000020e0: PUSH2 0x211e 000020e3: JUMPI 000020e4: PUSH1 0x40 000020e6: MLOAD 000020e7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002108: DUP2 00002109: MSTORE 0000210a: PUSH1 0x04 0000210c: ADD 0000210d: PUSH2 0x2115 00002110: SWAP1 00002111: PUSH2 0x39ee 00002114: JUMP 00002115: JUMPDEST 00002116: PUSH1 0x40 00002118: MLOAD 00002119: DUP1 0000211a: SWAP2 0000211b: SUB 0000211c: SWAP1 0000211d: REVERT 0000211e: JUMPDEST 0000211f: PUSH2 0x2127 00002122: DUP2 00002123: PUSH2 0x2966 00002126: JUMP 00002127: JUMPDEST 00002128: POP 00002129: JUMP 0000212a: JUMPDEST 0000212b: PUSH1 0x00 0000212d: DUP1 0000212e: PUSH1 0x65 00002130: DUP4 00002131: DUP2 00002132: SLOAD 00002133: DUP2 00002134: LT 00002135: PUSH2 0x2141 00002138: JUMPI 00002139: PUSH2 0x2140 0000213c: PUSH2 0x35f9 0000213f: JUMP 00002140: JUMPDEST 00002141: JUMPDEST 00002142: SWAP1 00002143: PUSH1 0x00 00002145: MSTORE 00002146: PUSH1 0x20 00002148: PUSH1 0x00 0000214a: KECCAK256 0000214b: SWAP1 0000214c: PUSH1 0x0a 0000214e: MUL 0000214f: ADD 00002150: SWAP1 00002151: POP 00002152: PUSH1 0x00 00002154: PUSH1 0x66 00002156: PUSH1 0x00 00002158: DUP7 00002159: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000216e: AND 0000216f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002184: AND 00002185: DUP2 00002186: MSTORE 00002187: PUSH1 0x20 00002189: ADD 0000218a: SWAP1 0000218b: DUP2 0000218c: MSTORE 0000218d: PUSH1 0x20 0000218f: ADD 00002190: PUSH1 0x00 00002192: KECCAK256 00002193: PUSH1 0x00 00002195: DUP6 00002196: DUP2 00002197: MSTORE 00002198: PUSH1 0x20 0000219a: ADD 0000219b: SWAP1 0000219c: DUP2 0000219d: MSTORE 0000219e: PUSH1 0x20 000021a0: ADD 000021a1: PUSH1 0x00 000021a3: KECCAK256 000021a4: SWAP1 000021a5: POP 000021a6: PUSH1 0x00 000021a8: DUP3 000021a9: PUSH1 0x03 000021ab: ADD 000021ac: SLOAD 000021ad: SWAP1 000021ae: POP 000021af: PUSH1 0x00 000021b1: DUP4 000021b2: PUSH1 0x07 000021b4: ADD 000021b5: SLOAD 000021b6: SWAP1 000021b7: POP 000021b8: PUSH1 0x00 000021ba: DUP5 000021bb: PUSH1 0x06 000021bd: ADD 000021be: SLOAD 000021bf: SWAP1 000021c0: POP 000021c1: PUSH1 0x00 000021c3: DUP6 000021c4: PUSH1 0x02 000021c6: ADD 000021c7: SLOAD 000021c8: SWAP1 000021c9: POP 000021ca: PUSH1 0x00 000021cc: DUP7 000021cd: PUSH1 0x04 000021cf: ADD 000021d0: SLOAD 000021d1: SWAP1 000021d2: POP 000021d3: PUSH1 0x00 000021d5: DUP8 000021d6: PUSH1 0x05 000021d8: ADD 000021d9: SLOAD 000021da: SWAP1 000021db: POP 000021dc: PUSH1 0x00 000021de: PUSH1 0x6d 000021e0: PUSH1 0x00 000021e2: DUP14 000021e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021f8: AND 000021f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000220e: AND 0000220f: DUP2 00002210: MSTORE 00002211: PUSH1 0x20 00002213: ADD 00002214: SWAP1 00002215: DUP2 00002216: MSTORE 00002217: PUSH1 0x20 00002219: ADD 0000221a: PUSH1 0x00 0000221c: KECCAK256 0000221d: PUSH1 0x00 0000221f: DUP13 00002220: DUP2 00002221: MSTORE 00002222: PUSH1 0x20 00002224: ADD 00002225: SWAP1 00002226: DUP2 00002227: MSTORE 00002228: PUSH1 0x20 0000222a: ADD 0000222b: PUSH1 0x00 0000222d: KECCAK256 0000222e: SLOAD 0000222f: SWAP1 00002230: POP 00002231: DUP2 00002232: DUP5 00002233: GT 00002234: DUP1 00002235: ISZERO 00002236: PUSH2 0x2240 00002239: JUMPI 0000223a: POP 0000223b: PUSH1 0x00 0000223d: DUP7 0000223e: EQ 0000223f: ISZERO 00002240: JUMPDEST 00002241: ISZERO 00002242: PUSH2 0x228a 00002245: JUMPI 00002246: DUP1 00002247: DUP9 00002248: PUSH1 0x01 0000224a: ADD 0000224b: SLOAD 0000224c: DUP7 0000224d: DUP10 0000224e: DUP12 0000224f: PUSH1 0x00 00002251: ADD 00002252: SLOAD 00002253: PUSH2 0x225c 00002256: SWAP2 00002257: SWAP1 00002258: PUSH2 0x3731 0000225b: JUMP 0000225c: JUMPDEST 0000225d: PUSH2 0x2266 00002260: SWAP2 00002261: SWAP1 00002262: PUSH2 0x37ba 00002265: JUMP 00002266: JUMPDEST 00002267: PUSH2 0x2270 0000226a: SWAP2 0000226b: SWAP1 0000226c: PUSH2 0x36fd 0000226f: JUMP 00002270: JUMPDEST 00002271: PUSH2 0x227a 00002274: SWAP2 00002275: SWAP1 00002276: PUSH2 0x37eb 00002279: JUMP 0000227a: JUMPDEST 0000227b: SWAP10 0000227c: POP 0000227d: POP 0000227e: POP 0000227f: POP 00002280: POP 00002281: POP 00002282: POP 00002283: POP 00002284: POP 00002285: POP 00002286: PUSH2 0x235c 00002289: JUMP 0000228a: JUMPDEST 0000228b: DUP4 0000228c: TIMESTAMP 0000228d: GT 0000228e: DUP1 0000228f: ISZERO 00002290: PUSH2 0x229a 00002293: JUMPI 00002294: POP 00002295: PUSH1 0x00 00002297: DUP7 00002298: EQ 00002299: ISZERO 0000229a: JUMPDEST 0000229b: DUP1 0000229c: ISZERO 0000229d: PUSH2 0x22a9 000022a0: JUMPI 000022a1: POP 000022a2: DUP9 000022a3: PUSH1 0x04 000022a5: ADD 000022a6: SLOAD 000022a7: TIMESTAMP 000022a8: GT 000022a9: JUMPDEST 000022aa: ISZERO 000022ab: PUSH2 0x231b 000022ae: JUMPI 000022af: PUSH1 0x00 000022b1: DUP4 000022b2: DUP4 000022b3: PUSH2 0x22bc 000022b6: SWAP2 000022b7: SWAP1 000022b8: PUSH2 0x36fd 000022bb: JUMP 000022bc: JUMPDEST 000022bd: DUP11 000022be: PUSH1 0x08 000022c0: ADD 000022c1: SLOAD 000022c2: PUSH2 0x22cb 000022c5: DUP7 000022c6: DUP9 000022c7: PUSH2 0x292c 000022ca: JUMP 000022cb: JUMPDEST 000022cc: PUSH2 0x22d5 000022cf: TIMESTAMP 000022d0: DUP8 000022d1: PUSH2 0x2945 000022d4: JUMP 000022d5: JUMPDEST 000022d6: PUSH2 0x22df 000022d9: SWAP2 000022da: SWAP1 000022db: PUSH2 0x36fd 000022de: JUMP 000022df: JUMPDEST 000022e0: PUSH2 0x22e9 000022e3: SWAP2 000022e4: SWAP1 000022e5: PUSH2 0x3731 000022e8: JUMP 000022e9: JUMPDEST 000022ea: PUSH2 0x22f3 000022ed: SWAP2 000022ee: SWAP1 000022ef: PUSH2 0x37ba 000022f2: JUMP 000022f3: JUMPDEST 000022f4: SWAP1 000022f5: POP 000022f6: DUP7 000022f7: DUP7 000022f8: DUP3 000022f9: PUSH2 0x2302 000022fc: SWAP2 000022fd: SWAP1 000022fe: PUSH2 0x3731 00002301: JUMP 00002302: JUMPDEST 00002303: PUSH2 0x230c 00002306: SWAP2 00002307: SWAP1 00002308: PUSH2 0x37ba 0000230b: JUMP 0000230c: JUMPDEST 0000230d: DUP9 0000230e: PUSH2 0x2317 00002311: SWAP2 00002312: SWAP1 00002313: PUSH2 0x37eb 00002316: JUMP 00002317: JUMPDEST 00002318: SWAP8 00002319: POP 0000231a: POP 0000231b: JUMPDEST 0000231c: DUP1 0000231d: DUP9 0000231e: PUSH1 0x01 00002320: ADD 00002321: SLOAD 00002322: DUP7 00002323: DUP10 00002324: DUP12 00002325: PUSH1 0x00 00002327: ADD 00002328: SLOAD 00002329: PUSH2 0x2332 0000232c: SWAP2 0000232d: SWAP1 0000232e: PUSH2 0x3731 00002331: JUMP 00002332: JUMPDEST 00002333: PUSH2 0x233c 00002336: SWAP2 00002337: SWAP1 00002338: PUSH2 0x37ba 0000233b: JUMP 0000233c: JUMPDEST 0000233d: PUSH2 0x2346 00002340: SWAP2 00002341: SWAP1 00002342: PUSH2 0x36fd 00002345: JUMP 00002346: JUMPDEST 00002347: PUSH2 0x2350 0000234a: SWAP2 0000234b: SWAP1 0000234c: PUSH2 0x37eb 0000234f: JUMP 00002350: JUMPDEST 00002351: SWAP10 00002352: POP 00002353: POP 00002354: POP 00002355: POP 00002356: POP 00002357: POP 00002358: POP 00002359: POP 0000235a: POP 0000235b: POP 0000235c: JUMPDEST 0000235d: SWAP3 0000235e: SWAP2 0000235f: POP 00002360: POP 00002361: JUMP 00002362: JUMPDEST 00002363: PUSH1 0x02 00002365: PUSH1 0x67 00002367: SLOAD 00002368: EQ 00002369: ISZERO 0000236a: PUSH2 0x23a8 0000236d: JUMPI 0000236e: PUSH1 0x40 00002370: MLOAD 00002371: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002392: DUP2 00002393: MSTORE 00002394: PUSH1 0x04 00002396: ADD 00002397: PUSH2 0x239f 0000239a: SWAP1 0000239b: PUSH2 0x36ae 0000239e: JUMP 0000239f: JUMPDEST 000023a0: PUSH1 0x40 000023a2: MLOAD 000023a3: DUP1 000023a4: SWAP2 000023a5: SUB 000023a6: SWAP1 000023a7: REVERT 000023a8: JUMPDEST 000023a9: PUSH1 0x02 000023ab: PUSH1 0x67 000023ad: DUP2 000023ae: SWAP1 000023af: SSTORE 000023b0: POP 000023b1: PUSH1 0x00 000023b3: DUP6 000023b4: SWAP1 000023b5: POP 000023b6: PUSH1 0x00 000023b8: DUP3 000023b9: EQ 000023ba: ISZERO 000023bb: PUSH2 0x23f0 000023be: JUMPI 000023bf: PUSH1 0x40 000023c1: MLOAD 000023c2: PUSH32 0x589efd7300000000000000000000000000000000000000000000000000000000 000023e3: DUP2 000023e4: MSTORE 000023e5: PUSH1 0x04 000023e7: ADD 000023e8: PUSH1 0x40 000023ea: MLOAD 000023eb: DUP1 000023ec: SWAP2 000023ed: SUB 000023ee: SWAP1 000023ef: REVERT 000023f0: JUMPDEST 000023f1: TIMESTAMP 000023f2: DUP6 000023f3: LT 000023f4: DUP1 000023f5: PUSH2 0x23fd 000023f8: JUMPI 000023f9: POP 000023fa: TIMESTAMP 000023fb: DUP5 000023fc: LT 000023fd: JUMPDEST 000023fe: ISZERO 000023ff: PUSH2 0x2434 00002402: JUMPI 00002403: PUSH1 0x40 00002405: MLOAD 00002406: PUSH32 0x12d8cb1c00000000000000000000000000000000000000000000000000000000 00002427: DUP2 00002428: MSTORE 00002429: PUSH1 0x04 0000242b: ADD 0000242c: PUSH1 0x40 0000242e: MLOAD 0000242f: DUP1 00002430: SWAP2 00002431: SUB 00002432: SWAP1 00002433: REVERT 00002434: JUMPDEST 00002435: PUSH1 0x06 00002437: DUP4 00002438: LT 00002439: DUP1 0000243a: PUSH2 0x2443 0000243d: JUMPI 0000243e: POP 0000243f: PUSH1 0x24 00002441: DUP4 00002442: GT 00002443: JUMPDEST 00002444: ISZERO 00002445: PUSH2 0x247a 00002448: JUMPI 00002449: PUSH1 0x40 0000244b: MLOAD 0000244c: PUSH32 0xaa8828e700000000000000000000000000000000000000000000000000000000 0000246d: DUP2 0000246e: MSTORE 0000246f: PUSH1 0x04 00002471: ADD 00002472: PUSH1 0x40 00002474: MLOAD 00002475: DUP1 00002476: SWAP2 00002477: SUB 00002478: SWAP1 00002479: REVERT 0000247a: JUMPDEST 0000247b: DUP4 0000247c: DUP6 0000247d: LT 0000247e: PUSH2 0x24b3 00002481: JUMPI 00002482: PUSH1 0x40 00002484: MLOAD 00002485: PUSH32 0x77eb2f1700000000000000000000000000000000000000000000000000000000 000024a6: DUP2 000024a7: MSTORE 000024a8: PUSH1 0x04 000024aa: ADD 000024ab: PUSH1 0x40 000024ad: MLOAD 000024ae: DUP1 000024af: SWAP2 000024b0: SUB 000024b1: SWAP1 000024b2: REVERT 000024b3: JUMPDEST 000024b4: PUSH4 0x09660180 000024b9: DUP6 000024ba: DUP6 000024bb: PUSH2 0x24c4 000024be: SWAP2 000024bf: SWAP1 000024c0: PUSH2 0x36fd 000024c3: JUMP 000024c4: JUMPDEST 000024c5: GT 000024c6: ISZERO 000024c7: PUSH2 0x24fc 000024ca: JUMPI 000024cb: PUSH1 0x40 000024cd: MLOAD 000024ce: PUSH32 0x77eb2f1700000000000000000000000000000000000000000000000000000000 000024ef: DUP2 000024f0: MSTORE 000024f1: PUSH1 0x04 000024f3: ADD 000024f4: PUSH1 0x40 000024f6: MLOAD 000024f7: DUP1 000024f8: SWAP2 000024f9: SUB 000024fa: SWAP1 000024fb: REVERT 000024fc: JUMPDEST 000024fd: PUSH1 0x00 000024ff: PUSH2 0x2508 00002502: DUP3 00002503: DUP5 00002504: PUSH2 0x2b75 00002507: JUMP 00002508: JUMPDEST 00002509: SWAP1 0000250a: POP 0000250b: PUSH1 0x65 0000250d: PUSH1 0x40 0000250f: MLOAD 00002510: DUP1 00002511: PUSH2 0x0140 00002514: ADD 00002515: PUSH1 0x40 00002517: MSTORE 00002518: DUP1 00002519: DUP11 0000251a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000252f: AND 00002530: DUP2 00002531: MSTORE 00002532: PUSH1 0x20 00002534: ADD 00002535: DUP5 00002536: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000254b: AND 0000254c: DUP2 0000254d: MSTORE 0000254e: PUSH1 0x20 00002550: ADD 00002551: PUSH1 0x00 00002553: DUP2 00002554: MSTORE 00002555: PUSH1 0x20 00002557: ADD 00002558: PUSH1 0x00 0000255a: DUP2 0000255b: MSTORE 0000255c: PUSH1 0x20 0000255e: ADD 0000255f: DUP9 00002560: DUP2 00002561: MSTORE 00002562: PUSH1 0x20 00002564: ADD 00002565: DUP8 00002566: DUP2 00002567: MSTORE 00002568: PUSH1 0x20 0000256a: ADD 0000256b: DUP7 0000256c: PUSH1 0x0a 0000256e: PUSH2 0x2577 00002571: SWAP2 00002572: SWAP1 00002573: PUSH2 0x3b41 00002576: JUMP 00002577: JUMPDEST 00002578: DUP2 00002579: MSTORE 0000257a: PUSH1 0x20 0000257c: ADD 0000257d: PUSH1 0x00 0000257f: DUP2 00002580: MSTORE 00002581: PUSH1 0x20 00002583: ADD 00002584: DUP4 00002585: DUP2 00002586: MSTORE 00002587: PUSH1 0x20 00002589: ADD 0000258a: CALLER 0000258b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025a0: AND 000025a1: DUP2 000025a2: MSTORE 000025a3: POP 000025a4: SWAP1 000025a5: DUP1 000025a6: PUSH1 0x01 000025a8: DUP2 000025a9: SLOAD 000025aa: ADD 000025ab: DUP1 000025ac: DUP3 000025ad: SSTORE 000025ae: DUP1 000025af: SWAP2 000025b0: POP 000025b1: POP 000025b2: PUSH1 0x01 000025b4: SWAP1 000025b5: SUB 000025b6: SWAP1 000025b7: PUSH1 0x00 000025b9: MSTORE 000025ba: PUSH1 0x20 000025bc: PUSH1 0x00 000025be: KECCAK256 000025bf: SWAP1 000025c0: PUSH1 0x0a 000025c2: MUL 000025c3: ADD 000025c4: PUSH1 0x00 000025c6: SWAP1 000025c7: SWAP2 000025c8: SWAP1 000025c9: SWAP2 000025ca: SWAP1 000025cb: SWAP2 000025cc: POP 000025cd: PUSH1 0x00 000025cf: DUP3 000025d0: ADD 000025d1: MLOAD 000025d2: DUP2 000025d3: PUSH1 0x00 000025d5: ADD 000025d6: PUSH1 0x00 000025d8: PUSH2 0x0100 000025db: EXP 000025dc: DUP2 000025dd: SLOAD 000025de: DUP2 000025df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025f4: MUL 000025f5: NOT 000025f6: AND 000025f7: SWAP1 000025f8: DUP4 000025f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000260e: AND 0000260f: MUL 00002610: OR 00002611: SWAP1 00002612: SSTORE 00002613: POP 00002614: PUSH1 0x20 00002616: DUP3 00002617: ADD 00002618: MLOAD 00002619: DUP2 0000261a: PUSH1 0x01 0000261c: ADD 0000261d: PUSH1 0x00 0000261f: PUSH2 0x0100 00002622: EXP 00002623: DUP2 00002624: SLOAD 00002625: DUP2 00002626: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000263b: MUL 0000263c: NOT 0000263d: AND 0000263e: SWAP1 0000263f: DUP4 00002640: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002655: AND 00002656: MUL 00002657: OR 00002658: SWAP1 00002659: SSTORE 0000265a: POP 0000265b: PUSH1 0x40 0000265d: DUP3 0000265e: ADD 0000265f: MLOAD 00002660: DUP2 00002661: PUSH1 0x02 00002663: ADD 00002664: SSTORE 00002665: PUSH1 0x60 00002667: DUP3 00002668: ADD 00002669: MLOAD 0000266a: DUP2 0000266b: PUSH1 0x03 0000266d: ADD 0000266e: SSTORE 0000266f: PUSH1 0x80 00002671: DUP3 00002672: ADD 00002673: MLOAD 00002674: DUP2 00002675: PUSH1 0x04 00002677: ADD 00002678: SSTORE 00002679: PUSH1 0xa0 0000267b: DUP3 0000267c: ADD 0000267d: MLOAD 0000267e: DUP2 0000267f: PUSH1 0x05 00002681: ADD 00002682: SSTORE 00002683: PUSH1 0xc0 00002685: DUP3 00002686: ADD 00002687: MLOAD 00002688: DUP2 00002689: PUSH1 0x06 0000268b: ADD 0000268c: SSTORE 0000268d: PUSH1 0xe0 0000268f: DUP3 00002690: ADD 00002691: MLOAD 00002692: DUP2 00002693: PUSH1 0x07 00002695: ADD 00002696: SSTORE 00002697: PUSH2 0x0100 0000269a: DUP3 0000269b: ADD 0000269c: MLOAD 0000269d: DUP2 0000269e: PUSH1 0x08 000026a0: ADD 000026a1: SSTORE 000026a2: PUSH2 0x0120 000026a5: DUP3 000026a6: ADD 000026a7: MLOAD 000026a8: DUP2 000026a9: PUSH1 0x09 000026ab: ADD 000026ac: PUSH1 0x00 000026ae: PUSH2 0x0100 000026b1: EXP 000026b2: DUP2 000026b3: SLOAD 000026b4: DUP2 000026b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026ca: MUL 000026cb: NOT 000026cc: AND 000026cd: SWAP1 000026ce: DUP4 000026cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026e4: AND 000026e5: MUL 000026e6: OR 000026e7: SWAP1 000026e8: SSTORE 000026e9: POP 000026ea: POP 000026eb: POP 000026ec: PUSH1 0x68 000026ee: SLOAD 000026ef: PUSH1 0x6b 000026f1: PUSH1 0x00 000026f3: PUSH1 0x01 000026f5: PUSH1 0x65 000026f7: DUP1 000026f8: SLOAD 000026f9: SWAP1 000026fa: POP 000026fb: PUSH2 0x2704 000026fe: SWAP2 000026ff: SWAP1 00002700: PUSH2 0x36fd 00002703: JUMP 00002704: JUMPDEST 00002705: DUP2 00002706: MSTORE 00002707: PUSH1 0x20 00002709: ADD 0000270a: SWAP1 0000270b: DUP2 0000270c: MSTORE 0000270d: PUSH1 0x20 0000270f: ADD 00002710: PUSH1 0x00 00002712: KECCAK256 00002713: DUP2 00002714: SWAP1 00002715: SSTORE 00002716: POP 00002717: DUP7 00002718: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000272d: AND 0000272e: DUP9 0000272f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002744: AND 00002745: PUSH32 0x3da36bae0e345f496aff0cfa4df201a3a21b5bc0f04efa5f1f55d27b51c5fa32 00002766: DUP9 00002767: DUP9 00002768: DUP9 00002769: PUSH1 0x0a 0000276b: PUSH2 0x2774 0000276e: SWAP2 0000276f: SWAP1 00002770: PUSH2 0x3b41 00002773: JUMP 00002774: JUMPDEST 00002775: DUP7 00002776: PUSH1 0x40 00002778: MLOAD 00002779: PUSH2 0x2785 0000277c: SWAP5 0000277d: SWAP4 0000277e: SWAP3 0000277f: SWAP2 00002780: SWAP1 00002781: PUSH2 0x3b8c 00002784: JUMP 00002785: JUMPDEST 00002786: PUSH1 0x40 00002788: MLOAD 00002789: DUP1 0000278a: SWAP2 0000278b: SUB 0000278c: SWAP1 0000278d: LOG3 0000278e: POP 0000278f: POP 00002790: PUSH1 0x01 00002792: PUSH1 0x67 00002794: DUP2 00002795: SWAP1 00002796: SSTORE 00002797: POP 00002798: POP 00002799: POP 0000279a: POP 0000279b: POP 0000279c: POP 0000279d: POP 0000279e: JUMP 0000279f: JUMPDEST 000027a0: PUSH2 0x27a7 000027a3: PUSH2 0x295e 000027a6: JUMP 000027a7: JUMPDEST 000027a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027bd: AND 000027be: PUSH2 0x27c5 000027c1: PUSH2 0x1824 000027c4: JUMP 000027c5: JUMPDEST 000027c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027db: AND 000027dc: EQ 000027dd: PUSH2 0x281b 000027e0: JUMPI 000027e1: PUSH1 0x40 000027e3: MLOAD 000027e4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002805: DUP2 00002806: MSTORE 00002807: PUSH1 0x04 00002809: ADD 0000280a: PUSH2 0x2812 0000280d: SWAP1 0000280e: PUSH2 0x388d 00002811: JUMP 00002812: JUMPDEST 00002813: PUSH1 0x40 00002815: MLOAD 00002816: DUP1 00002817: SWAP2 00002818: SUB 00002819: SWAP1 0000281a: REVERT 0000281b: JUMPDEST 0000281c: PUSH1 0x02 0000281e: PUSH1 0x67 00002820: SLOAD 00002821: EQ 00002822: ISZERO 00002823: PUSH2 0x2861 00002826: JUMPI 00002827: PUSH1 0x40 00002829: MLOAD 0000282a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000284b: DUP2 0000284c: MSTORE 0000284d: PUSH1 0x04 0000284f: ADD 00002850: PUSH2 0x2858 00002853: SWAP1 00002854: PUSH2 0x36ae 00002857: JUMP 00002858: JUMPDEST 00002859: PUSH1 0x40 0000285b: MLOAD 0000285c: DUP1 0000285d: SWAP2 0000285e: SUB 0000285f: SWAP1 00002860: REVERT 00002861: JUMPDEST 00002862: PUSH1 0x02 00002864: PUSH1 0x67 00002866: DUP2 00002867: SWAP1 00002868: SSTORE 00002869: POP 0000286a: PUSH1 0x00 0000286c: DUP3 0000286d: SWAP1 0000286e: POP 0000286f: PUSH2 0x2899 00002872: CALLER 00002873: DUP4 00002874: DUP4 00002875: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000288a: AND 0000288b: PUSH2 0x28a6 0000288e: SWAP1 0000288f: SWAP3 00002890: SWAP2 00002891: SWAP1 00002892: PUSH4 0xffffffff 00002897: AND 00002898: JUMP 00002899: JUMPDEST 0000289a: POP 0000289b: PUSH1 0x01 0000289d: PUSH1 0x67 0000289f: DUP2 000028a0: SWAP1 000028a1: SSTORE 000028a2: POP 000028a3: POP 000028a4: POP 000028a5: JUMP 000028a6: JUMPDEST 000028a7: PUSH2 0x2927 000028aa: DUP4 000028ab: PUSH4 0xa9059cbb 000028b0: PUSH1 0xe0 000028b2: SHL 000028b3: DUP5 000028b4: DUP5 000028b5: PUSH1 0x40 000028b7: MLOAD 000028b8: PUSH1 0x24 000028ba: ADD 000028bb: PUSH2 0x28c5 000028be: SWAP3 000028bf: SWAP2 000028c0: SWAP1 000028c1: PUSH2 0x3bd1 000028c4: JUMP 000028c5: JUMPDEST 000028c6: PUSH1 0x40 000028c8: MLOAD 000028c9: PUSH1 0x20 000028cb: DUP2 000028cc: DUP4 000028cd: SUB 000028ce: SUB 000028cf: DUP2 000028d0: MSTORE 000028d1: SWAP1 000028d2: PUSH1 0x40 000028d4: MSTORE 000028d5: SWAP1 000028d6: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000028f3: NOT 000028f4: AND 000028f5: PUSH1 0x20 000028f7: DUP3 000028f8: ADD 000028f9: DUP1 000028fa: MLOAD 000028fb: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002918: DUP4 00002919: DUP2 0000291a: DUP4 0000291b: AND 0000291c: OR 0000291d: DUP4 0000291e: MSTORE 0000291f: POP 00002920: POP 00002921: POP 00002922: POP 00002923: PUSH2 0x2cb5 00002926: JUMP 00002927: JUMPDEST 00002928: POP 00002929: POP 0000292a: POP 0000292b: JUMP 0000292c: JUMPDEST 0000292d: PUSH1 0x00 0000292f: DUP2 00002930: DUP4 00002931: GT 00002932: PUSH2 0x293b 00002935: JUMPI 00002936: DUP2 00002937: PUSH2 0x293d 0000293a: JUMP 0000293b: JUMPDEST 0000293c: DUP3 0000293d: JUMPDEST 0000293e: SWAP1 0000293f: POP 00002940: SWAP3 00002941: SWAP2 00002942: POP 00002943: POP 00002944: JUMP 00002945: JUMPDEST 00002946: PUSH1 0x00 00002948: DUP2 00002949: DUP4 0000294a: LT 0000294b: PUSH2 0x2954 0000294e: JUMPI 0000294f: DUP2 00002950: PUSH2 0x2956 00002953: JUMP 00002954: JUMPDEST 00002955: DUP3 00002956: JUMPDEST 00002957: SWAP1 00002958: POP 00002959: SWAP3 0000295a: SWAP2 0000295b: POP 0000295c: POP 0000295d: JUMP 0000295e: JUMPDEST 0000295f: PUSH1 0x00 00002961: CALLER 00002962: SWAP1 00002963: POP 00002964: SWAP1 00002965: JUMP 00002966: JUMPDEST 00002967: PUSH1 0x00 00002969: PUSH1 0x33 0000296b: PUSH1 0x00 0000296d: SWAP1 0000296e: SLOAD 0000296f: SWAP1 00002970: PUSH2 0x0100 00002973: EXP 00002974: SWAP1 00002975: DIV 00002976: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000298b: AND 0000298c: SWAP1 0000298d: POP 0000298e: DUP2 0000298f: PUSH1 0x33 00002991: PUSH1 0x00 00002993: PUSH2 0x0100 00002996: EXP 00002997: DUP2 00002998: SLOAD 00002999: DUP2 0000299a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029af: MUL 000029b0: NOT 000029b1: AND 000029b2: SWAP1 000029b3: DUP4 000029b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029c9: AND 000029ca: MUL 000029cb: OR 000029cc: SWAP1 000029cd: SSTORE 000029ce: POP 000029cf: DUP2 000029d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029e5: AND 000029e6: DUP2 000029e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029fc: AND 000029fd: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002a1e: PUSH1 0x40 00002a20: MLOAD 00002a21: PUSH1 0x40 00002a23: MLOAD 00002a24: DUP1 00002a25: SWAP2 00002a26: SUB 00002a27: SWAP1 00002a28: LOG3 00002a29: POP 00002a2a: POP 00002a2b: JUMP 00002a2c: JUMPDEST 00002a2d: PUSH1 0x00 00002a2f: DUP1 00002a30: PUSH1 0x01 00002a32: SWAP1 00002a33: SLOAD 00002a34: SWAP1 00002a35: PUSH2 0x0100 00002a38: EXP 00002a39: SWAP1 00002a3a: DIV 00002a3b: PUSH1 0xff 00002a3d: AND 00002a3e: ISZERO 00002a3f: PUSH2 0x2aa3 00002a42: JUMPI 00002a43: PUSH1 0x01 00002a45: DUP3 00002a46: PUSH1 0xff 00002a48: AND 00002a49: EQ 00002a4a: DUP1 00002a4b: ISZERO 00002a4c: PUSH2 0x2a5b 00002a4f: JUMPI 00002a50: POP 00002a51: PUSH2 0x2a59 00002a54: ADDRESS 00002a55: PUSH2 0x2d7c 00002a58: JUMP 00002a59: JUMPDEST 00002a5a: ISZERO 00002a5b: JUMPDEST 00002a5c: PUSH2 0x2a9a 00002a5f: JUMPI 00002a60: PUSH1 0x40 00002a62: MLOAD 00002a63: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002a84: DUP2 00002a85: MSTORE 00002a86: PUSH1 0x04 00002a88: ADD 00002a89: PUSH2 0x2a91 00002a8c: SWAP1 00002a8d: PUSH2 0x3c6c 00002a90: JUMP 00002a91: JUMPDEST 00002a92: PUSH1 0x40 00002a94: MLOAD 00002a95: DUP1 00002a96: SWAP2 00002a97: SUB 00002a98: SWAP1 00002a99: REVERT 00002a9a: JUMPDEST 00002a9b: PUSH1 0x00 00002a9d: SWAP1 00002a9e: POP 00002a9f: PUSH2 0x2b17 00002aa2: JUMP 00002aa3: JUMPDEST 00002aa4: DUP2 00002aa5: PUSH1 0xff 00002aa7: AND 00002aa8: PUSH1 0x00 00002aaa: DUP1 00002aab: SLOAD 00002aac: SWAP1 00002aad: PUSH2 0x0100 00002ab0: EXP 00002ab1: SWAP1 00002ab2: DIV 00002ab3: PUSH1 0xff 00002ab5: AND 00002ab6: PUSH1 0xff 00002ab8: AND 00002ab9: LT 00002aba: PUSH2 0x2af8 00002abd: JUMPI 00002abe: PUSH1 0x40 00002ac0: MLOAD 00002ac1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002ae2: DUP2 00002ae3: MSTORE 00002ae4: PUSH1 0x04 00002ae6: ADD 00002ae7: PUSH2 0x2aef 00002aea: SWAP1 00002aeb: PUSH2 0x3c6c 00002aee: JUMP 00002aef: JUMPDEST 00002af0: PUSH1 0x40 00002af2: MLOAD 00002af3: DUP1 00002af4: SWAP2 00002af5: SUB 00002af6: SWAP1 00002af7: REVERT 00002af8: JUMPDEST 00002af9: DUP2 00002afa: PUSH1 0x00 00002afc: DUP1 00002afd: PUSH2 0x0100 00002b00: EXP 00002b01: DUP2 00002b02: SLOAD 00002b03: DUP2 00002b04: PUSH1 0xff 00002b06: MUL 00002b07: NOT 00002b08: AND 00002b09: SWAP1 00002b0a: DUP4 00002b0b: PUSH1 0xff 00002b0d: AND 00002b0e: MUL 00002b0f: OR 00002b10: SWAP1 00002b11: SSTORE 00002b12: POP 00002b13: PUSH1 0x01 00002b15: SWAP1 00002b16: POP 00002b17: JUMPDEST 00002b18: SWAP2 00002b19: SWAP1 00002b1a: POP 00002b1b: JUMP 00002b1c: JUMPDEST 00002b1d: PUSH1 0x00 00002b1f: PUSH1 0x01 00002b21: SWAP1 00002b22: SLOAD 00002b23: SWAP1 00002b24: PUSH2 0x0100 00002b27: EXP 00002b28: SWAP1 00002b29: DIV 00002b2a: PUSH1 0xff 00002b2c: AND 00002b2d: PUSH2 0x2b6b 00002b30: JUMPI 00002b31: PUSH1 0x40 00002b33: MLOAD 00002b34: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002b55: DUP2 00002b56: MSTORE 00002b57: PUSH1 0x04 00002b59: ADD 00002b5a: PUSH2 0x2b62 00002b5d: SWAP1 00002b5e: PUSH2 0x3cfe 00002b61: JUMP 00002b62: JUMPDEST 00002b63: PUSH1 0x40 00002b65: MLOAD 00002b66: DUP1 00002b67: SWAP2 00002b68: SUB 00002b69: SWAP1 00002b6a: REVERT 00002b6b: JUMPDEST 00002b6c: PUSH2 0x2b73 00002b6f: PUSH2 0x2d9f 00002b72: JUMP 00002b73: JUMPDEST 00002b74: JUMP 00002b75: JUMPDEST 00002b76: PUSH1 0x00 00002b78: DUP1 00002b79: DUP4 00002b7a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b8f: AND 00002b90: PUSH4 0x70a08231 00002b95: ADDRESS 00002b96: PUSH1 0x40 00002b98: MLOAD 00002b99: DUP3 00002b9a: PUSH4 0xffffffff 00002b9f: AND 00002ba0: PUSH1 0xe0 00002ba2: SHL 00002ba3: DUP2 00002ba4: MSTORE 00002ba5: PUSH1 0x04 00002ba7: ADD 00002ba8: PUSH2 0x2bb1 00002bab: SWAP2 00002bac: SWAP1 00002bad: PUSH2 0x3524 00002bb0: JUMP 00002bb1: JUMPDEST 00002bb2: PUSH1 0x20 00002bb4: PUSH1 0x40 00002bb6: MLOAD 00002bb7: DUP1 00002bb8: DUP4 00002bb9: SUB 00002bba: DUP2 00002bbb: DUP7 00002bbc: GAS 00002bbd: STATICCALL 00002bbe: ISZERO 00002bbf: DUP1 00002bc0: ISZERO 00002bc1: PUSH2 0x2bce 00002bc4: JUMPI 00002bc5: RETURNDATASIZE 00002bc6: PUSH1 0x00 00002bc8: DUP1 00002bc9: RETURNDATACOPY 00002bca: RETURNDATASIZE 00002bcb: PUSH1 0x00 00002bcd: REVERT 00002bce: JUMPDEST 00002bcf: POP 00002bd0: POP 00002bd1: POP 00002bd2: POP 00002bd3: PUSH1 0x40 00002bd5: MLOAD 00002bd6: RETURNDATASIZE 00002bd7: PUSH1 0x1f 00002bd9: NOT 00002bda: PUSH1 0x1f 00002bdc: DUP3 00002bdd: ADD 00002bde: AND 00002bdf: DUP3 00002be0: ADD 00002be1: DUP1 00002be2: PUSH1 0x40 00002be4: MSTORE 00002be5: POP 00002be6: DUP2 00002be7: ADD 00002be8: SWAP1 00002be9: PUSH2 0x2bf2 00002bec: SWAP2 00002bed: SWAP1 00002bee: PUSH2 0x3d33 00002bf1: JUMP 00002bf2: JUMPDEST 00002bf3: SWAP1 00002bf4: POP 00002bf5: PUSH2 0x2c21 00002bf8: CALLER 00002bf9: ADDRESS 00002bfa: DUP6 00002bfb: DUP8 00002bfc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c11: AND 00002c12: PUSH2 0x2e00 00002c15: SWAP1 00002c16: SWAP4 00002c17: SWAP3 00002c18: SWAP2 00002c19: SWAP1 00002c1a: PUSH4 0xffffffff 00002c1f: AND 00002c20: JUMP 00002c21: JUMPDEST 00002c22: PUSH1 0x00 00002c24: DUP5 00002c25: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c3a: AND 00002c3b: PUSH4 0x70a08231 00002c40: ADDRESS 00002c41: PUSH1 0x40 00002c43: MLOAD 00002c44: DUP3 00002c45: PUSH4 0xffffffff 00002c4a: AND 00002c4b: PUSH1 0xe0 00002c4d: SHL 00002c4e: DUP2 00002c4f: MSTORE 00002c50: PUSH1 0x04 00002c52: ADD 00002c53: PUSH2 0x2c5c 00002c56: SWAP2 00002c57: SWAP1 00002c58: PUSH2 0x3524 00002c5b: JUMP 00002c5c: JUMPDEST 00002c5d: PUSH1 0x20 00002c5f: PUSH1 0x40 00002c61: MLOAD 00002c62: DUP1 00002c63: DUP4 00002c64: SUB 00002c65: DUP2 00002c66: DUP7 00002c67: GAS 00002c68: STATICCALL 00002c69: ISZERO 00002c6a: DUP1 00002c6b: ISZERO 00002c6c: PUSH2 0x2c79 00002c6f: JUMPI 00002c70: RETURNDATASIZE 00002c71: PUSH1 0x00 00002c73: DUP1 00002c74: RETURNDATACOPY 00002c75: RETURNDATASIZE 00002c76: PUSH1 0x00 00002c78: REVERT 00002c79: JUMPDEST 00002c7a: POP 00002c7b: POP 00002c7c: POP 00002c7d: POP 00002c7e: PUSH1 0x40 00002c80: MLOAD 00002c81: RETURNDATASIZE 00002c82: PUSH1 0x1f 00002c84: NOT 00002c85: PUSH1 0x1f 00002c87: DUP3 00002c88: ADD 00002c89: AND 00002c8a: DUP3 00002c8b: ADD 00002c8c: DUP1 00002c8d: PUSH1 0x40 00002c8f: MSTORE 00002c90: POP 00002c91: DUP2 00002c92: ADD 00002c93: SWAP1 00002c94: PUSH2 0x2c9d 00002c97: SWAP2 00002c98: SWAP1 00002c99: PUSH2 0x3d33 00002c9c: JUMP 00002c9d: JUMPDEST 00002c9e: SWAP1 00002c9f: POP 00002ca0: DUP2 00002ca1: DUP2 00002ca2: PUSH2 0x2cab 00002ca5: SWAP2 00002ca6: SWAP1 00002ca7: PUSH2 0x36fd 00002caa: JUMP 00002cab: JUMPDEST 00002cac: SWAP3 00002cad: POP 00002cae: POP 00002caf: POP 00002cb0: SWAP3 00002cb1: SWAP2 00002cb2: POP 00002cb3: POP 00002cb4: JUMP 00002cb5: JUMPDEST 00002cb6: PUSH1 0x00 00002cb8: PUSH2 0x2d17 00002cbb: DUP3 00002cbc: PUSH1 0x40 00002cbe: MLOAD 00002cbf: DUP1 00002cc0: PUSH1 0x40 00002cc2: ADD 00002cc3: PUSH1 0x40 00002cc5: MSTORE 00002cc6: DUP1 00002cc7: PUSH1 0x20 00002cc9: DUP2 00002cca: MSTORE 00002ccb: PUSH1 0x20 00002ccd: ADD 00002cce: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 00002cef: DUP2 00002cf0: MSTORE 00002cf1: POP 00002cf2: DUP6 00002cf3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d08: AND 00002d09: PUSH2 0x2e89 00002d0c: SWAP1 00002d0d: SWAP3 00002d0e: SWAP2 00002d0f: SWAP1 00002d10: PUSH4 0xffffffff 00002d15: AND 00002d16: JUMP 00002d17: JUMPDEST 00002d18: SWAP1 00002d19: POP 00002d1a: PUSH1 0x00 00002d1c: DUP2 00002d1d: MLOAD 00002d1e: GT 00002d1f: ISZERO 00002d20: PUSH2 0x2d77 00002d23: JUMPI 00002d24: DUP1 00002d25: DUP1 00002d26: PUSH1 0x20 00002d28: ADD 00002d29: SWAP1 00002d2a: MLOAD 00002d2b: DUP2 00002d2c: ADD 00002d2d: SWAP1 00002d2e: PUSH2 0x2d37 00002d31: SWAP2 00002d32: SWAP1 00002d33: PUSH2 0x3d8c 00002d36: JUMP 00002d37: JUMPDEST 00002d38: PUSH2 0x2d76 00002d3b: JUMPI 00002d3c: PUSH1 0x40 00002d3e: MLOAD 00002d3f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002d60: DUP2 00002d61: MSTORE 00002d62: PUSH1 0x04 00002d64: ADD 00002d65: PUSH2 0x2d6d 00002d68: SWAP1 00002d69: PUSH2 0x3e2b 00002d6c: JUMP 00002d6d: JUMPDEST 00002d6e: PUSH1 0x40 00002d70: MLOAD 00002d71: DUP1 00002d72: SWAP2 00002d73: SUB 00002d74: SWAP1 00002d75: REVERT 00002d76: JUMPDEST 00002d77: JUMPDEST 00002d78: POP 00002d79: POP 00002d7a: POP 00002d7b: JUMP 00002d7c: JUMPDEST 00002d7d: PUSH1 0x00 00002d7f: DUP1 00002d80: DUP3 00002d81: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d96: AND 00002d97: EXTCODESIZE 00002d98: GT 00002d99: SWAP1 00002d9a: POP 00002d9b: SWAP2 00002d9c: SWAP1 00002d9d: POP 00002d9e: JUMP 00002d9f: JUMPDEST 00002da0: PUSH1 0x00 00002da2: PUSH1 0x01 00002da4: SWAP1 00002da5: SLOAD 00002da6: SWAP1 00002da7: PUSH2 0x0100 00002daa: EXP 00002dab: SWAP1 00002dac: DIV 00002dad: PUSH1 0xff 00002daf: AND 00002db0: PUSH2 0x2dee 00002db3: JUMPI 00002db4: PUSH1 0x40 00002db6: MLOAD 00002db7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002dd8: DUP2 00002dd9: MSTORE 00002dda: PUSH1 0x04 00002ddc: ADD 00002ddd: PUSH2 0x2de5 00002de0: SWAP1 00002de1: PUSH2 0x3cfe 00002de4: JUMP 00002de5: JUMPDEST 00002de6: PUSH1 0x40 00002de8: MLOAD 00002de9: DUP1 00002dea: SWAP2 00002deb: SUB 00002dec: SWAP1 00002ded: REVERT 00002dee: JUMPDEST 00002def: PUSH2 0x2dfe 00002df2: PUSH2 0x2df9 00002df5: PUSH2 0x295e 00002df8: JUMP 00002df9: JUMPDEST 00002dfa: PUSH2 0x2966 00002dfd: JUMP 00002dfe: JUMPDEST 00002dff: JUMP 00002e00: JUMPDEST 00002e01: PUSH2 0x2e83 00002e04: DUP5 00002e05: PUSH4 0x23b872dd 00002e0a: PUSH1 0xe0 00002e0c: SHL 00002e0d: DUP6 00002e0e: DUP6 00002e0f: DUP6 00002e10: PUSH1 0x40 00002e12: MLOAD 00002e13: PUSH1 0x24 00002e15: ADD 00002e16: PUSH2 0x2e21 00002e19: SWAP4 00002e1a: SWAP3 00002e1b: SWAP2 00002e1c: SWAP1 00002e1d: PUSH2 0x3e4b 00002e20: JUMP 00002e21: JUMPDEST 00002e22: PUSH1 0x40 00002e24: MLOAD 00002e25: PUSH1 0x20 00002e27: DUP2 00002e28: DUP4 00002e29: SUB 00002e2a: SUB 00002e2b: DUP2 00002e2c: MSTORE 00002e2d: SWAP1 00002e2e: PUSH1 0x40 00002e30: MSTORE 00002e31: SWAP1 00002e32: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002e4f: NOT 00002e50: AND 00002e51: PUSH1 0x20 00002e53: DUP3 00002e54: ADD 00002e55: DUP1 00002e56: MLOAD 00002e57: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002e74: DUP4 00002e75: DUP2 00002e76: DUP4 00002e77: AND 00002e78: OR 00002e79: DUP4 00002e7a: MSTORE 00002e7b: POP 00002e7c: POP 00002e7d: POP 00002e7e: POP 00002e7f: PUSH2 0x2cb5 00002e82: JUMP 00002e83: JUMPDEST 00002e84: POP 00002e85: POP 00002e86: POP 00002e87: POP 00002e88: JUMP 00002e89: JUMPDEST 00002e8a: PUSH1 0x60 00002e8c: PUSH2 0x2e98 00002e8f: DUP5 00002e90: DUP5 00002e91: PUSH1 0x00 00002e93: DUP6 00002e94: PUSH2 0x2ea1 00002e97: JUMP 00002e98: JUMPDEST 00002e99: SWAP1 00002e9a: POP 00002e9b: SWAP4 00002e9c: SWAP3 00002e9d: POP 00002e9e: POP 00002e9f: POP 00002ea0: JUMP 00002ea1: JUMPDEST 00002ea2: PUSH1 0x60 00002ea4: DUP3 00002ea5: SELFBALANCE 00002ea6: LT 00002ea7: ISZERO 00002ea8: PUSH2 0x2ee6 00002eab: JUMPI 00002eac: PUSH1 0x40 00002eae: MLOAD 00002eaf: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002ed0: DUP2 00002ed1: MSTORE 00002ed2: PUSH1 0x04 00002ed4: ADD 00002ed5: PUSH2 0x2edd 00002ed8: SWAP1 00002ed9: PUSH2 0x3ef4 00002edc: JUMP 00002edd: JUMPDEST 00002ede: PUSH1 0x40 00002ee0: MLOAD 00002ee1: DUP1 00002ee2: SWAP2 00002ee3: SUB 00002ee4: SWAP1 00002ee5: REVERT 00002ee6: JUMPDEST 00002ee7: PUSH2 0x2eef 00002eea: DUP6 00002eeb: PUSH2 0x2d7c 00002eee: JUMP 00002eef: JUMPDEST 00002ef0: PUSH2 0x2f2e 00002ef3: JUMPI 00002ef4: PUSH1 0x40 00002ef6: MLOAD 00002ef7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002f18: DUP2 00002f19: MSTORE 00002f1a: PUSH1 0x04 00002f1c: ADD 00002f1d: PUSH2 0x2f25 00002f20: SWAP1 00002f21: PUSH2 0x3f60 00002f24: JUMP 00002f25: JUMPDEST 00002f26: PUSH1 0x40 00002f28: MLOAD 00002f29: DUP1 00002f2a: SWAP2 00002f2b: SUB 00002f2c: SWAP1 00002f2d: REVERT 00002f2e: JUMPDEST 00002f2f: PUSH1 0x00 00002f31: DUP1 00002f32: DUP7 00002f33: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f48: AND 00002f49: DUP6 00002f4a: DUP8 00002f4b: PUSH1 0x40 00002f4d: MLOAD 00002f4e: PUSH2 0x2f57 00002f51: SWAP2 00002f52: SWAP1 00002f53: PUSH2 0x3ffa 00002f56: JUMP 00002f57: JUMPDEST 00002f58: PUSH1 0x00 00002f5a: PUSH1 0x40 00002f5c: MLOAD 00002f5d: DUP1 00002f5e: DUP4 00002f5f: SUB 00002f60: DUP2 00002f61: DUP6 00002f62: DUP8 00002f63: GAS 00002f64: CALL 00002f65: SWAP3 00002f66: POP 00002f67: POP 00002f68: POP 00002f69: RETURNDATASIZE 00002f6a: DUP1 00002f6b: PUSH1 0x00 00002f6d: DUP2 00002f6e: EQ 00002f6f: PUSH2 0x2f94 00002f72: JUMPI 00002f73: PUSH1 0x40 00002f75: MLOAD 00002f76: SWAP2 00002f77: POP 00002f78: PUSH1 0x1f 00002f7a: NOT 00002f7b: PUSH1 0x3f 00002f7d: RETURNDATASIZE 00002f7e: ADD 00002f7f: AND 00002f80: DUP3 00002f81: ADD 00002f82: PUSH1 0x40 00002f84: MSTORE 00002f85: RETURNDATASIZE 00002f86: DUP3 00002f87: MSTORE 00002f88: RETURNDATASIZE 00002f89: PUSH1 0x00 00002f8b: PUSH1 0x20 00002f8d: DUP5 00002f8e: ADD 00002f8f: RETURNDATACOPY 00002f90: PUSH2 0x2f99 00002f93: JUMP 00002f94: JUMPDEST 00002f95: PUSH1 0x60 00002f97: SWAP2 00002f98: POP 00002f99: JUMPDEST 00002f9a: POP 00002f9b: SWAP2 00002f9c: POP 00002f9d: SWAP2 00002f9e: POP 00002f9f: PUSH2 0x2fa9 00002fa2: DUP3 00002fa3: DUP3 00002fa4: DUP7 00002fa5: PUSH2 0x2fb5 00002fa8: JUMP 00002fa9: JUMPDEST 00002faa: SWAP3 00002fab: POP 00002fac: POP 00002fad: POP 00002fae: SWAP5 00002faf: SWAP4 00002fb0: POP 00002fb1: POP 00002fb2: POP 00002fb3: POP 00002fb4: JUMP 00002fb5: JUMPDEST 00002fb6: PUSH1 0x60 00002fb8: DUP4 00002fb9: ISZERO 00002fba: PUSH2 0x2fc5 00002fbd: JUMPI 00002fbe: DUP3 00002fbf: SWAP1 00002fc0: POP 00002fc1: PUSH2 0x3015 00002fc4: JUMP 00002fc5: JUMPDEST 00002fc6: PUSH1 0x00 00002fc8: DUP4 00002fc9: MLOAD 00002fca: GT 00002fcb: ISZERO 00002fcc: PUSH2 0x2fd8 00002fcf: JUMPI 00002fd0: DUP3 00002fd1: MLOAD 00002fd2: DUP1 00002fd3: DUP5 00002fd4: PUSH1 0x20 00002fd6: ADD 00002fd7: REVERT 00002fd8: JUMPDEST 00002fd9: DUP2 00002fda: PUSH1 0x40 00002fdc: MLOAD 00002fdd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002ffe: DUP2 00002fff: MSTORE 00003000: PUSH1 0x04 00003002: ADD 00003003: PUSH2 0x300c 00003006: SWAP2 00003007: SWAP1 00003008: PUSH2 0x4066 0000300b: JUMP 0000300c: JUMPDEST 0000300d: PUSH1 0x40 0000300f: MLOAD 00003010: DUP1 00003011: SWAP2 00003012: SUB 00003013: SWAP1 00003014: REVERT 00003015: JUMPDEST 00003016: SWAP4 00003017: SWAP3 00003018: POP 00003019: POP 0000301a: POP 0000301b: JUMP 0000301c: JUMPDEST 0000301d: PUSH1 0x40 0000301f: MLOAD 00003020: DUP1 00003021: PUSH1 0x40 00003023: ADD 00003024: PUSH1 0x40 00003026: MSTORE 00003027: DUP1 00003028: PUSH1 0x00 0000302a: DUP2 0000302b: MSTORE 0000302c: PUSH1 0x20 0000302e: ADD 0000302f: PUSH1 0x00 00003031: DUP2 00003032: MSTORE 00003033: POP 00003034: SWAP1 00003035: JUMP 00003036: JUMPDEST 00003037: PUSH1 0x00 00003039: DUP1 0000303a: REVERT 0000303b: JUMPDEST 0000303c: PUSH1 0x00 0000303e: DUP2 0000303f: SWAP1 00003040: POP 00003041: SWAP2 00003042: SWAP1 00003043: POP 00003044: JUMP 00003045: JUMPDEST 00003046: PUSH2 0x304e 00003049: DUP2 0000304a: PUSH2 0x303b 0000304d: JUMP 0000304e: JUMPDEST 0000304f: DUP2 00003050: EQ 00003051: PUSH2 0x3059 00003054: JUMPI 00003055: PUSH1 0x00 00003057: DUP1 00003058: REVERT 00003059: JUMPDEST 0000305a: POP 0000305b: JUMP 0000305c: JUMPDEST 0000305d: PUSH1 0x00 0000305f: DUP2 00003060: CALLDATALOAD 00003061: SWAP1 00003062: POP 00003063: PUSH2 0x306b 00003066: DUP2 00003067: PUSH2 0x3045 0000306a: JUMP 0000306b: JUMPDEST 0000306c: SWAP3 0000306d: SWAP2 0000306e: POP 0000306f: POP 00003070: JUMP 00003071: JUMPDEST 00003072: PUSH1 0x00 00003074: PUSH1 0x20 00003076: DUP3 00003077: DUP5 00003078: SUB 00003079: SLT 0000307a: ISZERO 0000307b: PUSH2 0x3087 0000307e: JUMPI 0000307f: PUSH2 0x3086 00003082: PUSH2 0x3036 00003085: JUMP 00003086: JUMPDEST 00003087: JUMPDEST 00003088: PUSH1 0x00 0000308a: PUSH2 0x3095 0000308d: DUP5 0000308e: DUP3 0000308f: DUP6 00003090: ADD 00003091: PUSH2 0x305c 00003094: JUMP 00003095: JUMPDEST 00003096: SWAP2 00003097: POP 00003098: POP 00003099: SWAP3 0000309a: SWAP2 0000309b: POP 0000309c: POP 0000309d: JUMP 0000309e: JUMPDEST 0000309f: PUSH2 0x30a7 000030a2: DUP2 000030a3: PUSH2 0x303b 000030a6: JUMP 000030a7: JUMPDEST 000030a8: DUP3 000030a9: MSTORE 000030aa: POP 000030ab: POP 000030ac: JUMP 000030ad: JUMPDEST 000030ae: PUSH1 0x00 000030b0: PUSH1 0x20 000030b2: DUP3 000030b3: ADD 000030b4: SWAP1 000030b5: POP 000030b6: PUSH2 0x30c2 000030b9: PUSH1 0x00 000030bb: DUP4 000030bc: ADD 000030bd: DUP5 000030be: PUSH2 0x309e 000030c1: JUMP 000030c2: JUMPDEST 000030c3: SWAP3 000030c4: SWAP2 000030c5: POP 000030c6: POP 000030c7: JUMP 000030c8: JUMPDEST 000030c9: PUSH1 0x00 000030cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030e0: DUP3 000030e1: AND 000030e2: SWAP1 000030e3: POP 000030e4: SWAP2 000030e5: SWAP1 000030e6: POP 000030e7: JUMP 000030e8: JUMPDEST 000030e9: PUSH1 0x00 000030eb: DUP2 000030ec: SWAP1 000030ed: POP 000030ee: SWAP2 000030ef: SWAP1 000030f0: POP 000030f1: JUMP 000030f2: JUMPDEST 000030f3: PUSH1 0x00 000030f5: PUSH2 0x310d 000030f8: PUSH2 0x3108 000030fb: PUSH2 0x3103 000030fe: DUP5 000030ff: PUSH2 0x30c8 00003102: JUMP 00003103: JUMPDEST 00003104: PUSH2 0x30e8 00003107: JUMP 00003108: JUMPDEST 00003109: PUSH2 0x30c8 0000310c: JUMP 0000310d: JUMPDEST 0000310e: SWAP1 0000310f: POP 00003110: SWAP2 00003111: SWAP1 00003112: POP 00003113: JUMP 00003114: JUMPDEST 00003115: PUSH1 0x00 00003117: PUSH2 0x311f 0000311a: DUP3 0000311b: PUSH2 0x30f2 0000311e: JUMP 0000311f: JUMPDEST 00003120: SWAP1 00003121: POP 00003122: SWAP2 00003123: SWAP1 00003124: POP 00003125: JUMP 00003126: JUMPDEST 00003127: PUSH1 0x00 00003129: PUSH2 0x3131 0000312c: DUP3 0000312d: PUSH2 0x3114 00003130: JUMP 00003131: JUMPDEST 00003132: SWAP1 00003133: POP 00003134: SWAP2 00003135: SWAP1 00003136: POP 00003137: JUMP 00003138: JUMPDEST 00003139: PUSH2 0x3141 0000313c: DUP2 0000313d: PUSH2 0x3126 00003140: JUMP 00003141: JUMPDEST 00003142: DUP3 00003143: MSTORE 00003144: POP 00003145: POP 00003146: JUMP 00003147: JUMPDEST 00003148: PUSH1 0x00 0000314a: PUSH2 0x3152 0000314d: DUP3 0000314e: PUSH2 0x30c8 00003151: JUMP 00003152: JUMPDEST 00003153: SWAP1 00003154: POP 00003155: SWAP2 00003156: SWAP1 00003157: POP 00003158: JUMP 00003159: JUMPDEST 0000315a: PUSH2 0x3162 0000315d: DUP2 0000315e: PUSH2 0x3147 00003161: JUMP 00003162: JUMPDEST 00003163: DUP3 00003164: MSTORE 00003165: POP 00003166: POP 00003167: JUMP 00003168: JUMPDEST 00003169: PUSH1 0x00 0000316b: PUSH2 0x0140 0000316e: DUP3 0000316f: ADD 00003170: SWAP1 00003171: POP 00003172: PUSH2 0x317e 00003175: PUSH1 0x00 00003177: DUP4 00003178: ADD 00003179: DUP14 0000317a: PUSH2 0x3138 0000317d: JUMP 0000317e: JUMPDEST 0000317f: PUSH2 0x318b 00003182: PUSH1 0x20 00003184: DUP4 00003185: ADD 00003186: DUP13 00003187: PUSH2 0x3138 0000318a: JUMP 0000318b: JUMPDEST 0000318c: PUSH2 0x3198 0000318f: PUSH1 0x40 00003191: DUP4 00003192: ADD 00003193: DUP12 00003194: PUSH2 0x309e 00003197: JUMP 00003198: JUMPDEST 00003199: PUSH2 0x31a5 0000319c: PUSH1 0x60 0000319e: DUP4 0000319f: ADD 000031a0: DUP11 000031a1: PUSH2 0x309e 000031a4: JUMP 000031a5: JUMPDEST 000031a6: PUSH2 0x31b2 000031a9: PUSH1 0x80 000031ab: DUP4 000031ac: ADD 000031ad: DUP10 000031ae: PUSH2 0x309e 000031b1: JUMP 000031b2: JUMPDEST 000031b3: PUSH2 0x31bf 000031b6: PUSH1 0xa0 000031b8: DUP4 000031b9: ADD 000031ba: DUP9 000031bb: PUSH2 0x309e 000031be: JUMP 000031bf: JUMPDEST 000031c0: PUSH2 0x31cc 000031c3: PUSH1 0xc0 000031c5: DUP4 000031c6: ADD 000031c7: DUP8 000031c8: PUSH2 0x309e 000031cb: JUMP 000031cc: JUMPDEST 000031cd: PUSH2 0x31d9 000031d0: PUSH1 0xe0 000031d2: DUP4 000031d3: ADD 000031d4: DUP7 000031d5: PUSH2 0x309e 000031d8: JUMP 000031d9: JUMPDEST 000031da: PUSH2 0x31e7 000031dd: PUSH2 0x0100 000031e0: DUP4 000031e1: ADD 000031e2: DUP6 000031e3: PUSH2 0x309e 000031e6: JUMP 000031e7: JUMPDEST 000031e8: PUSH2 0x31f5 000031eb: PUSH2 0x0120 000031ee: DUP4 000031ef: ADD 000031f0: DUP5 000031f1: PUSH2 0x3159 000031f4: JUMP 000031f5: JUMPDEST 000031f6: SWAP12 000031f7: SWAP11 000031f8: POP 000031f9: POP 000031fa: POP 000031fb: POP 000031fc: POP 000031fd: POP 000031fe: POP 000031ff: POP 00003200: POP 00003201: POP 00003202: POP 00003203: JUMP 00003204: JUMPDEST 00003205: PUSH1 0x00 00003207: DUP1 00003208: PUSH1 0x40 0000320a: DUP4 0000320b: DUP6 0000320c: SUB 0000320d: SLT 0000320e: ISZERO 0000320f: PUSH2 0x321b 00003212: JUMPI 00003213: PUSH2 0x321a 00003216: PUSH2 0x3036 00003219: JUMP 0000321a: JUMPDEST 0000321b: JUMPDEST 0000321c: PUSH1 0x00 0000321e: PUSH2 0x3229 00003221: DUP6 00003222: DUP3 00003223: DUP7 00003224: ADD 00003225: PUSH2 0x305c 00003228: JUMP 00003229: JUMPDEST 0000322a: SWAP3 0000322b: POP 0000322c: POP 0000322d: PUSH1 0x20 0000322f: PUSH2 0x323a 00003232: DUP6 00003233: DUP3 00003234: DUP7 00003235: ADD 00003236: PUSH2 0x305c 00003239: JUMP 0000323a: JUMPDEST 0000323b: SWAP2 0000323c: POP 0000323d: POP 0000323e: SWAP3 0000323f: POP 00003240: SWAP3 00003241: SWAP1 00003242: POP 00003243: JUMP 00003244: JUMPDEST 00003245: PUSH2 0x324d 00003248: DUP2 00003249: PUSH2 0x3147 0000324c: JUMP 0000324d: JUMPDEST 0000324e: DUP2 0000324f: EQ 00003250: PUSH2 0x3258 00003253: JUMPI 00003254: PUSH1 0x00 00003256: DUP1 00003257: REVERT 00003258: JUMPDEST 00003259: POP 0000325a: JUMP 0000325b: JUMPDEST 0000325c: PUSH1 0x00 0000325e: DUP2 0000325f: CALLDATALOAD 00003260: SWAP1 00003261: POP 00003262: PUSH2 0x326a 00003265: DUP2 00003266: PUSH2 0x3244 00003269: JUMP 0000326a: JUMPDEST 0000326b: SWAP3 0000326c: SWAP2 0000326d: POP 0000326e: POP 0000326f: JUMP 00003270: JUMPDEST 00003271: PUSH1 0x00 00003273: DUP1 00003274: PUSH1 0x40 00003276: DUP4 00003277: DUP6 00003278: SUB 00003279: SLT 0000327a: ISZERO 0000327b: PUSH2 0x3287 0000327e: JUMPI 0000327f: PUSH2 0x3286 00003282: PUSH2 0x3036 00003285: JUMP 00003286: JUMPDEST 00003287: JUMPDEST 00003288: PUSH1 0x00 0000328a: PUSH2 0x3295 0000328d: DUP6 0000328e: DUP3 0000328f: DUP7 00003290: ADD 00003291: PUSH2 0x325b 00003294: JUMP 00003295: JUMPDEST 00003296: SWAP3 00003297: POP 00003298: POP 00003299: PUSH1 0x20 0000329b: PUSH2 0x32a6 0000329e: DUP6 0000329f: DUP3 000032a0: DUP7 000032a1: ADD 000032a2: PUSH2 0x305c 000032a5: JUMP 000032a6: JUMPDEST 000032a7: SWAP2 000032a8: POP 000032a9: POP 000032aa: SWAP3 000032ab: POP 000032ac: SWAP3 000032ad: SWAP1 000032ae: POP 000032af: JUMP 000032b0: JUMPDEST 000032b1: PUSH1 0x00 000032b3: PUSH1 0x40 000032b5: DUP3 000032b6: ADD 000032b7: SWAP1 000032b8: POP 000032b9: PUSH2 0x32c5 000032bc: PUSH1 0x00 000032be: DUP4 000032bf: ADD 000032c0: DUP6 000032c1: PUSH2 0x309e 000032c4: JUMP 000032c5: JUMPDEST 000032c6: PUSH2 0x32d2 000032c9: PUSH1 0x20 000032cb: DUP4 000032cc: ADD 000032cd: DUP5 000032ce: PUSH2 0x309e 000032d1: JUMP 000032d2: JUMPDEST 000032d3: SWAP4 000032d4: SWAP3 000032d5: POP 000032d6: POP 000032d7: POP 000032d8: JUMP 000032d9: JUMPDEST 000032da: PUSH1 0x00 000032dc: DUP2 000032dd: MLOAD 000032de: SWAP1 000032df: POP 000032e0: SWAP2 000032e1: SWAP1 000032e2: POP 000032e3: JUMP 000032e4: JUMPDEST 000032e5: PUSH1 0x00 000032e7: DUP3 000032e8: DUP3 000032e9: MSTORE 000032ea: PUSH1 0x20 000032ec: DUP3 000032ed: ADD 000032ee: SWAP1 000032ef: POP 000032f0: SWAP3 000032f1: SWAP2 000032f2: POP 000032f3: POP 000032f4: JUMP 000032f5: JUMPDEST 000032f6: PUSH1 0x00 000032f8: DUP2 000032f9: SWAP1 000032fa: POP 000032fb: PUSH1 0x20 000032fd: DUP3 000032fe: ADD 000032ff: SWAP1 00003300: POP 00003301: SWAP2 00003302: SWAP1 00003303: POP 00003304: JUMP 00003305: JUMPDEST 00003306: PUSH2 0x330e 00003309: DUP2 0000330a: PUSH2 0x3126 0000330d: JUMP 0000330e: JUMPDEST 0000330f: DUP3 00003310: MSTORE 00003311: POP 00003312: POP 00003313: JUMP 00003314: JUMPDEST 00003315: PUSH2 0x331d 00003318: DUP2 00003319: PUSH2 0x303b 0000331c: JUMP 0000331d: JUMPDEST 0000331e: DUP3 0000331f: MSTORE 00003320: POP 00003321: POP 00003322: JUMP 00003323: JUMPDEST 00003324: PUSH2 0x332c 00003327: DUP2 00003328: PUSH2 0x3147 0000332b: JUMP 0000332c: JUMPDEST 0000332d: DUP3 0000332e: MSTORE 0000332f: POP 00003330: POP 00003331: JUMP 00003332: JUMPDEST 00003333: PUSH2 0x0140 00003336: DUP3 00003337: ADD 00003338: PUSH1 0x00 0000333a: DUP3 0000333b: ADD 0000333c: MLOAD 0000333d: PUSH2 0x3349 00003340: PUSH1 0x00 00003342: DUP6 00003343: ADD 00003344: DUP3 00003345: PUSH2 0x3305 00003348: JUMP 00003349: JUMPDEST 0000334a: POP 0000334b: PUSH1 0x20 0000334d: DUP3 0000334e: ADD 0000334f: MLOAD 00003350: PUSH2 0x335c 00003353: PUSH1 0x20 00003355: DUP6 00003356: ADD 00003357: DUP3 00003358: PUSH2 0x3305 0000335b: JUMP 0000335c: JUMPDEST 0000335d: POP 0000335e: PUSH1 0x40 00003360: DUP3 00003361: ADD 00003362: MLOAD 00003363: PUSH2 0x336f 00003366: PUSH1 0x40 00003368: DUP6 00003369: ADD 0000336a: DUP3 0000336b: PUSH2 0x3314 0000336e: JUMP 0000336f: JUMPDEST 00003370: POP 00003371: PUSH1 0x60 00003373: DUP3 00003374: ADD 00003375: MLOAD 00003376: PUSH2 0x3382 00003379: PUSH1 0x60 0000337b: DUP6 0000337c: ADD 0000337d: DUP3 0000337e: PUSH2 0x3314 00003381: JUMP 00003382: JUMPDEST 00003383: POP 00003384: PUSH1 0x80 00003386: DUP3 00003387: ADD 00003388: MLOAD 00003389: PUSH2 0x3395 0000338c: PUSH1 0x80 0000338e: DUP6 0000338f: ADD 00003390: DUP3 00003391: PUSH2 0x3314 00003394: JUMP 00003395: JUMPDEST 00003396: POP 00003397: PUSH1 0xa0 00003399: DUP3 0000339a: ADD 0000339b: MLOAD 0000339c: PUSH2 0x33a8 0000339f: PUSH1 0xa0 000033a1: DUP6 000033a2: ADD 000033a3: DUP3 000033a4: PUSH2 0x3314 000033a7: JUMP 000033a8: JUMPDEST 000033a9: POP 000033aa: PUSH1 0xc0 000033ac: DUP3 000033ad: ADD 000033ae: MLOAD 000033af: PUSH2 0x33bb 000033b2: PUSH1 0xc0 000033b4: DUP6 000033b5: ADD 000033b6: DUP3 000033b7: PUSH2 0x3314 000033ba: JUMP 000033bb: JUMPDEST 000033bc: POP 000033bd: PUSH1 0xe0 000033bf: DUP3 000033c0: ADD 000033c1: MLOAD 000033c2: PUSH2 0x33ce 000033c5: PUSH1 0xe0 000033c7: DUP6 000033c8: ADD 000033c9: DUP3 000033ca: PUSH2 0x3314 000033cd: JUMP 000033ce: JUMPDEST 000033cf: POP 000033d0: PUSH2 0x0100 000033d3: DUP3 000033d4: ADD 000033d5: MLOAD 000033d6: PUSH2 0x33e3 000033d9: PUSH2 0x0100 000033dc: DUP6 000033dd: ADD 000033de: DUP3 000033df: PUSH2 0x3314 000033e2: JUMP 000033e3: JUMPDEST 000033e4: POP 000033e5: PUSH2 0x0120 000033e8: DUP3 000033e9: ADD 000033ea: MLOAD 000033eb: PUSH2 0x33f8 000033ee: PUSH2 0x0120 000033f1: DUP6 000033f2: ADD 000033f3: DUP3 000033f4: PUSH2 0x3323 000033f7: JUMP 000033f8: JUMPDEST 000033f9: POP 000033fa: POP 000033fb: POP 000033fc: POP 000033fd: JUMP 000033fe: JUMPDEST 000033ff: PUSH1 0x00 00003401: PUSH2 0x340a 00003404: DUP4 00003405: DUP4 00003406: PUSH2 0x3332 00003409: JUMP 0000340a: JUMPDEST 0000340b: PUSH2 0x0140 0000340e: DUP4 0000340f: ADD 00003410: SWAP1 00003411: POP 00003412: SWAP3 00003413: SWAP2 00003414: POP 00003415: POP 00003416: JUMP 00003417: JUMPDEST 00003418: PUSH1 0x00 0000341a: PUSH1 0x20 0000341c: DUP3 0000341d: ADD 0000341e: SWAP1 0000341f: POP 00003420: SWAP2 00003421: SWAP1 00003422: POP 00003423: JUMP 00003424: JUMPDEST 00003425: PUSH1 0x00 00003427: PUSH2 0x342f 0000342a: DUP3 0000342b: PUSH2 0x32d9 0000342e: JUMP 0000342f: JUMPDEST 00003430: PUSH2 0x3439 00003433: DUP2 00003434: DUP6 00003435: PUSH2 0x32e4 00003438: JUMP 00003439: JUMPDEST 0000343a: SWAP4 0000343b: POP 0000343c: PUSH2 0x3444 0000343f: DUP4 00003440: PUSH2 0x32f5 00003443: JUMP 00003444: JUMPDEST 00003445: DUP1 00003446: PUSH1 0x00 00003448: JUMPDEST 00003449: DUP4 0000344a: DUP2 0000344b: LT 0000344c: ISZERO 0000344d: PUSH2 0x3475 00003450: JUMPI 00003451: DUP2 00003452: MLOAD 00003453: PUSH2 0x345c 00003456: DUP9 00003457: DUP3 00003458: PUSH2 0x33fe 0000345b: JUMP 0000345c: JUMPDEST 0000345d: SWAP8 0000345e: POP 0000345f: PUSH2 0x3467 00003462: DUP4 00003463: PUSH2 0x3417 00003466: JUMP 00003467: JUMPDEST 00003468: SWAP3 00003469: POP 0000346a: POP 0000346b: PUSH1 0x01 0000346d: DUP2 0000346e: ADD 0000346f: SWAP1 00003470: POP 00003471: PUSH2 0x3448 00003474: JUMP 00003475: JUMPDEST 00003476: POP 00003477: DUP6 00003478: SWAP4 00003479: POP 0000347a: POP 0000347b: POP 0000347c: POP 0000347d: SWAP3 0000347e: SWAP2 0000347f: POP 00003480: POP 00003481: JUMP 00003482: JUMPDEST 00003483: PUSH1 0x00 00003485: PUSH1 0x20 00003487: DUP3 00003488: ADD 00003489: SWAP1 0000348a: POP 0000348b: DUP2 0000348c: DUP2 0000348d: SUB 0000348e: PUSH1 0x00 00003490: DUP4 00003491: ADD 00003492: MSTORE 00003493: PUSH2 0x349c 00003496: DUP2 00003497: DUP5 00003498: PUSH2 0x3424 0000349b: JUMP 0000349c: JUMPDEST 0000349d: SWAP1 0000349e: POP 0000349f: SWAP3 000034a0: SWAP2 000034a1: POP 000034a2: POP 000034a3: JUMP 000034a4: JUMPDEST 000034a5: PUSH1 0x00 000034a7: DUP2 000034a8: ISZERO 000034a9: ISZERO 000034aa: SWAP1 000034ab: POP 000034ac: SWAP2 000034ad: SWAP1 000034ae: POP 000034af: JUMP 000034b0: JUMPDEST 000034b1: PUSH2 0x34b9 000034b4: DUP2 000034b5: PUSH2 0x34a4 000034b8: JUMP 000034b9: JUMPDEST 000034ba: DUP3 000034bb: MSTORE 000034bc: POP 000034bd: POP 000034be: JUMP 000034bf: JUMPDEST 000034c0: PUSH1 0x00 000034c2: PUSH1 0x20 000034c4: DUP3 000034c5: ADD 000034c6: SWAP1 000034c7: POP 000034c8: PUSH2 0x34d4 000034cb: PUSH1 0x00 000034cd: DUP4 000034ce: ADD 000034cf: DUP5 000034d0: PUSH2 0x34b0 000034d3: JUMP 000034d4: JUMPDEST 000034d5: SWAP3 000034d6: SWAP2 000034d7: POP 000034d8: POP 000034d9: JUMP 000034da: JUMPDEST 000034db: PUSH1 0x40 000034dd: DUP3 000034de: ADD 000034df: PUSH1 0x00 000034e1: DUP3 000034e2: ADD 000034e3: MLOAD 000034e4: PUSH2 0x34f0 000034e7: PUSH1 0x00 000034e9: DUP6 000034ea: ADD 000034eb: DUP3 000034ec: PUSH2 0x3314 000034ef: JUMP 000034f0: JUMPDEST 000034f1: POP 000034f2: PUSH1 0x20 000034f4: DUP3 000034f5: ADD 000034f6: MLOAD 000034f7: PUSH2 0x3503 000034fa: PUSH1 0x20 000034fc: DUP6 000034fd: ADD 000034fe: DUP3 000034ff: PUSH2 0x3314 00003502: JUMP 00003503: JUMPDEST 00003504: POP 00003505: POP 00003506: POP 00003507: POP 00003508: JUMP 00003509: JUMPDEST 0000350a: PUSH1 0x00 0000350c: PUSH1 0x40 0000350e: DUP3 0000350f: ADD 00003510: SWAP1 00003511: POP 00003512: PUSH2 0x351e 00003515: PUSH1 0x00 00003517: DUP4 00003518: ADD 00003519: DUP5 0000351a: PUSH2 0x34da 0000351d: JUMP 0000351e: JUMPDEST 0000351f: SWAP3 00003520: SWAP2 00003521: POP 00003522: POP 00003523: JUMP 00003524: JUMPDEST 00003525: PUSH1 0x00 00003527: PUSH1 0x20 00003529: DUP3 0000352a: ADD 0000352b: SWAP1 0000352c: POP 0000352d: PUSH2 0x3539 00003530: PUSH1 0x00 00003532: DUP4 00003533: ADD 00003534: DUP5 00003535: PUSH2 0x3159 00003538: JUMP 00003539: JUMPDEST 0000353a: SWAP3 0000353b: SWAP2 0000353c: POP 0000353d: POP 0000353e: JUMP 0000353f: JUMPDEST 00003540: PUSH1 0x00 00003542: PUSH1 0x20 00003544: DUP3 00003545: DUP5 00003546: SUB 00003547: SLT 00003548: ISZERO 00003549: PUSH2 0x3555 0000354c: JUMPI 0000354d: PUSH2 0x3554 00003550: PUSH2 0x3036 00003553: JUMP 00003554: JUMPDEST 00003555: JUMPDEST 00003556: PUSH1 0x00 00003558: PUSH2 0x3563 0000355b: DUP5 0000355c: DUP3 0000355d: DUP6 0000355e: ADD 0000355f: PUSH2 0x325b 00003562: JUMP 00003563: JUMPDEST 00003564: SWAP2 00003565: POP 00003566: POP 00003567: SWAP3 00003568: SWAP2 00003569: POP 0000356a: POP 0000356b: JUMP 0000356c: JUMPDEST 0000356d: PUSH1 0x00 0000356f: DUP1 00003570: PUSH1 0x00 00003572: DUP1 00003573: PUSH1 0x00 00003575: DUP1 00003576: PUSH1 0xc0 00003578: DUP8 00003579: DUP10 0000357a: SUB 0000357b: SLT 0000357c: ISZERO 0000357d: PUSH2 0x3589 00003580: JUMPI 00003581: PUSH2 0x3588 00003584: PUSH2 0x3036 00003587: JUMP 00003588: JUMPDEST 00003589: JUMPDEST 0000358a: PUSH1 0x00 0000358c: PUSH2 0x3597 0000358f: DUP10 00003590: DUP3 00003591: DUP11 00003592: ADD 00003593: PUSH2 0x325b 00003596: JUMP 00003597: JUMPDEST 00003598: SWAP7 00003599: POP 0000359a: POP 0000359b: PUSH1 0x20 0000359d: PUSH2 0x35a8 000035a0: DUP10 000035a1: DUP3 000035a2: DUP11 000035a3: ADD 000035a4: PUSH2 0x325b 000035a7: JUMP 000035a8: JUMPDEST 000035a9: SWAP6 000035aa: POP 000035ab: POP 000035ac: PUSH1 0x40 000035ae: PUSH2 0x35b9 000035b1: DUP10 000035b2: DUP3 000035b3: DUP11 000035b4: ADD 000035b5: PUSH2 0x305c 000035b8: JUMP 000035b9: JUMPDEST 000035ba: SWAP5 000035bb: POP 000035bc: POP 000035bd: PUSH1 0x60 000035bf: PUSH2 0x35ca 000035c2: DUP10 000035c3: DUP3 000035c4: DUP11 000035c5: ADD 000035c6: PUSH2 0x305c 000035c9: JUMP 000035ca: JUMPDEST 000035cb: SWAP4 000035cc: POP 000035cd: POP 000035ce: PUSH1 0x80 000035d0: PUSH2 0x35db 000035d3: DUP10 000035d4: DUP3 000035d5: DUP11 000035d6: ADD 000035d7: PUSH2 0x305c 000035da: JUMP 000035db: JUMPDEST 000035dc: SWAP3 000035dd: POP 000035de: POP 000035df: PUSH1 0xa0 000035e1: PUSH2 0x35ec 000035e4: DUP10 000035e5: DUP3 000035e6: DUP11 000035e7: ADD 000035e8: PUSH2 0x305c 000035eb: JUMP 000035ec: JUMPDEST 000035ed: SWAP2 000035ee: POP 000035ef: POP 000035f0: SWAP3 000035f1: SWAP6 000035f2: POP 000035f3: SWAP3 000035f4: SWAP6 000035f5: POP 000035f6: SWAP3 000035f7: SWAP6 000035f8: JUMP 000035f9: JUMPDEST 000035fa: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0000361b: PUSH1 0x00 0000361d: MSTORE 0000361e: PUSH1 0x32 00003620: PUSH1 0x04 00003622: MSTORE 00003623: PUSH1 0x24 00003625: PUSH1 0x00 00003627: REVERT 00003628: JUMPDEST 00003629: PUSH1 0x00 0000362b: PUSH1 0x40 0000362d: DUP3 0000362e: ADD 0000362f: SWAP1 00003630: POP 00003631: PUSH2 0x363d 00003634: PUSH1 0x00 00003636: DUP4 00003637: ADD 00003638: DUP6 00003639: PUSH2 0x3159 0000363c: JUMP 0000363d: JUMPDEST 0000363e: PUSH2 0x364a 00003641: PUSH1 0x20 00003643: DUP4 00003644: ADD 00003645: DUP5 00003646: PUSH2 0x3159 00003649: JUMP 0000364a: JUMPDEST 0000364b: SWAP4 0000364c: SWAP3 0000364d: POP 0000364e: POP 0000364f: POP 00003650: JUMP 00003651: JUMPDEST 00003652: PUSH1 0x00 00003654: DUP3 00003655: DUP3 00003656: MSTORE 00003657: PUSH1 0x20 00003659: DUP3 0000365a: ADD 0000365b: SWAP1 0000365c: POP 0000365d: SWAP3 0000365e: SWAP2 0000365f: POP 00003660: POP 00003661: JUMP 00003662: JUMPDEST 00003663: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 00003684: PUSH1 0x00 00003686: DUP3 00003687: ADD 00003688: MSTORE 00003689: POP 0000368a: JUMP 0000368b: JUMPDEST 0000368c: PUSH1 0x00 0000368e: PUSH2 0x3698 00003691: PUSH1 0x1f 00003693: DUP4 00003694: PUSH2 0x3651 00003697: JUMP 00003698: JUMPDEST 00003699: SWAP2 0000369a: POP 0000369b: PUSH2 0x36a3 0000369e: DUP3 0000369f: PUSH2 0x3662 000036a2: JUMP 000036a3: JUMPDEST 000036a4: PUSH1 0x20 000036a6: DUP3 000036a7: ADD 000036a8: SWAP1 000036a9: POP 000036aa: SWAP2 000036ab: SWAP1 000036ac: POP 000036ad: JUMP 000036ae: JUMPDEST 000036af: PUSH1 0x00 000036b1: PUSH1 0x20 000036b3: DUP3 000036b4: ADD 000036b5: SWAP1 000036b6: POP 000036b7: DUP2 000036b8: DUP2 000036b9: SUB 000036ba: PUSH1 0x00 000036bc: DUP4 000036bd: ADD 000036be: MSTORE 000036bf: PUSH2 0x36c7 000036c2: DUP2 000036c3: PUSH2 0x368b 000036c6: JUMP 000036c7: JUMPDEST 000036c8: SWAP1 000036c9: POP 000036ca: SWAP2 000036cb: SWAP1 000036cc: POP 000036cd: JUMP 000036ce: JUMPDEST 000036cf: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000036f0: PUSH1 0x00 000036f2: MSTORE 000036f3: PUSH1 0x11 000036f5: PUSH1 0x04 000036f7: MSTORE 000036f8: PUSH1 0x24 000036fa: PUSH1 0x00 000036fc: REVERT 000036fd: JUMPDEST 000036fe: PUSH1 0x00 00003700: PUSH2 0x3708 00003703: DUP3 00003704: PUSH2 0x303b 00003707: JUMP 00003708: JUMPDEST 00003709: SWAP2 0000370a: POP 0000370b: PUSH2 0x3713 0000370e: DUP4 0000370f: PUSH2 0x303b 00003712: JUMP 00003713: JUMPDEST 00003714: SWAP3 00003715: POP 00003716: DUP3 00003717: DUP3 00003718: LT 00003719: ISZERO 0000371a: PUSH2 0x3726 0000371d: JUMPI 0000371e: PUSH2 0x3725 00003721: PUSH2 0x36ce 00003724: JUMP 00003725: JUMPDEST 00003726: JUMPDEST 00003727: DUP3 00003728: DUP3 00003729: SUB 0000372a: SWAP1 0000372b: POP 0000372c: SWAP3 0000372d: SWAP2 0000372e: POP 0000372f: POP 00003730: JUMP 00003731: JUMPDEST 00003732: PUSH1 0x00 00003734: PUSH2 0x373c 00003737: DUP3 00003738: PUSH2 0x303b 0000373b: JUMP 0000373c: JUMPDEST 0000373d: SWAP2 0000373e: POP 0000373f: PUSH2 0x3747 00003742: DUP4 00003743: PUSH2 0x303b 00003746: JUMP 00003747: JUMPDEST 00003748: SWAP3 00003749: POP 0000374a: DUP2 0000374b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000376c: DIV 0000376d: DUP4 0000376e: GT 0000376f: DUP3 00003770: ISZERO 00003771: ISZERO 00003772: AND 00003773: ISZERO 00003774: PUSH2 0x3780 00003777: JUMPI 00003778: PUSH2 0x377f 0000377b: PUSH2 0x36ce 0000377e: JUMP 0000377f: JUMPDEST 00003780: JUMPDEST 00003781: DUP3 00003782: DUP3 00003783: MUL 00003784: SWAP1 00003785: POP 00003786: SWAP3 00003787: SWAP2 00003788: POP 00003789: POP 0000378a: JUMP 0000378b: JUMPDEST 0000378c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000037ad: PUSH1 0x00 000037af: MSTORE 000037b0: PUSH1 0x12 000037b2: PUSH1 0x04 000037b4: MSTORE 000037b5: PUSH1 0x24 000037b7: PUSH1 0x00 000037b9: REVERT 000037ba: JUMPDEST 000037bb: PUSH1 0x00 000037bd: PUSH2 0x37c5 000037c0: DUP3 000037c1: PUSH2 0x303b 000037c4: JUMP 000037c5: JUMPDEST 000037c6: SWAP2 000037c7: POP 000037c8: PUSH2 0x37d0 000037cb: DUP4 000037cc: PUSH2 0x303b 000037cf: JUMP 000037d0: JUMPDEST 000037d1: SWAP3 000037d2: POP 000037d3: DUP3 000037d4: PUSH2 0x37e0 000037d7: JUMPI 000037d8: PUSH2 0x37df 000037db: PUSH2 0x378b 000037de: JUMP 000037df: JUMPDEST 000037e0: JUMPDEST 000037e1: DUP3 000037e2: DUP3 000037e3: DIV 000037e4: SWAP1 000037e5: POP 000037e6: SWAP3 000037e7: SWAP2 000037e8: POP 000037e9: POP 000037ea: JUMP 000037eb: JUMPDEST 000037ec: PUSH1 0x00 000037ee: PUSH2 0x37f6 000037f1: DUP3 000037f2: PUSH2 0x303b 000037f5: JUMP 000037f6: JUMPDEST 000037f7: SWAP2 000037f8: POP 000037f9: PUSH2 0x3801 000037fc: DUP4 000037fd: PUSH2 0x303b 00003800: JUMP 00003801: JUMPDEST 00003802: SWAP3 00003803: POP 00003804: DUP3 00003805: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003826: SUB 00003827: DUP3 00003828: GT 00003829: ISZERO 0000382a: PUSH2 0x3836 0000382d: JUMPI 0000382e: PUSH2 0x3835 00003831: PUSH2 0x36ce 00003834: JUMP 00003835: JUMPDEST 00003836: JUMPDEST 00003837: DUP3 00003838: DUP3 00003839: ADD 0000383a: SWAP1 0000383b: POP 0000383c: SWAP3 0000383d: SWAP2 0000383e: POP 0000383f: POP 00003840: JUMP 00003841: JUMPDEST 00003842: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00003863: PUSH1 0x00 00003865: DUP3 00003866: ADD 00003867: MSTORE 00003868: POP 00003869: JUMP 0000386a: JUMPDEST 0000386b: PUSH1 0x00 0000386d: PUSH2 0x3877 00003870: PUSH1 0x20 00003872: DUP4 00003873: PUSH2 0x3651 00003876: JUMP 00003877: JUMPDEST 00003878: SWAP2 00003879: POP 0000387a: PUSH2 0x3882 0000387d: DUP3 0000387e: PUSH2 0x3841 00003881: JUMP 00003882: JUMPDEST 00003883: PUSH1 0x20 00003885: DUP3 00003886: ADD 00003887: SWAP1 00003888: POP 00003889: SWAP2 0000388a: SWAP1 0000388b: POP 0000388c: JUMP 0000388d: JUMPDEST 0000388e: PUSH1 0x00 00003890: PUSH1 0x20 00003892: DUP3 00003893: ADD 00003894: SWAP1 00003895: POP 00003896: DUP2 00003897: DUP2 00003898: SUB 00003899: PUSH1 0x00 0000389b: DUP4 0000389c: ADD 0000389d: MSTORE 0000389e: PUSH2 0x38a6 000038a1: DUP2 000038a2: PUSH2 0x386a 000038a5: JUMP 000038a6: JUMPDEST 000038a7: SWAP1 000038a8: POP 000038a9: SWAP2 000038aa: SWAP1 000038ab: POP 000038ac: JUMP 000038ad: JUMPDEST 000038ae: PUSH1 0x00 000038b0: DUP2 000038b1: SWAP1 000038b2: POP 000038b3: SWAP2 000038b4: SWAP1 000038b5: POP 000038b6: JUMP 000038b7: JUMPDEST 000038b8: PUSH1 0x00 000038ba: PUSH1 0xff 000038bc: DUP3 000038bd: AND 000038be: SWAP1 000038bf: POP 000038c0: SWAP2 000038c1: SWAP1 000038c2: POP 000038c3: JUMP 000038c4: JUMPDEST 000038c5: PUSH1 0x00 000038c7: PUSH2 0x38df 000038ca: PUSH2 0x38da 000038cd: PUSH2 0x38d5 000038d0: DUP5 000038d1: PUSH2 0x38ad 000038d4: JUMP 000038d5: JUMPDEST 000038d6: PUSH2 0x30e8 000038d9: JUMP 000038da: JUMPDEST 000038db: PUSH2 0x38b7 000038de: JUMP 000038df: JUMPDEST 000038e0: SWAP1 000038e1: POP 000038e2: SWAP2 000038e3: SWAP1 000038e4: POP 000038e5: JUMP 000038e6: JUMPDEST 000038e7: PUSH2 0x38ef 000038ea: DUP2 000038eb: PUSH2 0x38c4 000038ee: JUMP 000038ef: JUMPDEST 000038f0: DUP3 000038f1: MSTORE 000038f2: POP 000038f3: POP 000038f4: JUMP 000038f5: JUMPDEST 000038f6: PUSH1 0x00 000038f8: PUSH1 0x20 000038fa: DUP3 000038fb: ADD 000038fc: SWAP1 000038fd: POP 000038fe: PUSH2 0x390a 00003901: PUSH1 0x00 00003903: DUP4 00003904: ADD 00003905: DUP5 00003906: PUSH2 0x38e6 00003909: JUMP 0000390a: JUMPDEST 0000390b: SWAP3 0000390c: SWAP2 0000390d: POP 0000390e: POP 0000390f: JUMP 00003910: JUMPDEST 00003911: PUSH32 0x416c726561647920496e7469616c697a65645632000000000000000000000000 00003932: PUSH1 0x00 00003934: DUP3 00003935: ADD 00003936: MSTORE 00003937: POP 00003938: JUMP 00003939: JUMPDEST 0000393a: PUSH1 0x00 0000393c: PUSH2 0x3946 0000393f: PUSH1 0x14 00003941: DUP4 00003942: PUSH2 0x3651 00003945: JUMP 00003946: JUMPDEST 00003947: SWAP2 00003948: POP 00003949: PUSH2 0x3951 0000394c: DUP3 0000394d: PUSH2 0x3910 00003950: JUMP 00003951: JUMPDEST 00003952: PUSH1 0x20 00003954: DUP3 00003955: ADD 00003956: SWAP1 00003957: POP 00003958: SWAP2 00003959: SWAP1 0000395a: POP 0000395b: JUMP 0000395c: JUMPDEST 0000395d: PUSH1 0x00 0000395f: PUSH1 0x20 00003961: DUP3 00003962: ADD 00003963: SWAP1 00003964: POP 00003965: DUP2 00003966: DUP2 00003967: SUB 00003968: PUSH1 0x00 0000396a: DUP4 0000396b: ADD 0000396c: MSTORE 0000396d: PUSH2 0x3975 00003970: DUP2 00003971: PUSH2 0x3939 00003974: JUMP 00003975: JUMPDEST 00003976: SWAP1 00003977: POP 00003978: SWAP2 00003979: SWAP1 0000397a: POP 0000397b: JUMP 0000397c: JUMPDEST 0000397d: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 0000399e: PUSH1 0x00 000039a0: DUP3 000039a1: ADD 000039a2: MSTORE 000039a3: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 000039c4: PUSH1 0x20 000039c6: DUP3 000039c7: ADD 000039c8: MSTORE 000039c9: POP 000039ca: JUMP 000039cb: JUMPDEST 000039cc: PUSH1 0x00 000039ce: PUSH2 0x39d8 000039d1: PUSH1 0x26 000039d3: DUP4 000039d4: PUSH2 0x3651 000039d7: JUMP 000039d8: JUMPDEST 000039d9: SWAP2 000039da: POP 000039db: PUSH2 0x39e3 000039de: DUP3 000039df: PUSH2 0x397c 000039e2: JUMP 000039e3: JUMPDEST 000039e4: PUSH1 0x40 000039e6: DUP3 000039e7: ADD 000039e8: SWAP1 000039e9: POP 000039ea: SWAP2 000039eb: SWAP1 000039ec: POP 000039ed: JUMP 000039ee: JUMPDEST 000039ef: PUSH1 0x00 000039f1: PUSH1 0x20 000039f3: DUP3 000039f4: ADD 000039f5: SWAP1 000039f6: POP 000039f7: DUP2 000039f8: DUP2 000039f9: SUB 000039fa: PUSH1 0x00 000039fc: DUP4 000039fd: ADD 000039fe: MSTORE 000039ff: PUSH2 0x3a07 00003a02: DUP2 00003a03: PUSH2 0x39cb 00003a06: JUMP 00003a07: JUMPDEST 00003a08: SWAP1 00003a09: POP 00003a0a: SWAP2 00003a0b: SWAP1 00003a0c: POP 00003a0d: JUMP 00003a0e: JUMPDEST 00003a0f: PUSH1 0x00 00003a11: DUP2 00003a12: PUSH1 0x01 00003a14: SHR 00003a15: SWAP1 00003a16: POP 00003a17: SWAP2 00003a18: SWAP1 00003a19: POP 00003a1a: JUMP 00003a1b: JUMPDEST 00003a1c: PUSH1 0x00 00003a1e: DUP1 00003a1f: DUP3 00003a20: SWAP2 00003a21: POP 00003a22: DUP4 00003a23: SWAP1 00003a24: POP 00003a25: JUMPDEST 00003a26: PUSH1 0x01 00003a28: DUP6 00003a29: GT 00003a2a: ISZERO 00003a2b: PUSH2 0x3a65 00003a2e: JUMPI 00003a2f: DUP1 00003a30: DUP7 00003a31: DIV 00003a32: DUP2 00003a33: GT 00003a34: ISZERO 00003a35: PUSH2 0x3a41 00003a38: JUMPI 00003a39: PUSH2 0x3a40 00003a3c: PUSH2 0x36ce 00003a3f: JUMP 00003a40: JUMPDEST 00003a41: JUMPDEST 00003a42: PUSH1 0x01 00003a44: DUP6 00003a45: AND 00003a46: ISZERO 00003a47: PUSH2 0x3a50 00003a4a: JUMPI 00003a4b: DUP1 00003a4c: DUP3 00003a4d: MUL 00003a4e: SWAP2 00003a4f: POP 00003a50: JUMPDEST 00003a51: DUP1 00003a52: DUP2 00003a53: MUL 00003a54: SWAP1 00003a55: POP 00003a56: PUSH2 0x3a5e 00003a59: DUP6 00003a5a: PUSH2 0x3a0e 00003a5d: JUMP 00003a5e: JUMPDEST 00003a5f: SWAP5 00003a60: POP 00003a61: PUSH2 0x3a25 00003a64: JUMP 00003a65: JUMPDEST 00003a66: SWAP5 00003a67: POP 00003a68: SWAP5 00003a69: SWAP3 00003a6a: POP 00003a6b: POP 00003a6c: POP 00003a6d: JUMP 00003a6e: JUMPDEST 00003a6f: PUSH1 0x00 00003a71: DUP3 00003a72: PUSH2 0x3a7e 00003a75: JUMPI 00003a76: PUSH1 0x01 00003a78: SWAP1 00003a79: POP 00003a7a: PUSH2 0x3b3a 00003a7d: JUMP 00003a7e: JUMPDEST 00003a7f: DUP2 00003a80: PUSH2 0x3a8c 00003a83: JUMPI 00003a84: PUSH1 0x00 00003a86: SWAP1 00003a87: POP 00003a88: PUSH2 0x3b3a 00003a8b: JUMP 00003a8c: JUMPDEST 00003a8d: DUP2 00003a8e: PUSH1 0x01 00003a90: DUP2 00003a91: EQ 00003a92: PUSH2 0x3aa2 00003a95: JUMPI 00003a96: PUSH1 0x02 00003a98: DUP2 00003a99: EQ 00003a9a: PUSH2 0x3aac 00003a9d: JUMPI 00003a9e: PUSH2 0x3adb 00003aa1: JUMP 00003aa2: JUMPDEST 00003aa3: PUSH1 0x01 00003aa5: SWAP2 00003aa6: POP 00003aa7: POP 00003aa8: PUSH2 0x3b3a 00003aab: JUMP 00003aac: JUMPDEST 00003aad: PUSH1 0xff 00003aaf: DUP5 00003ab0: GT 00003ab1: ISZERO 00003ab2: PUSH2 0x3abe 00003ab5: JUMPI 00003ab6: PUSH2 0x3abd 00003ab9: PUSH2 0x36ce 00003abc: JUMP 00003abd: JUMPDEST 00003abe: JUMPDEST 00003abf: DUP4 00003ac0: PUSH1 0x02 00003ac2: EXP 00003ac3: SWAP2 00003ac4: POP 00003ac5: DUP5 00003ac6: DUP3 00003ac7: GT 00003ac8: ISZERO 00003ac9: PUSH2 0x3ad5 00003acc: JUMPI 00003acd: PUSH2 0x3ad4 00003ad0: PUSH2 0x36ce 00003ad3: JUMP 00003ad4: JUMPDEST 00003ad5: JUMPDEST 00003ad6: POP 00003ad7: PUSH2 0x3b3a 00003ada: JUMP 00003adb: JUMPDEST 00003adc: POP 00003add: PUSH1 0x20 00003adf: DUP4 00003ae0: LT 00003ae1: PUSH2 0x0133 00003ae4: DUP4 00003ae5: LT 00003ae6: AND 00003ae7: PUSH1 0x4e 00003ae9: DUP5 00003aea: LT 00003aeb: PUSH1 0x0b 00003aed: DUP5 00003aee: LT 00003aef: AND 00003af0: OR 00003af1: ISZERO 00003af2: PUSH2 0x3b10 00003af5: JUMPI 00003af6: DUP3 00003af7: DUP3 00003af8: EXP 00003af9: SWAP1 00003afa: POP 00003afb: DUP4 00003afc: DUP2 00003afd: GT 00003afe: ISZERO 00003aff: PUSH2 0x3b0b 00003b02: JUMPI 00003b03: PUSH2 0x3b0a 00003b06: PUSH2 0x36ce 00003b09: JUMP 00003b0a: JUMPDEST 00003b0b: JUMPDEST 00003b0c: PUSH2 0x3b3a 00003b0f: JUMP 00003b10: JUMPDEST 00003b11: PUSH2 0x3b1d 00003b14: DUP5 00003b15: DUP5 00003b16: DUP5 00003b17: PUSH1 0x01 00003b19: PUSH2 0x3a1b 00003b1c: JUMP 00003b1d: JUMPDEST 00003b1e: SWAP3 00003b1f: POP 00003b20: SWAP1 00003b21: POP 00003b22: DUP2 00003b23: DUP5 00003b24: DIV 00003b25: DUP2 00003b26: GT 00003b27: ISZERO 00003b28: PUSH2 0x3b34 00003b2b: JUMPI 00003b2c: PUSH2 0x3b33 00003b2f: PUSH2 0x36ce 00003b32: JUMP 00003b33: JUMPDEST 00003b34: JUMPDEST 00003b35: DUP2 00003b36: DUP2 00003b37: MUL 00003b38: SWAP1 00003b39: POP 00003b3a: JUMPDEST 00003b3b: SWAP4 00003b3c: SWAP3 00003b3d: POP 00003b3e: POP 00003b3f: POP 00003b40: JUMP 00003b41: JUMPDEST 00003b42: PUSH1 0x00 00003b44: PUSH2 0x3b4c 00003b47: DUP3 00003b48: PUSH2 0x303b 00003b4b: JUMP 00003b4c: JUMPDEST 00003b4d: SWAP2 00003b4e: POP 00003b4f: PUSH2 0x3b57 00003b52: DUP4 00003b53: PUSH2 0x303b 00003b56: JUMP 00003b57: JUMPDEST 00003b58: SWAP3 00003b59: POP 00003b5a: PUSH2 0x3b84 00003b5d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003b7e: DUP5 00003b7f: DUP5 00003b80: PUSH2 0x3a6e 00003b83: JUMP 00003b84: JUMPDEST 00003b85: SWAP1 00003b86: POP 00003b87: SWAP3 00003b88: SWAP2 00003b89: POP 00003b8a: POP 00003b8b: JUMP 00003b8c: JUMPDEST 00003b8d: PUSH1 0x00 00003b8f: PUSH1 0x80 00003b91: DUP3 00003b92: ADD 00003b93: SWAP1 00003b94: POP 00003b95: PUSH2 0x3ba1 00003b98: PUSH1 0x00 00003b9a: DUP4 00003b9b: ADD 00003b9c: DUP8 00003b9d: PUSH2 0x309e 00003ba0: JUMP 00003ba1: JUMPDEST 00003ba2: PUSH2 0x3bae 00003ba5: PUSH1 0x20 00003ba7: DUP4 00003ba8: ADD 00003ba9: DUP7 00003baa: PUSH2 0x309e 00003bad: JUMP 00003bae: JUMPDEST 00003baf: PUSH2 0x3bbb 00003bb2: PUSH1 0x40 00003bb4: DUP4 00003bb5: ADD 00003bb6: DUP6 00003bb7: PUSH2 0x309e 00003bba: JUMP 00003bbb: JUMPDEST 00003bbc: PUSH2 0x3bc8 00003bbf: PUSH1 0x60 00003bc1: DUP4 00003bc2: ADD 00003bc3: DUP5 00003bc4: PUSH2 0x309e 00003bc7: JUMP 00003bc8: JUMPDEST 00003bc9: SWAP6 00003bca: SWAP5 00003bcb: POP 00003bcc: POP 00003bcd: POP 00003bce: POP 00003bcf: POP 00003bd0: JUMP 00003bd1: JUMPDEST 00003bd2: PUSH1 0x00 00003bd4: PUSH1 0x40 00003bd6: DUP3 00003bd7: ADD 00003bd8: SWAP1 00003bd9: POP 00003bda: PUSH2 0x3be6 00003bdd: PUSH1 0x00 00003bdf: DUP4 00003be0: ADD 00003be1: DUP6 00003be2: PUSH2 0x3159 00003be5: JUMP 00003be6: JUMPDEST 00003be7: PUSH2 0x3bf3 00003bea: PUSH1 0x20 00003bec: DUP4 00003bed: ADD 00003bee: DUP5 00003bef: PUSH2 0x309e 00003bf2: JUMP 00003bf3: JUMPDEST 00003bf4: SWAP4 00003bf5: SWAP3 00003bf6: POP 00003bf7: POP 00003bf8: POP 00003bf9: JUMP 00003bfa: JUMPDEST 00003bfb: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00003c1c: PUSH1 0x00 00003c1e: DUP3 00003c1f: ADD 00003c20: MSTORE 00003c21: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000 00003c42: PUSH1 0x20 00003c44: DUP3 00003c45: ADD 00003c46: MSTORE 00003c47: POP 00003c48: JUMP 00003c49: JUMPDEST 00003c4a: PUSH1 0x00 00003c4c: PUSH2 0x3c56 00003c4f: PUSH1 0x2e 00003c51: DUP4 00003c52: PUSH2 0x3651 00003c55: JUMP 00003c56: JUMPDEST 00003c57: SWAP2 00003c58: POP 00003c59: PUSH2 0x3c61 00003c5c: DUP3 00003c5d: PUSH2 0x3bfa 00003c60: JUMP 00003c61: JUMPDEST 00003c62: PUSH1 0x40 00003c64: DUP3 00003c65: ADD 00003c66: SWAP1 00003c67: POP 00003c68: SWAP2 00003c69: SWAP1 00003c6a: POP 00003c6b: JUMP 00003c6c: JUMPDEST 00003c6d: PUSH1 0x00 00003c6f: PUSH1 0x20 00003c71: DUP3 00003c72: ADD 00003c73: SWAP1 00003c74: POP 00003c75: DUP2 00003c76: DUP2 00003c77: SUB 00003c78: PUSH1 0x00 00003c7a: DUP4 00003c7b: ADD 00003c7c: MSTORE 00003c7d: PUSH2 0x3c85 00003c80: DUP2 00003c81: PUSH2 0x3c49 00003c84: JUMP 00003c85: JUMPDEST 00003c86: SWAP1 00003c87: POP 00003c88: SWAP2 00003c89: SWAP1 00003c8a: POP 00003c8b: JUMP 00003c8c: JUMPDEST 00003c8d: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00003cae: PUSH1 0x00 00003cb0: DUP3 00003cb1: ADD 00003cb2: MSTORE 00003cb3: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00003cd4: PUSH1 0x20 00003cd6: DUP3 00003cd7: ADD 00003cd8: MSTORE 00003cd9: POP 00003cda: JUMP 00003cdb: JUMPDEST 00003cdc: PUSH1 0x00 00003cde: PUSH2 0x3ce8 00003ce1: PUSH1 0x2b 00003ce3: DUP4 00003ce4: PUSH2 0x3651 00003ce7: JUMP 00003ce8: JUMPDEST 00003ce9: SWAP2 00003cea: POP 00003ceb: PUSH2 0x3cf3 00003cee: DUP3 00003cef: PUSH2 0x3c8c 00003cf2: JUMP 00003cf3: JUMPDEST 00003cf4: PUSH1 0x40 00003cf6: DUP3 00003cf7: ADD 00003cf8: SWAP1 00003cf9: POP 00003cfa: SWAP2 00003cfb: SWAP1 00003cfc: POP 00003cfd: JUMP 00003cfe: JUMPDEST 00003cff: PUSH1 0x00 00003d01: PUSH1 0x20 00003d03: DUP3 00003d04: ADD 00003d05: SWAP1 00003d06: POP 00003d07: DUP2 00003d08: DUP2 00003d09: SUB 00003d0a: PUSH1 0x00 00003d0c: DUP4 00003d0d: ADD 00003d0e: MSTORE 00003d0f: PUSH2 0x3d17 00003d12: DUP2 00003d13: PUSH2 0x3cdb 00003d16: JUMP 00003d17: JUMPDEST 00003d18: SWAP1 00003d19: POP 00003d1a: SWAP2 00003d1b: SWAP1 00003d1c: POP 00003d1d: JUMP 00003d1e: JUMPDEST 00003d1f: PUSH1 0x00 00003d21: DUP2 00003d22: MLOAD 00003d23: SWAP1 00003d24: POP 00003d25: PUSH2 0x3d2d 00003d28: DUP2 00003d29: PUSH2 0x3045 00003d2c: JUMP 00003d2d: JUMPDEST 00003d2e: SWAP3 00003d2f: SWAP2 00003d30: POP 00003d31: POP 00003d32: JUMP 00003d33: JUMPDEST 00003d34: PUSH1 0x00 00003d36: PUSH1 0x20 00003d38: DUP3 00003d39: DUP5 00003d3a: SUB 00003d3b: SLT 00003d3c: ISZERO 00003d3d: PUSH2 0x3d49 00003d40: JUMPI 00003d41: PUSH2 0x3d48 00003d44: PUSH2 0x3036 00003d47: JUMP 00003d48: JUMPDEST 00003d49: JUMPDEST 00003d4a: PUSH1 0x00 00003d4c: PUSH2 0x3d57 00003d4f: DUP5 00003d50: DUP3 00003d51: DUP6 00003d52: ADD 00003d53: PUSH2 0x3d1e 00003d56: JUMP 00003d57: JUMPDEST 00003d58: SWAP2 00003d59: POP 00003d5a: POP 00003d5b: SWAP3 00003d5c: SWAP2 00003d5d: POP 00003d5e: POP 00003d5f: JUMP 00003d60: JUMPDEST 00003d61: PUSH2 0x3d69 00003d64: DUP2 00003d65: PUSH2 0x34a4 00003d68: JUMP 00003d69: JUMPDEST 00003d6a: DUP2 00003d6b: EQ 00003d6c: PUSH2 0x3d74 00003d6f: JUMPI 00003d70: PUSH1 0x00 00003d72: DUP1 00003d73: REVERT 00003d74: JUMPDEST 00003d75: POP 00003d76: JUMP 00003d77: JUMPDEST 00003d78: PUSH1 0x00 00003d7a: DUP2 00003d7b: MLOAD 00003d7c: SWAP1 00003d7d: POP 00003d7e: PUSH2 0x3d86 00003d81: DUP2 00003d82: PUSH2 0x3d60 00003d85: JUMP 00003d86: JUMPDEST 00003d87: SWAP3 00003d88: SWAP2 00003d89: POP 00003d8a: POP 00003d8b: JUMP 00003d8c: JUMPDEST 00003d8d: PUSH1 0x00 00003d8f: PUSH1 0x20 00003d91: DUP3 00003d92: DUP5 00003d93: SUB 00003d94: SLT 00003d95: ISZERO 00003d96: PUSH2 0x3da2 00003d99: JUMPI 00003d9a: PUSH2 0x3da1 00003d9d: PUSH2 0x3036 00003da0: JUMP 00003da1: JUMPDEST 00003da2: JUMPDEST 00003da3: PUSH1 0x00 00003da5: PUSH2 0x3db0 00003da8: DUP5 00003da9: DUP3 00003daa: DUP6 00003dab: ADD 00003dac: PUSH2 0x3d77 00003daf: JUMP 00003db0: JUMPDEST 00003db1: SWAP2 00003db2: POP 00003db3: POP 00003db4: SWAP3 00003db5: SWAP2 00003db6: POP 00003db7: POP 00003db8: JUMP 00003db9: JUMPDEST 00003dba: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00003ddb: PUSH1 0x00 00003ddd: DUP3 00003dde: ADD 00003ddf: MSTORE 00003de0: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000 00003e01: PUSH1 0x20 00003e03: DUP3 00003e04: ADD 00003e05: MSTORE 00003e06: POP 00003e07: JUMP 00003e08: JUMPDEST 00003e09: PUSH1 0x00 00003e0b: PUSH2 0x3e15 00003e0e: PUSH1 0x2a 00003e10: DUP4 00003e11: PUSH2 0x3651 00003e14: JUMP 00003e15: JUMPDEST 00003e16: SWAP2 00003e17: POP 00003e18: PUSH2 0x3e20 00003e1b: DUP3 00003e1c: PUSH2 0x3db9 00003e1f: JUMP 00003e20: JUMPDEST 00003e21: PUSH1 0x40 00003e23: DUP3 00003e24: ADD 00003e25: SWAP1 00003e26: POP 00003e27: SWAP2 00003e28: SWAP1 00003e29: POP 00003e2a: JUMP 00003e2b: JUMPDEST 00003e2c: PUSH1 0x00 00003e2e: PUSH1 0x20 00003e30: DUP3 00003e31: ADD 00003e32: SWAP1 00003e33: POP 00003e34: DUP2 00003e35: DUP2 00003e36: SUB 00003e37: PUSH1 0x00 00003e39: DUP4 00003e3a: ADD 00003e3b: MSTORE 00003e3c: PUSH2 0x3e44 00003e3f: DUP2 00003e40: PUSH2 0x3e08 00003e43: JUMP 00003e44: JUMPDEST 00003e45: SWAP1 00003e46: POP 00003e47: SWAP2 00003e48: SWAP1 00003e49: POP 00003e4a: JUMP 00003e4b: JUMPDEST 00003e4c: PUSH1 0x00 00003e4e: PUSH1 0x60 00003e50: DUP3 00003e51: ADD 00003e52: SWAP1 00003e53: POP 00003e54: PUSH2 0x3e60 00003e57: PUSH1 0x00 00003e59: DUP4 00003e5a: ADD 00003e5b: DUP7 00003e5c: PUSH2 0x3159 00003e5f: JUMP 00003e60: JUMPDEST 00003e61: PUSH2 0x3e6d 00003e64: PUSH1 0x20 00003e66: DUP4 00003e67: ADD 00003e68: DUP6 00003e69: PUSH2 0x3159 00003e6c: JUMP 00003e6d: JUMPDEST 00003e6e: PUSH2 0x3e7a 00003e71: PUSH1 0x40 00003e73: DUP4 00003e74: ADD 00003e75: DUP5 00003e76: PUSH2 0x309e 00003e79: JUMP 00003e7a: JUMPDEST 00003e7b: SWAP5 00003e7c: SWAP4 00003e7d: POP 00003e7e: POP 00003e7f: POP 00003e80: POP 00003e81: JUMP 00003e82: JUMPDEST 00003e83: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 00003ea4: PUSH1 0x00 00003ea6: DUP3 00003ea7: ADD 00003ea8: MSTORE 00003ea9: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000 00003eca: PUSH1 0x20 00003ecc: DUP3 00003ecd: ADD 00003ece: MSTORE 00003ecf: POP 00003ed0: JUMP 00003ed1: JUMPDEST 00003ed2: PUSH1 0x00 00003ed4: PUSH2 0x3ede 00003ed7: PUSH1 0x26 00003ed9: DUP4 00003eda: PUSH2 0x3651 00003edd: JUMP 00003ede: JUMPDEST 00003edf: SWAP2 00003ee0: POP 00003ee1: PUSH2 0x3ee9 00003ee4: DUP3 00003ee5: PUSH2 0x3e82 00003ee8: JUMP 00003ee9: JUMPDEST 00003eea: PUSH1 0x40 00003eec: DUP3 00003eed: ADD 00003eee: SWAP1 00003eef: POP 00003ef0: SWAP2 00003ef1: SWAP1 00003ef2: POP 00003ef3: JUMP 00003ef4: JUMPDEST 00003ef5: PUSH1 0x00 00003ef7: PUSH1 0x20 00003ef9: DUP3 00003efa: ADD 00003efb: SWAP1 00003efc: POP 00003efd: DUP2 00003efe: DUP2 00003eff: SUB 00003f00: PUSH1 0x00 00003f02: DUP4 00003f03: ADD 00003f04: MSTORE 00003f05: PUSH2 0x3f0d 00003f08: DUP2 00003f09: PUSH2 0x3ed1 00003f0c: JUMP 00003f0d: JUMPDEST 00003f0e: SWAP1 00003f0f: POP 00003f10: SWAP2 00003f11: SWAP1 00003f12: POP 00003f13: JUMP 00003f14: JUMPDEST 00003f15: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00003f36: PUSH1 0x00 00003f38: DUP3 00003f39: ADD 00003f3a: MSTORE 00003f3b: POP 00003f3c: JUMP 00003f3d: JUMPDEST 00003f3e: PUSH1 0x00 00003f40: PUSH2 0x3f4a 00003f43: PUSH1 0x1d 00003f45: DUP4 00003f46: PUSH2 0x3651 00003f49: JUMP 00003f4a: JUMPDEST 00003f4b: SWAP2 00003f4c: POP 00003f4d: PUSH2 0x3f55 00003f50: DUP3 00003f51: PUSH2 0x3f14 00003f54: JUMP 00003f55: JUMPDEST 00003f56: PUSH1 0x20 00003f58: DUP3 00003f59: ADD 00003f5a: SWAP1 00003f5b: POP 00003f5c: SWAP2 00003f5d: SWAP1 00003f5e: POP 00003f5f: JUMP 00003f60: JUMPDEST 00003f61: PUSH1 0x00 00003f63: PUSH1 0x20 00003f65: DUP3 00003f66: ADD 00003f67: SWAP1 00003f68: POP 00003f69: DUP2 00003f6a: DUP2 00003f6b: SUB 00003f6c: PUSH1 0x00 00003f6e: DUP4 00003f6f: ADD 00003f70: MSTORE 00003f71: PUSH2 0x3f79 00003f74: DUP2 00003f75: PUSH2 0x3f3d 00003f78: JUMP 00003f79: JUMPDEST 00003f7a: SWAP1 00003f7b: POP 00003f7c: SWAP2 00003f7d: SWAP1 00003f7e: POP 00003f7f: JUMP 00003f80: JUMPDEST 00003f81: PUSH1 0x00 00003f83: DUP2 00003f84: MLOAD 00003f85: SWAP1 00003f86: POP 00003f87: SWAP2 00003f88: SWAP1 00003f89: POP 00003f8a: JUMP 00003f8b: JUMPDEST 00003f8c: PUSH1 0x00 00003f8e: DUP2 00003f8f: SWAP1 00003f90: POP 00003f91: SWAP3 00003f92: SWAP2 00003f93: POP 00003f94: POP 00003f95: JUMP 00003f96: JUMPDEST 00003f97: PUSH1 0x00 00003f99: JUMPDEST 00003f9a: DUP4 00003f9b: DUP2 00003f9c: LT 00003f9d: ISZERO 00003f9e: PUSH2 0x3fb4 00003fa1: JUMPI 00003fa2: DUP1 00003fa3: DUP3 00003fa4: ADD 00003fa5: MLOAD 00003fa6: DUP2 00003fa7: DUP5 00003fa8: ADD 00003fa9: MSTORE 00003faa: PUSH1 0x20 00003fac: DUP2 00003fad: ADD 00003fae: SWAP1 00003faf: POP 00003fb0: PUSH2 0x3f99 00003fb3: JUMP 00003fb4: JUMPDEST 00003fb5: DUP4 00003fb6: DUP2 00003fb7: GT 00003fb8: ISZERO 00003fb9: PUSH2 0x3fc3 00003fbc: JUMPI 00003fbd: PUSH1 0x00 00003fbf: DUP5 00003fc0: DUP5 00003fc1: ADD 00003fc2: MSTORE 00003fc3: JUMPDEST 00003fc4: POP 00003fc5: POP 00003fc6: POP 00003fc7: POP 00003fc8: JUMP 00003fc9: JUMPDEST 00003fca: PUSH1 0x00 00003fcc: PUSH2 0x3fd4 00003fcf: DUP3 00003fd0: PUSH2 0x3f80 00003fd3: JUMP 00003fd4: JUMPDEST 00003fd5: PUSH2 0x3fde 00003fd8: DUP2 00003fd9: DUP6 00003fda: PUSH2 0x3f8b 00003fdd: JUMP 00003fde: JUMPDEST 00003fdf: SWAP4 00003fe0: POP 00003fe1: PUSH2 0x3fee 00003fe4: DUP2 00003fe5: DUP6 00003fe6: PUSH1 0x20 00003fe8: DUP7 00003fe9: ADD 00003fea: PUSH2 0x3f96 00003fed: JUMP 00003fee: JUMPDEST 00003fef: DUP1 00003ff0: DUP5 00003ff1: ADD 00003ff2: SWAP2 00003ff3: POP 00003ff4: POP 00003ff5: SWAP3 00003ff6: SWAP2 00003ff7: POP 00003ff8: POP 00003ff9: JUMP 00003ffa: JUMPDEST 00003ffb: PUSH1 0x00 00003ffd: PUSH2 0x4006 00004000: DUP3 00004001: DUP5 00004002: PUSH2 0x3fc9 00004005: JUMP 00004006: JUMPDEST 00004007: SWAP2 00004008: POP 00004009: DUP2 0000400a: SWAP1 0000400b: POP 0000400c: SWAP3 0000400d: SWAP2 0000400e: POP 0000400f: POP 00004010: JUMP 00004011: JUMPDEST 00004012: PUSH1 0x00 00004014: DUP2 00004015: MLOAD 00004016: SWAP1 00004017: POP 00004018: SWAP2 00004019: SWAP1 0000401a: POP 0000401b: JUMP 0000401c: JUMPDEST 0000401d: PUSH1 0x00 0000401f: PUSH1 0x1f 00004021: NOT 00004022: PUSH1 0x1f 00004024: DUP4 00004025: ADD 00004026: AND 00004027: SWAP1 00004028: POP 00004029: SWAP2 0000402a: SWAP1 0000402b: POP 0000402c: JUMP 0000402d: JUMPDEST 0000402e: PUSH1 0x00 00004030: PUSH2 0x4038 00004033: DUP3 00004034: PUSH2 0x4011 00004037: JUMP 00004038: JUMPDEST 00004039: PUSH2 0x4042 0000403c: DUP2 0000403d: DUP6 0000403e: PUSH2 0x3651 00004041: JUMP 00004042: JUMPDEST 00004043: SWAP4 00004044: POP 00004045: PUSH2 0x4052 00004048: DUP2 00004049: DUP6 0000404a: PUSH1 0x20 0000404c: DUP7 0000404d: ADD 0000404e: PUSH2 0x3f96 00004051: JUMP 00004052: JUMPDEST 00004053: PUSH2 0x405b 00004056: DUP2 00004057: PUSH2 0x401c 0000405a: JUMP 0000405b: JUMPDEST 0000405c: DUP5 0000405d: ADD 0000405e: SWAP2 0000405f: POP 00004060: POP 00004061: SWAP3 00004062: SWAP2 00004063: POP 00004064: POP 00004065: JUMP 00004066: JUMPDEST 00004067: PUSH1 0x00 00004069: PUSH1 0x20 0000406b: DUP3 0000406c: ADD 0000406d: SWAP1 0000406e: POP 0000406f: DUP2 00004070: DUP2 00004071: SUB 00004072: PUSH1 0x00 00004074: DUP4 00004075: ADD 00004076: MSTORE 00004077: PUSH2 0x4080 0000407a: DUP2 0000407b: DUP5 0000407c: PUSH2 0x402d 0000407f: JUMP 00004080: JUMPDEST 00004081: SWAP1 00004082: POP 00004083: SWAP3 00004084: SWAP2 00004085: POP 00004086: POP 00004087: JUMP 00004088: INVALID 00004089: LOG2 0000408a: PUSH5 0x6970667358 00004090: UNKNOWN(0x22) 00004091: SLT 00004092: KECCAK256 00004093: PUSH25 0xd7ed53a21d26e5a22b7a702620883a9263288620a1d940913c 000040ad: RETURNDATACOPY 000040ae: UNKNOWN(0xF8) 000040af: UNKNOWN(0xAA) 000040b0: DUP11 000040b1: UNKNOWN(0xE1) 000040b2: UNKNOWN(0xEF) 000040b3: PUSH5 0x736f6c6343 000040b9: STOP 000040ba: ADDMOD 000040bb: EXP 000040bc: STOP 000040bd: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | access_control | codex | Uninitialized deployment lets anyone become owner and drain all tokens | 90 | no | — |
viewevidence_json{
"evidence": "initialize() is external and assigns ownership via __Ownable_init (contracts/Contract.sol:2265). saveMe() allows the owner to transfer arbitrary ERC20 balances (contracts/Contract.sol:2613).",
"locations": [
"contracts/Contract.sol:2265",
"contracts/Contract.sol:2613"
],
"recommendation": "Call initialize during deployment and add a constructor that calls _disableInitializers() on the implementation; alternatively restrict initialize to a trusted deployer via an initializer-only access control pattern.",
"exploit_scenario": "1) If the proxy/contract is deployed without calling initialize(), an attacker calls initialize() to become owner (Ownable sets owner = msg.sender). 2) The attacker calls saveMe() to transfer out any ERC20 balances held by the contract (reward tokens and staked tokens). Profit: entire contract token balances (order of magnitude: total TVL in all pools)."
}
|
| high | reentrancy | codex | Anyone can reset the reentrancy guard via initializePoolV2, enabling reward inflation in deposit | 85 | no | — |
viewevidence_json{
"evidence": "initializePoolV2 is external and resets _status (contracts/Contract.sol:2631, contracts/Contract.sol:2637). nonReentrant relies on _status (contracts/Contract.sol:2254). deposit calls transferFunds before updating user.amount/rewardDebt (contracts/Contract.sol:2446, contracts/Contract.sol:2449). transferFunds performs external token.safeTransferFrom (contracts/Contract.sol:2669, contracts/Contract.sol:2671).",
"locations": [
"contracts/Contract.sol:2254",
"contracts/Contract.sol:2428",
"contracts/Contract.sol:2446",
"contracts/Contract.sol:2449",
"contracts/Contract.sol:2631",
"contracts/Contract.sol:2637",
"contracts/Contract.sol:2669",
"contracts/Contract.sol:2671"
],
"recommendation": "Make initializePoolV2 a proper reinitializer restricted to onlyOwner and never touch _status, or remove it entirely. If it must exist, add nonReentrant/onlyOwner and redesign deposit to update user state before external transfers.",
"exploit_scenario": "1) Target a pool whose staking token is ERC777 or otherwise calls back during transferFrom, and ensure initializePoolV2 has not been called yet (initializedV2 == false). 2) Stake normally to build pending rewards. 3) Call deposit() from an attacker contract; during transferFunds() the token callback calls initializePoolV2() to set _status back to _NOT_ENTERED, then reenters deposit() repeatedly before the original call finishes. Each reentrant deposit adds the same pending rewards to rewardCredit because user.amount and user.rewardDebt are not updated yet. 4) After the pool ends, call withdraw()/claimReward() to receive the inflated rewardCredit. Profit: up to the remaining rewardToken balance held by the contract for that token (order of magnitude: the pool totalReward, or more if other pools share the same reward token)."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xe9ad3e9fcb2b720f4b3130378462e18a4b342edf03465c31fa0256ade2e7124a
call_targets:
0xfc59ab348e0c0e789e914b0864f08cab98db1553
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xe9ad3e9fcb2b720f4b3130378462e18a4b342edf03465c31fa0256ade2e7124a",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xfc59ab348e0c0e789e914b0864f08cab98db1553"
],
"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": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf430cf0d",
"selector": "0xf430cf0d",
"calldata_variants": [
"0xf430cf0d",
"0xf430cf0d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa31a89c",
"selector": "0xfa31a89c",
"calldata_variants": [
"0xfa31a89c",
"0xfa31a89c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffd47db9",
"selector": "0xffd47db9",
"calldata_variants": [
"0xffd47db9",
"0xffd47db90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb3944d52",
"selector": "0xb3944d52",
"calldata_variants": [
"0xb3944d52",
"0xb3944d520000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc5f879dc",
"selector": "0xc5f879dc",
"calldata_variants": [
"0xc5f879dc",
"0xc5f879dc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe2bbb158",
"selector": "0xe2bbb158",
"calldata_variants": [
"0xe2bbb158",
"0xe2bbb1580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8129fc1c",
"selector": "0x8129fc1c",
"calldata_variants": [
"0x8129fc1c",
"0x8129fc1c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 12132,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [
{
"pc": 1955,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 1
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xe9ad3e9fcb2b720f4b3130378462e18a4b342edf03465c31fa0256ade2e7124a
call_targets:
0xfc59ab348e0c0e789e914b0864f08cab98db1553
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xe9ad3e9fcb2b720f4b3130378462e18a4b342edf03465c31fa0256ade2e7124a",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xfc59ab348e0c0e789e914b0864f08cab98db1553"
],
"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": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf430cf0d",
"selector": "0xf430cf0d",
"calldata_variants": [
"0xf430cf0d",
"0xf430cf0d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa31a89c",
"selector": "0xfa31a89c",
"calldata_variants": [
"0xfa31a89c",
"0xfa31a89c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffd47db9",
"selector": "0xffd47db9",
"calldata_variants": [
"0xffd47db9",
"0xffd47db90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb3944d52",
"selector": "0xb3944d52",
"calldata_variants": [
"0xb3944d52",
"0xb3944d520000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc5f879dc",
"selector": "0xc5f879dc",
"calldata_variants": [
"0xc5f879dc",
"0xc5f879dc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe2bbb158",
"selector": "0xe2bbb158",
"calldata_variants": [
"0xe2bbb158",
"0xe2bbb1580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8129fc1c",
"selector": "0x8129fc1c",
"calldata_variants": [
"0x8129fc1c",
"0x8129fc1c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 12132,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": [
{
"pc": 1955,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|