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

Analysis Run

5f01c712-2dc6-4483-af43-8907a057dfb0

failed
Chain ID
1
Address
Block Number
Created
Sun, Dec 28, 2025 1:00 AM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30256 report.consolidate complete 1 / 1 3 months ago
73720 artifact.fetch failed 1 / 3 1 week ago
73721 tool.cast_disasm complete 1 / 3 1 week ago
73722 analysis.bundle complete 1 / 3 1 week ago
73723 capability.graph complete 1 / 3 1 week ago
73724 detector.run complete 1 / 3 1 week ago
73725 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
2
No findings?
no
Summary
Found 2 issues: permissionless initialization risk and hook-receiver delegatecall privilege that can fully control Silo if compromised.
View stderr
[codex:1519831] OpenAI Codex v0.77.0 (research preview)
[codex:1519831] --------
[codex:1519831] workdir: /tmp/codex-multi-9i_oadd0
[codex:1519831] model: gpt-5.2-codex
[codex:1519831] provider: openai
[codex:1519831] approval: never
[codex:1519831] sandbox: read-only
[codex:1519831] reasoning effort: xhigh
[codex:1519831] reasoning summaries: auto
[codex:1519831] session id: 019b6270-11c7-7b32-b89b-a90c2dafa275
[codex:1519831] --------
[codex:1519831] user
[codex:1519831] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1519831] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1519831] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1519831] 
[codex:1519831] Scope rules:
[codex:1519831] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1519831] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1519831] 
[codex:1519831] Output MUST be valid JSON matching the provided schema.
[codex:1519831] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1519831] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1519831] 
[codex:1519831] Output constraints (IMPORTANT):
[codex:1519831] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1519831] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1519831] mcp startup: no servers
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Reading audit file**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc ls in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] AUDIT_BUNDLE.txt
[codex:1519831] codex-output-schema.json
[codex:1519831] contracts
[codex:1519831] exec
[codex:1519831] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-9i_oadd0 succeeded in 8ms:
[codex:1519831] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1519831] 
[codex:1519831] ================================================================================
[codex:1519831] FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC1363.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: MIT
[codex:1519831] // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1363.sol)
[codex:1519831] 
[codex:1519831] pragma solidity ^0.8.20;
[codex:1519831] 
[codex:1519831] import {IERC20} from "./IERC20.sol";
[codex:1519831] import {IERC165} from "./IERC165.sol";
[codex:1519831] 
[codex:1519831] /**
[codex:1519831]  * @title IERC1363
[codex:1519831]  * @dev Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363].
[codex:1519831]  *
[codex:1519831]  * Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract
[codex:1519831]  * after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction.
[codex:1519831]  */
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Planning exhaustive AUDIT_BUNDLE review**
[codex:1519831] 
[codex:1519831] I see the AUDIT_BUNDLE is massive and truncated in output, so to fully read it I'll split reading it into manageable chunks using commands like `sed -n` with line ranges. Because I must consider first-party contracts only and treat libraries like OpenZeppelin as third-party, I'll use ripgrep to list files in the bundle (e.g., lines starting with "FILE:") to spot first-party code for more focused review while ensuring I don't miss anything in the entire bundle by chunked reading.
[codex:1519831] exec
[codex:1519831] /bin/bash -lc 'rg "''^FILE:" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] 4:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC1363.sol
[codex:1519831] 94:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC165.sol
[codex:1519831] 104:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC20.sol
[codex:1519831] 114:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC4626.sol
[codex:1519831] 348:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC5267.sol
[codex:1519831] 380:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC721.sol
[codex:1519831] 390:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/draft-IERC6093.sol
[codex:1519831] 555:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC20/ERC20.sol
[codex:1519831] 875:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC20/IERC20.sol
[codex:1519831] 958:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC20/extensions/ERC20Permit.sol
[codex:1519831] 1045:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC20/extensions/IERC20Metadata.sol
[codex:1519831] 1075:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC20/extensions/IERC20Permit.sol
[codex:1519831] 1169:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC20/utils/SafeERC20.sol
[codex:1519831] 1346:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC721/IERC721.sol
[codex:1519831] 1485:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/utils/Address.sol
[codex:1519831] 1640:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/utils/Context.sol
[codex:1519831] 1672:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/utils/Errors.sol
[codex:1519831] 1702:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/utils/Nonces.sol
[codex:1519831] 1752:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/utils/Panic.sol
[codex:1519831] 1811:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/utils/ShortStrings.sol
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Clarifying audit scope on first-party libs**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '5504,6344p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 8ms:
[codex:1519831] FILE: contracts/silo-core/contracts/Silo.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: BUSL-1.1
[codex:1519831] pragma solidity 0.8.28;
[codex:1519831] 
[codex:1519831] import {SafeERC20} from "openzeppelin5/token/ERC20/utils/SafeERC20.sol";
[codex:1519831] import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1519831] 
[codex:1519831] import {ISilo, IERC4626, IERC3156FlashLender} from "./interfaces/ISilo.sol";
[codex:1519831] import {IShareToken} from "./interfaces/IShareToken.sol";
[codex:1519831] 
[codex:1519831] import {IERC3156FlashBorrower} from "./interfaces/IERC3156FlashBorrower.sol";
[codex:1519831] import {ISiloConfig} from "./interfaces/ISiloConfig.sol";
[codex:1519831] import {ISiloFactory} from "./interfaces/ISiloFactory.sol";
[codex:1519831] 
[codex:1519831] import {ShareCollateralToken} from "./utils/ShareCollateralToken.sol";
[codex:1519831] 
[codex:1519831] import {Actions} from "./lib/Actions.sol";
[codex:1519831] import {Views} from "./lib/Views.sol";
[codex:1519831] import {SiloStdLib} from "./lib/SiloStdLib.sol";
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Checking SiloConfig details**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '6345,6821p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 7ms:
[codex:1519831] FILE: contracts/silo-core/contracts/SiloConfig.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: BUSL-1.1
[codex:1519831] pragma solidity 0.8.28;
[codex:1519831] 
[codex:1519831] import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1519831] 
[codex:1519831] import {ISilo} from "./interfaces/ISilo.sol";
[codex:1519831] import {ISiloConfig} from "./interfaces/ISiloConfig.sol";
[codex:1519831] import {CrossReentrancyGuard} from "./utils/CrossReentrancyGuard.sol";
[codex:1519831] import {Hook} from "./lib/Hook.sol";
[codex:1519831] 
[codex:1519831] /// @notice SiloConfig stores full configuration of Silo in immutable manner
[codex:1519831] /// @dev Immutable contract is more expensive to deploy than minimal proxy however it provides nearly 10x cheaper
[codex:1519831] /// data access using immutable variables.
[codex:1519831] contract SiloConfig is ISiloConfig, CrossReentrancyGuard {
[codex:1519831]     using Hook for uint256;
[codex:1519831]     
[codex:1519831]     uint256 public immutable SILO_ID;
[codex:1519831] 
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Analyzing reentrancy guards and contract libraries**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '8184,8890p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] FILE: contracts/silo-core/contracts/lib/Actions.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: BUSL-1.1
[codex:1519831] pragma solidity ^0.8.28;
[codex:1519831] 
[codex:1519831] import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1519831] import {SafeERC20} from "openzeppelin5/token/ERC20/utils/SafeERC20.sol";
[codex:1519831] import {Address} from "openzeppelin5/utils/Address.sol";
[codex:1519831] import {Math} from "openzeppelin5/utils/math/Math.sol";
[codex:1519831] 
[codex:1519831] import {ISiloConfig} from "../interfaces/ISiloConfig.sol";
[codex:1519831] import {IInterestRateModelV2} from "../interfaces/IInterestRateModelV2.sol";
[codex:1519831] import {ISilo} from "../interfaces/ISilo.sol";
[codex:1519831] import {IShareToken} from "../interfaces/IShareToken.sol";
[codex:1519831] import {IERC3156FlashBorrower} from "../interfaces/IERC3156FlashBorrower.sol";
[codex:1519831] import {IHookReceiver} from "../interfaces/IHookReceiver.sol";
[codex:1519831] 
[codex:1519831] import {SiloERC4626Lib} from "./SiloERC4626Lib.sol";
[codex:1519831] import {SiloSolvencyLib} from "./SiloSolvencyLib.sol";
[codex:1519831] import {SiloLendingLib} from "./SiloLendingLib.sol";
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Examining Views.sol for vulnerabilities**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '11566,11856p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 7ms:
[codex:1519831] FILE: contracts/silo-core/contracts/lib/Views.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: BUSL-1.1
[codex:1519831] pragma solidity ^0.8.28;
[codex:1519831] 
[codex:1519831] import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1519831] 
[codex:1519831] import {ISiloConfig} from "../interfaces/ISiloConfig.sol";
[codex:1519831] import {ISilo} from "../interfaces/ISilo.sol";
[codex:1519831] import {ISiloOracle} from "../interfaces/ISiloOracle.sol";
[codex:1519831] import {IShareToken} from "../interfaces/IShareToken.sol";
[codex:1519831] import {ISiloFactory} from "../interfaces/ISiloFactory.sol";
[codex:1519831] 
[codex:1519831] import {SiloERC4626Lib} from "./SiloERC4626Lib.sol";
[codex:1519831] import {SiloSolvencyLib} from "./SiloSolvencyLib.sol";
[codex:1519831] import {SiloLendingLib} from "./SiloLendingLib.sol";
[codex:1519831] import {SiloStdLib} from "./SiloStdLib.sol";
[codex:1519831] import {SiloMathLib} from "./SiloMathLib.sol";
[codex:1519831] import {Rounding} from "./Rounding.sol";
[codex:1519831] import {ShareTokenLib} from "./ShareTokenLib.sol";
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Analyzing delegatecall risks and reentrancy controls**
[codex:1519831] 
[codex:1519831] I'm examining how `callOnBehalfOfSilo` allows the hook receiver to delegatecall arbitrary targets, evaluating trust assumptions and potential attack vectors, especially if the hook receiver is compromised. I'm also reviewing reentrancy protections, focusing on whether calls through the hook receiver bypass guards and checking transient storage use and cross-silo implications. I'll look into related functions and libraries like `NonReentrantLib` to see if safeguards are properly implemented.
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '9594,9693p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 7ms:
[codex:1519831] FILE: contracts/silo-core/contracts/lib/IsContract.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: BUSL-1.1
[codex:1519831] pragma solidity ^0.8.24;
[codex:1519831] 
[codex:1519831] library IsContract {
[codex:1519831]     /**
[codex:1519831]      * @dev Returns true if `account` is a contract.
[codex:1519831]      *
[codex:1519831]      * [IMPORTANT]
[codex:1519831]      * ====
[codex:1519831]      * It is unsafe to assume that an address for which this function returns
[codex:1519831]      * false is an externally-owned account (EOA) and not a contract.
[codex:1519831]      *
[codex:1519831]      * Among others, `isContract` will return false for the following
[codex:1519831]      * types of addresses:
[codex:1519831]      *
[codex:1519831]      *  - an externally-owned account
[codex:1519831]      *  - a contract in construction
[codex:1519831]      *  - an address where a contract will be created
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Examining NonReentrantLib usage**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '11472,11565p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] FILE: contracts/silo-core/contracts/lib/SiloStorageLib.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: BUSL-1.1
[codex:1519831] pragma solidity 0.8.28;
[codex:1519831] 
[codex:1519831] import {ISilo} from "silo-core/contracts/interfaces/ISilo.sol";
[codex:1519831] 
[codex:1519831] library SiloStorageLib {
[codex:1519831]     // keccak256(abi.encode(uint256(keccak256("silo.storage.SiloVault")) - 1)) & ~bytes32(uint256(0xff));
[codex:1519831]     bytes32 private constant _STORAGE_LOCATION = 0xd7513ffe3a01a9f6606089d1b67011bca35bec018ac0faa914e1c529408f8300;
[codex:1519831] 
[codex:1519831]     function getSiloStorage() internal pure returns (ISilo.SiloStorage storage $) {
[codex:1519831]         // solhint-disable-next-line no-inline-assembly
[codex:1519831]         assembly {
[codex:1519831]             $.slot := _STORAGE_LOCATION
[codex:1519831]         }
[codex:1519831]     }
[codex:1519831] }
[codex:1519831] 
[codex:1519831] ================================================================================
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Preparing to analyze library vulnerabilities**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "rg -n \"delegatecall|call\\{|call\\(\" contracts/silo-core/contracts -g\"*.sol\"" in /tmp/codex-multi-9i_oadd0 succeeded in 8ms:
[codex:1519831] contracts/silo-core/contracts/lib/Actions.sol:518:            (success, result) = _target.delegatecall(_input); // solhint-disable-line avoid-low-level-calls
[codex:1519831] contracts/silo-core/contracts/lib/Actions.sol:520:            (success, result) = _target.call{value: _value}(_input); // solhint-disable-line avoid-low-level-calls
[codex:1519831] contracts/silo-core/contracts/lib/Actions.sol:698:        (bool success, bytes memory returndata) = address(_token).call(data);
[codex:1519831] contracts/silo-core/contracts/lib/TokenHelper.sol:61:        (bool success, bytes memory result) = _token.staticcall(_data);
[codex:1519831] contracts/silo-core/contracts/lib/ShareTokenLib.sol:131:            (success, result) = _target.delegatecall(_input); // solhint-disable-line avoid-low-level-calls
[codex:1519831] contracts/silo-core/contracts/lib/ShareTokenLib.sol:133:            (success, result) = _target.call{value: _value}(_input); // solhint-disable-line avoid-low-level-calls
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Checking for delegatecall in ShareTokenLib**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '9732,9891p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] FILE: contracts/silo-core/contracts/lib/ShareTokenLib.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: BUSL-1.1
[codex:1519831] pragma solidity ^0.8.0;
[codex:1519831] 
[codex:1519831] import {Strings} from "openzeppelin5/utils/Strings.sol";
[codex:1519831] 
[codex:1519831] import {ISilo} from "../interfaces/ISilo.sol";
[codex:1519831] import {IShareToken} from "../interfaces/IShareToken.sol";
[codex:1519831] import {ISiloConfig} from "../interfaces/ISiloConfig.sol";
[codex:1519831] 
[codex:1519831] import {TokenHelper} from "../lib/TokenHelper.sol";
[codex:1519831] import {CallBeforeQuoteLib} from "../lib/CallBeforeQuoteLib.sol";
[codex:1519831] import {Hook} from "../lib/Hook.sol";
[codex:1519831] 
[codex:1519831] // solhint-disable ordering
[codex:1519831] 
[codex:1519831] library ShareTokenLib {
[codex:1519831]     using Hook for uint24;
[codex:1519831]     using CallBeforeQuoteLib for ISiloConfig.ConfigData;
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Examining internal usage of ShareTokenLib**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc 'rg -n "callOnBehalfOfShareToken" -n contracts/silo-core/contracts' in /tmp/codex-multi-9i_oadd0 succeeded in 8ms:
[codex:1519831] contracts/silo-core/contracts/lib/ShareTokenLib.sol:124:    function callOnBehalfOfShareToken(address _target, uint256 _value, ISilo.CallType _callType, bytes calldata _input)
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Reviewing SiloLendingLib for safe patterns**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '10198,10694p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 7ms:
[codex:1519831] FILE: contracts/silo-core/contracts/lib/SiloLendingLib.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: BUSL-1.1
[codex:1519831] pragma solidity ^0.8.28;
[codex:1519831] 
[codex:1519831] import {SafeERC20} from "openzeppelin5/token/ERC20/utils/SafeERC20.sol";
[codex:1519831] import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1519831] import {Math} from "openzeppelin5/utils/math/Math.sol";
[codex:1519831] 
[codex:1519831] import {ISiloOracle} from "../interfaces/ISiloOracle.sol";
[codex:1519831] import {ISilo} from "../interfaces/ISilo.sol";
[codex:1519831] import {IShareToken} from "../interfaces/IShareToken.sol";
[codex:1519831] import {IInterestRateModel} from "../interfaces/IInterestRateModel.sol";
[codex:1519831] import {ISiloConfig} from "../interfaces/ISiloConfig.sol";
[codex:1519831] import {SiloSolvencyLib} from "./SiloSolvencyLib.sol";
[codex:1519831] import {SiloStdLib} from "./SiloStdLib.sol";
[codex:1519831] import {SiloMathLib} from "./SiloMathLib.sol";
[codex:1519831] import {Rounding} from "./Rounding.sol";
[codex:1519831] import {ShareTokenLib} from "./ShareTokenLib.sol";
[codex:1519831] import {SiloStorageLib} from "./SiloStorageLib.sol";
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Inspecting SiloERC4626Lib for security issues**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '9892,10197p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] FILE: contracts/silo-core/contracts/lib/SiloERC4626Lib.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: BUSL-1.1
[codex:1519831] pragma solidity ^0.8.28;
[codex:1519831] 
[codex:1519831] import {SafeERC20} from "openzeppelin5/token/ERC20/utils/SafeERC20.sol";
[codex:1519831] import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1519831] import {Math} from "openzeppelin5/utils/math/Math.sol";
[codex:1519831] 
[codex:1519831] import {ISiloConfig} from "../interfaces/ISiloConfig.sol";
[codex:1519831] import {ISilo} from "../interfaces/ISilo.sol";
[codex:1519831] import {IShareToken} from "../interfaces/IShareToken.sol";
[codex:1519831] import {SiloSolvencyLib} from "./SiloSolvencyLib.sol";
[codex:1519831] import {SiloMathLib} from "./SiloMathLib.sol";
[codex:1519831] import {SiloStdLib} from "./SiloStdLib.sol";
[codex:1519831] import {SiloLendingLib} from "./SiloLendingLib.sol";
[codex:1519831] import {Rounding} from "./Rounding.sol";
[codex:1519831] import {Hook} from "./Hook.sol";
[codex:1519831] import {ShareTokenLib} from "./ShareTokenLib.sol";
[codex:1519831] import {SiloStorageLib} from "./SiloStorageLib.sol";
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Inspecting core libraries for risks**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '8891,8917p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] FILE: contracts/silo-core/contracts/lib/CallBeforeQuoteLib.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: BUSL-1.1
[codex:1519831] pragma solidity ^0.8.28;
[codex:1519831] 
[codex:1519831] import {ISiloConfig} from "../interfaces/ISiloConfig.sol";
[codex:1519831] import {ISiloOracle} from "../interfaces/ISiloOracle.sol";
[codex:1519831] 
[codex:1519831] library CallBeforeQuoteLib {
[codex:1519831]     /// @dev Call `beforeQuote` on the `solvencyOracle` oracle
[codex:1519831]     /// @param _config Silo config data
[codex:1519831]     function callSolvencyOracleBeforeQuote(ISiloConfig.ConfigData memory _config) internal {
[codex:1519831]         if (_config.callBeforeQuote && _config.solvencyOracle != address(0)) {
[codex:1519831]             ISiloOracle(_config.solvencyOracle).beforeQuote(_config.token);
[codex:1519831]         }
[codex:1519831]     }
[codex:1519831] 
[codex:1519831]     /// @dev Call `beforeQuote` on the `maxLtvOracle` oracle
[codex:1519831]     /// @param _config Silo config data
[codex:1519831]     function callMaxLtvOracleBeforeQuote(ISiloConfig.ConfigData memory _config) internal {
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Checking next component**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '11065,11307p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] FILE: contracts/silo-core/contracts/lib/SiloSolvencyLib.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: BUSL-1.1
[codex:1519831] pragma solidity ^0.8.28;
[codex:1519831] 
[codex:1519831] import {Math} from "openzeppelin5/utils/math/Math.sol";
[codex:1519831] 
[codex:1519831] import {ISiloOracle} from "../interfaces/ISiloOracle.sol";
[codex:1519831] import {SiloStdLib, ISiloConfig, IShareToken, ISilo} from "./SiloStdLib.sol";
[codex:1519831] import {SiloMathLib} from "./SiloMathLib.sol";
[codex:1519831] import {Rounding} from "./Rounding.sol";
[codex:1519831] 
[codex:1519831] library SiloSolvencyLib {
[codex:1519831]     using Math for uint256;
[codex:1519831] 
[codex:1519831]     struct LtvData {
[codex:1519831]         ISiloOracle collateralOracle;
[codex:1519831]         ISiloOracle debtOracle;
[codex:1519831]         uint256 borrowerProtectedAssets;
[codex:1519831]         uint256 borrowerCollateralAssets;
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Checking for SiloStdLib presence**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '11308,11471p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] FILE: contracts/silo-core/contracts/lib/SiloStdLib.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: BUSL-1.1
[codex:1519831] pragma solidity ^0.8.28;
[codex:1519831] 
[codex:1519831] import {SafeERC20} from "openzeppelin5/token/ERC20/utils/SafeERC20.sol";
[codex:1519831] import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1519831] 
[codex:1519831] import {ISiloConfig} from "../interfaces/ISiloConfig.sol";
[codex:1519831] import {ISilo} from "../interfaces/ISilo.sol";
[codex:1519831] import {IInterestRateModel} from "../interfaces/IInterestRateModel.sol";
[codex:1519831] import {IShareToken} from "../interfaces/IShareToken.sol";
[codex:1519831] import {SiloMathLib} from "./SiloMathLib.sol";
[codex:1519831] 
[codex:1519831] library SiloStdLib {
[codex:1519831]     using SafeERC20 for IERC20;
[codex:1519831] 
[codex:1519831]     uint256 internal constant _PRECISION_DECIMALS = 1e18;
[codex:1519831] 
[codex:1519831]     /// @notice Returns flash fee amount
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Reviewing SiloMathLib for issues**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '10695,11064p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] FILE: contracts/silo-core/contracts/lib/SiloMathLib.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: BUSL-1.1
[codex:1519831] pragma solidity ^0.8.28;
[codex:1519831] 
[codex:1519831] import {Math} from "openzeppelin5/utils/math/Math.sol";
[codex:1519831] import {Rounding} from "../lib/Rounding.sol";
[codex:1519831] import {ISilo} from "../interfaces/ISilo.sol";
[codex:1519831] 
[codex:1519831] library SiloMathLib {
[codex:1519831]     using Math for uint256;
[codex:1519831] 
[codex:1519831]     uint256 internal constant _PRECISION_DECIMALS = 1e18;
[codex:1519831] 
[codex:1519831]     uint256 internal constant _DECIMALS_OFFSET = 3;
[codex:1519831] 
[codex:1519831]     /// @dev this is constant version of openzeppelin5/contracts/token/ERC20/extensions/ERC4626._decimalsOffset
[codex:1519831]     uint256 internal constant _DECIMALS_OFFSET_POW = 10 ** _DECIMALS_OFFSET;
[codex:1519831] 
[codex:1519831]     /// @notice Returns available liquidity to be borrowed
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Checking ShareCollateralTokenLib**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '9694,9731p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] FILE: contracts/silo-core/contracts/lib/ShareCollateralTokenLib.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: GPL-2.0-or-later
[codex:1519831] pragma solidity ^0.8.0;
[codex:1519831] 
[codex:1519831] import {ISilo} from "../interfaces/ISilo.sol";
[codex:1519831] import {IShareToken} from "../interfaces/IShareToken.sol";
[codex:1519831] import {ISiloConfig} from "../interfaces/ISiloConfig.sol";
[codex:1519831] 
[codex:1519831] import {ShareTokenLib} from "./ShareTokenLib.sol";
[codex:1519831] import {CallBeforeQuoteLib} from "./CallBeforeQuoteLib.sol";
[codex:1519831] import {SiloSolvencyLib} from "./SiloSolvencyLib.sol";
[codex:1519831] 
[codex:1519831] library ShareCollateralTokenLib {
[codex:1519831]     using CallBeforeQuoteLib for ISiloConfig.ConfigData;
[codex:1519831] 
[codex:1519831]     function isSolventAfterCollateralTransfer(address _sender) external returns (bool isSolvent) {
[codex:1519831]         IShareToken.ShareTokenStorage storage $ = ShareTokenLib.getShareTokenStorage();
[codex:1519831]         ISiloConfig siloConfig = $.siloConfig;
[codex:1519831] 
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Analyzing reentrancy and access controls in token transfers**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '7126,7217p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 8ms:
[codex:1519831] FILE: contracts/silo-core/contracts/interfaces/IShareToken.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: MIT
[codex:1519831] pragma solidity >=0.5.0;
[codex:1519831] 
[codex:1519831] import {IERC20Metadata} from "openzeppelin5/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1519831] 
[codex:1519831] import {ISiloConfig} from "./ISiloConfig.sol";
[codex:1519831] import {ISilo} from "./ISilo.sol";
[codex:1519831] 
[codex:1519831] interface IShareToken is IERC20Metadata {
[codex:1519831]     struct HookSetup {
[codex:1519831]         /// @param this is the same as in siloConfig
[codex:1519831]         address hookReceiver;
[codex:1519831]         /// @param hooks bitmap
[codex:1519831]         uint24 hooksBefore;
[codex:1519831]         /// @param hooks bitmap
[codex:1519831]         uint24 hooksAfter;
[codex:1519831]         /// @param tokenType must be one of this hooks values: COLLATERAL_TOKEN, PROTECTED_TOKEN, DEBT_TOKEN
[codex:1519831]         uint24 tokenType;
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Checking ISilo interface for functions**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '7218,7670p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 7ms:
[codex:1519831] FILE: contracts/silo-core/contracts/interfaces/ISilo.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: MIT
[codex:1519831] pragma solidity >=0.5.0;
[codex:1519831] 
[codex:1519831] import {IERC4626, IERC20, IERC20Metadata} from "openzeppelin5/interfaces/IERC4626.sol";
[codex:1519831] 
[codex:1519831] import {IERC3156FlashLender} from "./IERC3156FlashLender.sol";
[codex:1519831] import {ISiloConfig} from "./ISiloConfig.sol";
[codex:1519831] import {ISiloFactory} from "./ISiloFactory.sol";
[codex:1519831] 
[codex:1519831] import {IHookReceiver} from "./IHookReceiver.sol";
[codex:1519831] 
[codex:1519831] // solhint-disable ordering
[codex:1519831] interface ISilo is IERC20, IERC4626, IERC3156FlashLender {
[codex:1519831]     /// @dev Interest accrual happens on each deposit/withdraw/borrow/repay. View methods work on storage that might be
[codex:1519831]     ///      outdate. Some calculations require accrued interest to return current state of Silo. This struct is used
[codex:1519831]     ///      to make a decision inside functions if interest should be accrued in memory to work on updated values.
[codex:1519831]     enum AccrueInterestInMemory {
[codex:1519831]         No,
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Inspecting IHookReceiver usage**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '6901,6935p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] FILE: contracts/silo-core/contracts/interfaces/IHookReceiver.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: MIT
[codex:1519831] pragma solidity >=0.5.0;
[codex:1519831] 
[codex:1519831] import {ISiloConfig} from "./ISiloConfig.sol";
[codex:1519831] 
[codex:1519831] interface IHookReceiver {
[codex:1519831]     struct HookConfig {
[codex:1519831]         uint24 hooksBefore;
[codex:1519831]         uint24 hooksAfter;
[codex:1519831]     }
[codex:1519831] 
[codex:1519831]     event HookConfigured(address silo, uint24 hooksBefore, uint24 hooksAfter);
[codex:1519831] 
[codex:1519831]     /// @dev Revert if provided silo configuration during initialization is empty
[codex:1519831]     error EmptySiloConfig();
[codex:1519831]     /// @dev Revert if the hook receiver is already configured/initialized
[codex:1519831]     error AlreadyConfigured();
[codex:1519831] 
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Checking ISiloConfig interface**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '7671,7964p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] FILE: contracts/silo-core/contracts/interfaces/ISiloConfig.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: MIT
[codex:1519831] pragma solidity >=0.5.0;
[codex:1519831] 
[codex:1519831] import {ISilo} from "./ISilo.sol";
[codex:1519831] import {ICrossReentrancyGuard} from "./ICrossReentrancyGuard.sol";
[codex:1519831] 
[codex:1519831] interface ISiloConfig is ICrossReentrancyGuard {
[codex:1519831]     struct InitData {
[codex:1519831]         /// @notice Can be address zero if deployer fees are not to be collected. If deployer address is zero then
[codex:1519831]         /// deployer fee must be zero as well. Deployer will be minted an NFT that gives the right to claim deployer
[codex:1519831]         /// fees. NFT can be transferred with the right to claim.
[codex:1519831]         address deployer;
[codex:1519831] 
[codex:1519831]         /// @notice Address of the hook receiver called on every before/after action on Silo. Hook contract also
[codex:1519831]         /// implements liquidation logic and veSilo gauge connection.
[codex:1519831]         address hookReceiver;
[codex:1519831] 
[codex:1519831]         /// @notice Deployer's fee in 18 decimals points. Deployer will earn this fee based on the interest earned
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Analyzing potential contract vulnerabilities**
[codex:1519831] 
[codex:1519831] I'm examining risks around the use of `transient` storage, access controls on reentrancy guards, token transfer assumptions like fee-on-transfer tokens, and initialization patterns in upgradeable or proxy-deployed contracts, especially focusing on how constructors and initializers interact with clones and proxies. This involves weighing how design choices might open subtle attack vectors or misconfigurations.
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '7965,8160p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831] FILE: contracts/silo-core/contracts/interfaces/ISiloFactory.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: MIT
[codex:1519831] pragma solidity >=0.5.0;
[codex:1519831] 
[codex:1519831] import {IERC721} from "openzeppelin5/interfaces/IERC721.sol";
[codex:1519831] import {ISiloConfig} from "./ISiloConfig.sol";
[codex:1519831] 
[codex:1519831] interface ISiloFactory is IERC721 {
[codex:1519831]     struct Range {
[codex:1519831]         uint128 min;
[codex:1519831]         uint128 max;
[codex:1519831]     }
[codex:1519831] 
[codex:1519831]     /// @notice Emitted on the creation of a Silo.
[codex:1519831]     /// @param implementation Address of the Silo implementation.
[codex:1519831]     /// @param token0 Address of the first Silo token.
[codex:1519831]     /// @param token1 Address of the second Silo token.
[codex:1519831]     /// @param silo0 Address of the first Silo.
[codex:1519831]     /// @param silo1 Address of the second Silo.
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Analyzing reentrancy protections and hooks**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc 'rg -n "onDebtTransfer" -n contracts/silo-core/contracts' in /tmp/codex-multi-9i_oadd0 succeeded in 10ms:
[codex:1519831] contracts/silo-core/contracts/SiloConfig.sol:153:    function onDebtTransfer(address _sender, address _recipient) external virtual {
[codex:1519831] contracts/silo-core/contracts/interfaces/ISiloConfig.sol:139:    function onDebtTransfer(address _sender, address _recipient) external;
[codex:1519831] contracts/silo-core/contracts/interfaces/ISiloConfig.sol:170:    /// `onDebtTransfer` - only if the recipient doesn't have collateral silo set (inherits it from the sender)
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Investigating missing ShareDebtToken calls**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc 'rg -n "ShareDebt|ShareProtected|Protected" AUDIT_BUNDLE.txt' in /tmp/codex-multi-9i_oadd0 succeeded in 7ms:
[codex:1519831] 5645:    function getCollateralAndProtectedTotalsStorage()
[codex:1519831] 5649:        returns (uint256 totalCollateralAssets, uint256 totalProtectedAssets)
[codex:1519831] 5651:        (totalCollateralAssets, totalProtectedAssets) = Views.getCollateralAndProtectedAssets();
[codex:1519831] 5681:    /// `convertToShares(uint256 _assets, AssetType _assetType)` with `AssetType.Protected` or `AssetType.Debt`
[codex:1519831] 5688:    /// `convertToAssets(uint256 _shares, AssetType _assetType)` with `AssetType.Protected` or `AssetType.Debt`
[codex:1519831] 6042:            emit DepositProtected(msg.sender, _owner, assets, toShares);
[codex:1519831] 6044:            emit WithdrawProtected(msg.sender, _owner, _owner, assets, _shares);
[codex:1519831] 6219:            emit DepositProtected(msg.sender, _receiver, assets, shares);
[codex:1519831] 6249:            emit WithdrawProtected(msg.sender, _receiver, _owner, assets, shares);
[codex:1519831] 6875:    /// @notice Protected deposits are not available for a flash loan.
[codex:1519831] 7255:        Protected, // default
[codex:1519831] 7265:        Protected, // default
[codex:1519831] 7280:    /// @param _collateralType Type of the asset being withdrawn (Collateral or Protected)
[codex:1519831] 7358:    event DepositProtected(address indexed sender, address indexed owner, uint256 assets, uint256 shares);
[codex:1519831] 7366:    event WithdrawProtected(
[codex:1519831] 7403:    error ProtectedProtection();
[codex:1519831] 7487:    /// @return totalProtectedAssets The total amount of protected (non-borrowable) assets
[codex:1519831] 7488:    function getCollateralAndProtectedTotalsStorage()
[codex:1519831] 7491:        returns (uint256 totalCollateralAssets, uint256 totalProtectedAssets);
[codex:1519831] 8054:    error ConfigMismatchShareProtectedToken();
[codex:1519831] 
[codex:1519831] 
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Analyzing potential contract vulnerabilities and reentrancy issues**
[codex:1519831] 
[codex:1519831] I'm working through possible security risks in the Silo contracts, focusing on reentrancy guards, flashloan logic, debt share token transfers, and upgradeability quirks. There’s a lot about how certain functions handle balances, fees, and token transfers that might open doors for exploits, especially regarding the missing debt share token hooks and delegatecall risks. I’m piecing together where protections may be lacking or intentionally designed but checking if those gaps truly constitute vulnerabilities.
[codex:1519831] thinking
[codex:1519831] **Examining hook receiver risks and reentrancy protections**
[codex:1519831] 
[codex:1519831] I'm tracing how hook receivers interact with the system, especially around delegatecalls and reentrancy guards, to identify if there are trust assumptions or possible exploits. The interplay of interest accrual, oracle calls, token transfers, and flashloan mechanics creates a complex web, but overall protections seem solid with a few design risks tied to configurable hook receivers and external calls before reentrancy guards engage.
[codex:1519831] thinking
[codex:1519831] **Identifying initialization and delegatecall concerns**
[codex:1519831] 
[codex:1519831] I’m weighing risks around Silo’s public initialize method that could let anyone set config if deployment isn’t atomic, plus the hook receiver’s delegatecall power that effectively grants full control of Silo storage—both notable design factors that might impact security depending on deployment and governance practices.
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "nl -ba contracts/silo-core/contracts/Silo.sol | sed -n '1,220p'" in /tmp/codex-multi-9i_oadd0 succeeded in 7ms:
[codex:1519831]      1	// SPDX-License-Identifier: BUSL-1.1
[codex:1519831]      2	pragma solidity 0.8.28;
[codex:1519831]      3	
[codex:1519831]      4	import {SafeERC20} from "openzeppelin5/token/ERC20/utils/SafeERC20.sol";
[codex:1519831]      5	import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1519831]      6	
[codex:1519831]      7	import {ISilo, IERC4626, IERC3156FlashLender} from "./interfaces/ISilo.sol";
[codex:1519831]      8	import {IShareToken} from "./interfaces/IShareToken.sol";
[codex:1519831]      9	
[codex:1519831]     10	import {IERC3156FlashBorrower} from "./interfaces/IERC3156FlashBorrower.sol";
[codex:1519831]     11	import {ISiloConfig} from "./interfaces/ISiloConfig.sol";
[codex:1519831]     12	import {ISiloFactory} from "./interfaces/ISiloFactory.sol";
[codex:1519831]     13	
[codex:1519831]     14	import {ShareCollateralToken} from "./utils/ShareCollateralToken.sol";
[codex:1519831]     15	
[codex:1519831]     16	import {Actions} from "./lib/Actions.sol";
[codex:1519831]     17	import {Views} from "./lib/Views.sol";
[codex:1519831]     18	import {SiloStdLib} from "./lib/SiloStdLib.sol";
[codex:1519831]     19	import {SiloLendingLib} from "./lib/SiloLendingLib.sol";
[codex:1519831]     20	import {SiloERC4626Lib} from "./lib/SiloERC4626Lib.sol";
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Checking for line numbers of specific method**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "nl -ba contracts/silo-core/contracts/lib/Actions.sol | sed -n '480,560p'" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831]    480	        siloConfig.turnOffReentrancyProtection();
[codex:1519831]    481	    }
[codex:1519831]    482	
[codex:1519831]    483	    /// @notice Update hooks configuration for Silo
[codex:1519831]    484	    /// @dev This function must be called after the hooks configuration is changed in the hook receiver
[codex:1519831]    485	    function updateHooks() external returns (uint24 hooksBefore, uint24 hooksAfter) {
[codex:1519831]    486	        ISiloConfig siloConfig = ShareTokenLib.siloConfig();
[codex:1519831]    487	
[codex:1519831]    488	        NonReentrantLib.nonReentrant(siloConfig);
[codex:1519831]    489	
[codex:1519831]    490	        ISiloConfig.ConfigData memory cfg = siloConfig.getConfig(address(this));
[codex:1519831]    491	
[codex:1519831]    492	        if (cfg.hookReceiver == address(0)) return (0, 0);
[codex:1519831]    493	
[codex:1519831]    494	        (hooksBefore, hooksAfter) = IHookReceiver(cfg.hookReceiver).hookReceiverConfig(address(this));
[codex:1519831]    495	
[codex:1519831]    496	        IShareToken(cfg.collateralShareToken).synchronizeHooks(hooksBefore, hooksAfter);
[codex:1519831]    497	        IShareToken(cfg.protectedShareToken).synchronizeHooks(hooksBefore, hooksAfter);
[codex:1519831]    498	        IShareToken(cfg.debtShareToken).synchronizeHooks(hooksBefore, hooksAfter);
[codex:1519831]    499	    }
[codex:1519831] 
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Analyzing initialization and delegatecall risks**
[codex:1519831] 
[codex:1519831] I’m reviewing potential vulnerabilities around unprotected initialization, delegatecall privileges for hook receivers, and reentrancy guards, carefully weighing whether issues like permissionless initialize, delegatecall misuse, or rounding dust could lead to exploits, while considering typical deployment patterns and protective mechanisms.
[codex:1519831] thinking
[codex:1519831] **Planning large file chunk reading**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '1,2000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 7ms:
[codex:1519831] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1519831] 
[codex:1519831] ================================================================================
[codex:1519831] FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC1363.sol
[codex:1519831] ================================================================================
[codex:1519831] // SPDX-License-Identifier: MIT
[codex:1519831] // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1363.sol)
[codex:1519831] 
[codex:1519831] pragma solidity ^0.8.20;
[codex:1519831] 
[codex:1519831] import {IERC20} from "./IERC20.sol";
[codex:1519831] import {IERC165} from "./IERC165.sol";
[codex:1519831] 
[codex:1519831] /**
[codex:1519831]  * @title IERC1363
[codex:1519831]  * @dev Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363].
[codex:1519831]  *
[codex:1519831]  * Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract
[codex:1519831]  * after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction.
[codex:1519831]  */
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Reading additional file lines**
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '2001,4000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 10ms:
[codex:1519831]             r.slot := slot
[codex:1519831]         }
[codex:1519831]     }
[codex:1519831] 
[codex:1519831]     /**
[codex:1519831]      * @dev Returns an `BooleanSlot` with member `value` located at `slot`.
[codex:1519831]      */
[codex:1519831]     function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {
[codex:1519831]         /// @solidity memory-safe-assembly
[codex:1519831]         assembly {
[codex:1519831]             r.slot := slot
[codex:1519831]         }
[codex:1519831]     }
[codex:1519831] 
[codex:1519831]     /**
[codex:1519831]      * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.
[codex:1519831]      */
[codex:1519831]     function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {
[codex:1519831]         /// @solidity memory-safe-assembly
[codex:1519831]         assembly {
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Processing large output chunk**
[codex:1519831] 
[codex:1519831] I'm continuing through the large output, now focusing on lines 4001 to 5503, making sure to handle the truncated content carefully as I process this final chunk.
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "sed -n '4001,5503p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831]         }
[codex:1519831]     }
[codex:1519831] 
[codex:1519831]     /**
[codex:1519831]      * @dev Returns the downcasted int192 from int256, reverting on
[codex:1519831]      * overflow (when the input is less than smallest int192 or
[codex:1519831]      * greater than largest int192).
[codex:1519831]      *
[codex:1519831]      * Counterpart to Solidity's `int192` operator.
[codex:1519831]      *
[codex:1519831]      * Requirements:
[codex:1519831]      *
[codex:1519831]      * - input must fit into 192 bits
[codex:1519831]      */
[codex:1519831]     function toInt192(int256 value) internal pure returns (int192 downcasted) {
[codex:1519831]         downcasted = int192(value);
[codex:1519831]         if (downcasted != value) {
[codex:1519831]             revert SafeCastOverflowedIntDowncast(192, value);
[codex:1519831]         }
[codex:1519831]     }
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Evaluating reentrancy guards and initialization risks**
[codex:1519831] 
[codex:1519831] I’m analyzing the cross reentrancy protections, noting some functions like `flashLoan` and `accrueInterest` lack guard usage but seem safe due to their logic. I’m also considering the potential delegatecall attack surface via hook receivers. Additionally, I’m identifying two main security issues: unrestricted public `initialize` methods that could be front-run, and risky delegatecalls through hook receivers, both meriting low-to-medium severity attention with supporting code references.
[codex:1519831] exec
[codex:1519831] /bin/bash -lc "nl -ba contracts/silo-core/contracts/lib/Actions.sol | sed -n '20,90p'" in /tmp/codex-multi-9i_oadd0 succeeded in 6ms:
[codex:1519831]     20	import {Hook} from "./Hook.sol";
[codex:1519831]     21	import {CallBeforeQuoteLib} from "./CallBeforeQuoteLib.sol";
[codex:1519831]     22	import {NonReentrantLib} from "./NonReentrantLib.sol";
[codex:1519831]     23	import {ShareTokenLib} from "./ShareTokenLib.sol";
[codex:1519831]     24	import {SiloStorageLib} from "./SiloStorageLib.sol";
[codex:1519831]     25	import {Views} from "./Views.sol";
[codex:1519831]     26	import {Rounding} from "./Rounding.sol";
[codex:1519831]     27	
[codex:1519831]     28	library Actions {
[codex:1519831]     29	    using Address for address;
[codex:1519831]     30	    using SafeERC20 for IERC20;
[codex:1519831]     31	    using Hook for uint256;
[codex:1519831]     32	    using Hook for uint24;
[codex:1519831]     33	    using CallBeforeQuoteLib for ISiloConfig.ConfigData;
[codex:1519831]     34	
[codex:1519831]     35	    bytes32 internal constant _FLASHLOAN_CALLBACK = keccak256("ERC3156FlashBorrower.onFlashLoan");
[codex:1519831]     36	
[codex:1519831]     37	    error FeeOverflow();
[codex:1519831]     38	    error FlashLoanNotPossible();
[codex:1519831]     39	
[codex:1519831] 
[codex:1519831] thinking
[codex:1519831] **Summarizing security findings with JSON output**
[codex:1519831] 
[codex:1519831] I'm drafting JSON detailing two findings: one on permissionless Silo initialization with medium severity under access control, and another on a low-severity delegatecall risk via hook receiver categorized as other. I'll include clear exploit scenarios, recommendations, evidence with file paths and line numbers, and a concise summary string matching the schema requested.
[codex:1519831] codex
[codex:1519831] {"no_findings":false,"summary":"Found 2 issues: permissionless initialization risk and hook-receiver delegatecall privilege that can fully control Silo if compromised.","findings":[{"severity":"medium","category":"access_control","title":"Silo initialization is permissionless and can be front‑run if deployment is not atomic","exploit_scenario":"If a new Silo instance is deployed but `initialize` is not executed in the same transaction, an attacker can call `initialize` first with a malicious `ISiloConfig`, setting hook receiver/oracles/fees and permanently controlling or bricking the vault.","recommendation":"Restrict `initialize` to the factory (e.g., `require(msg.sender == address(factory))`), or ensure deployment + initialization are atomic and no external callers can race. Consider constructor-based configuration when not using proxies/clones.","evidence":"`Silo.initialize` is external with no access control, and `Actions.initialize` accepts any `_siloConfig` once when storage is empty.","locations":["contracts/silo-core/contracts/Silo.sol:65","contracts/silo-core/contracts/lib/Actions.sol:43"]},{"severity":"low","category":"other","title":"Hook receiver can delegatecall arbitrary targets via `callOnBehalfOfSilo`","exploit_scenario":"A compromised or upgradeable hook receiver can invoke `callOnBehalfOfSilo` with `Delegatecall` to execute arbitrary code in Silo storage context, allowing storage corruption or asset drainage without further checks.","recommendation":"Remove or restrict the delegatecall path (allowlist targets), and treat hook receiver as a highly trusted, immutable component with strong governance and security controls.","evidence":"`callOnBehalfOfSilo` allows `Delegatecall` and only checks `msg.sender` equals the configured hook receiver.","locations":["contracts/silo-core/contracts/Silo.sol:55","contracts/silo-core/contracts/lib/Actions.sol:501","contracts/silo-core/contracts/lib/Actions.sol:517"]}]}
[codex:1519831] tokens used
[codex:1519831] 147,528
[codex:1519831] {"no_findings":false,"summary":"Found 2 issues: permissionless initialization risk and hook-receiver delegatecall privilege that can fully control Silo if compromised.","findings":[{"severity":"medium","category":"access_control","title":"Silo initialization is permissionless and can be front‑run if deployment is not atomic","exploit_scenario":"If a new Silo instance is deployed but `initialize` is not executed in the same transaction, an attacker can call `initialize` first with a malicious `ISiloConfig`, setting hook receiver/oracles/fees and permanently controlling or bricking the vault.","recommendation":"Restrict `initialize` to the factory (e.g., `require(msg.sender == address(factory))`), or ensure deployment + initialization are atomic and no external callers can race. Consider constructor-based configuration when not using proxies/clones.","evidence":"`Silo.initialize` is external with no access control, and `Actions.initialize` accepts any `_siloConfig` once when storage is empty.","locations":["contracts/silo-core/contracts/Silo.sol:65","contracts/silo-core/contracts/lib/Actions.sol:43"]},{"severity":"low","category":"other","title":"Hook receiver can delegatecall arbitrary targets via `callOnBehalfOfSilo`","exploit_scenario":"A compromised or upgradeable hook receiver can invoke `callOnBehalfOfSilo` with `Delegatecall` to execute arbitrary code in Silo storage context, allowing storage corruption or asset drainage without further checks.","recommendation":"Remove or restrict the delegatecall path (allowlist targets), and treat hook receiver as a highly trusted, immutable component with strong governance and security controls.","evidence":"`callOnBehalfOfSilo` allows `Delegatecall` and only checks `msg.sender` equals the configured hook receiver.","locations":["contracts/silo-core/contracts/Silo.sol:55","contracts/silo-core/contracts/lib/Actions.sol:501","contracts/silo-core/contracts/lib/Actions.sol:517"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-28T01:00:45.599002+00:00",
        "returncode": 0
    },
    "summary": "Found 2 issues: permissionless initialization risk and hook-receiver delegatecall privilege that can fully control Silo if compromised.",
    "raw_final": {
        "summary": "Found 2 issues: permissionless initialization risk and hook-receiver delegatecall privilege that can fully control Silo if compromised.",
        "findings": [
            {
                "title": "Silo initialization is permissionless and can be front\u2011run if deployment is not atomic",
                "category": "access_control",
                "evidence": "`Silo.initialize` is external with no access control, and `Actions.initialize` accepts any `_siloConfig` once when storage is empty.",
                "severity": "medium",
                "locations": [
                    "contracts/silo-core/contracts/Silo.sol:65",
                    "contracts/silo-core/contracts/lib/Actions.sol:43"
                ],
                "recommendation": "Restrict `initialize` to the factory (e.g., `require(msg.sender == address(factory))`), or ensure deployment + initialization are atomic and no external callers can race. Consider constructor-based configuration when not using proxies/clones.",
                "exploit_scenario": "If a new Silo instance is deployed but `initialize` is not executed in the same transaction, an attacker can call `initialize` first with a malicious `ISiloConfig`, setting hook receiver/oracles/fees and permanently controlling or bricking the vault."
            },
            {
                "title": "Hook receiver can delegatecall arbitrary targets via `callOnBehalfOfSilo`",
                "category": "other",
                "evidence": "`callOnBehalfOfSilo` allows `Delegatecall` and only checks `msg.sender` equals the configured hook receiver.",
                "severity": "low",
                "locations": [
                    "contracts/silo-core/contracts/Silo.sol:55",
                    "contracts/silo-core/contracts/lib/Actions.sol:501",
                    "contracts/silo-core/contracts/lib/Actions.sol:517"
                ],
                "recommendation": "Remove or restrict the delegatecall path (allowlist targets), and treat hook receiver as a highly trusted, immutable component with strong governance and security controls.",
                "exploit_scenario": "A compromised or upgradeable hook receiver can invoke `callOnBehalfOfSilo` with `Delegatecall` to execute arbitrary code in Silo storage context, allowing storage corruption or asset drainage without further checks."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
25
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
22
EXT*/BALANCE
10
Total opcodes
14612
Flags
delegatecall_present heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x04b3
0000000c: JUMPI
0000000d: PUSH0
0000000e: CALLDATALOAD
0000000f: PUSH1 0xe0
00000011: SHR
00000012: DUP1
00000013: PUSH4 0x94bf804d
00000018: GT
00000019: PUSH2 0x026d
0000001c: JUMPI
0000001d: DUP1
0000001e: PUSH4 0xc63d75b6
00000023: GT
00000024: PUSH2 0x014a
00000027: JUMPI
00000028: DUP1
00000029: PUSH4 0xda537660
0000002e: GT
0000002f: PUSH2 0x00be
00000032: JUMPI
00000033: DUP1
00000034: PUSH4 0xeb3beb29
00000039: GT
0000003a: PUSH2 0x0083
0000003d: JUMPI
0000003e: DUP1
0000003f: PUSH4 0xeb3beb29
00000044: EQ
00000045: PUSH2 0x0f88
00000048: JUMPI
00000049: DUP1
0000004a: PUSH4 0xecd658b4
0000004f: EQ
00000050: PUSH2 0x0f9a
00000053: JUMPI
00000054: DUP1
00000055: PUSH4 0xef8b30f7
0000005a: EQ
0000005b: PUSH2 0x0fae
0000005e: JUMPI
0000005f: DUP1
00000060: PUSH4 0xf6b911bc
00000065: EQ
00000066: PUSH2 0x0fcd
00000069: JUMPI
0000006a: DUP1
0000006b: PUSH4 0xfa9b1c6a
00000070: EQ
00000071: PUSH2 0x0fec
00000074: JUMPI
00000075: DUP1
00000076: PUSH4 0xffbaaf7a
0000007b: EQ
0000007c: PUSH2 0x100b
0000007f: JUMPI
00000080: PUSH0
00000081: PUSH0
00000082: REVERT
00000083: JUMPDEST
00000084: DUP1
00000085: PUSH4 0xda537660
0000008a: EQ
0000008b: PUSH2 0x0eed
0000008e: JUMPI
0000008f: DUP1
00000090: PUSH4 0xdce5c2db
00000095: EQ
00000096: PUSH2 0x0f0c
00000099: JUMPI
0000009a: DUP1
0000009b: PUSH4 0xdd62ed3e
000000a0: EQ
000000a1: PUSH2 0x0f2b
000000a4: JUMPI
000000a5: DUP1
000000a6: PUSH4 0xe36754eb
000000ab: EQ
000000ac: PUSH2 0x0f4a
000000af: JUMPI
000000b0: DUP1
000000b1: PUSH4 0xe72bec57
000000b6: EQ
000000b7: PUSH2 0x0f69
000000ba: JUMPI
000000bb: PUSH0
000000bc: PUSH0
000000bd: REVERT
000000be: JUMPDEST
000000bf: DUP1
000000c0: PUSH4 0xd505accf
000000c5: GT
000000c6: PUSH2 0x010f
000000c9: JUMPI
000000ca: DUP1
000000cb: PUSH4 0xd505accf
000000d0: EQ
000000d1: PUSH2 0x0e52
000000d4: JUMPI
000000d5: DUP1
000000d6: PUSH4 0xd5164184
000000db: EQ
000000dc: PUSH2 0x0e71
000000df: JUMPI
000000e0: DUP1
000000e1: PUSH4 0xd714fd19
000000e6: EQ
000000e7: PUSH2 0x0a21
000000ea: JUMPI
000000eb: DUP1
000000ec: PUSH4 0xd905777e
000000f1: EQ
000000f2: PUSH2 0x0e90
000000f5: JUMPI
000000f6: DUP1
000000f7: PUSH4 0xd985616c
000000fc: EQ
000000fd: PUSH2 0x0eaf
00000100: JUMPI
00000101: DUP1
00000102: PUSH4 0xd9d98ce4
00000107: EQ
00000108: PUSH2 0x0ece
0000010b: JUMPI
0000010c: PUSH0
0000010d: PUSH0
0000010e: REVERT
0000010f: JUMPDEST
00000110: DUP1
00000111: PUSH4 0xc63d75b6
00000116: EQ
00000117: PUSH2 0x0837
0000011a: JUMPI
0000011b: DUP1
0000011c: PUSH4 0xc6c3bbe6
00000121: EQ
00000122: PUSH2 0x0de1
00000125: JUMPI
00000126: DUP1
00000127: PUSH4 0xc6e6f592
0000012c: EQ
0000012d: PUSH2 0x0e00
00000130: JUMPI
00000131: DUP1
00000132: PUSH4 0xcad1aacf
00000137: EQ
00000138: PUSH2 0x0e1f
0000013b: JUMPI
0000013c: DUP1
0000013d: PUSH4 0xce96cb77
00000142: EQ
00000143: PUSH2 0x0e33
00000146: JUMPI
00000147: PUSH0
00000148: PUSH0
00000149: REVERT
0000014a: JUMPDEST
0000014b: DUP1
0000014c: PUSH4 0xb3d7f6b9
00000151: GT
00000152: PUSH2 0x01e1
00000155: JUMPI
00000156: DUP1
00000157: PUSH4 0xba087652
0000015c: GT
0000015d: PUSH2 0x01a6
00000160: JUMPI
00000161: DUP1
00000162: PUSH4 0xba087652
00000167: EQ
00000168: PUSH2 0x0d13
0000016b: JUMPI
0000016c: DUP1
0000016d: PUSH4 0xba8ffe65
00000172: EQ
00000173: PUSH2 0x0d32
00000176: JUMPI
00000177: DUP1
00000178: PUSH4 0xbf722ca2
0000017d: EQ
0000017e: PUSH2 0x0d51
00000181: JUMPI
00000182: DUP1
00000183: PUSH4 0xc061ddc7
00000188: EQ
00000189: PUSH2 0x0d70
0000018c: JUMPI
0000018d: DUP1
0000018e: PUSH4 0xc45a0155
00000193: EQ
00000194: PUSH2 0x0d8f
00000197: JUMPI
00000198: DUP1
00000199: PUSH4 0xc4d66de8
0000019e: EQ
0000019f: PUSH2 0x0dc2
000001a2: JUMPI
000001a3: PUSH0
000001a4: PUSH0
000001a5: REVERT
000001a6: JUMPDEST
000001a7: DUP1
000001a8: PUSH4 0xb3d7f6b9
000001ad: EQ
000001ae: PUSH2 0x0c78
000001b1: JUMPI
000001b2: DUP1
000001b3: PUSH4 0xb460af94
000001b8: EQ
000001b9: PUSH2 0x0c97
000001bc: JUMPI
000001bd: DUP1
000001be: PUSH4 0xb6d821c7
000001c3: EQ
000001c4: PUSH2 0x0cb6
000001c7: JUMPI
000001c8: DUP1
000001c9: PUSH4 0xb7ec8d4b
000001ce: EQ
000001cf: PUSH2 0x0cd5
000001d2: JUMPI
000001d3: DUP1
000001d4: PUSH4 0xb8337c2a
000001d9: EQ
000001da: PUSH2 0x0cf4
000001dd: JUMPI
000001de: PUSH0
000001df: PUSH0
000001e0: REVERT
000001e1: JUMPDEST
000001e2: DUP1
000001e3: PUSH4 0xa1ecef5c
000001e8: GT
000001e9: PUSH2 0x0232
000001ec: JUMPI
000001ed: DUP1
000001ee: PUSH4 0xa1ecef5c
000001f3: EQ
000001f4: PUSH2 0x0bf3
000001f7: JUMPI
000001f8: DUP1
000001f9: PUSH4 0xa1ff9bee
000001fe: EQ
000001ff: PUSH2 0x04be
00000202: JUMPI
00000203: DUP1
00000204: PUSH4 0xa6afed95
00000209: EQ
0000020a: PUSH2 0x0c07
0000020d: JUMPI
0000020e: DUP1
0000020f: PUSH4 0xa7d6e44b
00000214: EQ
00000215: PUSH2 0x0c1b
00000218: JUMPI
00000219: DUP1
0000021a: PUSH4 0xa9059cbb
0000021f: EQ
00000220: PUSH2 0x0c3a
00000223: JUMPI
00000224: DUP1
00000225: PUSH4 0xacb70815
0000022a: EQ
0000022b: PUSH2 0x0c59
0000022e: JUMPI
0000022f: PUSH0
00000230: PUSH0
00000231: REVERT
00000232: JUMPDEST
00000233: DUP1
00000234: PUSH4 0x94bf804d
00000239: EQ
0000023a: PUSH2 0x0b14
0000023d: JUMPI
0000023e: DUP1
0000023f: PUSH4 0x95d89b41
00000244: EQ
00000245: PUSH2 0x0b33
00000248: JUMPI
00000249: DUP1
0000024a: PUSH4 0x97a9d457
0000024f: EQ
00000250: PUSH2 0x0b47
00000253: JUMPI
00000254: DUP1
00000255: PUSH4 0x9d35abaf
0000025a: EQ
0000025b: PUSH2 0x0b66
0000025e: JUMPI
0000025f: DUP1
00000260: PUSH4 0x9ef2fda0
00000265: EQ
00000266: PUSH2 0x0bb4
00000269: JUMPI
0000026a: PUSH0
0000026b: PUSH0
0000026c: REVERT
0000026d: JUMPDEST
0000026e: DUP1
0000026f: PUSH4 0x421a1aee
00000274: GT
00000275: PUSH2 0x039b
00000278: JUMPI
00000279: DUP1
0000027a: PUSH4 0x6e236614
0000027f: GT
00000280: PUSH2 0x030f
00000283: JUMPI
00000284: DUP1
00000285: PUSH4 0x7ecebe00
0000028a: GT
0000028b: PUSH2 0x02d4
0000028e: JUMPI
0000028f: DUP1
00000290: PUSH4 0x7ecebe00
00000295: EQ
00000296: PUSH2 0x0a35
00000299: JUMPI
0000029a: DUP1
0000029b: PUSH4 0x7fe2c8b7
000002a0: EQ
000002a1: PUSH2 0x0a54
000002a4: JUMPI
000002a5: DUP1
000002a6: PUSH4 0x7ff00077
000002ab: EQ
000002ac: PUSH2 0x0a73
000002af: JUMPI
000002b0: DUP1
000002b1: PUSH4 0x84b0196e
000002b6: EQ
000002b7: PUSH2 0x0a92
000002ba: JUMPI
000002bb: DUP1
000002bc: PUSH4 0x889576f7
000002c1: EQ
000002c2: PUSH2 0x0ab9
000002c5: JUMPI
000002c6: DUP1
000002c7: PUSH4 0x8fea8062
000002cc: EQ
000002cd: PUSH2 0x0ad8
000002d0: JUMPI
000002d1: PUSH0
000002d2: PUSH0
000002d3: REVERT
000002d4: JUMPDEST
000002d5: DUP1
000002d6: PUSH4 0x6e236614
000002db: EQ
000002dc: PUSH2 0x09a5
000002df: JUMPI
000002e0: DUP1
000002e1: PUSH4 0x6e553f65
000002e6: EQ
000002e7: PUSH2 0x09c4
000002ea: JUMPI
000002eb: DUP1
000002ec: PUSH4 0x70a08231
000002f1: EQ
000002f2: PUSH2 0x09e3
000002f5: JUMPI
000002f6: DUP1
000002f7: PUSH4 0x78007e23
000002fc: EQ
000002fd: PUSH2 0x0a02
00000300: JUMPI
00000301: DUP1
00000302: PUSH4 0x79502c55
00000307: EQ
00000308: PUSH2 0x0a21
0000030b: JUMPI
0000030c: PUSH0
0000030d: PUSH0
0000030e: REVERT
0000030f: JUMPDEST
00000310: DUP1
00000311: PUSH4 0x571b9544
00000316: GT
00000317: PUSH2 0x0360
0000031a: JUMPI
0000031b: DUP1
0000031c: PUSH4 0x571b9544
00000321: EQ
00000322: PUSH2 0x08eb
00000325: JUMPI
00000326: DUP1
00000327: PUSH4 0x5cffe9de
0000032c: EQ
0000032d: PUSH2 0x090a
00000330: JUMPI
00000331: DUP1
00000332: PUSH4 0x5d4086af
00000337: EQ
00000338: PUSH2 0x0929
0000033b: JUMPI
0000033c: DUP1
0000033d: PUSH4 0x5f301149
00000342: EQ
00000343: PUSH2 0x0948
00000346: JUMPI
00000347: DUP1
00000348: PUSH4 0x613255ab
0000034d: EQ
0000034e: PUSH2 0x0967
00000351: JUMPI
00000352: DUP1
00000353: PUSH4 0x6e1f8f7e
00000358: EQ
00000359: PUSH2 0x0986
0000035c: JUMPI
0000035d: PUSH0
0000035e: PUSH0
0000035f: REVERT
00000360: JUMPDEST
00000361: DUP1
00000362: PUSH4 0x421a1aee
00000367: EQ
00000368: PUSH2 0x0857
0000036b: JUMPI
0000036c: DUP1
0000036d: PUSH4 0x4624c6a7
00000372: EQ
00000373: PUSH2 0x0876
00000376: JUMPI
00000377: DUP1
00000378: PUSH4 0x476343ee
0000037d: EQ
0000037e: PUSH2 0x0897
00000381: JUMPI
00000382: DUP1
00000383: PUSH4 0x4c7b0f3c
00000388: EQ
00000389: PUSH2 0x08ad
0000038c: JUMPI
0000038d: DUP1
0000038e: PUSH4 0x4cdad506
00000393: EQ
00000394: PUSH2 0x08cc
00000397: JUMPI
00000398: PUSH0
00000399: PUSH0
0000039a: REVERT
0000039b: JUMPDEST
0000039c: DUP1
0000039d: PUSH4 0x18160ddd
000003a2: GT
000003a3: PUSH2 0x0432
000003a6: JUMPI
000003a7: DUP1
000003a8: PUSH4 0x3644e515
000003ad: GT
000003ae: PUSH2 0x03f7
000003b1: JUMPI
000003b2: DUP1
000003b3: PUSH4 0x3644e515
000003b8: EQ
000003b9: PUSH2 0x0774
000003bc: JUMPI
000003bd: DUP1
000003be: PUSH4 0x37224626
000003c3: EQ
000003c4: PUSH2 0x0788
000003c7: JUMPI
000003c8: DUP1
000003c9: PUSH4 0x38b51ce1
000003ce: EQ
000003cf: PUSH2 0x07c3
000003d2: JUMPI
000003d3: DUP1
000003d4: PUSH4 0x38d52e0f
000003d9: EQ
000003da: PUSH2 0x07e2
000003dd: JUMPI
000003de: DUP1
000003df: PUSH4 0x39c5c505
000003e4: EQ
000003e5: PUSH2 0x080e
000003e8: JUMPI
000003e9: DUP1
000003ea: PUSH4 0x402d267d
000003ef: EQ
000003f0: PUSH2 0x0837
000003f3: JUMPI
000003f4: PUSH0
000003f5: PUSH0
000003f6: REVERT
000003f7: JUMPDEST
000003f8: DUP1
000003f9: PUSH4 0x18160ddd
000003fe: EQ
000003ff: PUSH2 0x06be
00000402: JUMPI
00000403: DUP1
00000404: PUSH4 0x23b872dd
00000409: EQ
0000040a: PUSH2 0x06f1
0000040d: JUMPI
0000040e: DUP1
0000040f: PUSH4 0x267e54a7
00000414: EQ
00000415: PUSH2 0x0710
00000418: JUMPI
00000419: DUP1
0000041a: PUSH4 0x29d6509a
0000041f: EQ
00000420: PUSH2 0x072f
00000423: JUMPI
00000424: DUP1
00000425: PUSH4 0x313ce567
0000042a: EQ
0000042b: PUSH2 0x074e
0000042e: JUMPI
0000042f: PUSH0
00000430: PUSH0
00000431: REVERT
00000432: JUMPDEST
00000433: DUP1
00000434: PUSH4 0x095ea7b3
00000439: GT
0000043a: PUSH2 0x0478
0000043d: JUMPI
0000043e: DUP1
0000043f: PUSH4 0x095ea7b3
00000444: EQ
00000445: PUSH2 0x0558
00000448: JUMPI
00000449: DUP1
0000044a: PUSH4 0x0a28a477
0000044f: EQ
00000450: PUSH2 0x0587
00000453: JUMPI
00000454: DUP1
00000455: PUSH4 0x0ed4fe31
0000045a: EQ
0000045b: PUSH2 0x05a6
0000045e: JUMPI
0000045f: DUP1
00000460: PUSH4 0x11b5e682
00000465: EQ
00000466: PUSH2 0x0680
00000469: JUMPI
0000046a: DUP1
0000046b: PUSH4 0x12d4c574
00000470: EQ
00000471: PUSH2 0x069f
00000474: JUMPI
00000475: PUSH0
00000476: PUSH0
00000477: REVERT
00000478: JUMPDEST
00000479: DUP1
0000047a: PUSH4 0x01e1d114
0000047f: EQ
00000480: PUSH2 0x04be
00000483: JUMPI
00000484: DUP1
00000485: PUSH4 0x06fdde03
0000048a: EQ
0000048b: PUSH2 0x04e5
0000048e: JUMPI
0000048f: DUP1
00000490: PUSH4 0x071bf3ff
00000495: EQ
00000496: PUSH2 0x0506
00000499: JUMPI
0000049a: DUP1
0000049b: PUSH4 0x07a2d13a
000004a0: EQ
000004a1: PUSH2 0x0525
000004a4: JUMPI
000004a5: DUP1
000004a6: PUSH4 0x0910a510
000004ab: EQ
000004ac: PUSH2 0x0544
000004af: JUMPI
000004b0: PUSH0
000004b1: PUSH0
000004b2: REVERT
000004b3: JUMPDEST
000004b4: CALLDATASIZE
000004b5: PUSH2 0x04ba
000004b8: JUMPI
000004b9: STOP
000004ba: JUMPDEST
000004bb: PUSH0
000004bc: PUSH0
000004bd: REVERT
000004be: JUMPDEST
000004bf: CALLVALUE
000004c0: DUP1
000004c1: ISZERO
000004c2: PUSH2 0x04c9
000004c5: JUMPI
000004c6: PUSH0
000004c7: PUSH0
000004c8: REVERT
000004c9: JUMPDEST
000004ca: POP
000004cb: PUSH2 0x04d2
000004ce: PUSH2 0x101f
000004d1: JUMP
000004d2: JUMPDEST
000004d3: PUSH1 0x40
000004d5: MLOAD
000004d6: SWAP1
000004d7: DUP2
000004d8: MSTORE
000004d9: PUSH1 0x20
000004db: ADD
000004dc: JUMPDEST
000004dd: PUSH1 0x40
000004df: MLOAD
000004e0: DUP1
000004e1: SWAP2
000004e2: SUB
000004e3: SWAP1
000004e4: RETURN
000004e5: JUMPDEST
000004e6: CALLVALUE
000004e7: DUP1
000004e8: ISZERO
000004e9: PUSH2 0x04f0
000004ec: JUMPI
000004ed: PUSH0
000004ee: PUSH0
000004ef: REVERT
000004f0: JUMPDEST
000004f1: POP
000004f2: PUSH2 0x04f9
000004f5: PUSH2 0x102d
000004f8: JUMP
000004f9: JUMPDEST
000004fa: PUSH1 0x40
000004fc: MLOAD
000004fd: PUSH2 0x04dc
00000500: SWAP2
00000501: SWAP1
00000502: PUSH2 0x4a44
00000505: JUMP
00000506: JUMPDEST
00000507: CALLVALUE
00000508: DUP1
00000509: ISZERO
0000050a: PUSH2 0x0511
0000050d: JUMPI
0000050e: PUSH0
0000050f: PUSH0
00000510: REVERT
00000511: JUMPDEST
00000512: POP
00000513: PUSH2 0x04d2
00000516: PUSH2 0x0520
00000519: CALLDATASIZE
0000051a: PUSH1 0x04
0000051c: PUSH2 0x4a76
0000051f: JUMP
00000520: JUMPDEST
00000521: PUSH2 0x109c
00000524: JUMP
00000525: JUMPDEST
00000526: CALLVALUE
00000527: DUP1
00000528: ISZERO
00000529: PUSH2 0x0530
0000052c: JUMPI
0000052d: PUSH0
0000052e: PUSH0
0000052f: REVERT
00000530: JUMPDEST
00000531: POP
00000532: PUSH2 0x04d2
00000535: PUSH2 0x053f
00000538: CALLDATASIZE
00000539: PUSH1 0x04
0000053b: PUSH2 0x4aad
0000053e: JUMP
0000053f: JUMPDEST
00000540: PUSH2 0x10af
00000543: JUMP
00000544: JUMPDEST
00000545: CALLVALUE
00000546: DUP1
00000547: ISZERO
00000548: PUSH2 0x054f
0000054b: JUMPI
0000054c: PUSH0
0000054d: PUSH0
0000054e: REVERT
0000054f: JUMPDEST
00000550: POP
00000551: PUSH2 0x04d2
00000554: PUSH2 0x10c1
00000557: JUMP
00000558: JUMPDEST
00000559: CALLVALUE
0000055a: DUP1
0000055b: ISZERO
0000055c: PUSH2 0x0563
0000055f: JUMPI
00000560: PUSH0
00000561: PUSH0
00000562: REVERT
00000563: JUMPDEST
00000564: POP
00000565: PUSH2 0x0577
00000568: PUSH2 0x0572
0000056b: CALLDATASIZE
0000056c: PUSH1 0x04
0000056e: PUSH2 0x4ac4
00000571: JUMP
00000572: JUMPDEST
00000573: PUSH2 0x10d2
00000576: JUMP
00000577: JUMPDEST
00000578: PUSH1 0x40
0000057a: MLOAD
0000057b: SWAP1
0000057c: ISZERO
0000057d: ISZERO
0000057e: DUP2
0000057f: MSTORE
00000580: PUSH1 0x20
00000582: ADD
00000583: PUSH2 0x04dc
00000586: JUMP
00000587: JUMPDEST
00000588: CALLVALUE
00000589: DUP1
0000058a: ISZERO
0000058b: PUSH2 0x0592
0000058e: JUMPI
0000058f: PUSH0
00000590: PUSH0
00000591: REVERT
00000592: JUMPDEST
00000593: POP
00000594: PUSH2 0x04d2
00000597: PUSH2 0x05a1
0000059a: CALLDATASIZE
0000059b: PUSH1 0x04
0000059d: PUSH2 0x4aad
000005a0: JUMP
000005a1: JUMPDEST
000005a2: PUSH2 0x10f4
000005a5: JUMP
000005a6: JUMPDEST
000005a7: CALLVALUE
000005a8: DUP1
000005a9: ISZERO
000005aa: PUSH2 0x05b1
000005ad: JUMPI
000005ae: PUSH0
000005af: PUSH0
000005b0: REVERT
000005b1: JUMPDEST
000005b2: POP
000005b3: PUSH2 0x0637
000005b6: PUSH1 0x40
000005b8: DUP1
000005b9: MLOAD
000005ba: PUSH1 0x80
000005bc: DUP2
000005bd: ADD
000005be: DUP3
000005bf: MSTORE
000005c0: PUSH0
000005c1: DUP1
000005c2: DUP3
000005c3: MSTORE
000005c4: PUSH1 0x20
000005c6: DUP3
000005c7: ADD
000005c8: DUP2
000005c9: SWAP1
000005ca: MSTORE
000005cb: SWAP2
000005cc: DUP2
000005cd: ADD
000005ce: DUP3
000005cf: SWAP1
000005d0: MSTORE
000005d1: PUSH1 0x60
000005d3: DUP2
000005d4: ADD
000005d5: SWAP2
000005d6: SWAP1
000005d7: SWAP2
000005d8: MSTORE
000005d9: PUSH0
000005da: MLOAD
000005db: PUSH1 0x20
000005dd: PUSH2 0x5708
000005e0: PUSH0
000005e1: CODECOPY
000005e2: PUSH0
000005e3: MLOAD
000005e4: SWAP1
000005e5: PUSH0
000005e6: MSTORE
000005e7: PUSH1 0x40
000005e9: DUP1
000005ea: MLOAD
000005eb: PUSH1 0x80
000005ed: DUP2
000005ee: ADD
000005ef: DUP3
000005f0: MSTORE
000005f1: PUSH1 0x02
000005f3: SWAP3
000005f4: SWAP1
000005f5: SWAP3
000005f6: ADD
000005f7: SLOAD
000005f8: PUSH1 0x01
000005fa: PUSH1 0x01
000005fc: PUSH1 0xa0
000005fe: SHL
000005ff: SUB
00000600: DUP2
00000601: AND
00000602: DUP4
00000603: MSTORE
00000604: PUSH3 0xffffff
00000608: PUSH1 0x01
0000060a: PUSH1 0xa0
0000060c: SHL
0000060d: DUP3
0000060e: DIV
0000060f: DUP2
00000610: AND
00000611: PUSH1 0x20
00000613: DUP6
00000614: ADD
00000615: MSTORE
00000616: PUSH1 0x01
00000618: PUSH1 0xb8
0000061a: SHL
0000061b: DUP3
0000061c: DIV
0000061d: DUP2
0000061e: AND
0000061f: SWAP3
00000620: DUP5
00000621: ADD
00000622: SWAP3
00000623: SWAP1
00000624: SWAP3
00000625: MSTORE
00000626: PUSH1 0x01
00000628: PUSH1 0xd0
0000062a: SHL
0000062b: SWAP1
0000062c: DIV
0000062d: AND
0000062e: PUSH1 0x60
00000630: DUP3
00000631: ADD
00000632: MSTORE
00000633: SWAP2
00000634: SWAP1
00000635: POP
00000636: JUMP
00000637: JUMPDEST
00000638: PUSH1 0x40
0000063a: MLOAD
0000063b: PUSH2 0x04dc
0000063e: SWAP2
0000063f: SWAP1
00000640: DUP2
00000641: MLOAD
00000642: PUSH1 0x01
00000644: PUSH1 0x01
00000646: PUSH1 0xa0
00000648: SHL
00000649: SUB
0000064a: AND
0000064b: DUP2
0000064c: MSTORE
0000064d: PUSH1 0x20
0000064f: DUP1
00000650: DUP4
00000651: ADD
00000652: MLOAD
00000653: PUSH3 0xffffff
00000657: SWAP1
00000658: DUP2
00000659: AND
0000065a: SWAP2
0000065b: DUP4
0000065c: ADD
0000065d: SWAP2
0000065e: SWAP1
0000065f: SWAP2
00000660: MSTORE
00000661: PUSH1 0x40
00000663: DUP1
00000664: DUP5
00000665: ADD
00000666: MLOAD
00000667: DUP3
00000668: AND
00000669: SWAP1
0000066a: DUP4
0000066b: ADD
0000066c: MSTORE
0000066d: PUSH1 0x60
0000066f: SWAP3
00000670: DUP4
00000671: ADD
00000672: MLOAD
00000673: AND
00000674: SWAP2
00000675: DUP2
00000676: ADD
00000677: SWAP2
00000678: SWAP1
00000679: SWAP2
0000067a: MSTORE
0000067b: PUSH1 0x80
0000067d: ADD
0000067e: SWAP1
0000067f: JUMP
00000680: JUMPDEST
00000681: CALLVALUE
00000682: DUP1
00000683: ISZERO
00000684: PUSH2 0x068b
00000687: JUMPI
00000688: PUSH0
00000689: PUSH0
0000068a: REVERT
0000068b: JUMPDEST
0000068c: POP
0000068d: PUSH2 0x04d2
00000690: PUSH2 0x069a
00000693: CALLDATASIZE
00000694: PUSH1 0x04
00000696: PUSH2 0x4aee
00000699: JUMP
0000069a: JUMPDEST
0000069b: PUSH2 0x1100
0000069e: JUMP
0000069f: JUMPDEST
000006a0: CALLVALUE
000006a1: DUP1
000006a2: ISZERO
000006a3: PUSH2 0x06aa
000006a6: JUMPI
000006a7: PUSH0
000006a8: PUSH0
000006a9: REVERT
000006aa: JUMPDEST
000006ab: POP
000006ac: PUSH2 0x04d2
000006af: PUSH2 0x06b9
000006b2: CALLDATASIZE
000006b3: PUSH1 0x04
000006b5: PUSH2 0x4a76
000006b8: JUMP
000006b9: JUMPDEST
000006ba: PUSH2 0x110b
000006bd: JUMP
000006be: JUMPDEST
000006bf: CALLVALUE
000006c0: DUP1
000006c1: ISZERO
000006c2: PUSH2 0x06c9
000006c5: JUMPI
000006c6: PUSH0
000006c7: PUSH0
000006c8: REVERT
000006c9: JUMPDEST
000006ca: POP
000006cb: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02
000006ec: SLOAD
000006ed: PUSH2 0x04d2
000006f0: JUMP
000006f1: JUMPDEST
000006f2: CALLVALUE
000006f3: DUP1
000006f4: ISZERO
000006f5: PUSH2 0x06fc
000006f8: JUMPI
000006f9: PUSH0
000006fa: PUSH0
000006fb: REVERT
000006fc: JUMPDEST
000006fd: POP
000006fe: PUSH2 0x0577
00000701: PUSH2 0x070b
00000704: CALLDATASIZE
00000705: PUSH1 0x04
00000707: PUSH2 0x4b11
0000070a: JUMP
0000070b: JUMPDEST
0000070c: PUSH2 0x111e
0000070f: JUMP
00000710: JUMPDEST
00000711: CALLVALUE
00000712: DUP1
00000713: ISZERO
00000714: PUSH2 0x071b
00000717: JUMPI
00000718: PUSH0
00000719: PUSH0
0000071a: REVERT
0000071b: JUMPDEST
0000071c: POP
0000071d: PUSH2 0x04d2
00000720: PUSH2 0x072a
00000723: CALLDATASIZE
00000724: PUSH1 0x04
00000726: PUSH2 0x4aee
00000729: JUMP
0000072a: JUMPDEST
0000072b: PUSH2 0x118d
0000072e: JUMP
0000072f: JUMPDEST
00000730: CALLVALUE
00000731: DUP1
00000732: ISZERO
00000733: PUSH2 0x073a
00000736: JUMPI
00000737: PUSH0
00000738: PUSH0
00000739: REVERT
0000073a: JUMPDEST
0000073b: POP
0000073c: PUSH2 0x04d2
0000073f: PUSH2 0x0749
00000742: CALLDATASIZE
00000743: PUSH1 0x04
00000745: PUSH2 0x4b4f
00000748: JUMP
00000749: JUMPDEST
0000074a: PUSH2 0x1198
0000074d: JUMP
0000074e: JUMPDEST
0000074f: CALLVALUE
00000750: DUP1
00000751: ISZERO
00000752: PUSH2 0x0759
00000755: JUMPI
00000756: PUSH0
00000757: PUSH0
00000758: REVERT
00000759: JUMPDEST
0000075a: POP
0000075b: PUSH2 0x0762
0000075e: PUSH2 0x1276
00000761: JUMP
00000762: JUMPDEST
00000763: PUSH1 0x40
00000765: MLOAD
00000766: PUSH1 0xff
00000768: SWAP1
00000769: SWAP2
0000076a: AND
0000076b: DUP2
0000076c: MSTORE
0000076d: PUSH1 0x20
0000076f: ADD
00000770: PUSH2 0x04dc
00000773: JUMP
00000774: JUMPDEST
00000775: CALLVALUE
00000776: DUP1
00000777: ISZERO
00000778: PUSH2 0x077f
0000077b: JUMPI
0000077c: PUSH0
0000077d: PUSH0
0000077e: REVERT
0000077f: JUMPDEST
00000780: POP
00000781: PUSH2 0x04d2
00000784: PUSH2 0x12e2
00000787: JUMP
00000788: JUMPDEST
00000789: CALLVALUE
0000078a: DUP1
0000078b: ISZERO
0000078c: PUSH2 0x0793
0000078f: JUMPI
00000790: PUSH0
00000791: PUSH0
00000792: REVERT
00000793: JUMPDEST
00000794: POP
00000795: PUSH2 0x079c
00000798: PUSH2 0x12eb
0000079b: JUMP
0000079c: JUMPDEST
0000079d: PUSH1 0x40
0000079f: DUP1
000007a0: MLOAD
000007a1: DUP3
000007a2: MLOAD
000007a3: PUSH1 0x01
000007a5: PUSH1 0x01
000007a7: PUSH1 0x40
000007a9: SHL
000007aa: SUB
000007ab: SWAP1
000007ac: DUP2
000007ad: AND
000007ae: DUP3
000007af: MSTORE
000007b0: PUSH1 0x20
000007b2: SWAP4
000007b3: DUP5
000007b4: ADD
000007b5: MLOAD
000007b6: AND
000007b7: SWAP3
000007b8: DUP2
000007b9: ADD
000007ba: SWAP3
000007bb: SWAP1
000007bc: SWAP3
000007bd: MSTORE
000007be: ADD
000007bf: PUSH2 0x04dc
000007c2: JUMP
000007c3: JUMPDEST
000007c4: CALLVALUE
000007c5: DUP1
000007c6: ISZERO
000007c7: PUSH2 0x07ce
000007ca: JUMPI
000007cb: PUSH0
000007cc: PUSH0
000007cd: REVERT
000007ce: JUMPDEST
000007cf: POP
000007d0: PUSH2 0x0577
000007d3: PUSH2 0x07dd
000007d6: CALLDATASIZE
000007d7: PUSH1 0x04
000007d9: PUSH2 0x4b4f
000007dc: JUMP
000007dd: JUMPDEST
000007de: PUSH2 0x135b
000007e1: JUMP
000007e2: JUMPDEST
000007e3: CALLVALUE
000007e4: DUP1
000007e5: ISZERO
000007e6: PUSH2 0x07ed
000007e9: JUMPI
000007ea: PUSH0
000007eb: PUSH0
000007ec: REVERT
000007ed: JUMPDEST
000007ee: POP
000007ef: PUSH2 0x07f6
000007f2: PUSH2 0x13d7
000007f5: JUMP
000007f6: JUMPDEST
000007f7: PUSH1 0x40
000007f9: MLOAD
000007fa: PUSH1 0x01
000007fc: PUSH1 0x01
000007fe: PUSH1 0xa0
00000800: SHL
00000801: SUB
00000802: SWAP1
00000803: SWAP2
00000804: AND
00000805: DUP2
00000806: MSTORE
00000807: PUSH1 0x20
00000809: ADD
0000080a: PUSH2 0x04dc
0000080d: JUMP
0000080e: JUMPDEST
0000080f: CALLVALUE
00000810: DUP1
00000811: ISZERO
00000812: PUSH2 0x0819
00000815: JUMPI
00000816: PUSH0
00000817: PUSH0
00000818: REVERT
00000819: JUMPDEST
0000081a: POP
0000081b: PUSH2 0x0822
0000081e: PUSH2 0x1448
00000821: JUMP
00000822: JUMPDEST
00000823: PUSH1 0x40
00000825: DUP1
00000826: MLOAD
00000827: SWAP3
00000828: DUP4
00000829: MSTORE
0000082a: PUSH1 0x20
0000082c: DUP4
0000082d: ADD
0000082e: SWAP2
0000082f: SWAP1
00000830: SWAP2
00000831: MSTORE
00000832: ADD
00000833: PUSH2 0x04dc
00000836: JUMP
00000837: JUMPDEST
00000838: CALLVALUE
00000839: DUP1
0000083a: ISZERO
0000083b: PUSH2 0x0842
0000083e: JUMPI
0000083f: PUSH0
00000840: PUSH0
00000841: REVERT
00000842: JUMPDEST
00000843: POP
00000844: PUSH2 0x04d2
00000847: PUSH2 0x0851
0000084a: CALLDATASIZE
0000084b: PUSH1 0x04
0000084d: PUSH2 0x4b4f
00000850: JUMP
00000851: JUMPDEST
00000852: POP
00000853: PUSH0
00000854: NOT
00000855: SWAP1
00000856: JUMP
00000857: JUMPDEST
00000858: CALLVALUE
00000859: DUP1
0000085a: ISZERO
0000085b: PUSH2 0x0862
0000085e: JUMPI
0000085f: PUSH0
00000860: PUSH0
00000861: REVERT
00000862: JUMPDEST
00000863: POP
00000864: PUSH2 0x04d2
00000867: PUSH2 0x0871
0000086a: CALLDATASIZE
0000086b: PUSH1 0x04
0000086d: PUSH2 0x4b4f
00000870: JUMP
00000871: JUMPDEST
00000872: PUSH2 0x145b
00000875: JUMP
00000876: JUMPDEST
00000877: PUSH2 0x0889
0000087a: PUSH2 0x0884
0000087d: CALLDATASIZE
0000087e: PUSH1 0x04
00000880: PUSH2 0x4ba7
00000883: JUMP
00000884: JUMPDEST
00000885: PUSH2 0x14dd
00000888: JUMP
00000889: JUMPDEST
0000088a: PUSH1 0x40
0000088c: MLOAD
0000088d: PUSH2 0x04dc
00000890: SWAP3
00000891: SWAP2
00000892: SWAP1
00000893: PUSH2 0x4c14
00000896: JUMP
00000897: JUMPDEST
00000898: CALLVALUE
00000899: DUP1
0000089a: ISZERO
0000089b: PUSH2 0x08a2
0000089e: JUMPI
0000089f: PUSH0
000008a0: PUSH0
000008a1: REVERT
000008a2: JUMPDEST
000008a3: POP
000008a4: PUSH2 0x08ab
000008a7: PUSH2 0x14fb
000008aa: JUMP
000008ab: JUMPDEST
000008ac: STOP
000008ad: JUMPDEST
000008ae: CALLVALUE
000008af: DUP1
000008b0: ISZERO
000008b1: PUSH2 0x08b8
000008b4: JUMPI
000008b5: PUSH0
000008b6: PUSH0
000008b7: REVERT
000008b8: JUMPDEST
000008b9: POP
000008ba: PUSH2 0x08ab
000008bd: PUSH2 0x08c7
000008c0: CALLDATASIZE
000008c1: PUSH1 0x04
000008c3: PUSH2 0x4c3e
000008c6: JUMP
000008c7: JUMPDEST
000008c8: PUSH2 0x15ca
000008cb: JUMP
000008cc: JUMPDEST
000008cd: CALLVALUE
000008ce: DUP1
000008cf: ISZERO
000008d0: PUSH2 0x08d7
000008d3: JUMPI
000008d4: PUSH0
000008d5: PUSH0
000008d6: REVERT
000008d7: JUMPDEST
000008d8: POP
000008d9: PUSH2 0x04d2
000008dc: PUSH2 0x08e6
000008df: CALLDATASIZE
000008e0: PUSH1 0x04
000008e2: PUSH2 0x4aad
000008e5: JUMP
000008e6: JUMPDEST
000008e7: PUSH2 0x165e
000008ea: JUMP
000008eb: JUMPDEST
000008ec: CALLVALUE
000008ed: DUP1
000008ee: ISZERO
000008ef: PUSH2 0x08f6
000008f2: JUMPI
000008f3: PUSH0
000008f4: PUSH0
000008f5: REVERT
000008f6: JUMPDEST
000008f7: POP
000008f8: PUSH2 0x04d2
000008fb: PUSH2 0x0905
000008fe: CALLDATASIZE
000008ff: PUSH1 0x04
00000901: PUSH2 0x4b4f
00000904: JUMP
00000905: JUMPDEST
00000906: PUSH2 0x166a
00000909: JUMP
0000090a: JUMPDEST
0000090b: CALLVALUE
0000090c: DUP1
0000090d: ISZERO
0000090e: PUSH2 0x0915
00000911: JUMPI
00000912: PUSH0
00000913: PUSH0
00000914: REVERT
00000915: JUMPDEST
00000916: POP
00000917: PUSH2 0x0577
0000091a: PUSH2 0x0924
0000091d: CALLDATASIZE
0000091e: PUSH1 0x04
00000920: PUSH2 0x4c6a
00000923: JUMP
00000924: JUMPDEST
00000925: PUSH2 0x16f4
00000928: JUMP
00000929: JUMPDEST
0000092a: CALLVALUE
0000092b: DUP1
0000092c: ISZERO
0000092d: PUSH2 0x0934
00000930: JUMPI
00000931: PUSH0
00000932: PUSH0
00000933: REVERT
00000934: JUMPDEST
00000935: POP
00000936: PUSH2 0x04d2
00000939: PUSH2 0x0943
0000093c: CALLDATASIZE
0000093d: PUSH1 0x04
0000093f: PUSH2 0x4ccd
00000942: JUMP
00000943: JUMPDEST
00000944: PUSH2 0x17b9
00000947: JUMP
00000948: JUMPDEST
00000949: CALLVALUE
0000094a: DUP1
0000094b: ISZERO
0000094c: PUSH2 0x0953
0000094f: JUMPI
00000950: PUSH0
00000951: PUSH0
00000952: REVERT
00000953: JUMPDEST
00000954: POP
00000955: PUSH2 0x04d2
00000958: PUSH2 0x0962
0000095b: CALLDATASIZE
0000095c: PUSH1 0x04
0000095e: PUSH2 0x4b4f
00000961: JUMP
00000962: JUMPDEST
00000963: PUSH2 0x17c4
00000966: JUMP
00000967: JUMPDEST
00000968: CALLVALUE
00000969: DUP1
0000096a: ISZERO
0000096b: PUSH2 0x0972
0000096e: JUMPI
0000096f: PUSH0
00000970: PUSH0
00000971: REVERT
00000972: JUMPDEST
00000973: POP
00000974: PUSH2 0x04d2
00000977: PUSH2 0x0981
0000097a: CALLDATASIZE
0000097b: PUSH1 0x04
0000097d: PUSH2 0x4b4f
00000980: JUMP
00000981: JUMPDEST
00000982: PUSH2 0x1840
00000985: JUMP
00000986: JUMPDEST
00000987: CALLVALUE
00000988: DUP1
00000989: ISZERO
0000098a: PUSH2 0x0991
0000098d: JUMPI
0000098e: PUSH0
0000098f: PUSH0
00000990: REVERT
00000991: JUMPDEST
00000992: POP
00000993: PUSH2 0x04d2
00000996: PUSH2 0x09a0
00000999: CALLDATASIZE
0000099a: PUSH1 0x04
0000099c: PUSH2 0x4aee
0000099f: JUMP
000009a0: JUMPDEST
000009a1: PUSH2 0x184a
000009a4: JUMP
000009a5: JUMPDEST
000009a6: CALLVALUE
000009a7: DUP1
000009a8: ISZERO
000009a9: PUSH2 0x09b0
000009ac: JUMPI
000009ad: PUSH0
000009ae: PUSH0
000009af: REVERT
000009b0: JUMPDEST
000009b1: POP
000009b2: PUSH2 0x08ab
000009b5: PUSH2 0x09bf
000009b8: CALLDATASIZE
000009b9: PUSH1 0x04
000009bb: PUSH2 0x4cee
000009be: JUMP
000009bf: JUMPDEST
000009c0: PUSH2 0x1855
000009c3: JUMP
000009c4: JUMPDEST
000009c5: CALLVALUE
000009c6: DUP1
000009c7: ISZERO
000009c8: PUSH2 0x09cf
000009cb: JUMPI
000009cc: PUSH0
000009cd: PUSH0
000009ce: REVERT
000009cf: JUMPDEST
000009d0: POP
000009d1: PUSH2 0x04d2
000009d4: PUSH2 0x09de
000009d7: CALLDATASIZE
000009d8: PUSH1 0x04
000009da: PUSH2 0x4d20
000009dd: JUMP
000009de: JUMPDEST
000009df: PUSH2 0x189f
000009e2: JUMP
000009e3: JUMPDEST
000009e4: CALLVALUE
000009e5: DUP1
000009e6: ISZERO
000009e7: PUSH2 0x09ee
000009ea: JUMPI
000009eb: PUSH0
000009ec: PUSH0
000009ed: REVERT
000009ee: JUMPDEST
000009ef: POP
000009f0: PUSH2 0x04d2
000009f3: PUSH2 0x09fd
000009f6: CALLDATASIZE
000009f7: PUSH1 0x04
000009f9: PUSH2 0x4b4f
000009fc: JUMP
000009fd: JUMPDEST
000009fe: PUSH2 0x18ad
00000a01: JUMP
00000a02: JUMPDEST
00000a03: CALLVALUE
00000a04: DUP1
00000a05: ISZERO
00000a06: PUSH2 0x0a0d
00000a09: JUMPI
00000a0a: PUSH0
00000a0b: PUSH0
00000a0c: REVERT
00000a0d: JUMPDEST
00000a0e: POP
00000a0f: PUSH2 0x04d2
00000a12: PUSH2 0x0a1c
00000a15: CALLDATASIZE
00000a16: PUSH1 0x04
00000a18: PUSH2 0x4aad
00000a1b: JUMP
00000a1c: JUMPDEST
00000a1d: PUSH2 0x18f0
00000a20: JUMP
00000a21: JUMPDEST
00000a22: CALLVALUE
00000a23: DUP1
00000a24: ISZERO
00000a25: PUSH2 0x0a2c
00000a28: JUMPI
00000a29: PUSH0
00000a2a: PUSH0
00000a2b: REVERT
00000a2c: JUMPDEST
00000a2d: POP
00000a2e: PUSH2 0x07f6
00000a31: PUSH2 0x1918
00000a34: JUMP
00000a35: JUMPDEST
00000a36: CALLVALUE
00000a37: DUP1
00000a38: ISZERO
00000a39: PUSH2 0x0a40
00000a3c: JUMPI
00000a3d: PUSH0
00000a3e: PUSH0
00000a3f: REVERT
00000a40: JUMPDEST
00000a41: POP
00000a42: PUSH2 0x04d2
00000a45: PUSH2 0x0a4f
00000a48: CALLDATASIZE
00000a49: PUSH1 0x04
00000a4b: PUSH2 0x4b4f
00000a4e: JUMP
00000a4f: JUMPDEST
00000a50: PUSH2 0x1921
00000a53: JUMP
00000a54: JUMPDEST
00000a55: CALLVALUE
00000a56: DUP1
00000a57: ISZERO
00000a58: PUSH2 0x0a5f
00000a5b: JUMPI
00000a5c: PUSH0
00000a5d: PUSH0
00000a5e: REVERT
00000a5f: JUMPDEST
00000a60: POP
00000a61: PUSH2 0x04d2
00000a64: PUSH2 0x0a6e
00000a67: CALLDATASIZE
00000a68: PUSH1 0x04
00000a6a: PUSH2 0x4d43
00000a6d: JUMP
00000a6e: JUMPDEST
00000a6f: PUSH2 0x192b
00000a72: JUMP
00000a73: JUMPDEST
00000a74: CALLVALUE
00000a75: DUP1
00000a76: ISZERO
00000a77: PUSH2 0x0a7e
00000a7a: JUMPI
00000a7b: PUSH0
00000a7c: PUSH0
00000a7d: REVERT
00000a7e: JUMPDEST
00000a7f: POP
00000a80: PUSH2 0x04d2
00000a83: PUSH2 0x0a8d
00000a86: CALLDATASIZE
00000a87: PUSH1 0x04
00000a89: PUSH2 0x4ccd
00000a8c: JUMP
00000a8d: JUMPDEST
00000a8e: PUSH2 0x1a64
00000a91: JUMP
00000a92: JUMPDEST
00000a93: CALLVALUE
00000a94: DUP1
00000a95: ISZERO
00000a96: PUSH2 0x0a9d
00000a99: JUMPI
00000a9a: PUSH0
00000a9b: PUSH0
00000a9c: REVERT
00000a9d: JUMPDEST
00000a9e: POP
00000a9f: PUSH2 0x0aa6
00000aa2: PUSH2 0x1a6f
00000aa5: JUMP
00000aa6: JUMPDEST
00000aa7: PUSH1 0x40
00000aa9: MLOAD
00000aaa: PUSH2 0x04dc
00000aad: SWAP8
00000aae: SWAP7
00000aaf: SWAP6
00000ab0: SWAP5
00000ab1: SWAP4
00000ab2: SWAP3
00000ab3: SWAP2
00000ab4: SWAP1
00000ab5: PUSH2 0x4d82
00000ab8: JUMP
00000ab9: JUMPDEST
00000aba: CALLVALUE
00000abb: DUP1
00000abc: ISZERO
00000abd: PUSH2 0x0ac4
00000ac0: JUMPI
00000ac1: PUSH0
00000ac2: PUSH0
00000ac3: REVERT
00000ac4: JUMPDEST
00000ac5: POP
00000ac6: PUSH2 0x04d2
00000ac9: PUSH2 0x0ad3
00000acc: CALLDATASIZE
00000acd: PUSH1 0x04
00000acf: PUSH2 0x4d43
00000ad2: JUMP
00000ad3: JUMPDEST
00000ad4: PUSH2 0x1b1d
00000ad7: JUMP
00000ad8: JUMPDEST
00000ad9: CALLVALUE
00000ada: DUP1
00000adb: ISZERO
00000adc: PUSH2 0x0ae3
00000adf: JUMPI
00000ae0: PUSH0
00000ae1: PUSH0
00000ae2: REVERT
00000ae3: JUMPDEST
00000ae4: POP
00000ae5: PUSH32 0x01b0b3f9d6e360167e522fa2b18ba597ad7b2b35841fec7e1ca4dbb0adea1202
00000b06: SLOAD
00000b07: PUSH1 0x01
00000b09: PUSH1 0x01
00000b0b: PUSH1 0xa0
00000b0d: SHL
00000b0e: SUB
00000b0f: AND
00000b10: PUSH2 0x07f6
00000b13: JUMP
00000b14: JUMPDEST
00000b15: CALLVALUE
00000b16: DUP1
00000b17: ISZERO
00000b18: PUSH2 0x0b1f
00000b1b: JUMPI
00000b1c: PUSH0
00000b1d: PUSH0
00000b1e: REVERT
00000b1f: JUMPDEST
00000b20: POP
00000b21: PUSH2 0x04d2
00000b24: PUSH2 0x0b2e
00000b27: CALLDATASIZE
00000b28: PUSH1 0x04
00000b2a: PUSH2 0x4d20
00000b2d: JUMP
00000b2e: JUMPDEST
00000b2f: PUSH2 0x1c18
00000b32: JUMP
00000b33: JUMPDEST
00000b34: CALLVALUE
00000b35: DUP1
00000b36: ISZERO
00000b37: PUSH2 0x0b3e
00000b3a: JUMPI
00000b3b: PUSH0
00000b3c: PUSH0
00000b3d: REVERT
00000b3e: JUMPDEST
00000b3f: POP
00000b40: PUSH2 0x04f9
00000b43: PUSH2 0x1c26
00000b46: JUMP
00000b47: JUMPDEST
00000b48: CALLVALUE
00000b49: DUP1
00000b4a: ISZERO
00000b4b: PUSH2 0x0b52
00000b4e: JUMPI
00000b4f: PUSH0
00000b50: PUSH0
00000b51: REVERT
00000b52: JUMPDEST
00000b53: POP
00000b54: PUSH2 0x04d2
00000b57: PUSH2 0x0b61
00000b5a: CALLDATASIZE
00000b5b: PUSH1 0x04
00000b5d: PUSH2 0x4b4f
00000b60: JUMP
00000b61: JUMPDEST
00000b62: PUSH2 0x1c6e
00000b65: JUMP
00000b66: JUMPDEST
00000b67: CALLVALUE
00000b68: DUP1
00000b69: ISZERO
00000b6a: PUSH2 0x0b71
00000b6d: JUMPI
00000b6e: PUSH0
00000b6f: PUSH0
00000b70: REVERT
00000b71: JUMPDEST
00000b72: POP
00000b73: PUSH2 0x0b7a
00000b76: PUSH2 0x1cb7
00000b79: JUMP
00000b7a: JUMPDEST
00000b7b: PUSH1 0x40
00000b7d: DUP1
00000b7e: MLOAD
00000b7f: PUSH1 0x01
00000b81: PUSH1 0x01
00000b83: PUSH1 0xc0
00000b85: SHL
00000b86: SUB
00000b87: SWAP1
00000b88: SWAP7
00000b89: AND
00000b8a: DUP7
00000b8b: MSTORE
00000b8c: PUSH1 0x01
00000b8e: PUSH1 0x01
00000b90: PUSH1 0x40
00000b92: SHL
00000b93: SUB
00000b94: SWAP1
00000b95: SWAP5
00000b96: AND
00000b97: PUSH1 0x20
00000b99: DUP7
00000b9a: ADD
00000b9b: MSTORE
00000b9c: SWAP3
00000b9d: DUP5
00000b9e: ADD
00000b9f: SWAP2
00000ba0: SWAP1
00000ba1: SWAP2
00000ba2: MSTORE
00000ba3: PUSH1 0x60
00000ba5: DUP4
00000ba6: ADD
00000ba7: MSTORE
00000ba8: PUSH1 0x80
00000baa: DUP3
00000bab: ADD
00000bac: MSTORE
00000bad: PUSH1 0xa0
00000baf: ADD
00000bb0: PUSH2 0x04dc
00000bb3: JUMP
00000bb4: JUMPDEST
00000bb5: CALLVALUE
00000bb6: DUP1
00000bb7: ISZERO
00000bb8: PUSH2 0x0bbf
00000bbb: JUMPI
00000bbc: PUSH0
00000bbd: PUSH0
00000bbe: REVERT
00000bbf: JUMPDEST
00000bc0: POP
00000bc1: PUSH2 0x0bc8
00000bc4: PUSH2 0x1d69
00000bc7: JUMP
00000bc8: JUMPDEST
00000bc9: PUSH1 0x40
00000bcb: DUP1
00000bcc: MLOAD
00000bcd: DUP3
00000bce: MLOAD
00000bcf: DUP2
00000bd0: MSTORE
00000bd1: PUSH1 0x20
00000bd3: DUP1
00000bd4: DUP5
00000bd5: ADD
00000bd6: MLOAD
00000bd7: SWAP1
00000bd8: DUP3
00000bd9: ADD
00000bda: MSTORE
00000bdb: SWAP2
00000bdc: DUP2
00000bdd: ADD
00000bde: MLOAD
00000bdf: PUSH1 0x01
00000be1: PUSH1 0x01
00000be3: PUSH1 0x40
00000be5: SHL
00000be6: SUB
00000be7: AND
00000be8: SWAP1
00000be9: DUP3
00000bea: ADD
00000beb: MSTORE
00000bec: PUSH1 0x60
00000bee: ADD
00000bef: PUSH2 0x04dc
00000bf2: JUMP
00000bf3: JUMPDEST
00000bf4: CALLVALUE
00000bf5: DUP1
00000bf6: ISZERO
00000bf7: PUSH2 0x0bfe
00000bfa: JUMPI
00000bfb: PUSH0
00000bfc: PUSH0
00000bfd: REVERT
00000bfe: JUMPDEST
00000bff: POP
00000c00: PUSH2 0x08ab
00000c03: PUSH2 0x1d9b
00000c06: JUMP
00000c07: JUMPDEST
00000c08: CALLVALUE
00000c09: DUP1
00000c0a: ISZERO
00000c0b: PUSH2 0x0c12
00000c0e: JUMPI
00000c0f: PUSH0
00000c10: PUSH0
00000c11: REVERT
00000c12: JUMPDEST
00000c13: POP
00000c14: PUSH2 0x04d2
00000c17: PUSH2 0x1e1f
00000c1a: JUMP
00000c1b: JUMPDEST
00000c1c: CALLVALUE
00000c1d: DUP1
00000c1e: ISZERO
00000c1f: PUSH2 0x0c26
00000c22: JUMPI
00000c23: PUSH0
00000c24: PUSH0
00000c25: REVERT
00000c26: JUMPDEST
00000c27: POP
00000c28: PUSH2 0x04d2
00000c2b: PUSH2 0x0c35
00000c2e: CALLDATASIZE
00000c2f: PUSH1 0x04
00000c31: PUSH2 0x4aee
00000c34: JUMP
00000c35: JUMPDEST
00000c36: PUSH2 0x1e28
00000c39: JUMP
00000c3a: JUMPDEST
00000c3b: CALLVALUE
00000c3c: DUP1
00000c3d: ISZERO
00000c3e: PUSH2 0x0c45
00000c41: JUMPI
00000c42: PUSH0
00000c43: PUSH0
00000c44: REVERT
00000c45: JUMPDEST
00000c46: POP
00000c47: PUSH2 0x0577
00000c4a: PUSH2 0x0c54
00000c4d: CALLDATASIZE
00000c4e: PUSH1 0x04
00000c50: PUSH2 0x4ac4
00000c53: JUMP
00000c54: JUMPDEST
00000c55: PUSH2 0x1e33
00000c58: JUMP
00000c59: JUMPDEST
00000c5a: CALLVALUE
00000c5b: DUP1
00000c5c: ISZERO
00000c5d: PUSH2 0x0c64
00000c60: JUMPI
00000c61: PUSH0
00000c62: PUSH0
00000c63: REVERT
00000c64: JUMPDEST
00000c65: POP
00000c66: PUSH2 0x04d2
00000c69: PUSH2 0x0c73
00000c6c: CALLDATASIZE
00000c6d: PUSH1 0x04
00000c6f: PUSH2 0x4d20
00000c72: JUMP
00000c73: JUMPDEST
00000c74: PUSH2 0x1ea0
00000c77: JUMP
00000c78: JUMPDEST
00000c79: CALLVALUE
00000c7a: DUP1
00000c7b: ISZERO
00000c7c: PUSH2 0x0c83
00000c7f: JUMPI
00000c80: PUSH0
00000c81: PUSH0
00000c82: REVERT
00000c83: JUMPDEST
00000c84: POP
00000c85: PUSH2 0x04d2
00000c88: PUSH2 0x0c92
00000c8b: CALLDATASIZE
00000c8c: PUSH1 0x04
00000c8e: PUSH2 0x4aad
00000c91: JUMP
00000c92: JUMPDEST
00000c93: PUSH2 0x1f85
00000c96: JUMP
00000c97: JUMPDEST
00000c98: CALLVALUE
00000c99: DUP1
00000c9a: ISZERO
00000c9b: PUSH2 0x0ca2
00000c9e: JUMPI
00000c9f: PUSH0
00000ca0: PUSH0
00000ca1: REVERT
00000ca2: JUMPDEST
00000ca3: POP
00000ca4: PUSH2 0x04d2
00000ca7: PUSH2 0x0cb1
00000caa: CALLDATASIZE
00000cab: PUSH1 0x04
00000cad: PUSH2 0x4d43
00000cb0: JUMP
00000cb1: JUMPDEST
00000cb2: PUSH2 0x1f91
00000cb5: JUMP
00000cb6: JUMPDEST
00000cb7: CALLVALUE
00000cb8: DUP1
00000cb9: ISZERO
00000cba: PUSH2 0x0cc1
00000cbd: JUMPI
00000cbe: PUSH0
00000cbf: PUSH0
00000cc0: REVERT
00000cc1: JUMPDEST
00000cc2: POP
00000cc3: PUSH2 0x04d2
00000cc6: PUSH2 0x0cd0
00000cc9: CALLDATASIZE
00000cca: PUSH1 0x04
00000ccc: PUSH2 0x4e18
00000ccf: JUMP
00000cd0: JUMPDEST
00000cd1: PUSH2 0x1fa1
00000cd4: JUMP
00000cd5: JUMPDEST
00000cd6: CALLVALUE
00000cd7: DUP1
00000cd8: ISZERO
00000cd9: PUSH2 0x0ce0
00000cdc: JUMPI
00000cdd: PUSH0
00000cde: PUSH0
00000cdf: REVERT
00000ce0: JUMPDEST
00000ce1: POP
00000ce2: PUSH2 0x04d2
00000ce5: PUSH2 0x0cef
00000ce8: CALLDATASIZE
00000ce9: PUSH1 0x04
00000ceb: PUSH2 0x4e31
00000cee: JUMP
00000cef: JUMPDEST
00000cf0: PUSH2 0x1fe9
00000cf3: JUMP
00000cf4: JUMPDEST
00000cf5: CALLVALUE
00000cf6: DUP1
00000cf7: ISZERO
00000cf8: PUSH2 0x0cff
00000cfb: JUMPI
00000cfc: PUSH0
00000cfd: PUSH0
00000cfe: REVERT
00000cff: JUMPDEST
00000d00: POP
00000d01: PUSH2 0x04d2
00000d04: PUSH2 0x0d0e
00000d07: CALLDATASIZE
00000d08: PUSH1 0x04
00000d0a: PUSH2 0x4e65
00000d0d: JUMP
00000d0e: JUMPDEST
00000d0f: PUSH2 0x1ff6
00000d12: JUMP
00000d13: JUMPDEST
00000d14: CALLVALUE
00000d15: DUP1
00000d16: ISZERO
00000d17: PUSH2 0x0d1e
00000d1a: JUMPI
00000d1b: PUSH0
00000d1c: PUSH0
00000d1d: REVERT
00000d1e: JUMPDEST
00000d1f: POP
00000d20: PUSH2 0x04d2
00000d23: PUSH2 0x0d2d
00000d26: CALLDATASIZE
00000d27: PUSH1 0x04
00000d29: PUSH2 0x4d43
00000d2c: JUMP
00000d2d: JUMPDEST
00000d2e: PUSH2 0x200f
00000d31: JUMP
00000d32: JUMPDEST
00000d33: CALLVALUE
00000d34: DUP1
00000d35: ISZERO
00000d36: PUSH2 0x0d3d
00000d39: JUMPI
00000d3a: PUSH0
00000d3b: PUSH0
00000d3c: REVERT
00000d3d: JUMPDEST
00000d3e: POP
00000d3f: PUSH2 0x04d2
00000d42: PUSH2 0x0d4c
00000d45: CALLDATASIZE
00000d46: PUSH1 0x04
00000d48: PUSH2 0x4aad
00000d4b: JUMP
00000d4c: JUMPDEST
00000d4d: PUSH2 0x2028
00000d50: JUMP
00000d51: JUMPDEST
00000d52: CALLVALUE
00000d53: DUP1
00000d54: ISZERO
00000d55: PUSH2 0x0d5c
00000d58: JUMPI
00000d59: PUSH0
00000d5a: PUSH0
00000d5b: REVERT
00000d5c: JUMPDEST
00000d5d: POP
00000d5e: PUSH2 0x04d2
00000d61: PUSH2 0x0d6b
00000d64: CALLDATASIZE
00000d65: PUSH1 0x04
00000d67: PUSH2 0x4aad
00000d6a: JUMP
00000d6b: JUMPDEST
00000d6c: PUSH2 0x2048
00000d6f: JUMP
00000d70: JUMPDEST
00000d71: CALLVALUE
00000d72: DUP1
00000d73: ISZERO
00000d74: PUSH2 0x0d7b
00000d77: JUMPI
00000d78: PUSH0
00000d79: PUSH0
00000d7a: REVERT
00000d7b: JUMPDEST
00000d7c: POP
00000d7d: PUSH2 0x04d2
00000d80: PUSH2 0x0d8a
00000d83: CALLDATASIZE
00000d84: PUSH1 0x04
00000d86: PUSH2 0x4e31
00000d89: JUMP
00000d8a: JUMPDEST
00000d8b: PUSH2 0x2068
00000d8e: JUMP
00000d8f: JUMPDEST
00000d90: CALLVALUE
00000d91: DUP1
00000d92: ISZERO
00000d93: PUSH2 0x0d9a
00000d96: JUMPI
00000d97: PUSH0
00000d98: PUSH0
00000d99: REVERT
00000d9a: JUMPDEST
00000d9b: POP
00000d9c: PUSH2 0x07f6
00000d9f: PUSH32 0x00000000000000000000000022a3cf6149bfa611bafc89fd721918ec3cf7b581
00000dc0: DUP2
00000dc1: JUMP
00000dc2: JUMPDEST
00000dc3: CALLVALUE
00000dc4: DUP1
00000dc5: ISZERO
00000dc6: PUSH2 0x0dcd
00000dc9: JUMPI
00000dca: PUSH0
00000dcb: PUSH0
00000dcc: REVERT
00000dcd: JUMPDEST
00000dce: POP
00000dcf: PUSH2 0x08ab
00000dd2: PUSH2 0x0ddc
00000dd5: CALLDATASIZE
00000dd6: PUSH1 0x04
00000dd8: PUSH2 0x4b4f
00000ddb: JUMP
00000ddc: JUMPDEST
00000ddd: PUSH2 0x2075
00000de0: JUMP
00000de1: JUMPDEST
00000de2: CALLVALUE
00000de3: DUP1
00000de4: ISZERO
00000de5: PUSH2 0x0dec
00000de8: JUMPI
00000de9: PUSH0
00000dea: PUSH0
00000deb: REVERT
00000dec: JUMPDEST
00000ded: POP
00000dee: PUSH2 0x08ab
00000df1: PUSH2 0x0dfb
00000df4: CALLDATASIZE
00000df5: PUSH1 0x04
00000df7: PUSH2 0x4b11
00000dfa: JUMP
00000dfb: JUMPDEST
00000dfc: PUSH2 0x2104
00000dff: JUMP
00000e00: JUMPDEST
00000e01: CALLVALUE
00000e02: DUP1
00000e03: ISZERO
00000e04: PUSH2 0x0e0b
00000e07: JUMPI
00000e08: PUSH0
00000e09: PUSH0
00000e0a: REVERT
00000e0b: JUMPDEST
00000e0c: POP
00000e0d: PUSH2 0x04d2
00000e10: PUSH2 0x0e1a
00000e13: CALLDATASIZE
00000e14: PUSH1 0x04
00000e16: PUSH2 0x4aad
00000e19: JUMP
00000e1a: JUMPDEST
00000e1b: PUSH2 0x214c
00000e1e: JUMP
00000e1f: JUMPDEST
00000e20: CALLVALUE
00000e21: DUP1
00000e22: ISZERO
00000e23: PUSH2 0x0e2a
00000e26: JUMPI
00000e27: PUSH0
00000e28: PUSH0
00000e29: REVERT
00000e2a: JUMPDEST
00000e2b: POP
00000e2c: PUSH2 0x08ab
00000e2f: PUSH2 0x2158
00000e32: JUMP
00000e33: JUMPDEST
00000e34: CALLVALUE
00000e35: DUP1
00000e36: ISZERO
00000e37: PUSH2 0x0e3e
00000e3a: JUMPI
00000e3b: PUSH0
00000e3c: PUSH0
00000e3d: REVERT
00000e3e: JUMPDEST
00000e3f: POP
00000e40: PUSH2 0x04d2
00000e43: PUSH2 0x0e4d
00000e46: CALLDATASIZE
00000e47: PUSH1 0x04
00000e49: PUSH2 0x4b4f
00000e4c: JUMP
00000e4d: JUMPDEST
00000e4e: PUSH2 0x220d
00000e51: JUMP
00000e52: JUMPDEST
00000e53: CALLVALUE
00000e54: DUP1
00000e55: ISZERO
00000e56: PUSH2 0x0e5d
00000e59: JUMPI
00000e5a: PUSH0
00000e5b: PUSH0
00000e5c: REVERT
00000e5d: JUMPDEST
00000e5e: POP
00000e5f: PUSH2 0x08ab
00000e62: PUSH2 0x0e6c
00000e65: CALLDATASIZE
00000e66: PUSH1 0x04
00000e68: PUSH2 0x4ec3
00000e6b: JUMP
00000e6c: JUMPDEST
00000e6d: PUSH2 0x2219
00000e70: JUMP
00000e71: JUMPDEST
00000e72: CALLVALUE
00000e73: DUP1
00000e74: ISZERO
00000e75: PUSH2 0x0e7c
00000e78: JUMPI
00000e79: PUSH0
00000e7a: PUSH0
00000e7b: REVERT
00000e7c: JUMPDEST
00000e7d: POP
00000e7e: PUSH2 0x04d2
00000e81: PUSH2 0x0e8b
00000e84: CALLDATASIZE
00000e85: PUSH1 0x04
00000e87: PUSH2 0x4d43
00000e8a: JUMP
00000e8b: JUMPDEST
00000e8c: PUSH2 0x223c
00000e8f: JUMP
00000e90: JUMPDEST
00000e91: CALLVALUE
00000e92: DUP1
00000e93: ISZERO
00000e94: PUSH2 0x0e9b
00000e97: JUMPI
00000e98: PUSH0
00000e99: PUSH0
00000e9a: REVERT
00000e9b: JUMPDEST
00000e9c: POP
00000e9d: PUSH2 0x04d2
00000ea0: PUSH2 0x0eaa
00000ea3: CALLDATASIZE
00000ea4: PUSH1 0x04
00000ea6: PUSH2 0x4b4f
00000ea9: JUMP
00000eaa: JUMPDEST
00000eab: PUSH2 0x22a8
00000eae: JUMP
00000eaf: JUMPDEST
00000eb0: CALLVALUE
00000eb1: DUP1
00000eb2: ISZERO
00000eb3: PUSH2 0x0eba
00000eb6: JUMPI
00000eb7: PUSH0
00000eb8: PUSH0
00000eb9: REVERT
00000eba: JUMPDEST
00000ebb: POP
00000ebc: PUSH2 0x08ab
00000ebf: PUSH2 0x0ec9
00000ec2: CALLDATASIZE
00000ec3: PUSH1 0x04
00000ec5: PUSH2 0x4b11
00000ec8: JUMP
00000ec9: JUMPDEST
00000eca: PUSH2 0x22b4
00000ecd: JUMP
00000ece: JUMPDEST
00000ecf: CALLVALUE
00000ed0: DUP1
00000ed1: ISZERO
00000ed2: PUSH2 0x0ed9
00000ed5: JUMPI
00000ed6: PUSH0
00000ed7: PUSH0
00000ed8: REVERT
00000ed9: JUMPDEST
00000eda: POP
00000edb: PUSH2 0x04d2
00000ede: PUSH2 0x0ee8
00000ee1: CALLDATASIZE
00000ee2: PUSH1 0x04
00000ee4: PUSH2 0x4ac4
00000ee7: JUMP
00000ee8: JUMPDEST
00000ee9: PUSH2 0x2343
00000eec: JUMP
00000eed: JUMPDEST
00000eee: CALLVALUE
00000eef: DUP1
00000ef0: ISZERO
00000ef1: PUSH2 0x0ef8
00000ef4: JUMPI
00000ef5: PUSH0
00000ef6: PUSH0
00000ef7: REVERT
00000ef8: JUMPDEST
00000ef9: POP
00000efa: PUSH2 0x04d2
00000efd: PUSH2 0x0f07
00000f00: CALLDATASIZE
00000f01: PUSH1 0x04
00000f03: PUSH2 0x4e65
00000f06: JUMP
00000f07: JUMPDEST
00000f08: PUSH2 0x23a2
00000f0b: JUMP
00000f0c: JUMPDEST
00000f0d: CALLVALUE
00000f0e: DUP1
00000f0f: ISZERO
00000f10: PUSH2 0x0f17
00000f13: JUMPI
00000f14: PUSH0
00000f15: PUSH0
00000f16: REVERT
00000f17: JUMPDEST
00000f18: POP
00000f19: PUSH2 0x0822
00000f1c: PUSH2 0x0f26
00000f1f: CALLDATASIZE
00000f20: PUSH1 0x04
00000f22: PUSH2 0x4b4f
00000f25: JUMP
00000f26: JUMPDEST
00000f27: PUSH2 0x23bb
00000f2a: JUMP
00000f2b: JUMPDEST
00000f2c: CALLVALUE
00000f2d: DUP1
00000f2e: ISZERO
00000f2f: PUSH2 0x0f36
00000f32: JUMPI
00000f33: PUSH0
00000f34: PUSH0
00000f35: REVERT
00000f36: JUMPDEST
00000f37: POP
00000f38: PUSH2 0x04d2
00000f3b: PUSH2 0x0f45
00000f3e: CALLDATASIZE
00000f3f: PUSH1 0x04
00000f41: PUSH2 0x4f2f
00000f44: JUMP
00000f45: JUMPDEST
00000f46: PUSH2 0x23f1
00000f49: JUMP
00000f4a: JUMPDEST
00000f4b: CALLVALUE
00000f4c: DUP1
00000f4d: ISZERO
00000f4e: PUSH2 0x0f55
00000f51: JUMPI
00000f52: PUSH0
00000f53: PUSH0
00000f54: REVERT
00000f55: JUMPDEST
00000f56: POP
00000f57: PUSH2 0x04d2
00000f5a: PUSH2 0x0f64
00000f5d: CALLDATASIZE
00000f5e: PUSH1 0x04
00000f60: PUSH2 0x4d20
00000f63: JUMP
00000f64: JUMPDEST
00000f65: PUSH2 0x243a
00000f68: JUMP
00000f69: JUMPDEST
00000f6a: CALLVALUE
00000f6b: DUP1
00000f6c: ISZERO
00000f6d: PUSH2 0x0f74
00000f70: JUMPI
00000f71: PUSH0
00000f72: PUSH0
00000f73: REVERT
00000f74: JUMPDEST
00000f75: POP
00000f76: PUSH2 0x04d2
00000f79: PUSH2 0x0f83
00000f7c: CALLDATASIZE
00000f7d: PUSH1 0x04
00000f7f: PUSH2 0x4aad
00000f82: JUMP
00000f83: JUMPDEST
00000f84: PUSH2 0x2514
00000f87: JUMP
00000f88: JUMPDEST
00000f89: CALLVALUE
00000f8a: DUP1
00000f8b: ISZERO
00000f8c: PUSH2 0x0f93
00000f8f: JUMPI
00000f90: PUSH0
00000f91: PUSH0
00000f92: REVERT
00000f93: JUMPDEST
00000f94: POP
00000f95: ADDRESS
00000f96: PUSH2 0x07f6
00000f99: JUMP
00000f9a: JUMPDEST
00000f9b: CALLVALUE
00000f9c: DUP1
00000f9d: ISZERO
00000f9e: PUSH2 0x0fa5
00000fa1: JUMPI
00000fa2: PUSH0
00000fa3: PUSH0
00000fa4: REVERT
00000fa5: JUMPDEST
00000fa6: POP
00000fa7: PUSH2 0x04d2
00000faa: PUSH2 0x2535
00000fad: JUMP
00000fae: JUMPDEST
00000faf: CALLVALUE
00000fb0: DUP1
00000fb1: ISZERO
00000fb2: PUSH2 0x0fb9
00000fb5: JUMPI
00000fb6: PUSH0
00000fb7: PUSH0
00000fb8: REVERT
00000fb9: JUMPDEST
00000fba: POP
00000fbb: PUSH2 0x04d2
00000fbe: PUSH2 0x0fc8
00000fc1: CALLDATASIZE
00000fc2: PUSH1 0x04
00000fc4: PUSH2 0x4aad
00000fc7: JUMP
00000fc8: JUMPDEST
00000fc9: PUSH2 0x253e
00000fcc: JUMP
00000fcd: JUMPDEST
00000fce: CALLVALUE
00000fcf: DUP1
00000fd0: ISZERO
00000fd1: PUSH2 0x0fd8
00000fd4: JUMPI
00000fd5: PUSH0
00000fd6: PUSH0
00000fd7: REVERT
00000fd8: JUMPDEST
00000fd9: POP
00000fda: PUSH2 0x08ab
00000fdd: PUSH2 0x0fe7
00000fe0: CALLDATASIZE
00000fe1: PUSH1 0x04
00000fe3: PUSH2 0x4b11
00000fe6: JUMP
00000fe7: JUMPDEST
00000fe8: PUSH2 0x254a
00000feb: JUMP
00000fec: JUMPDEST
00000fed: CALLVALUE
00000fee: DUP1
00000fef: ISZERO
00000ff0: PUSH2 0x0ff7
00000ff3: JUMPI
00000ff4: PUSH0
00000ff5: PUSH0
00000ff6: REVERT
00000ff7: JUMPDEST
00000ff8: POP
00000ff9: PUSH2 0x04d2
00000ffc: PUSH2 0x1006
00000fff: CALLDATASIZE
00001000: PUSH1 0x04
00001002: PUSH2 0x4e31
00001005: JUMP
00001006: JUMPDEST
00001007: PUSH2 0x25b1
0000100a: JUMP
0000100b: JUMPDEST
0000100c: CALLVALUE
0000100d: DUP1
0000100e: ISZERO
0000100f: PUSH2 0x1016
00001012: JUMPI
00001013: PUSH0
00001014: PUSH0
00001015: REVERT
00001016: JUMPDEST
00001017: POP
00001018: PUSH2 0x0822
0000101b: PUSH2 0x27a3
0000101e: JUMP
0000101f: JUMPDEST
00001020: PUSH0
00001021: PUSH2 0x1028
00001024: PUSH2 0x27ad
00001027: JUMP
00001028: JUMPDEST
00001029: SWAP1
0000102a: POP
0000102b: SWAP1
0000102c: JUMP
0000102d: JUMPDEST
0000102e: PUSH1 0x60
00001030: PUSH20 0x73de8d3b49000cc9fd2a05f27b37af0c1f6e3133
00001045: PUSH4 0x06fdde03
0000104a: PUSH1 0x40
0000104c: MLOAD
0000104d: DUP2
0000104e: PUSH4 0xffffffff
00001053: AND
00001054: PUSH1 0xe0
00001056: SHL
00001057: DUP2
00001058: MSTORE
00001059: PUSH1 0x04
0000105b: ADD
0000105c: PUSH0
0000105d: PUSH1 0x40
0000105f: MLOAD
00001060: DUP1
00001061: DUP4
00001062: SUB
00001063: DUP2
00001064: DUP7
00001065: GAS
00001066: DELEGATECALL
00001067: ISZERO
00001068: DUP1
00001069: ISZERO
0000106a: PUSH2 0x1075
0000106d: JUMPI
0000106e: RETURNDATASIZE
0000106f: PUSH0
00001070: PUSH0
00001071: RETURNDATACOPY
00001072: RETURNDATASIZE
00001073: PUSH0
00001074: REVERT
00001075: JUMPDEST
00001076: POP
00001077: POP
00001078: POP
00001079: POP
0000107a: PUSH1 0x40
0000107c: MLOAD
0000107d: RETURNDATASIZE
0000107e: PUSH0
0000107f: DUP3
00001080: RETURNDATACOPY
00001081: PUSH1 0x1f
00001083: RETURNDATASIZE
00001084: SWAP1
00001085: DUP2
00001086: ADD
00001087: PUSH1 0x1f
00001089: NOT
0000108a: AND
0000108b: DUP3
0000108c: ADD
0000108d: PUSH1 0x40
0000108f: MSTORE
00001090: PUSH2 0x1028
00001093: SWAP2
00001094: SWAP1
00001095: DUP2
00001096: ADD
00001097: SWAP1
00001098: PUSH2 0x4fc8
0000109b: JUMP
0000109c: JUMPDEST
0000109d: PUSH0
0000109e: PUSH2 0x10a7
000010a1: DUP4
000010a2: DUP4
000010a3: PUSH2 0x27c6
000010a6: JUMP
000010a7: JUMPDEST
000010a8: SWAP5
000010a9: SWAP4
000010aa: POP
000010ab: POP
000010ac: POP
000010ad: POP
000010ae: JUMP
000010af: JUMPDEST
000010b0: PUSH0
000010b1: PUSH2 0x10bb
000010b4: DUP3
000010b5: PUSH1 0x01
000010b7: PUSH2 0x284b
000010ba: JUMP
000010bb: JUMPDEST
000010bc: SWAP3
000010bd: SWAP2
000010be: POP
000010bf: POP
000010c0: JUMP
000010c1: JUMPDEST
000010c2: PUSH0
000010c3: PUSH2 0x1028
000010c6: PUSH2 0x10cd
000010c9: PUSH2 0x2892
000010cc: JUMP
000010cd: JUMPDEST
000010ce: PUSH2 0x28c0
000010d1: JUMP
000010d2: JUMPDEST
000010d3: PUSH0
000010d4: PUSH2 0x10e3
000010d7: PUSH2 0x10de
000010da: PUSH2 0x2892
000010dd: JUMP
000010de: JUMPDEST
000010df: PUSH2 0x294e
000010e2: JUMP
000010e3: JUMPDEST
000010e4: PUSH2 0x10ed
000010e7: DUP4
000010e8: DUP4
000010e9: PUSH2 0x29cf
000010ec: JUMP
000010ed: JUMPDEST
000010ee: SWAP4
000010ef: SWAP3
000010f0: POP
000010f1: POP
000010f2: POP
000010f3: JUMP
000010f4: JUMPDEST
000010f5: PUSH0
000010f6: PUSH2 0x10bb
000010f9: DUP3
000010fa: PUSH1 0x01
000010fc: PUSH2 0x29e6
000010ff: JUMP
00001100: JUMPDEST
00001101: PUSH0
00001102: PUSH2 0x10ed
00001105: DUP4
00001106: DUP4
00001107: PUSH2 0x2a32
0000110a: JUMP
0000110b: JUMPDEST
0000110c: PUSH0
0000110d: PUSH2 0x1116
00001110: DUP4
00001111: DUP4
00001112: PUSH2 0x27c6
00001115: JUMP
00001116: JUMPDEST
00001117: POP
00001118: SWAP4
00001119: SWAP3
0000111a: POP
0000111b: POP
0000111c: POP
0000111d: JUMP
0000111e: JUMPDEST
0000111f: PUSH0
00001120: PUSH0
00001121: PUSH2 0x1128
00001124: PUSH2 0x2a78
00001127: JUMP
00001128: JUMPDEST
00001129: SWAP1
0000112a: POP
0000112b: PUSH2 0x1135
0000112e: DUP6
0000112f: DUP6
00001130: DUP6
00001131: PUSH2 0x2ad4
00001134: JUMP
00001135: JUMPDEST
00001136: SWAP2
00001137: POP
00001138: DUP1
00001139: PUSH1 0x01
0000113b: PUSH1 0x01
0000113d: PUSH1 0xa0
0000113f: SHL
00001140: SUB
00001141: AND
00001142: PUSH4 0x62402b04
00001147: PUSH1 0x40
00001149: MLOAD
0000114a: DUP2
0000114b: PUSH4 0xffffffff
00001150: AND
00001151: PUSH1 0xe0
00001153: SHL
00001154: DUP2
00001155: MSTORE
00001156: PUSH1 0x04
00001158: ADD
00001159: PUSH0
0000115a: PUSH1 0x40
0000115c: MLOAD
0000115d: DUP1
0000115e: DUP4
0000115f: SUB
00001160: DUP2
00001161: PUSH0
00001162: DUP8
00001163: DUP1
00001164: EXTCODESIZE
00001165: ISZERO
00001166: DUP1
00001167: ISZERO
00001168: PUSH2 0x116f
0000116b: JUMPI
0000116c: PUSH0
0000116d: PUSH0
0000116e: REVERT
0000116f: JUMPDEST
00001170: POP
00001171: GAS
00001172: CALL
00001173: ISZERO
00001174: DUP1
00001175: ISZERO
00001176: PUSH2 0x1181
00001179: JUMPI
0000117a: RETURNDATASIZE
0000117b: PUSH0
0000117c: PUSH0
0000117d: RETURNDATACOPY
0000117e: RETURNDATASIZE
0000117f: PUSH0
00001180: REVERT
00001181: JUMPDEST
00001182: POP
00001183: POP
00001184: POP
00001185: POP
00001186: POP
00001187: SWAP4
00001188: SWAP3
00001189: POP
0000118a: POP
0000118b: POP
0000118c: JUMP
0000118d: JUMPDEST
0000118e: PUSH0
0000118f: PUSH2 0x10ed
00001192: DUP4
00001193: DUP4
00001194: PUSH2 0x29e6
00001197: JUMP
00001198: JUMPDEST
00001199: PUSH0
0000119a: PUSH0
0000119b: PUSH2 0x11a2
0000119e: PUSH2 0x2892
000011a1: JUMP
000011a2: JUMPDEST
000011a3: PUSH1 0x40
000011a5: MLOAD
000011a6: PUSH4 0x1e1f5609
000011ab: PUSH1 0xe1
000011ad: SHL
000011ae: DUP2
000011af: MSTORE
000011b0: ADDRESS
000011b1: PUSH1 0x04
000011b3: DUP3
000011b4: ADD
000011b5: MSTORE
000011b6: PUSH1 0x01
000011b8: PUSH1 0x01
000011ba: PUSH1 0xa0
000011bc: SHL
000011bd: SUB
000011be: SWAP2
000011bf: SWAP1
000011c0: SWAP2
000011c1: AND
000011c2: SWAP1
000011c3: PUSH4 0x3c3eac12
000011c8: SWAP1
000011c9: PUSH1 0x24
000011cb: ADD
000011cc: PUSH1 0x40
000011ce: DUP1
000011cf: MLOAD
000011d0: DUP1
000011d1: DUP4
000011d2: SUB
000011d3: DUP2
000011d4: DUP7
000011d5: GAS
000011d6: STATICCALL
000011d7: ISZERO
000011d8: DUP1
000011d9: ISZERO
000011da: PUSH2 0x11e5
000011dd: JUMPI
000011de: RETURNDATASIZE
000011df: PUSH0
000011e0: PUSH0
000011e1: RETURNDATACOPY
000011e2: RETURNDATASIZE
000011e3: PUSH0
000011e4: REVERT
000011e5: JUMPDEST
000011e6: POP
000011e7: POP
000011e8: POP
000011e9: POP
000011ea: PUSH1 0x40
000011ec: MLOAD
000011ed: RETURNDATASIZE
000011ee: PUSH1 0x1f
000011f0: NOT
000011f1: PUSH1 0x1f
000011f3: DUP3
000011f4: ADD
000011f5: AND
000011f6: DUP3
000011f7: ADD
000011f8: DUP1
000011f9: PUSH1 0x40
000011fb: MSTORE
000011fc: POP
000011fd: DUP2
000011fe: ADD
000011ff: SWAP1
00001200: PUSH2 0x1209
00001203: SWAP2
00001204: SWAP1
00001205: PUSH2 0x5065
00001208: JUMP
00001209: JUMPDEST
0000120a: POP
0000120b: PUSH1 0x40
0000120d: MLOAD
0000120e: PUSH4 0x70a08231
00001213: PUSH1 0xe0
00001215: SHL
00001216: DUP2
00001217: MSTORE
00001218: PUSH1 0x01
0000121a: PUSH1 0x01
0000121c: PUSH1 0xa0
0000121e: SHL
0000121f: SUB
00001220: DUP6
00001221: DUP2
00001222: AND
00001223: PUSH1 0x04
00001225: DUP4
00001226: ADD
00001227: MSTORE
00001228: SWAP2
00001229: SWAP3
0000122a: POP
0000122b: SWAP1
0000122c: DUP3
0000122d: AND
0000122e: SWAP1
0000122f: PUSH4 0x70a08231
00001234: SWAP1
00001235: PUSH1 0x24
00001237: ADD
00001238: PUSH1 0x20
0000123a: PUSH1 0x40
0000123c: MLOAD
0000123d: DUP1
0000123e: DUP4
0000123f: SUB
00001240: DUP2
00001241: DUP7
00001242: GAS
00001243: STATICCALL
00001244: ISZERO
00001245: DUP1
00001246: ISZERO
00001247: PUSH2 0x1252
0000124a: JUMPI
0000124b: RETURNDATASIZE
0000124c: PUSH0
0000124d: PUSH0
0000124e: RETURNDATACOPY
0000124f: RETURNDATASIZE
00001250: PUSH0
00001251: REVERT
00001252: JUMPDEST
00001253: POP
00001254: POP
00001255: POP
00001256: POP
00001257: PUSH1 0x40
00001259: MLOAD
0000125a: RETURNDATASIZE
0000125b: PUSH1 0x1f
0000125d: NOT
0000125e: PUSH1 0x1f
00001260: DUP3
00001261: ADD
00001262: AND
00001263: DUP3
00001264: ADD
00001265: DUP1
00001266: PUSH1 0x40
00001268: MSTORE
00001269: POP
0000126a: DUP2
0000126b: ADD
0000126c: SWAP1
0000126d: PUSH2 0x10ed
00001270: SWAP2
00001271: SWAP1
00001272: PUSH2 0x5092
00001275: JUMP
00001276: JUMPDEST
00001277: PUSH0
00001278: PUSH20 0x73de8d3b49000cc9fd2a05f27b37af0c1f6e3133
0000128d: PUSH4 0x313ce567
00001292: PUSH1 0x40
00001294: MLOAD
00001295: DUP2
00001296: PUSH4 0xffffffff
0000129b: AND
0000129c: PUSH1 0xe0
0000129e: SHL
0000129f: DUP2
000012a0: MSTORE
000012a1: PUSH1 0x04
000012a3: ADD
000012a4: PUSH1 0x20
000012a6: PUSH1 0x40
000012a8: MLOAD
000012a9: DUP1
000012aa: DUP4
000012ab: SUB
000012ac: DUP2
000012ad: DUP7
000012ae: GAS
000012af: DELEGATECALL
000012b0: ISZERO
000012b1: DUP1
000012b2: ISZERO
000012b3: PUSH2 0x12be
000012b6: JUMPI
000012b7: RETURNDATASIZE
000012b8: PUSH0
000012b9: PUSH0
000012ba: RETURNDATACOPY
000012bb: RETURNDATASIZE
000012bc: PUSH0
000012bd: REVERT
000012be: JUMPDEST
000012bf: POP
000012c0: POP
000012c1: POP
000012c2: POP
000012c3: PUSH1 0x40
000012c5: MLOAD
000012c6: RETURNDATASIZE
000012c7: PUSH1 0x1f
000012c9: NOT
000012ca: PUSH1 0x1f
000012cc: DUP3
000012cd: ADD
000012ce: AND
000012cf: DUP3
000012d0: ADD
000012d1: DUP1
000012d2: PUSH1 0x40
000012d4: MSTORE
000012d5: POP
000012d6: DUP2
000012d7: ADD
000012d8: SWAP1
000012d9: PUSH2 0x1028
000012dc: SWAP2
000012dd: SWAP1
000012de: PUSH2 0x50a9
000012e1: JUMP
000012e2: JUMPDEST
000012e3: PUSH0
000012e4: PUSH2 0x1028
000012e7: PUSH2 0x2af7
000012ea: JUMP
000012eb: JUMPDEST
000012ec: PUSH1 0x40
000012ee: DUP1
000012ef: MLOAD
000012f0: DUP1
000012f1: DUP3
000012f2: ADD
000012f3: SWAP1
000012f4: SWAP2
000012f5: MSTORE
000012f6: PUSH0
000012f7: DUP1
000012f8: DUP3
000012f9: MSTORE
000012fa: PUSH1 0x20
000012fc: DUP3
000012fd: ADD
000012fe: MSTORE
000012ff: PUSH2 0x1028
00001302: PUSH1 0x40
00001304: DUP1
00001305: MLOAD
00001306: DUP1
00001307: DUP3
00001308: ADD
00001309: DUP3
0000130a: MSTORE
0000130b: PUSH0
0000130c: DUP1
0000130d: DUP3
0000130e: MSTORE
0000130f: PUSH1 0x20
00001311: SWAP2
00001312: DUP3
00001313: ADD
00001314: MSTORE
00001315: DUP2
00001316: MLOAD
00001317: DUP1
00001318: DUP4
00001319: ADD
0000131a: SWAP1
0000131b: SWAP3
0000131c: MSTORE
0000131d: PUSH32 0xd7513ffe3a01a9f6606089d1b67011bca35bec018ac0faa914e1c529408f8301
0000133e: SLOAD
0000133f: PUSH1 0x01
00001341: PUSH1 0x01
00001343: PUSH1 0x40
00001345: SHL
00001346: SUB
00001347: DUP1
00001348: DUP3
00001349: AND
0000134a: DUP5
0000134b: MSTORE
0000134c: PUSH1 0x01
0000134e: PUSH1 0x40
00001350: SHL
00001351: SWAP1
00001352: SWAP2
00001353: DIV
00001354: AND
00001355: SWAP1
00001356: DUP3
00001357: ADD
00001358: MSTORE
00001359: SWAP1
0000135a: JUMP
0000135b: JUMPDEST
0000135c: PUSH1 0x40
0000135e: MLOAD
0000135f: PUSH4 0x38b51ce1
00001364: PUSH1 0xe0
00001366: SHL
00001367: DUP2
00001368: MSTORE
00001369: PUSH1 0x01
0000136b: PUSH1 0x01
0000136d: PUSH1 0xa0
0000136f: SHL
00001370: SUB
00001371: DUP3
00001372: AND
00001373: PUSH1 0x04
00001375: DUP3
00001376: ADD
00001377: MSTORE
00001378: PUSH0
00001379: SWAP1
0000137a: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9
0000138f: SWAP1
00001390: PUSH4 0x38b51ce1
00001395: SWAP1
00001396: PUSH1 0x24
00001398: ADD
00001399: PUSH1 0x20
0000139b: PUSH1 0x40
0000139d: MLOAD
0000139e: DUP1
0000139f: DUP4
000013a0: SUB
000013a1: DUP2
000013a2: DUP7
000013a3: GAS
000013a4: DELEGATECALL
000013a5: ISZERO
000013a6: DUP1
000013a7: ISZERO
000013a8: PUSH2 0x13b3
000013ab: JUMPI
000013ac: RETURNDATASIZE
000013ad: PUSH0
000013ae: PUSH0
000013af: RETURNDATACOPY
000013b0: RETURNDATASIZE
000013b1: PUSH0
000013b2: REVERT
000013b3: JUMPDEST
000013b4: POP
000013b5: POP
000013b6: POP
000013b7: POP
000013b8: PUSH1 0x40
000013ba: MLOAD
000013bb: RETURNDATASIZE
000013bc: PUSH1 0x1f
000013be: NOT
000013bf: PUSH1 0x1f
000013c1: DUP3
000013c2: ADD
000013c3: AND
000013c4: DUP3
000013c5: ADD
000013c6: DUP1
000013c7: PUSH1 0x40
000013c9: MSTORE
000013ca: POP
000013cb: DUP2
000013cc: ADD
000013cd: SWAP1
000013ce: PUSH2 0x10bb
000013d1: SWAP2
000013d2: SWAP1
000013d3: PUSH2 0x50d3
000013d6: JUMP
000013d7: JUMPDEST
000013d8: PUSH0
000013d9: PUSH2 0x13e0
000013dc: PUSH2 0x2892
000013df: JUMP
000013e0: JUMPDEST
000013e1: PUSH1 0x40
000013e3: MLOAD
000013e4: PUSH4 0x07439b49
000013e9: PUSH1 0xe0
000013eb: SHL
000013ec: DUP2
000013ed: MSTORE
000013ee: ADDRESS
000013ef: PUSH1 0x04
000013f1: DUP3
000013f2: ADD
000013f3: MSTORE
000013f4: PUSH1 0x01
000013f6: PUSH1 0x01
000013f8: PUSH1 0xa0
000013fa: SHL
000013fb: SUB
000013fc: SWAP2
000013fd: SWAP1
000013fe: SWAP2
000013ff: AND
00001400: SWAP1
00001401: PUSH4 0x07439b49
00001406: SWAP1
00001407: PUSH1 0x24
00001409: ADD
0000140a: PUSH1 0x20
0000140c: PUSH1 0x40
0000140e: MLOAD
0000140f: DUP1
00001410: DUP4
00001411: SUB
00001412: DUP2
00001413: DUP7
00001414: GAS
00001415: STATICCALL
00001416: ISZERO
00001417: DUP1
00001418: ISZERO
00001419: PUSH2 0x1424
0000141c: JUMPI
0000141d: RETURNDATASIZE
0000141e: PUSH0
0000141f: PUSH0
00001420: RETURNDATACOPY
00001421: RETURNDATASIZE
00001422: PUSH0
00001423: REVERT
00001424: JUMPDEST
00001425: POP
00001426: POP
00001427: POP
00001428: POP
00001429: PUSH1 0x40
0000142b: MLOAD
0000142c: RETURNDATASIZE
0000142d: PUSH1 0x1f
0000142f: NOT
00001430: PUSH1 0x1f
00001432: DUP3
00001433: ADD
00001434: AND
00001435: DUP3
00001436: ADD
00001437: DUP1
00001438: PUSH1 0x40
0000143a: MSTORE
0000143b: POP
0000143c: DUP2
0000143d: ADD
0000143e: SWAP1
0000143f: PUSH2 0x1028
00001442: SWAP2
00001443: SWAP1
00001444: PUSH2 0x50ec
00001447: JUMP
00001448: JUMPDEST
00001449: PUSH0
0000144a: PUSH0
0000144b: PUSH2 0x1452
0000144e: PUSH2 0x2b00
00001451: JUMP
00001452: JUMPDEST
00001453: SWAP1
00001454: SWAP4
00001455: SWAP1
00001456: SWAP3
00001457: POP
00001458: SWAP1
00001459: POP
0000145a: JUMP
0000145b: JUMPDEST
0000145c: PUSH1 0x40
0000145e: MLOAD
0000145f: PUSH4 0x4383e19f
00001464: PUSH1 0xe1
00001466: SHL
00001467: DUP2
00001468: MSTORE
00001469: PUSH1 0x01
0000146b: PUSH1 0x01
0000146d: PUSH1 0xa0
0000146f: SHL
00001470: SUB
00001471: DUP3
00001472: AND
00001473: PUSH1 0x04
00001475: DUP3
00001476: ADD
00001477: MSTORE
00001478: PUSH0
00001479: PUSH1 0x24
0000147b: DUP3
0000147c: ADD
0000147d: DUP2
0000147e: SWAP1
0000147f: MSTORE
00001480: SWAP1
00001481: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9
00001496: SWAP1
00001497: PUSH4 0x8707c33e
0000149c: SWAP1
0000149d: PUSH1 0x44
0000149f: ADD
000014a0: PUSH1 0x40
000014a2: DUP1
000014a3: MLOAD
000014a4: DUP1
000014a5: DUP4
000014a6: SUB
000014a7: DUP2
000014a8: DUP7
000014a9: GAS
000014aa: DELEGATECALL
000014ab: ISZERO
000014ac: DUP1
000014ad: ISZERO
000014ae: PUSH2 0x14b9
000014b1: JUMPI
000014b2: RETURNDATASIZE
000014b3: PUSH0
000014b4: PUSH0
000014b5: RETURNDATACOPY
000014b6: RETURNDATASIZE
000014b7: PUSH0
000014b8: REVERT
000014b9: JUMPDEST
000014ba: POP
000014bb: POP
000014bc: POP
000014bd: POP
000014be: PUSH1 0x40
000014c0: MLOAD
000014c1: RETURNDATASIZE
000014c2: PUSH1 0x1f
000014c4: NOT
000014c5: PUSH1 0x1f
000014c7: DUP3
000014c8: ADD
000014c9: AND
000014ca: DUP3
000014cb: ADD
000014cc: DUP1
000014cd: PUSH1 0x40
000014cf: MSTORE
000014d0: POP
000014d1: DUP2
000014d2: ADD
000014d3: SWAP1
000014d4: PUSH2 0x10ed
000014d7: SWAP2
000014d8: SWAP1
000014d9: PUSH2 0x5107
000014dc: JUMP
000014dd: JUMPDEST
000014de: PUSH0
000014df: PUSH1 0x60
000014e1: PUSH2 0x14ed
000014e4: DUP8
000014e5: DUP8
000014e6: DUP8
000014e7: DUP8
000014e8: DUP8
000014e9: PUSH2 0x2b63
000014ec: JUMP
000014ed: JUMPDEST
000014ee: SWAP1
000014ef: SWAP9
000014f0: SWAP1
000014f1: SWAP8
000014f2: POP
000014f3: SWAP6
000014f4: POP
000014f5: POP
000014f6: POP
000014f7: POP
000014f8: POP
000014f9: POP
000014fa: JUMP
000014fb: JUMPDEST
000014fc: PUSH2 0x1503
000014ff: PUSH2 0x2c86
00001502: JUMP
00001503: JUMPDEST
00001504: POP
00001505: PUSH1 0x40
00001507: MLOAD
00001508: PUSH4 0x11234561
0000150d: PUSH1 0xe3
0000150f: SHL
00001510: DUP2
00001511: MSTORE
00001512: ADDRESS
00001513: PUSH1 0x04
00001515: DUP3
00001516: ADD
00001517: MSTORE
00001518: PUSH0
00001519: SWAP1
0000151a: DUP2
0000151b: SWAP1
0000151c: DUP2
0000151d: SWAP1
0000151e: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
00001533: SWAP1
00001534: PUSH4 0x891a2b08
00001539: SWAP1
0000153a: PUSH1 0x24
0000153c: ADD
0000153d: PUSH1 0x60
0000153f: PUSH1 0x40
00001541: MLOAD
00001542: DUP1
00001543: DUP4
00001544: SUB
00001545: DUP2
00001546: DUP7
00001547: GAS
00001548: DELEGATECALL
00001549: ISZERO
0000154a: DUP1
0000154b: ISZERO
0000154c: PUSH2 0x1557
0000154f: JUMPI
00001550: RETURNDATASIZE
00001551: PUSH0
00001552: PUSH0
00001553: RETURNDATACOPY
00001554: RETURNDATASIZE
00001555: PUSH0
00001556: REVERT
00001557: JUMPDEST
00001558: POP
00001559: POP
0000155a: POP
0000155b: POP
0000155c: PUSH1 0x40
0000155e: MLOAD
0000155f: RETURNDATASIZE
00001560: PUSH1 0x1f
00001562: NOT
00001563: PUSH1 0x1f
00001565: DUP3
00001566: ADD
00001567: AND
00001568: DUP3
00001569: ADD
0000156a: DUP1
0000156b: PUSH1 0x40
0000156d: MSTORE
0000156e: POP
0000156f: DUP2
00001570: ADD
00001571: SWAP1
00001572: PUSH2 0x157b
00001575: SWAP2
00001576: SWAP1
00001577: PUSH2 0x5129
0000157a: JUMP
0000157b: JUMPDEST
0000157c: PUSH1 0x40
0000157e: DUP1
0000157f: MLOAD
00001580: DUP5
00001581: DUP2
00001582: MSTORE
00001583: PUSH1 0x20
00001585: DUP2
00001586: ADD
00001587: DUP5
00001588: SWAP1
00001589: MSTORE
0000158a: DUP3
0000158b: ISZERO
0000158c: ISZERO
0000158d: DUP2
0000158e: DUP4
0000158f: ADD
00001590: MSTORE
00001591: SWAP1
00001592: MLOAD
00001593: SWAP4
00001594: SWAP7
00001595: POP
00001596: SWAP2
00001597: SWAP5
00001598: POP
00001599: SWAP3
0000159a: POP
0000159b: PUSH32 0x58ce9a502017c1e4e0084fcfd7067e2642dfe9e11757d8017b9cf16d729967c7
000015bc: SWAP2
000015bd: SWAP1
000015be: DUP2
000015bf: SWAP1
000015c0: SUB
000015c1: PUSH1 0x60
000015c3: ADD
000015c4: SWAP1
000015c5: LOG1
000015c6: POP
000015c7: POP
000015c8: POP
000015c9: JUMP
000015ca: JUMPDEST
000015cb: PUSH2 0x15d2
000015ce: PUSH2 0x2caf
000015d1: JUMP
000015d2: JUMPDEST
000015d3: PUSH1 0x01
000015d5: PUSH1 0x01
000015d7: PUSH1 0xa0
000015d9: SHL
000015da: SUB
000015db: AND
000015dc: CALLER
000015dd: PUSH1 0x01
000015df: PUSH1 0x01
000015e1: PUSH1 0xa0
000015e3: SHL
000015e4: SUB
000015e5: AND
000015e6: EQ
000015e7: PUSH2 0x1603
000015ea: JUMPI
000015eb: PUSH1 0x40
000015ed: MLOAD
000015ee: PUSH4 0x10528c6d
000015f3: PUSH1 0xe1
000015f5: SHL
000015f6: DUP2
000015f7: MSTORE
000015f8: PUSH1 0x04
000015fa: ADD
000015fb: PUSH1 0x40
000015fd: MLOAD
000015fe: DUP1
000015ff: SWAP2
00001600: SUB
00001601: SWAP1
00001602: REVERT
00001603: JUMPDEST
00001604: PUSH32 0x01b0b3f9d6e360167e522fa2b18ba597ad7b2b35841fec7e1ca4dbb0adea1202
00001625: DUP1
00001626: SLOAD
00001627: PUSH6 0xffffffffffff
0000162e: PUSH1 0xa0
00001630: SHL
00001631: NOT
00001632: AND
00001633: PUSH1 0x01
00001635: PUSH1 0xa0
00001637: SHL
00001638: PUSH3 0xffffff
0000163c: SWAP5
0000163d: DUP6
0000163e: AND
0000163f: MUL
00001640: PUSH3 0xffffff
00001644: PUSH1 0xb8
00001646: SHL
00001647: NOT
00001648: AND
00001649: OR
0000164a: PUSH1 0x01
0000164c: PUSH1 0xb8
0000164e: SHL
0000164f: SWAP3
00001650: SWAP1
00001651: SWAP4
00001652: AND
00001653: SWAP2
00001654: SWAP1
00001655: SWAP2
00001656: MUL
00001657: SWAP2
00001658: SWAP1
00001659: SWAP2
0000165a: OR
0000165b: SWAP1
0000165c: SSTORE
0000165d: JUMP
0000165e: JUMPDEST
0000165f: PUSH0
00001660: PUSH2 0x10bb
00001663: DUP3
00001664: PUSH1 0x01
00001666: PUSH2 0x2cca
00001669: JUMP
0000166a: JUMPDEST
0000166b: PUSH1 0x40
0000166d: MLOAD
0000166e: PUSH4 0x4383e19f
00001673: PUSH1 0xe1
00001675: SHL
00001676: DUP2
00001677: MSTORE
00001678: PUSH1 0x01
0000167a: PUSH1 0x01
0000167c: PUSH1 0xa0
0000167e: SHL
0000167f: SUB
00001680: DUP3
00001681: AND
00001682: PUSH1 0x04
00001684: DUP3
00001685: ADD
00001686: MSTORE
00001687: PUSH1 0x01
00001689: PUSH1 0x24
0000168b: DUP3
0000168c: ADD
0000168d: MSTORE
0000168e: PUSH0
0000168f: SWAP1
00001690: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9
000016a5: SWAP1
000016a6: PUSH4 0x8707c33e
000016ab: SWAP1
000016ac: PUSH1 0x44
000016ae: ADD
000016af: JUMPDEST
000016b0: PUSH1 0x40
000016b2: DUP1
000016b3: MLOAD
000016b4: DUP1
000016b5: DUP4
000016b6: SUB
000016b7: DUP2
000016b8: DUP7
000016b9: GAS
000016ba: DELEGATECALL
000016bb: ISZERO
000016bc: DUP1
000016bd: ISZERO
000016be: PUSH2 0x16c9
000016c1: JUMPI
000016c2: RETURNDATASIZE
000016c3: PUSH0
000016c4: PUSH0
000016c5: RETURNDATACOPY
000016c6: RETURNDATASIZE
000016c7: PUSH0
000016c8: REVERT
000016c9: JUMPDEST
000016ca: POP
000016cb: POP
000016cc: POP
000016cd: POP
000016ce: PUSH1 0x40
000016d0: MLOAD
000016d1: RETURNDATASIZE
000016d2: PUSH1 0x1f
000016d4: NOT
000016d5: PUSH1 0x1f
000016d7: DUP3
000016d8: ADD
000016d9: AND
000016da: DUP3
000016db: ADD
000016dc: DUP1
000016dd: PUSH1 0x40
000016df: MSTORE
000016e0: POP
000016e1: DUP2
000016e2: ADD
000016e3: SWAP1
000016e4: PUSH2 0x16ed
000016e7: SWAP2
000016e8: SWAP1
000016e9: PUSH2 0x5107
000016ec: JUMP
000016ed: JUMPDEST
000016ee: POP
000016ef: SWAP3
000016f0: SWAP2
000016f1: POP
000016f2: POP
000016f3: JUMP
000016f4: JUMPDEST
000016f5: PUSH1 0x40
000016f7: MLOAD
000016f8: PUSH4 0x69f958a5
000016fd: PUSH1 0xe1
000016ff: SHL
00001700: DUP2
00001701: MSTORE
00001702: PUSH0
00001703: SWAP1
00001704: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
00001719: SWAP1
0000171a: PUSH4 0xd3f2b14a
0000171f: SWAP1
00001720: PUSH2 0x1735
00001723: SWAP1
00001724: DUP10
00001725: SWAP1
00001726: DUP10
00001727: SWAP1
00001728: DUP10
00001729: SWAP1
0000172a: DUP10
0000172b: SWAP1
0000172c: DUP10
0000172d: SWAP1
0000172e: PUSH1 0x04
00001730: ADD
00001731: PUSH2 0x515c
00001734: JUMP
00001735: JUMPDEST
00001736: PUSH1 0x20
00001738: PUSH1 0x40
0000173a: MLOAD
0000173b: DUP1
0000173c: DUP4
0000173d: SUB
0000173e: DUP2
0000173f: DUP7
00001740: GAS
00001741: DELEGATECALL
00001742: ISZERO
00001743: DUP1
00001744: ISZERO
00001745: PUSH2 0x1750
00001748: JUMPI
00001749: RETURNDATASIZE
0000174a: PUSH0
0000174b: PUSH0
0000174c: RETURNDATACOPY
0000174d: RETURNDATASIZE
0000174e: PUSH0
0000174f: REVERT
00001750: JUMPDEST
00001751: POP
00001752: POP
00001753: POP
00001754: POP
00001755: PUSH1 0x40
00001757: MLOAD
00001758: RETURNDATASIZE
00001759: PUSH1 0x1f
0000175b: NOT
0000175c: PUSH1 0x1f
0000175e: DUP3
0000175f: ADD
00001760: AND
00001761: DUP3
00001762: ADD
00001763: DUP1
00001764: PUSH1 0x40
00001766: MSTORE
00001767: POP
00001768: DUP2
00001769: ADD
0000176a: SWAP1
0000176b: PUSH2 0x1774
0000176e: SWAP2
0000176f: SWAP1
00001770: PUSH2 0x50d3
00001773: JUMP
00001774: JUMPDEST
00001775: SWAP1
00001776: POP
00001777: DUP1
00001778: ISZERO
00001779: PUSH2 0x17b0
0000177c: JUMPI
0000177d: PUSH1 0x40
0000177f: MLOAD
00001780: DUP5
00001781: DUP2
00001782: MSTORE
00001783: PUSH32 0x97bf554031869ec4edcf72b0dcdc2234dd406afe091f3631be088f348e179574
000017a4: SWAP1
000017a5: PUSH1 0x20
000017a7: ADD
000017a8: PUSH1 0x40
000017aa: MLOAD
000017ab: DUP1
000017ac: SWAP2
000017ad: SUB
000017ae: SWAP1
000017af: LOG1
000017b0: JUMPDEST
000017b1: SWAP6
000017b2: SWAP5
000017b3: POP
000017b4: POP
000017b5: POP
000017b6: POP
000017b7: POP
000017b8: JUMP
000017b9: JUMPDEST
000017ba: PUSH0
000017bb: PUSH2 0x10ed
000017be: DUP4
000017bf: DUP4
000017c0: PUSH2 0x2d0f
000017c3: JUMP
000017c4: JUMPDEST
000017c5: PUSH1 0x40
000017c7: MLOAD
000017c8: PUSH4 0x5f301149
000017cd: PUSH1 0xe0
000017cf: SHL
000017d0: DUP2
000017d1: MSTORE
000017d2: PUSH1 0x01
000017d4: PUSH1 0x01
000017d6: PUSH1 0xa0
000017d8: SHL
000017d9: SUB
000017da: DUP3
000017db: AND
000017dc: PUSH1 0x04
000017de: DUP3
000017df: ADD
000017e0: MSTORE
000017e1: PUSH0
000017e2: SWAP1
000017e3: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9
000017f8: SWAP1
000017f9: PUSH4 0x5f301149
000017fe: SWAP1
000017ff: PUSH1 0x24
00001801: ADD
00001802: PUSH1 0x20
00001804: PUSH1 0x40
00001806: MLOAD
00001807: DUP1
00001808: DUP4
00001809: SUB
0000180a: DUP2
0000180b: DUP7
0000180c: GAS
0000180d: DELEGATECALL
0000180e: ISZERO
0000180f: DUP1
00001810: ISZERO
00001811: PUSH2 0x181c
00001814: JUMPI
00001815: RETURNDATASIZE
00001816: PUSH0
00001817: PUSH0
00001818: RETURNDATACOPY
00001819: RETURNDATASIZE
0000181a: PUSH0
0000181b: REVERT
0000181c: JUMPDEST
0000181d: POP
0000181e: POP
0000181f: POP
00001820: POP
00001821: PUSH1 0x40
00001823: MLOAD
00001824: RETURNDATASIZE
00001825: PUSH1 0x1f
00001827: NOT
00001828: PUSH1 0x1f
0000182a: DUP3
0000182b: ADD
0000182c: AND
0000182d: DUP3
0000182e: ADD
0000182f: DUP1
00001830: PUSH1 0x40
00001832: MSTORE
00001833: POP
00001834: DUP2
00001835: ADD
00001836: SWAP1
00001837: PUSH2 0x10bb
0000183a: SWAP2
0000183b: SWAP1
0000183c: PUSH2 0x5092
0000183f: JUMP
00001840: JUMPDEST
00001841: PUSH0
00001842: PUSH2 0x10bb
00001845: DUP3
00001846: PUSH2 0x2d50
00001849: JUMP
0000184a: JUMPDEST
0000184b: PUSH0
0000184c: PUSH2 0x10ed
0000184f: DUP4
00001850: DUP4
00001851: PUSH2 0x2eaa
00001854: JUMP
00001855: JUMPDEST
00001856: PUSH2 0x185d
00001859: PUSH2 0x2892
0000185c: JUMP
0000185d: JUMPDEST
0000185e: PUSH1 0x01
00001860: PUSH1 0x01
00001862: PUSH1 0xa0
00001864: SHL
00001865: SUB
00001866: AND
00001867: CALLER
00001868: PUSH1 0x01
0000186a: PUSH1 0x01
0000186c: PUSH1 0xa0
0000186e: SHL
0000186f: SUB
00001870: AND
00001871: EQ
00001872: PUSH2 0x188e
00001875: JUMPI
00001876: PUSH1 0x40
00001878: MLOAD
00001879: PUSH4 0x59d74a41
0000187e: PUSH1 0xe0
00001880: SHL
00001881: DUP2
00001882: MSTORE
00001883: PUSH1 0x04
00001885: ADD
00001886: PUSH1 0x40
00001888: MLOAD
00001889: DUP1
0000188a: SWAP2
0000188b: SUB
0000188c: SWAP1
0000188d: REVERT
0000188e: JUMPDEST
0000188f: PUSH2 0x1899
00001892: DUP4
00001893: DUP4
00001894: DUP4
00001895: PUSH2 0x2eef
00001898: JUMP
00001899: JUMPDEST
0000189a: POP
0000189b: POP
0000189c: POP
0000189d: POP
0000189e: JUMP
0000189f: JUMPDEST
000018a0: PUSH0
000018a1: PUSH2 0x10a7
000018a4: DUP4
000018a5: PUSH0
000018a6: DUP5
000018a7: PUSH1 0x01
000018a9: PUSH2 0x2fbb
000018ac: JUMP
000018ad: JUMPDEST
000018ae: PUSH0
000018af: DUP1
000018b0: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00
000018d1: JUMPDEST
000018d2: PUSH1 0x01
000018d4: PUSH1 0x01
000018d6: PUSH1 0xa0
000018d8: SHL
000018d9: SUB
000018da: SWAP1
000018db: SWAP4
000018dc: AND
000018dd: PUSH0
000018de: SWAP1
000018df: DUP2
000018e0: MSTORE
000018e1: PUSH1 0x20
000018e3: SWAP4
000018e4: SWAP1
000018e5: SWAP4
000018e6: MSTORE
000018e7: POP
000018e8: POP
000018e9: PUSH1 0x40
000018eb: SWAP1
000018ec: KECCAK256
000018ed: SLOAD
000018ee: SWAP1
000018ef: JUMP
000018f0: JUMPDEST
000018f1: PUSH0
000018f2: PUSH0
000018f3: PUSH0
000018f4: PUSH2 0x1905
000018f7: PUSH2 0x18fe
000018fa: PUSH2 0x30f1
000018fd: JUMP
000018fe: JUMPDEST
000018ff: PUSH1 0x02
00001901: PUSH2 0x31f3
00001904: JUMP
00001905: JUMPDEST
00001906: SWAP2
00001907: POP
00001908: SWAP2
00001909: POP
0000190a: PUSH2 0x10a7
0000190d: DUP5
0000190e: DUP4
0000190f: DUP4
00001910: PUSH1 0x01
00001912: PUSH1 0x02
00001914: PUSH2 0x33e2
00001917: JUMP
00001918: JUMPDEST
00001919: PUSH0
0000191a: PUSH2 0x1028
0000191d: PUSH2 0x2892
00001920: JUMP
00001921: JUMPDEST
00001922: PUSH0
00001923: PUSH2 0x10bb
00001926: DUP3
00001927: PUSH2 0x341d
0000192a: JUMP
0000192b: JUMPDEST
0000192c: PUSH0
0000192d: PUSH0
0000192e: PUSH0
0000192f: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
00001944: PUSH4 0x9a2f31f1
00001949: PUSH1 0x40
0000194b: MLOAD
0000194c: DUP1
0000194d: PUSH1 0x80
0000194f: ADD
00001950: PUSH1 0x40
00001952: MSTORE
00001953: DUP1
00001954: DUP10
00001955: DUP2
00001956: MSTORE
00001957: PUSH1 0x20
00001959: ADD
0000195a: PUSH0
0000195b: DUP2
0000195c: MSTORE
0000195d: PUSH1 0x20
0000195f: ADD
00001960: DUP9
00001961: PUSH1 0x01
00001963: PUSH1 0x01
00001965: PUSH1 0xa0
00001967: SHL
00001968: SUB
00001969: AND
0000196a: DUP2
0000196b: MSTORE
0000196c: PUSH1 0x20
0000196e: ADD
0000196f: DUP8
00001970: PUSH1 0x01
00001972: PUSH1 0x01
00001974: PUSH1 0xa0
00001976: SHL
00001977: SUB
00001978: AND
00001979: DUP2
0000197a: MSTORE
0000197b: POP
0000197c: PUSH1 0x40
0000197e: MLOAD
0000197f: DUP3
00001980: PUSH4 0xffffffff
00001985: AND
00001986: PUSH1 0xe0
00001988: SHL
00001989: DUP2
0000198a: MSTORE
0000198b: PUSH1 0x04
0000198d: ADD
0000198e: PUSH2 0x1997
00001991: SWAP2
00001992: SWAP1
00001993: PUSH2 0x51ac
00001996: JUMP
00001997: JUMPDEST
00001998: PUSH1 0x60
0000199a: PUSH1 0x40
0000199c: MLOAD
0000199d: DUP1
0000199e: DUP4
0000199f: SUB
000019a0: DUP2
000019a1: DUP7
000019a2: GAS
000019a3: DELEGATECALL
000019a4: ISZERO
000019a5: DUP1
000019a6: ISZERO
000019a7: PUSH2 0x19b2
000019aa: JUMPI
000019ab: RETURNDATASIZE
000019ac: PUSH0
000019ad: PUSH0
000019ae: RETURNDATACOPY
000019af: RETURNDATASIZE
000019b0: PUSH0
000019b1: REVERT
000019b2: JUMPDEST
000019b3: POP
000019b4: POP
000019b5: POP
000019b6: POP
000019b7: PUSH1 0x40
000019b9: MLOAD
000019ba: RETURNDATASIZE
000019bb: PUSH1 0x1f
000019bd: NOT
000019be: PUSH1 0x1f
000019c0: DUP3
000019c1: ADD
000019c2: AND
000019c3: DUP3
000019c4: ADD
000019c5: DUP1
000019c6: PUSH1 0x40
000019c8: MSTORE
000019c9: POP
000019ca: DUP2
000019cb: ADD
000019cc: SWAP1
000019cd: PUSH2 0x19d6
000019d0: SWAP2
000019d1: SWAP1
000019d2: PUSH2 0x5129
000019d5: JUMP
000019d6: JUMPDEST
000019d7: PUSH1 0x40
000019d9: DUP1
000019da: MLOAD
000019db: DUP5
000019dc: DUP2
000019dd: MSTORE
000019de: PUSH1 0x20
000019e0: DUP2
000019e1: ADD
000019e2: DUP5
000019e3: SWAP1
000019e4: MSTORE
000019e5: SWAP3
000019e6: SWAP7
000019e7: POP
000019e8: SWAP3
000019e9: SWAP5
000019ea: POP
000019eb: SWAP3
000019ec: POP
000019ed: PUSH1 0x01
000019ef: PUSH1 0x01
000019f1: PUSH1 0xa0
000019f3: SHL
000019f4: SUB
000019f5: DUP1
000019f6: DUP8
000019f7: AND
000019f8: SWAP3
000019f9: SWAP1
000019fa: DUP9
000019fb: AND
000019fc: SWAP2
000019fd: CALLER
000019fe: SWAP2
000019ff: PUSH32 0x96558a334f4759f0e7c423d68c84721860bd8fbf94ddc4e55158ecb125ad04b5
00001a20: SWAP2
00001a21: ADD
00001a22: JUMPDEST
00001a23: PUSH1 0x40
00001a25: MLOAD
00001a26: DUP1
00001a27: SWAP2
00001a28: SUB
00001a29: SWAP1
00001a2a: LOG4
00001a2b: DUP1
00001a2c: ISZERO
00001a2d: PUSH2 0x1a5b
00001a30: JUMPI
00001a31: PUSH1 0x40
00001a33: MLOAD
00001a34: CALLER
00001a35: SWAP1
00001a36: PUSH32 0x4aa7ec2e9d912271d4af0f59b2735f825ef583f4d6ee04f0242be6f58febc0fc
00001a57: SWAP1
00001a58: PUSH0
00001a59: SWAP1
00001a5a: LOG2
00001a5b: JUMPDEST
00001a5c: POP
00001a5d: POP
00001a5e: SWAP4
00001a5f: SWAP3
00001a60: POP
00001a61: POP
00001a62: POP
00001a63: JUMP
00001a64: JUMPDEST
00001a65: PUSH0
00001a66: PUSH2 0x10ed
00001a69: DUP4
00001a6a: DUP4
00001a6b: PUSH2 0x284b
00001a6e: JUMP
00001a6f: JUMPDEST
00001a70: PUSH0
00001a71: PUSH1 0x60
00001a73: DUP1
00001a74: DUP3
00001a75: DUP1
00001a76: DUP1
00001a77: DUP4
00001a78: DUP2
00001a79: PUSH0
00001a7a: MLOAD
00001a7b: PUSH1 0x20
00001a7d: PUSH2 0x5768
00001a80: PUSH0
00001a81: CODECOPY
00001a82: PUSH0
00001a83: MLOAD
00001a84: SWAP1
00001a85: PUSH0
00001a86: MSTORE
00001a87: DUP1
00001a88: SLOAD
00001a89: SWAP1
00001a8a: SWAP2
00001a8b: POP
00001a8c: ISZERO
00001a8d: DUP1
00001a8e: ISZERO
00001a8f: PUSH2 0x1a9a
00001a92: JUMPI
00001a93: POP
00001a94: PUSH1 0x01
00001a96: DUP2
00001a97: ADD
00001a98: SLOAD
00001a99: ISZERO
00001a9a: JUMPDEST
00001a9b: PUSH2 0x1ae3
00001a9e: JUMPI
00001a9f: PUSH1 0x40
00001aa1: MLOAD
00001aa2: PUSH3 0x461bcd
00001aa6: PUSH1 0xe5
00001aa8: SHL
00001aa9: DUP2
00001aaa: MSTORE
00001aab: PUSH1 0x20
00001aad: PUSH1 0x04
00001aaf: DUP3
00001ab0: ADD
00001ab1: MSTORE
00001ab2: PUSH1 0x15
00001ab4: PUSH1 0x24
00001ab6: DUP3
00001ab7: ADD
00001ab8: MSTORE
00001ab9: PUSH21 0x1152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959
00001acf: PUSH1 0x5a
00001ad1: SHL
00001ad2: PUSH1 0x44
00001ad4: DUP3
00001ad5: ADD
00001ad6: MSTORE
00001ad7: PUSH1 0x64
00001ad9: ADD
00001ada: JUMPDEST
00001adb: PUSH1 0x40
00001add: MLOAD
00001ade: DUP1
00001adf: SWAP2
00001ae0: SUB
00001ae1: SWAP1
00001ae2: REVERT
00001ae3: JUMPDEST
00001ae4: PUSH2 0x1aeb
00001ae7: PUSH2 0x3445
00001aea: JUMP
00001aeb: JUMPDEST
00001aec: PUSH2 0x1af3
00001aef: PUSH2 0x3505
00001af2: JUMP
00001af3: JUMPDEST
00001af4: PUSH1 0x40
00001af6: DUP1
00001af7: MLOAD
00001af8: PUSH0
00001af9: DUP1
00001afa: DUP3
00001afb: MSTORE
00001afc: PUSH1 0x20
00001afe: DUP3
00001aff: ADD
00001b00: SWAP1
00001b01: SWAP3
00001b02: MSTORE
00001b03: PUSH1 0x0f
00001b05: PUSH1 0xf8
00001b07: SHL
00001b08: SWAP13
00001b09: SWAP4
00001b0a: SWAP12
00001b0b: POP
00001b0c: SWAP2
00001b0d: SWAP10
00001b0e: POP
00001b0f: CHAINID
00001b10: SWAP9
00001b11: POP
00001b12: ADDRESS
00001b13: SWAP8
00001b14: POP
00001b15: SWAP6
00001b16: POP
00001b17: SWAP4
00001b18: POP
00001b19: SWAP2
00001b1a: POP
00001b1b: POP
00001b1c: JUMP
00001b1d: JUMPDEST
00001b1e: PUSH0
00001b1f: PUSH0
00001b20: PUSH0
00001b21: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
00001b36: PUSH4 0x5937128b
00001b3b: PUSH1 0x40
00001b3d: MLOAD
00001b3e: DUP1
00001b3f: PUSH1 0x80
00001b41: ADD
00001b42: PUSH1 0x40
00001b44: MSTORE
00001b45: DUP1
00001b46: PUSH0
00001b47: DUP2
00001b48: MSTORE
00001b49: PUSH1 0x20
00001b4b: ADD
00001b4c: DUP10
00001b4d: DUP2
00001b4e: MSTORE
00001b4f: PUSH1 0x20
00001b51: ADD
00001b52: DUP9
00001b53: PUSH1 0x01
00001b55: PUSH1 0x01
00001b57: PUSH1 0xa0
00001b59: SHL
00001b5a: SUB
00001b5b: AND
00001b5c: DUP2
00001b5d: MSTORE
00001b5e: PUSH1 0x20
00001b60: ADD
00001b61: DUP8
00001b62: PUSH1 0x01
00001b64: PUSH1 0x01
00001b66: PUSH1 0xa0
00001b68: SHL
00001b69: SUB
00001b6a: AND
00001b6b: DUP2
00001b6c: MSTORE
00001b6d: POP
00001b6e: PUSH1 0x40
00001b70: MLOAD
00001b71: DUP3
00001b72: PUSH4 0xffffffff
00001b77: AND
00001b78: PUSH1 0xe0
00001b7a: SHL
00001b7b: DUP2
00001b7c: MSTORE
00001b7d: PUSH1 0x04
00001b7f: ADD
00001b80: PUSH2 0x1b89
00001b83: SWAP2
00001b84: SWAP1
00001b85: PUSH2 0x51ac
00001b88: JUMP
00001b89: JUMPDEST
00001b8a: PUSH1 0x60
00001b8c: PUSH1 0x40
00001b8e: MLOAD
00001b8f: DUP1
00001b90: DUP4
00001b91: SUB
00001b92: DUP2
00001b93: DUP7
00001b94: GAS
00001b95: DELEGATECALL
00001b96: ISZERO
00001b97: DUP1
00001b98: ISZERO
00001b99: PUSH2 0x1ba4
00001b9c: JUMPI
00001b9d: RETURNDATASIZE
00001b9e: PUSH0
00001b9f: PUSH0
00001ba0: RETURNDATACOPY
00001ba1: RETURNDATASIZE
00001ba2: PUSH0
00001ba3: REVERT
00001ba4: JUMPDEST
00001ba5: POP
00001ba6: POP
00001ba7: POP
00001ba8: POP
00001ba9: PUSH1 0x40
00001bab: MLOAD
00001bac: RETURNDATASIZE
00001bad: PUSH1 0x1f
00001baf: NOT
00001bb0: PUSH1 0x1f
00001bb2: DUP3
00001bb3: ADD
00001bb4: AND
00001bb5: DUP3
00001bb6: ADD
00001bb7: DUP1
00001bb8: PUSH1 0x40
00001bba: MSTORE
00001bbb: POP
00001bbc: DUP2
00001bbd: ADD
00001bbe: SWAP1
00001bbf: PUSH2 0x1bc8
00001bc2: SWAP2
00001bc3: SWAP1
00001bc4: PUSH2 0x5129
00001bc7: JUMP
00001bc8: JUMPDEST
00001bc9: PUSH1 0x40
00001bcb: DUP1
00001bcc: MLOAD
00001bcd: DUP5
00001bce: DUP2
00001bcf: MSTORE
00001bd0: PUSH1 0x20
00001bd2: DUP2
00001bd3: ADD
00001bd4: DUP5
00001bd5: SWAP1
00001bd6: MSTORE
00001bd7: SWAP4
00001bd8: SWAP7
00001bd9: POP
00001bda: SWAP2
00001bdb: SWAP5
00001bdc: POP
00001bdd: SWAP3
00001bde: POP
00001bdf: PUSH1 0x01
00001be1: PUSH1 0x01
00001be3: PUSH1 0xa0
00001be5: SHL
00001be6: SUB
00001be7: DUP7
00001be8: DUP2
00001be9: AND
00001bea: SWAP3
00001beb: SWAP1
00001bec: DUP9
00001bed: AND
00001bee: SWAP2
00001bef: CALLER
00001bf0: SWAP2
00001bf1: PUSH32 0x96558a334f4759f0e7c423d68c84721860bd8fbf94ddc4e55158ecb125ad04b5
00001c12: SWAP2
00001c13: ADD
00001c14: PUSH2 0x1a22
00001c17: JUMP
00001c18: JUMPDEST
00001c19: PUSH0
00001c1a: PUSH2 0x1116
00001c1d: PUSH0
00001c1e: DUP5
00001c1f: DUP5
00001c20: PUSH1 0x01
00001c22: PUSH2 0x2fbb
00001c25: JUMP
00001c26: JUMPDEST
00001c27: PUSH1 0x60
00001c29: PUSH20 0x73de8d3b49000cc9fd2a05f27b37af0c1f6e3133
00001c3e: PUSH4 0x95d89b41
00001c43: PUSH1 0x40
00001c45: MLOAD
00001c46: DUP2
00001c47: PUSH4 0xffffffff
00001c4c: AND
00001c4d: PUSH1 0xe0
00001c4f: SHL
00001c50: DUP2
00001c51: MSTORE
00001c52: PUSH1 0x04
00001c54: ADD
00001c55: PUSH0
00001c56: PUSH1 0x40
00001c58: MLOAD
00001c59: DUP1
00001c5a: DUP4
00001c5b: SUB
00001c5c: DUP2
00001c5d: DUP7
00001c5e: GAS
00001c5f: DELEGATECALL
00001c60: ISZERO
00001c61: DUP1
00001c62: ISZERO
00001c63: PUSH2 0x1075
00001c66: JUMPI
00001c67: RETURNDATASIZE
00001c68: PUSH0
00001c69: PUSH0
00001c6a: RETURNDATACOPY
00001c6b: RETURNDATASIZE
00001c6c: PUSH0
00001c6d: REVERT
00001c6e: JUMPDEST
00001c6f: PUSH1 0x40
00001c71: MLOAD
00001c72: PUSH4 0x4383e19f
00001c77: PUSH1 0xe1
00001c79: SHL
00001c7a: DUP2
00001c7b: MSTORE
00001c7c: PUSH1 0x01
00001c7e: PUSH1 0x01
00001c80: PUSH1 0xa0
00001c82: SHL
00001c83: SUB
00001c84: DUP3
00001c85: AND
00001c86: PUSH1 0x04
00001c88: DUP3
00001c89: ADD
00001c8a: MSTORE
00001c8b: PUSH0
00001c8c: PUSH1 0x24
00001c8e: DUP3
00001c8f: ADD
00001c90: DUP2
00001c91: SWAP1
00001c92: MSTORE
00001c93: SWAP1
00001c94: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9
00001ca9: SWAP1
00001caa: PUSH4 0x8707c33e
00001caf: SWAP1
00001cb0: PUSH1 0x44
00001cb2: ADD
00001cb3: PUSH2 0x16af
00001cb6: JUMP
00001cb7: JUMPDEST
00001cb8: PUSH0
00001cb9: PUSH0
00001cba: PUSH0
00001cbb: PUSH0
00001cbc: PUSH0
00001cbd: PUSH2 0x1d58
00001cc0: PUSH0
00001cc1: MLOAD
00001cc2: PUSH1 0x20
00001cc4: PUSH2 0x5748
00001cc7: PUSH0
00001cc8: CODECOPY
00001cc9: PUSH0
00001cca: MLOAD
00001ccb: SWAP1
00001ccc: PUSH0
00001ccd: MSTORE
00001cce: SLOAD
00001ccf: PUSH0
00001cd0: MLOAD
00001cd1: PUSH1 0x20
00001cd3: PUSH2 0x5728
00001cd6: PUSH0
00001cd7: CODECOPY
00001cd8: PUSH0
00001cd9: MLOAD
00001cda: SWAP1
00001cdb: PUSH0
00001cdc: MSTORE
00001cdd: PUSH1 0x20
00001cdf: MSTORE
00001ce0: PUSH32 0x1d6b5be70a9f383ca45b06b91c80fedc4b8206aae15f8f5652c9213b796e9a02
00001d01: SLOAD
00001d02: PUSH0
00001d03: MLOAD
00001d04: PUSH1 0x20
00001d06: PUSH2 0x5788
00001d09: PUSH0
00001d0a: CODECOPY
00001d0b: PUSH0
00001d0c: MLOAD
00001d0d: SWAP1
00001d0e: PUSH0
00001d0f: MSTORE
00001d10: SLOAD
00001d11: PUSH1 0x02
00001d13: PUSH0
00001d14: MSTORE
00001d15: PUSH32 0x9b40389f0c625a77401470835767c77e909c039c8fc3275d3c2d2a048f8d5757
00001d36: SLOAD
00001d37: PUSH1 0x01
00001d39: PUSH1 0x01
00001d3b: PUSH1 0xc0
00001d3d: SHL
00001d3e: SUB
00001d3f: DUP5
00001d40: AND
00001d41: SWAP5
00001d42: PUSH1 0x01
00001d44: PUSH1 0x01
00001d46: PUSH1 0x40
00001d48: SHL
00001d49: SUB
00001d4a: PUSH1 0x01
00001d4c: PUSH1 0xc0
00001d4e: SHL
00001d4f: SWAP1
00001d50: SWAP6
00001d51: DIV
00001d52: SWAP5
00001d53: SWAP1
00001d54: SWAP5
00001d55: AND
00001d56: SWAP4
00001d57: JUMP
00001d58: JUMPDEST
00001d59: SWAP5
00001d5a: POP
00001d5b: SWAP5
00001d5c: POP
00001d5d: SWAP5
00001d5e: POP
00001d5f: SWAP5
00001d60: POP
00001d61: SWAP5
00001d62: POP
00001d63: SWAP1
00001d64: SWAP2
00001d65: SWAP3
00001d66: SWAP4
00001d67: SWAP5
00001d68: JUMP
00001d69: JUMPDEST
00001d6a: PUSH2 0x1d93
00001d6d: PUSH1 0x40
00001d6f: MLOAD
00001d70: DUP1
00001d71: PUSH1 0x60
00001d73: ADD
00001d74: PUSH1 0x40
00001d76: MSTORE
00001d77: DUP1
00001d78: PUSH0
00001d79: DUP2
00001d7a: MSTORE
00001d7b: PUSH1 0x20
00001d7d: ADD
00001d7e: PUSH0
00001d7f: DUP2
00001d80: MSTORE
00001d81: PUSH1 0x20
00001d83: ADD
00001d84: PUSH0
00001d85: PUSH1 0x01
00001d87: PUSH1 0x01
00001d89: PUSH1 0x40
00001d8b: SHL
00001d8c: SUB
00001d8d: AND
00001d8e: DUP2
00001d8f: MSTORE
00001d90: POP
00001d91: SWAP1
00001d92: JUMP
00001d93: JUMPDEST
00001d94: PUSH2 0x1028
00001d97: PUSH2 0x3543
00001d9a: JUMP
00001d9b: JUMPDEST
00001d9c: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
00001db1: PUSH4 0xa1ecef5c
00001db6: PUSH1 0x40
00001db8: MLOAD
00001db9: DUP2
00001dba: PUSH4 0xffffffff
00001dbf: AND
00001dc0: PUSH1 0xe0
00001dc2: SHL
00001dc3: DUP2
00001dc4: MSTORE
00001dc5: PUSH1 0x04
00001dc7: ADD
00001dc8: PUSH0
00001dc9: PUSH1 0x40
00001dcb: MLOAD
00001dcc: DUP1
00001dcd: DUP4
00001dce: SUB
00001dcf: DUP2
00001dd0: DUP7
00001dd1: DUP1
00001dd2: EXTCODESIZE
00001dd3: ISZERO
00001dd4: DUP1
00001dd5: ISZERO
00001dd6: PUSH2 0x1ddd
00001dd9: JUMPI
00001dda: PUSH0
00001ddb: PUSH0
00001ddc: REVERT
00001ddd: JUMPDEST
00001dde: POP
00001ddf: GAS
00001de0: DELEGATECALL
00001de1: ISZERO
00001de2: DUP1
00001de3: ISZERO
00001de4: PUSH2 0x1def
00001de7: JUMPI
00001de8: RETURNDATASIZE
00001de9: PUSH0
00001dea: PUSH0
00001deb: RETURNDATACOPY
00001dec: RETURNDATASIZE
00001ded: PUSH0
00001dee: REVERT
00001def: JUMPDEST
00001df0: POP
00001df1: POP
00001df2: PUSH1 0x40
00001df4: MLOAD
00001df5: CALLER
00001df6: SWAP3
00001df7: POP
00001df8: PUSH32 0x4aa7ec2e9d912271d4af0f59b2735f825ef583f4d6ee04f0242be6f58febc0fc
00001e19: SWAP2
00001e1a: POP
00001e1b: PUSH0
00001e1c: SWAP1
00001e1d: LOG2
00001e1e: JUMP
00001e1f: JUMPDEST
00001e20: PUSH0
00001e21: PUSH2 0x1028
00001e24: PUSH2 0x2c86
00001e27: JUMP
00001e28: JUMPDEST
00001e29: PUSH0
00001e2a: PUSH2 0x10ed
00001e2d: DUP4
00001e2e: DUP4
00001e2f: PUSH2 0x2cca
00001e32: JUMP
00001e33: JUMPDEST
00001e34: PUSH0
00001e35: PUSH0
00001e36: PUSH2 0x1e3d
00001e39: PUSH2 0x2a78
00001e3c: JUMP
00001e3d: JUMPDEST
00001e3e: SWAP1
00001e3f: POP
00001e40: PUSH2 0x1e49
00001e43: DUP5
00001e44: DUP5
00001e45: PUSH2 0x35ef
00001e48: JUMP
00001e49: JUMPDEST
00001e4a: SWAP2
00001e4b: POP
00001e4c: DUP1
00001e4d: PUSH1 0x01
00001e4f: PUSH1 0x01
00001e51: PUSH1 0xa0
00001e53: SHL
00001e54: SUB
00001e55: AND
00001e56: PUSH4 0x62402b04
00001e5b: PUSH1 0x40
00001e5d: MLOAD
00001e5e: DUP2
00001e5f: PUSH4 0xffffffff
00001e64: AND
00001e65: PUSH1 0xe0
00001e67: SHL
00001e68: DUP2
00001e69: MSTORE
00001e6a: PUSH1 0x04
00001e6c: ADD
00001e6d: PUSH0
00001e6e: PUSH1 0x40
00001e70: MLOAD
00001e71: DUP1
00001e72: DUP4
00001e73: SUB
00001e74: DUP2
00001e75: PUSH0
00001e76: DUP8
00001e77: DUP1
00001e78: EXTCODESIZE
00001e79: ISZERO
00001e7a: DUP1
00001e7b: ISZERO
00001e7c: PUSH2 0x1e83
00001e7f: JUMPI
00001e80: PUSH0
00001e81: PUSH0
00001e82: REVERT
00001e83: JUMPDEST
00001e84: POP
00001e85: GAS
00001e86: CALL
00001e87: ISZERO
00001e88: DUP1
00001e89: ISZERO
00001e8a: PUSH2 0x1e95
00001e8d: JUMPI
00001e8e: RETURNDATASIZE
00001e8f: PUSH0
00001e90: PUSH0
00001e91: RETURNDATACOPY
00001e92: RETURNDATASIZE
00001e93: PUSH0
00001e94: REVERT
00001e95: JUMPDEST
00001e96: POP
00001e97: POP
00001e98: POP
00001e99: POP
00001e9a: POP
00001e9b: SWAP3
00001e9c: SWAP2
00001e9d: POP
00001e9e: POP
00001e9f: JUMP
00001ea0: JUMPDEST
00001ea1: PUSH1 0x40
00001ea3: MLOAD
00001ea4: PUSH4 0xb0062139
00001ea9: PUSH1 0xe0
00001eab: SHL
00001eac: DUP2
00001ead: MSTORE
00001eae: PUSH1 0x04
00001eb0: DUP2
00001eb1: ADD
00001eb2: DUP4
00001eb3: SWAP1
00001eb4: MSTORE
00001eb5: PUSH0
00001eb6: PUSH1 0x24
00001eb8: DUP3
00001eb9: ADD
00001eba: DUP2
00001ebb: SWAP1
00001ebc: MSTORE
00001ebd: PUSH1 0x01
00001ebf: PUSH1 0x01
00001ec1: PUSH1 0xa0
00001ec3: SHL
00001ec4: SUB
00001ec5: DUP4
00001ec6: AND
00001ec7: PUSH1 0x44
00001ec9: DUP4
00001eca: ADD
00001ecb: MSTORE
00001ecc: CALLER
00001ecd: PUSH1 0x64
00001ecf: DUP4
00001ed0: ADD
00001ed1: MSTORE
00001ed2: SWAP1
00001ed3: DUP2
00001ed4: SWAP1
00001ed5: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
00001eea: SWAP1
00001eeb: PUSH4 0xb0062139
00001ef0: SWAP1
00001ef1: PUSH1 0x84
00001ef3: ADD
00001ef4: PUSH1 0x40
00001ef6: DUP1
00001ef7: MLOAD
00001ef8: DUP1
00001ef9: DUP4
00001efa: SUB
00001efb: DUP2
00001efc: DUP7
00001efd: GAS
00001efe: DELEGATECALL
00001eff: ISZERO
00001f00: DUP1
00001f01: ISZERO
00001f02: PUSH2 0x1f0d
00001f05: JUMPI
00001f06: RETURNDATASIZE
00001f07: PUSH0
00001f08: PUSH0
00001f09: RETURNDATACOPY
00001f0a: RETURNDATASIZE
00001f0b: PUSH0
00001f0c: REVERT
00001f0d: JUMPDEST
00001f0e: POP
00001f0f: POP
00001f10: POP
00001f11: POP
00001f12: PUSH1 0x40
00001f14: MLOAD
00001f15: RETURNDATASIZE
00001f16: PUSH1 0x1f
00001f18: NOT
00001f19: PUSH1 0x1f
00001f1b: DUP3
00001f1c: ADD
00001f1d: AND
00001f1e: DUP3
00001f1f: ADD
00001f20: DUP1
00001f21: PUSH1 0x40
00001f23: MSTORE
00001f24: POP
00001f25: DUP2
00001f26: ADD
00001f27: SWAP1
00001f28: PUSH2 0x1f31
00001f2b: SWAP2
00001f2c: SWAP1
00001f2d: PUSH2 0x5107
00001f30: JUMP
00001f31: JUMPDEST
00001f32: PUSH1 0x40
00001f34: DUP1
00001f35: MLOAD
00001f36: DUP4
00001f37: DUP2
00001f38: MSTORE
00001f39: PUSH1 0x20
00001f3b: DUP2
00001f3c: ADD
00001f3d: DUP4
00001f3e: SWAP1
00001f3f: MSTORE
00001f40: SWAP2
00001f41: SWAP5
00001f42: POP
00001f43: SWAP2
00001f44: SWAP3
00001f45: POP
00001f46: PUSH1 0x01
00001f48: PUSH1 0x01
00001f4a: PUSH1 0xa0
00001f4c: SHL
00001f4d: SUB
00001f4e: DUP6
00001f4f: AND
00001f50: SWAP2
00001f51: CALLER
00001f52: SWAP2
00001f53: PUSH32 0xe4a1ae657f49cb1fb1c7d3a94ae6093565c4c8c0e03de488f79c377c3c3a24e0
00001f74: SWAP2
00001f75: ADD
00001f76: JUMPDEST
00001f77: PUSH1 0x40
00001f79: MLOAD
00001f7a: DUP1
00001f7b: SWAP2
00001f7c: SUB
00001f7d: SWAP1
00001f7e: LOG3
00001f7f: POP
00001f80: SWAP3
00001f81: SWAP2
00001f82: POP
00001f83: POP
00001f84: JUMP
00001f85: JUMPDEST
00001f86: PUSH0
00001f87: PUSH2 0x10bb
00001f8a: DUP3
00001f8b: PUSH1 0x01
00001f8d: PUSH2 0x2a32
00001f90: JUMP
00001f91: JUMPDEST
00001f92: PUSH0
00001f93: PUSH2 0x17b0
00001f96: DUP5
00001f97: PUSH0
00001f98: DUP6
00001f99: DUP6
00001f9a: CALLER
00001f9b: PUSH1 0x01
00001f9d: PUSH2 0x35fc
00001fa0: JUMP
00001fa1: JUMPDEST
00001fa2: PUSH0
00001fa3: PUSH0
00001fa4: MLOAD
00001fa5: PUSH1 0x20
00001fa7: PUSH2 0x5728
00001faa: PUSH0
00001fab: CODECOPY
00001fac: PUSH0
00001fad: MLOAD
00001fae: SWAP1
00001faf: PUSH0
00001fb0: MSTORE
00001fb1: DUP2
00001fb2: DUP4
00001fb3: PUSH1 0x02
00001fb5: DUP2
00001fb6: GT
00001fb7: ISZERO
00001fb8: PUSH2 0x1fc3
00001fbb: JUMPI
00001fbc: PUSH2 0x1fc3
00001fbf: PUSH2 0x51e6
00001fc2: JUMP
00001fc3: JUMPDEST
00001fc4: PUSH1 0x02
00001fc6: DUP2
00001fc7: GT
00001fc8: ISZERO
00001fc9: PUSH2 0x1fd4
00001fcc: JUMPI
00001fcd: PUSH2 0x1fd4
00001fd0: PUSH2 0x51e6
00001fd3: JUMP
00001fd4: JUMPDEST
00001fd5: DUP2
00001fd6: MSTORE
00001fd7: PUSH1 0x20
00001fd9: ADD
00001fda: SWAP1
00001fdb: DUP2
00001fdc: MSTORE
00001fdd: PUSH1 0x20
00001fdf: ADD
00001fe0: PUSH0
00001fe1: KECCAK256
00001fe2: SLOAD
00001fe3: SWAP1
00001fe4: POP
00001fe5: SWAP2
00001fe6: SWAP1
00001fe7: POP
00001fe8: JUMP
00001fe9: JUMPDEST
00001fea: PUSH0
00001feb: PUSH2 0x17b0
00001fee: DUP5
00001fef: PUSH0
00001ff0: DUP6
00001ff1: DUP6
00001ff2: PUSH2 0x2fbb
00001ff5: JUMP
00001ff6: JUMPDEST
00001ff7: PUSH0
00001ff8: PUSH2 0x2005
00001ffb: DUP6
00001ffc: PUSH0
00001ffd: DUP7
00001ffe: DUP7
00001fff: CALLER
00002000: DUP8
00002001: PUSH2 0x35fc
00002004: JUMP
00002005: JUMPDEST
00002006: SWAP7
00002007: SWAP6
00002008: POP
00002009: POP
0000200a: POP
0000200b: POP
0000200c: POP
0000200d: POP
0000200e: JUMP
0000200f: JUMPDEST
00002010: PUSH0
00002011: PUSH2 0x201f
00002014: PUSH0
00002015: DUP6
00002016: DUP6
00002017: DUP6
00002018: CALLER
00002019: PUSH1 0x01
0000201b: PUSH2 0x35fc
0000201e: JUMP
0000201f: JUMPDEST
00002020: POP
00002021: SWAP5
00002022: SWAP4
00002023: POP
00002024: POP
00002025: POP
00002026: POP
00002027: JUMP
00002028: JUMPDEST
00002029: PUSH0
0000202a: PUSH0
0000202b: PUSH0
0000202c: PUSH2 0x2036
0000202f: PUSH2 0x18fe
00002032: PUSH2 0x30f1
00002035: JUMP
00002036: JUMPDEST
00002037: SWAP2
00002038: POP
00002039: SWAP2
0000203a: POP
0000203b: PUSH2 0x10a7
0000203e: DUP5
0000203f: DUP4
00002040: DUP4
00002041: PUSH0
00002042: PUSH1 0x02
00002044: PUSH2 0x3790
00002047: JUMP
00002048: JUMPDEST
00002049: PUSH0
0000204a: PUSH0
0000204b: PUSH0
0000204c: PUSH2 0x2056
0000204f: PUSH2 0x18fe
00002052: PUSH2 0x30f1
00002055: JUMP
00002056: JUMPDEST
00002057: SWAP2
00002058: POP
00002059: SWAP2
0000205a: POP
0000205b: PUSH2 0x10a7
0000205e: DUP5
0000205f: DUP4
00002060: DUP4
00002061: PUSH0
00002062: PUSH1 0x02
00002064: PUSH2 0x33e2
00002067: JUMP
00002068: JUMPDEST
00002069: PUSH0
0000206a: PUSH2 0x201f
0000206d: PUSH0
0000206e: DUP6
0000206f: DUP6
00002070: DUP6
00002071: PUSH2 0x2fbb
00002074: JUMP
00002075: JUMPDEST
00002076: PUSH1 0x40
00002078: MLOAD
00002079: PUSH4 0x0f5cbacf
0000207e: PUSH1 0xe2
00002080: SHL
00002081: DUP2
00002082: MSTORE
00002083: PUSH1 0x01
00002085: PUSH1 0x01
00002087: PUSH1 0xa0
00002089: SHL
0000208a: SUB
0000208b: DUP3
0000208c: AND
0000208d: PUSH1 0x04
0000208f: DUP3
00002090: ADD
00002091: MSTORE
00002092: PUSH0
00002093: SWAP1
00002094: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
000020a9: SWAP1
000020aa: PUSH4 0x3d72eb3c
000020af: SWAP1
000020b0: PUSH1 0x24
000020b2: ADD
000020b3: PUSH1 0x20
000020b5: PUSH1 0x40
000020b7: MLOAD
000020b8: DUP1
000020b9: DUP4
000020ba: SUB
000020bb: DUP2
000020bc: DUP7
000020bd: GAS
000020be: DELEGATECALL
000020bf: ISZERO
000020c0: DUP1
000020c1: ISZERO
000020c2: PUSH2 0x20cd
000020c5: JUMPI
000020c6: RETURNDATASIZE
000020c7: PUSH0
000020c8: PUSH0
000020c9: RETURNDATACOPY
000020ca: RETURNDATASIZE
000020cb: PUSH0
000020cc: REVERT
000020cd: JUMPDEST
000020ce: POP
000020cf: POP
000020d0: POP
000020d1: POP
000020d2: PUSH1 0x40
000020d4: MLOAD
000020d5: RETURNDATASIZE
000020d6: PUSH1 0x1f
000020d8: NOT
000020d9: PUSH1 0x1f
000020db: DUP3
000020dc: ADD
000020dd: AND
000020de: DUP3
000020df: ADD
000020e0: DUP1
000020e1: PUSH1 0x40
000020e3: MSTORE
000020e4: POP
000020e5: DUP2
000020e6: ADD
000020e7: SWAP1
000020e8: PUSH2 0x20f1
000020eb: SWAP2
000020ec: SWAP1
000020ed: PUSH2 0x50ec
000020f0: JUMP
000020f1: JUMPDEST
000020f2: SWAP1
000020f3: POP
000020f4: PUSH2 0x2100
000020f7: ADDRESS
000020f8: DUP3
000020f9: PUSH2 0x0800
000020fc: PUSH2 0x37bf
000020ff: JUMP
00002100: JUMPDEST
00002101: POP
00002102: POP
00002103: JUMP
00002104: JUMPDEST
00002105: PUSH2 0x210c
00002108: PUSH2 0x2caf
0000210b: JUMP
0000210c: JUMPDEST
0000210d: PUSH1 0x01
0000210f: PUSH1 0x01
00002111: PUSH1 0xa0
00002113: SHL
00002114: SUB
00002115: AND
00002116: CALLER
00002117: PUSH1 0x01
00002119: PUSH1 0x01
0000211b: PUSH1 0xa0
0000211d: SHL
0000211e: SUB
0000211f: AND
00002120: EQ
00002121: PUSH2 0x213d
00002124: JUMPI
00002125: PUSH1 0x40
00002127: MLOAD
00002128: PUSH4 0x10528c6d
0000212d: PUSH1 0xe1
0000212f: SHL
00002130: DUP2
00002131: MSTORE
00002132: PUSH1 0x04
00002134: ADD
00002135: PUSH1 0x40
00002137: MLOAD
00002138: DUP1
00002139: SWAP2
0000213a: SUB
0000213b: SWAP1
0000213c: REVERT
0000213d: JUMPDEST
0000213e: PUSH2 0x2147
00002141: DUP4
00002142: DUP3
00002143: PUSH2 0x397c
00002146: JUMP
00002147: JUMPDEST
00002148: POP
00002149: POP
0000214a: POP
0000214b: JUMP
0000214c: JUMPDEST
0000214d: PUSH0
0000214e: PUSH2 0x10bb
00002151: DUP3
00002152: PUSH1 0x01
00002154: PUSH2 0x2d0f
00002157: JUMP
00002158: JUMPDEST
00002159: PUSH0
0000215a: PUSH0
0000215b: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
00002170: PUSH4 0xcad1aacf
00002175: PUSH1 0x40
00002177: MLOAD
00002178: DUP2
00002179: PUSH4 0xffffffff
0000217e: AND
0000217f: PUSH1 0xe0
00002181: SHL
00002182: DUP2
00002183: MSTORE
00002184: PUSH1 0x04
00002186: ADD
00002187: PUSH1 0x40
00002189: DUP1
0000218a: MLOAD
0000218b: DUP1
0000218c: DUP4
0000218d: SUB
0000218e: DUP2
0000218f: DUP7
00002190: GAS
00002191: DELEGATECALL
00002192: ISZERO
00002193: DUP1
00002194: ISZERO
00002195: PUSH2 0x21a0
00002198: JUMPI
00002199: RETURNDATASIZE
0000219a: PUSH0
0000219b: PUSH0
0000219c: RETURNDATACOPY
0000219d: RETURNDATASIZE
0000219e: PUSH0
0000219f: REVERT
000021a0: JUMPDEST
000021a1: POP
000021a2: POP
000021a3: POP
000021a4: POP
000021a5: PUSH1 0x40
000021a7: MLOAD
000021a8: RETURNDATASIZE
000021a9: PUSH1 0x1f
000021ab: NOT
000021ac: PUSH1 0x1f
000021ae: DUP3
000021af: ADD
000021b0: AND
000021b1: DUP3
000021b2: ADD
000021b3: DUP1
000021b4: PUSH1 0x40
000021b6: MSTORE
000021b7: POP
000021b8: DUP2
000021b9: ADD
000021ba: SWAP1
000021bb: PUSH2 0x21c4
000021be: SWAP2
000021bf: SWAP1
000021c0: PUSH2 0x51fa
000021c3: JUMP
000021c4: JUMPDEST
000021c5: PUSH1 0x40
000021c7: DUP1
000021c8: MLOAD
000021c9: PUSH3 0xffffff
000021cd: DUP1
000021ce: DUP6
000021cf: AND
000021d0: DUP3
000021d1: MSTORE
000021d2: DUP4
000021d3: AND
000021d4: PUSH1 0x20
000021d6: DUP3
000021d7: ADD
000021d8: MSTORE
000021d9: SWAP3
000021da: SWAP5
000021db: POP
000021dc: SWAP1
000021dd: SWAP3
000021de: POP
000021df: PUSH32 0x2b7ec2cd1f9292c7a9ae800c2479f6be4217beacb0c01ef2d7e4e84fced3d75b
00002200: SWAP2
00002201: ADD
00002202: PUSH1 0x40
00002204: MLOAD
00002205: DUP1
00002206: SWAP2
00002207: SUB
00002208: SWAP1
00002209: LOG1
0000220a: POP
0000220b: POP
0000220c: JUMP
0000220d: JUMPDEST
0000220e: PUSH0
0000220f: PUSH2 0x16ed
00002212: DUP3
00002213: PUSH1 0x01
00002215: PUSH2 0x27c6
00002218: JUMP
00002219: JUMPDEST
0000221a: PUSH2 0x2224
0000221d: PUSH2 0x10de
00002220: PUSH2 0x2892
00002223: JUMP
00002224: JUMPDEST
00002225: PUSH2 0x2233
00002228: DUP8
00002229: DUP8
0000222a: DUP8
0000222b: DUP8
0000222c: DUP8
0000222d: DUP8
0000222e: DUP8
0000222f: PUSH2 0x39b0
00002232: JUMP
00002233: JUMPDEST
00002234: POP
00002235: POP
00002236: POP
00002237: POP
00002238: POP
00002239: POP
0000223a: POP
0000223b: JUMP
0000223c: JUMPDEST
0000223d: PUSH0
0000223e: PUSH0
0000223f: PUSH0
00002240: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
00002255: PUSH4 0x5937128b
0000225a: PUSH1 0x40
0000225c: MLOAD
0000225d: DUP1
0000225e: PUSH1 0x80
00002260: ADD
00002261: PUSH1 0x40
00002263: MSTORE
00002264: DUP1
00002265: DUP10
00002266: DUP2
00002267: MSTORE
00002268: PUSH1 0x20
0000226a: ADD
0000226b: PUSH0
0000226c: DUP2
0000226d: MSTORE
0000226e: PUSH1 0x20
00002270: ADD
00002271: DUP9
00002272: PUSH1 0x01
00002274: PUSH1 0x01
00002276: PUSH1 0xa0
00002278: SHL
00002279: SUB
0000227a: AND
0000227b: DUP2
0000227c: MSTORE
0000227d: PUSH1 0x20
0000227f: ADD
00002280: DUP8
00002281: PUSH1 0x01
00002283: PUSH1 0x01
00002285: PUSH1 0xa0
00002287: SHL
00002288: SUB
00002289: AND
0000228a: DUP2
0000228b: MSTORE
0000228c: POP
0000228d: PUSH1 0x40
0000228f: MLOAD
00002290: DUP3
00002291: PUSH4 0xffffffff
00002296: AND
00002297: PUSH1 0xe0
00002299: SHL
0000229a: DUP2
0000229b: MSTORE
0000229c: PUSH1 0x04
0000229e: ADD
0000229f: PUSH2 0x1997
000022a2: SWAP2
000022a3: SWAP1
000022a4: PUSH2 0x51ac
000022a7: JUMP
000022a8: JUMPDEST
000022a9: PUSH0
000022aa: PUSH2 0x10ed
000022ad: DUP3
000022ae: PUSH1 0x01
000022b0: PUSH2 0x27c6
000022b3: JUMP
000022b4: JUMPDEST
000022b5: PUSH0
000022b6: MLOAD
000022b7: PUSH1 0x20
000022b9: PUSH2 0x5708
000022bc: PUSH0
000022bd: CODECOPY
000022be: PUSH0
000022bf: MLOAD
000022c0: SWAP1
000022c1: PUSH0
000022c2: MSTORE
000022c3: PUSH1 0x02
000022c5: ADD
000022c6: SLOAD
000022c7: PUSH1 0x01
000022c9: PUSH1 0x01
000022cb: PUSH1 0xa0
000022cd: SHL
000022ce: SUB
000022cf: AND
000022d0: CALLER
000022d1: EQ
000022d2: PUSH2 0x22ee
000022d5: JUMPI
000022d6: PUSH1 0x40
000022d8: MLOAD
000022d9: PUSH4 0x80897acb
000022de: PUSH1 0xe0
000022e0: SHL
000022e1: DUP2
000022e2: MSTORE
000022e3: PUSH1 0x04
000022e5: ADD
000022e6: PUSH1 0x40
000022e8: MLOAD
000022e9: DUP1
000022ea: SWAP2
000022eb: SUB
000022ec: SWAP1
000022ed: REVERT
000022ee: JUMPDEST
000022ef: PUSH32 0x01b0b3f9d6e360167e522fa2b18ba597ad7b2b35841fec7e1ca4dbb0adea1203
00002310: DUP1
00002311: SLOAD
00002312: PUSH1 0xff
00002314: NOT
00002315: AND
00002316: SWAP1
00002317: SSTORE
00002318: PUSH0
00002319: MLOAD
0000231a: PUSH1 0x20
0000231c: PUSH2 0x5708
0000231f: PUSH0
00002320: CODECOPY
00002321: PUSH0
00002322: MLOAD
00002323: SWAP1
00002324: PUSH0
00002325: MSTORE
00002326: PUSH2 0x2330
00002329: DUP5
0000232a: DUP5
0000232b: DUP5
0000232c: PUSH2 0x3b05
0000232f: JUMP
00002330: JUMPDEST
00002331: PUSH1 0x03
00002333: ADD
00002334: DUP1
00002335: SLOAD
00002336: PUSH1 0xff
00002338: NOT
00002339: AND
0000233a: PUSH1 0x01
0000233c: OR
0000233d: SWAP1
0000233e: SSTORE
0000233f: POP
00002340: POP
00002341: POP
00002342: JUMP
00002343: JUMPDEST
00002344: PUSH1 0x40
00002346: MLOAD
00002347: PUSH4 0x36766339
0000234c: PUSH1 0xe2
0000234e: SHL
0000234f: DUP2
00002350: MSTORE
00002351: PUSH1 0x01
00002353: PUSH1 0x01
00002355: PUSH1 0xa0
00002357: SHL
00002358: SUB
00002359: DUP4
0000235a: AND
0000235b: PUSH1 0x04
0000235d: DUP3
0000235e: ADD
0000235f: MSTORE
00002360: PUSH1 0x24
00002362: DUP2
00002363: ADD
00002364: DUP3
00002365: SWAP1
00002366: MSTORE
00002367: PUSH0
00002368: SWAP1
00002369: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9
0000237e: SWAP1
0000237f: PUSH4 0xd9d98ce4
00002384: SWAP1
00002385: PUSH1 0x44
00002387: ADD
00002388: PUSH1 0x20
0000238a: PUSH1 0x40
0000238c: MLOAD
0000238d: DUP1
0000238e: DUP4
0000238f: SUB
00002390: DUP2
00002391: DUP7
00002392: GAS
00002393: DELEGATECALL
00002394: ISZERO
00002395: DUP1
00002396: ISZERO
00002397: PUSH2 0x1252
0000239a: JUMPI
0000239b: RETURNDATASIZE
0000239c: PUSH0
0000239d: PUSH0
0000239e: RETURNDATACOPY
0000239f: RETURNDATASIZE
000023a0: PUSH0
000023a1: REVERT
000023a2: JUMPDEST
000023a3: PUSH0
000023a4: PUSH2 0x23b1
000023a7: PUSH0
000023a8: DUP7
000023a9: DUP7
000023aa: DUP7
000023ab: CALLER
000023ac: DUP8
000023ad: PUSH2 0x35fc
000023b0: JUMP
000023b1: JUMPDEST
000023b2: POP
000023b3: SWAP6
000023b4: SWAP5
000023b5: POP
000023b6: POP
000023b7: POP
000023b8: POP
000023b9: POP
000023ba: JUMP
000023bb: JUMPDEST
000023bc: PUSH0
000023bd: PUSH0
000023be: PUSH2 0x23c6
000023c1: DUP4
000023c2: PUSH2 0x18ad
000023c5: JUMP
000023c6: JUMPDEST
000023c7: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02
000023e8: SLOAD
000023e9: SWAP2
000023ea: POP
000023eb: SWAP2
000023ec: POP
000023ed: SWAP2
000023ee: POP
000023ef: SWAP2
000023f0: JUMP
000023f1: JUMPDEST
000023f2: PUSH1 0x01
000023f4: PUSH1 0x01
000023f6: PUSH1 0xa0
000023f8: SHL
000023f9: SUB
000023fa: SWAP2
000023fb: DUP3
000023fc: AND
000023fd: PUSH0
000023fe: SWAP1
000023ff: DUP2
00002400: MSTORE
00002401: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01
00002422: PUSH1 0x20
00002424: SWAP1
00002425: DUP2
00002426: MSTORE
00002427: PUSH1 0x40
00002429: DUP1
0000242a: DUP4
0000242b: KECCAK256
0000242c: SWAP4
0000242d: SWAP1
0000242e: SWAP5
0000242f: AND
00002430: DUP3
00002431: MSTORE
00002432: SWAP2
00002433: SWAP1
00002434: SWAP2
00002435: MSTORE
00002436: KECCAK256
00002437: SLOAD
00002438: SWAP1
00002439: JUMP
0000243a: JUMPDEST
0000243b: PUSH1 0x40
0000243d: MLOAD
0000243e: PUSH4 0xb0062139
00002443: PUSH1 0xe0
00002445: SHL
00002446: DUP2
00002447: MSTORE
00002448: PUSH0
00002449: PUSH1 0x04
0000244b: DUP3
0000244c: ADD
0000244d: DUP2
0000244e: SWAP1
0000244f: MSTORE
00002450: PUSH1 0x24
00002452: DUP3
00002453: ADD
00002454: DUP5
00002455: SWAP1
00002456: MSTORE
00002457: PUSH1 0x01
00002459: PUSH1 0x01
0000245b: PUSH1 0xa0
0000245d: SHL
0000245e: SUB
0000245f: DUP4
00002460: AND
00002461: PUSH1 0x44
00002463: DUP4
00002464: ADD
00002465: MSTORE
00002466: CALLER
00002467: PUSH1 0x64
00002469: DUP4
0000246a: ADD
0000246b: MSTORE
0000246c: SWAP1
0000246d: DUP2
0000246e: SWAP1
0000246f: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
00002484: SWAP1
00002485: PUSH4 0xb0062139
0000248a: SWAP1
0000248b: PUSH1 0x84
0000248d: ADD
0000248e: PUSH1 0x40
00002490: DUP1
00002491: MLOAD
00002492: DUP1
00002493: DUP4
00002494: SUB
00002495: DUP2
00002496: DUP7
00002497: GAS
00002498: DELEGATECALL
00002499: ISZERO
0000249a: DUP1
0000249b: ISZERO
0000249c: PUSH2 0x24a7
0000249f: JUMPI
000024a0: RETURNDATASIZE
000024a1: PUSH0
000024a2: PUSH0
000024a3: RETURNDATACOPY
000024a4: RETURNDATASIZE
000024a5: PUSH0
000024a6: REVERT
000024a7: JUMPDEST
000024a8: POP
000024a9: POP
000024aa: POP
000024ab: POP
000024ac: PUSH1 0x40
000024ae: MLOAD
000024af: RETURNDATASIZE
000024b0: PUSH1 0x1f
000024b2: NOT
000024b3: PUSH1 0x1f
000024b5: DUP3
000024b6: ADD
000024b7: AND
000024b8: DUP3
000024b9: ADD
000024ba: DUP1
000024bb: PUSH1 0x40
000024bd: MSTORE
000024be: POP
000024bf: DUP2
000024c0: ADD
000024c1: SWAP1
000024c2: PUSH2 0x24cb
000024c5: SWAP2
000024c6: SWAP1
000024c7: PUSH2 0x5107
000024ca: JUMP
000024cb: JUMPDEST
000024cc: PUSH1 0x40
000024ce: DUP1
000024cf: MLOAD
000024d0: DUP4
000024d1: DUP2
000024d2: MSTORE
000024d3: PUSH1 0x20
000024d5: DUP2
000024d6: ADD
000024d7: DUP4
000024d8: SWAP1
000024d9: MSTORE
000024da: SWAP3
000024db: SWAP5
000024dc: POP
000024dd: SWAP1
000024de: SWAP3
000024df: POP
000024e0: PUSH1 0x01
000024e2: PUSH1 0x01
000024e4: PUSH1 0xa0
000024e6: SHL
000024e7: SUB
000024e8: DUP6
000024e9: AND
000024ea: SWAP2
000024eb: CALLER
000024ec: SWAP2
000024ed: PUSH32 0xe4a1ae657f49cb1fb1c7d3a94ae6093565c4c8c0e03de488f79c377c3c3a24e0
0000250e: SWAP2
0000250f: ADD
00002510: PUSH2 0x1f76
00002513: JUMP
00002514: JUMPDEST
00002515: PUSH0
00002516: PUSH0
00002517: PUSH0
00002518: PUSH2 0x2522
0000251b: PUSH2 0x18fe
0000251e: PUSH2 0x30f1
00002521: JUMP
00002522: JUMPDEST
00002523: SWAP2
00002524: POP
00002525: SWAP2
00002526: POP
00002527: PUSH2 0x10a7
0000252a: DUP5
0000252b: DUP4
0000252c: DUP4
0000252d: PUSH1 0x01
0000252f: PUSH1 0x02
00002531: PUSH2 0x3790
00002534: JUMP
00002535: JUMPDEST
00002536: PUSH0
00002537: PUSH2 0x1028
0000253a: PUSH2 0x3b62
0000253d: JUMP
0000253e: JUMPDEST
0000253f: PUSH0
00002540: PUSH2 0x10bb
00002543: DUP3
00002544: PUSH1 0x01
00002546: PUSH2 0x2eaa
00002549: JUMP
0000254a: JUMPDEST
0000254b: PUSH2 0x2552
0000254e: PUSH2 0x2caf
00002551: JUMP
00002552: JUMPDEST
00002553: PUSH1 0x01
00002555: PUSH1 0x01
00002557: PUSH1 0xa0
00002559: SHL
0000255a: SUB
0000255b: AND
0000255c: CALLER
0000255d: PUSH1 0x01
0000255f: PUSH1 0x01
00002561: PUSH1 0xa0
00002563: SHL
00002564: SUB
00002565: AND
00002566: EQ
00002567: PUSH2 0x2583
0000256a: JUMPI
0000256b: PUSH1 0x40
0000256d: MLOAD
0000256e: PUSH4 0x10528c6d
00002573: PUSH1 0xe1
00002575: SHL
00002576: DUP2
00002577: MSTORE
00002578: PUSH1 0x04
0000257a: ADD
0000257b: PUSH1 0x40
0000257d: MLOAD
0000257e: DUP1
0000257f: SWAP2
00002580: SUB
00002581: SWAP1
00002582: REVERT
00002583: JUMPDEST
00002584: DUP2
00002585: PUSH1 0x01
00002587: PUSH1 0x01
00002589: PUSH1 0xa0
0000258b: SHL
0000258c: SUB
0000258d: AND
0000258e: DUP4
0000258f: PUSH1 0x01
00002591: PUSH1 0x01
00002593: PUSH1 0xa0
00002595: SHL
00002596: SUB
00002597: AND
00002598: EQ
00002599: PUSH2 0x25a7
0000259c: JUMPI
0000259d: PUSH2 0x25a7
000025a0: DUP4
000025a1: DUP4
000025a2: DUP4
000025a3: PUSH2 0x3b81
000025a6: JUMP
000025a7: JUMPDEST
000025a8: PUSH2 0x2147
000025ab: DUP4
000025ac: DUP3
000025ad: PUSH2 0x3bde
000025b0: JUMP
000025b1: JUMPDEST
000025b2: PUSH0
000025b3: PUSH0
000025b4: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
000025c9: PUSH4 0x5ca5797b
000025ce: PUSH1 0x40
000025d0: MLOAD
000025d1: DUP1
000025d2: PUSH1 0x60
000025d4: ADD
000025d5: PUSH1 0x40
000025d7: MSTORE
000025d8: DUP1
000025d9: DUP9
000025da: DUP2
000025db: MSTORE
000025dc: PUSH1 0x20
000025de: ADD
000025df: DUP8
000025e0: PUSH1 0x01
000025e2: PUSH1 0x01
000025e4: PUSH1 0xa0
000025e6: SHL
000025e7: SUB
000025e8: AND
000025e9: DUP2
000025ea: MSTORE
000025eb: PUSH1 0x20
000025ed: ADD
000025ee: DUP7
000025ef: PUSH1 0x01
000025f1: DUP2
000025f2: GT
000025f3: ISZERO
000025f4: PUSH2 0x25ff
000025f7: JUMPI
000025f8: PUSH2 0x25ff
000025fb: PUSH2 0x51e6
000025fe: JUMP
000025ff: JUMPDEST
00002600: DUP2
00002601: MSTORE
00002602: POP
00002603: PUSH1 0x40
00002605: MLOAD
00002606: DUP3
00002607: PUSH4 0xffffffff
0000260c: AND
0000260d: PUSH1 0xe0
0000260f: SHL
00002610: DUP2
00002611: MSTORE
00002612: PUSH1 0x04
00002614: ADD
00002615: PUSH2 0x261e
00002618: SWAP2
00002619: SWAP1
0000261a: PUSH2 0x523b
0000261d: JUMP
0000261e: JUMPDEST
0000261f: PUSH1 0x40
00002621: DUP1
00002622: MLOAD
00002623: DUP1
00002624: DUP4
00002625: SUB
00002626: DUP2
00002627: DUP7
00002628: GAS
00002629: DELEGATECALL
0000262a: ISZERO
0000262b: DUP1
0000262c: ISZERO
0000262d: PUSH2 0x2638
00002630: JUMPI
00002631: RETURNDATASIZE
00002632: PUSH0
00002633: PUSH0
00002634: RETURNDATACOPY
00002635: RETURNDATASIZE
00002636: PUSH0
00002637: REVERT
00002638: JUMPDEST
00002639: POP
0000263a: POP
0000263b: POP
0000263c: POP
0000263d: PUSH1 0x40
0000263f: MLOAD
00002640: RETURNDATASIZE
00002641: PUSH1 0x1f
00002643: NOT
00002644: PUSH1 0x1f
00002646: DUP3
00002647: ADD
00002648: AND
00002649: DUP3
0000264a: ADD
0000264b: DUP1
0000264c: PUSH1 0x40
0000264e: MSTORE
0000264f: POP
00002650: DUP2
00002651: ADD
00002652: SWAP1
00002653: PUSH2 0x265c
00002656: SWAP2
00002657: SWAP1
00002658: PUSH2 0x5107
0000265b: JUMP
0000265c: JUMPDEST
0000265d: SWAP1
0000265e: SWAP3
0000265f: POP
00002660: SWAP1
00002661: POP
00002662: PUSH1 0x01
00002664: DUP4
00002665: PUSH1 0x01
00002667: DUP2
00002668: GT
00002669: ISZERO
0000266a: PUSH2 0x2675
0000266d: JUMPI
0000266e: PUSH2 0x2675
00002671: PUSH2 0x51e6
00002674: JUMP
00002675: JUMPDEST
00002676: SUB
00002677: PUSH2 0x270d
0000267a: JUMPI
0000267b: PUSH1 0x40
0000267d: DUP1
0000267e: MLOAD
0000267f: DUP4
00002680: DUP2
00002681: MSTORE
00002682: PUSH1 0x20
00002684: DUP2
00002685: ADD
00002686: DUP8
00002687: SWAP1
00002688: MSTORE
00002689: PUSH1 0x01
0000268b: PUSH1 0x01
0000268d: PUSH1 0xa0
0000268f: SHL
00002690: SUB
00002691: DUP7
00002692: AND
00002693: SWAP2
00002694: DUP3
00002695: SWAP2
00002696: CALLER
00002697: SWAP2
00002698: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db
000026b9: SWAP2
000026ba: ADD
000026bb: PUSH1 0x40
000026bd: MLOAD
000026be: DUP1
000026bf: SWAP2
000026c0: SUB
000026c1: SWAP1
000026c2: LOG4
000026c3: PUSH1 0x40
000026c5: DUP1
000026c6: MLOAD
000026c7: DUP4
000026c8: DUP2
000026c9: MSTORE
000026ca: PUSH1 0x20
000026cc: DUP2
000026cd: ADD
000026ce: DUP4
000026cf: SWAP1
000026d0: MSTORE
000026d1: PUSH1 0x01
000026d3: PUSH1 0x01
000026d5: PUSH1 0xa0
000026d7: SHL
000026d8: SUB
000026d9: DUP7
000026da: AND
000026db: SWAP2
000026dc: CALLER
000026dd: SWAP2
000026de: PUSH32 0x1ad348f5de3e19e23d88e34248ceb6ab09804a35a3abc0e7758045b7b9036acd
000026ff: SWAP2
00002700: ADD
00002701: PUSH1 0x40
00002703: MLOAD
00002704: DUP1
00002705: SWAP2
00002706: SUB
00002707: SWAP1
00002708: LOG3
00002709: PUSH2 0x1116
0000270c: JUMP
0000270d: JUMPDEST
0000270e: PUSH1 0x40
00002710: DUP1
00002711: MLOAD
00002712: DUP4
00002713: DUP2
00002714: MSTORE
00002715: PUSH1 0x20
00002717: DUP2
00002718: ADD
00002719: DUP8
0000271a: SWAP1
0000271b: MSTORE
0000271c: PUSH1 0x01
0000271e: PUSH1 0x01
00002720: PUSH1 0xa0
00002722: SHL
00002723: SUB
00002724: DUP7
00002725: AND
00002726: SWAP2
00002727: DUP3
00002728: SWAP2
00002729: CALLER
0000272a: SWAP2
0000272b: PUSH32 0x2dac01ea07cfa812db5881eaad96ba201c018c042b8f9ea7278cdf6f29e65f24
0000274c: SWAP2
0000274d: ADD
0000274e: PUSH1 0x40
00002750: MLOAD
00002751: DUP1
00002752: SWAP2
00002753: SUB
00002754: SWAP1
00002755: LOG4
00002756: PUSH1 0x40
00002758: DUP1
00002759: MLOAD
0000275a: DUP4
0000275b: DUP2
0000275c: MSTORE
0000275d: PUSH1 0x20
0000275f: DUP2
00002760: ADD
00002761: DUP4
00002762: SWAP1
00002763: MSTORE
00002764: PUSH1 0x01
00002766: PUSH1 0x01
00002768: PUSH1 0xa0
0000276a: SHL
0000276b: SUB
0000276c: DUP7
0000276d: AND
0000276e: SWAP2
0000276f: CALLER
00002770: SWAP2
00002771: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
00002792: SWAP2
00002793: ADD
00002794: PUSH1 0x40
00002796: MLOAD
00002797: DUP1
00002798: SWAP2
00002799: SUB
0000279a: SWAP1
0000279b: LOG3
0000279c: POP
0000279d: SWAP4
0000279e: SWAP3
0000279f: POP
000027a0: POP
000027a1: POP
000027a2: JUMP
000027a3: JUMPDEST
000027a4: PUSH0
000027a5: PUSH0
000027a6: PUSH2 0x1452
000027a9: PUSH2 0x3c12
000027ac: JUMP
000027ad: JUMPDEST
000027ae: PUSH0
000027af: PUSH2 0x27c0
000027b2: PUSH2 0x27b9
000027b5: PUSH2 0x30f1
000027b8: JUMP
000027b9: JUMPDEST
000027ba: PUSH1 0x01
000027bc: PUSH2 0x31f3
000027bf: JUMP
000027c0: JUMPDEST
000027c1: POP
000027c2: SWAP2
000027c3: SWAP1
000027c4: POP
000027c5: JUMP
000027c6: JUMPDEST
000027c7: PUSH0
000027c8: PUSH0
000027c9: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9
000027de: PUSH4 0x67df3cb4
000027e3: DUP6
000027e4: DUP6
000027e5: PUSH1 0x40
000027e7: MLOAD
000027e8: DUP4
000027e9: PUSH4 0xffffffff
000027ee: AND
000027ef: PUSH1 0xe0
000027f1: SHL
000027f2: DUP2
000027f3: MSTORE
000027f4: PUSH1 0x04
000027f6: ADD
000027f7: PUSH2 0x2801
000027fa: SWAP3
000027fb: SWAP2
000027fc: SWAP1
000027fd: PUSH2 0x5269
00002800: JUMP
00002801: JUMPDEST
00002802: PUSH1 0x40
00002804: DUP1
00002805: MLOAD
00002806: DUP1
00002807: DUP4
00002808: SUB
00002809: DUP2
0000280a: DUP7
0000280b: GAS
0000280c: DELEGATECALL
0000280d: ISZERO
0000280e: DUP1
0000280f: ISZERO
00002810: PUSH2 0x281b
00002813: JUMPI
00002814: RETURNDATASIZE
00002815: PUSH0
00002816: PUSH0
00002817: RETURNDATACOPY
00002818: RETURNDATASIZE
00002819: PUSH0
0000281a: REVERT
0000281b: JUMPDEST
0000281c: POP
0000281d: POP
0000281e: POP
0000281f: POP
00002820: PUSH1 0x40
00002822: MLOAD
00002823: RETURNDATASIZE
00002824: PUSH1 0x1f
00002826: NOT
00002827: PUSH1 0x1f
00002829: DUP3
0000282a: ADD
0000282b: AND
0000282c: DUP3
0000282d: ADD
0000282e: DUP1
0000282f: PUSH1 0x40
00002831: MSTORE
00002832: POP
00002833: DUP2
00002834: ADD
00002835: SWAP1
00002836: PUSH2 0x283f
00002839: SWAP2
0000283a: SWAP1
0000283b: PUSH2 0x5107
0000283e: JUMP
0000283f: JUMPDEST
00002840: SWAP2
00002841: POP
00002842: SWAP2
00002843: POP
00002844: JUMPDEST
00002845: SWAP3
00002846: POP
00002847: SWAP3
00002848: SWAP1
00002849: POP
0000284a: JUMP
0000284b: JUMPDEST
0000284c: PUSH0
0000284d: PUSH0
0000284e: PUSH0
0000284f: PUSH2 0x285f
00002852: PUSH2 0x2859
00002855: PUSH2 0x30f1
00002858: JUMP
00002859: JUMPDEST
0000285a: DUP6
0000285b: PUSH2 0x31f3
0000285e: JUMP
0000285f: JUMPDEST
00002860: SWAP1
00002861: SWAP3
00002862: POP
00002863: SWAP1
00002864: POP
00002865: PUSH2 0x17b0
00002868: DUP6
00002869: DUP4
0000286a: DUP4
0000286b: PUSH1 0x02
0000286d: DUP9
0000286e: PUSH1 0x02
00002870: DUP2
00002871: GT
00002872: ISZERO
00002873: PUSH2 0x287e
00002876: JUMPI
00002877: PUSH2 0x287e
0000287a: PUSH2 0x51e6
0000287d: JUMP
0000287e: JUMPDEST
0000287f: EQ
00002880: PUSH2 0x288a
00002883: JUMPI
00002884: PUSH1 0x01
00002886: PUSH2 0x288c
00002889: JUMP
0000288a: JUMPDEST
0000288b: PUSH0
0000288c: JUMPDEST
0000288d: DUP9
0000288e: PUSH2 0x3790
00002891: JUMP
00002892: JUMPDEST
00002893: PUSH32 0x01b0b3f9d6e360167e522fa2b18ba597ad7b2b35841fec7e1ca4dbb0adea1201
000028b4: SLOAD
000028b5: PUSH1 0x01
000028b7: PUSH1 0x01
000028b9: PUSH1 0xa0
000028bb: SHL
000028bc: SUB
000028bd: AND
000028be: SWAP1
000028bf: JUMP
000028c0: JUMPDEST
000028c1: PUSH1 0x40
000028c3: MLOAD
000028c4: PUSH4 0xe48a5f7b
000028c9: PUSH1 0xe0
000028cb: SHL
000028cc: DUP2
000028cd: MSTORE
000028ce: ADDRESS
000028cf: PUSH1 0x04
000028d1: DUP3
000028d2: ADD
000028d3: MSTORE
000028d4: PUSH0
000028d5: SWAP1
000028d6: DUP2
000028d7: SWAP1
000028d8: PUSH1 0x01
000028da: PUSH1 0x01
000028dc: PUSH1 0xa0
000028de: SHL
000028df: SUB
000028e0: DUP5
000028e1: AND
000028e2: SWAP1
000028e3: PUSH4 0xe48a5f7b
000028e8: SWAP1
000028e9: PUSH1 0x24
000028eb: ADD
000028ec: PUSH2 0x0220
000028ef: PUSH1 0x40
000028f1: MLOAD
000028f2: DUP1
000028f3: DUP4
000028f4: SUB
000028f5: DUP2
000028f6: DUP7
000028f7: GAS
000028f8: STATICCALL
000028f9: ISZERO
000028fa: DUP1
000028fb: ISZERO
000028fc: PUSH2 0x2907
000028ff: JUMPI
00002900: RETURNDATASIZE
00002901: PUSH0
00002902: PUSH0
00002903: RETURNDATACOPY
00002904: RETURNDATASIZE
00002905: PUSH0
00002906: REVERT
00002907: JUMPDEST
00002908: POP
00002909: POP
0000290a: POP
0000290b: POP
0000290c: PUSH1 0x40
0000290e: MLOAD
0000290f: RETURNDATASIZE
00002910: PUSH1 0x1f
00002912: NOT
00002913: PUSH1 0x1f
00002915: DUP3
00002916: ADD
00002917: AND
00002918: DUP3
00002919: ADD
0000291a: DUP1
0000291b: PUSH1 0x40
0000291d: MSTORE
0000291e: POP
0000291f: DUP2
00002920: ADD
00002921: SWAP1
00002922: PUSH2 0x292b
00002925: SWAP2
00002926: SWAP1
00002927: PUSH2 0x5286
0000292a: JUMP
0000292b: JUMPDEST
0000292c: SWAP1
0000292d: POP
0000292e: PUSH2 0x2944
00002931: DUP2
00002932: PUSH2 0x0120
00002935: ADD
00002936: MLOAD
00002937: DUP3
00002938: PUSH0
00002939: ADD
0000293a: MLOAD
0000293b: DUP4
0000293c: PUSH1 0x20
0000293e: ADD
0000293f: MLOAD
00002940: PUSH2 0x3c52
00002943: JUMP
00002944: JUMPDEST
00002945: POP
00002946: SWAP1
00002947: SWAP5
00002948: SWAP4
00002949: POP
0000294a: POP
0000294b: POP
0000294c: POP
0000294d: JUMP
0000294e: JUMPDEST
0000294f: DUP1
00002950: PUSH1 0x01
00002952: PUSH1 0x01
00002954: PUSH1 0xa0
00002956: SHL
00002957: SUB
00002958: AND
00002959: PUSH4 0xd2c725e0
0000295e: PUSH1 0x40
00002960: MLOAD
00002961: DUP2
00002962: PUSH4 0xffffffff
00002967: AND
00002968: PUSH1 0xe0
0000296a: SHL
0000296b: DUP2
0000296c: MSTORE
0000296d: PUSH1 0x04
0000296f: ADD
00002970: PUSH1 0x20
00002972: PUSH1 0x40
00002974: MLOAD
00002975: DUP1
00002976: DUP4
00002977: SUB
00002978: DUP2
00002979: DUP7
0000297a: GAS
0000297b: STATICCALL
0000297c: ISZERO
0000297d: DUP1
0000297e: ISZERO
0000297f: PUSH2 0x298a
00002982: JUMPI
00002983: RETURNDATASIZE
00002984: PUSH0
00002985: PUSH0
00002986: RETURNDATACOPY
00002987: RETURNDATASIZE
00002988: PUSH0
00002989: REVERT
0000298a: JUMPDEST
0000298b: POP
0000298c: POP
0000298d: POP
0000298e: POP
0000298f: PUSH1 0x40
00002991: MLOAD
00002992: RETURNDATASIZE
00002993: PUSH1 0x1f
00002995: NOT
00002996: PUSH1 0x1f
00002998: DUP3
00002999: ADD
0000299a: AND
0000299b: DUP3
0000299c: ADD
0000299d: DUP1
0000299e: PUSH1 0x40
000029a0: MSTORE
000029a1: POP
000029a2: DUP2
000029a3: ADD
000029a4: SWAP1
000029a5: PUSH2 0x29ae
000029a8: SWAP2
000029a9: SWAP1
000029aa: PUSH2 0x50d3
000029ad: JUMP
000029ae: JUMPDEST
000029af: ISZERO
000029b0: PUSH2 0x29cc
000029b3: JUMPI
000029b4: PUSH1 0x40
000029b6: MLOAD
000029b7: PUSH4 0xe17fbf89
000029bc: PUSH1 0xe0
000029be: SHL
000029bf: DUP2
000029c0: MSTORE
000029c1: PUSH1 0x04
000029c3: ADD
000029c4: PUSH1 0x40
000029c6: MLOAD
000029c7: DUP1
000029c8: SWAP2
000029c9: SUB
000029ca: SWAP1
000029cb: REVERT
000029cc: JUMPDEST
000029cd: POP
000029ce: JUMP
000029cf: JUMPDEST
000029d0: PUSH0
000029d1: CALLER
000029d2: PUSH2 0x29dc
000029d5: DUP2
000029d6: DUP6
000029d7: DUP6
000029d8: PUSH2 0x3c84
000029db: JUMP
000029dc: JUMPDEST
000029dd: POP
000029de: PUSH1 0x01
000029e0: SWAP4
000029e1: SWAP3
000029e2: POP
000029e3: POP
000029e4: POP
000029e5: JUMP
000029e6: JUMPDEST
000029e7: PUSH0
000029e8: PUSH0
000029e9: DUP3
000029ea: PUSH1 0x01
000029ec: DUP2
000029ed: GT
000029ee: ISZERO
000029ef: PUSH2 0x29fa
000029f2: JUMPI
000029f3: PUSH2 0x29fa
000029f6: PUSH2 0x51e6
000029f9: JUMP
000029fa: JUMPDEST
000029fb: PUSH1 0x02
000029fd: DUP2
000029fe: GT
000029ff: ISZERO
00002a00: PUSH2 0x2a0b
00002a03: JUMPI
00002a04: PUSH2 0x2a0b
00002a07: PUSH2 0x51e6
00002a0a: JUMP
00002a0b: JUMPDEST
00002a0c: SWAP1
00002a0d: POP
00002a0e: PUSH0
00002a0f: PUSH0
00002a10: PUSH2 0x2a20
00002a13: PUSH2 0x2a1a
00002a16: PUSH2 0x30f1
00002a19: JUMP
00002a1a: JUMPDEST
00002a1b: DUP5
00002a1c: PUSH2 0x31f3
00002a1f: JUMP
00002a20: JUMPDEST
00002a21: SWAP2
00002a22: POP
00002a23: SWAP2
00002a24: POP
00002a25: PUSH2 0x2005
00002a28: DUP7
00002a29: DUP4
00002a2a: DUP4
00002a2b: PUSH1 0x01
00002a2d: DUP8
00002a2e: PUSH2 0x33e2
00002a31: JUMP
00002a32: JUMPDEST
00002a33: PUSH0
00002a34: PUSH0
00002a35: DUP3
00002a36: PUSH1 0x01
00002a38: DUP2
00002a39: GT
00002a3a: ISZERO
00002a3b: PUSH2 0x2a46
00002a3e: JUMPI
00002a3f: PUSH2 0x2a46
00002a42: PUSH2 0x51e6
00002a45: JUMP
00002a46: JUMPDEST
00002a47: PUSH1 0x02
00002a49: DUP2
00002a4a: GT
00002a4b: ISZERO
00002a4c: PUSH2 0x2a57
00002a4f: JUMPI
00002a50: PUSH2 0x2a57
00002a53: PUSH2 0x51e6
00002a56: JUMP
00002a57: JUMPDEST
00002a58: SWAP1
00002a59: POP
00002a5a: PUSH0
00002a5b: PUSH0
00002a5c: PUSH2 0x2a66
00002a5f: PUSH2 0x2a1a
00002a62: PUSH2 0x30f1
00002a65: JUMP
00002a66: JUMPDEST
00002a67: SWAP2
00002a68: POP
00002a69: SWAP2
00002a6a: POP
00002a6b: PUSH2 0x2005
00002a6e: DUP7
00002a6f: DUP4
00002a70: DUP4
00002a71: PUSH1 0x01
00002a73: DUP8
00002a74: PUSH2 0x3790
00002a77: JUMP
00002a78: JUMPDEST
00002a79: PUSH0
00002a7a: PUSH2 0x2a81
00002a7d: PUSH2 0x2892
00002a80: JUMP
00002a81: JUMPDEST
00002a82: SWAP1
00002a83: POP
00002a84: DUP1
00002a85: PUSH1 0x01
00002a87: PUSH1 0x01
00002a89: PUSH1 0xa0
00002a8b: SHL
00002a8c: SUB
00002a8d: AND
00002a8e: PUSH4 0x9dd41330
00002a93: PUSH1 0x40
00002a95: MLOAD
00002a96: DUP2
00002a97: PUSH4 0xffffffff
00002a9c: AND
00002a9d: PUSH1 0xe0
00002a9f: SHL
00002aa0: DUP2
00002aa1: MSTORE
00002aa2: PUSH1 0x04
00002aa4: ADD
00002aa5: PUSH0
00002aa6: PUSH1 0x40
00002aa8: MLOAD
00002aa9: DUP1
00002aaa: DUP4
00002aab: SUB
00002aac: DUP2
00002aad: PUSH0
00002aae: DUP8
00002aaf: DUP1
00002ab0: EXTCODESIZE
00002ab1: ISZERO
00002ab2: DUP1
00002ab3: ISZERO
00002ab4: PUSH2 0x2abb
00002ab7: JUMPI
00002ab8: PUSH0
00002ab9: PUSH0
00002aba: REVERT
00002abb: JUMPDEST
00002abc: POP
00002abd: GAS
00002abe: CALL
00002abf: ISZERO
00002ac0: DUP1
00002ac1: ISZERO
00002ac2: PUSH2 0x2acd
00002ac5: JUMPI
00002ac6: RETURNDATASIZE
00002ac7: PUSH0
00002ac8: PUSH0
00002ac9: RETURNDATACOPY
00002aca: RETURNDATASIZE
00002acb: PUSH0
00002acc: REVERT
00002acd: JUMPDEST
00002ace: POP
00002acf: POP
00002ad0: POP
00002ad1: POP
00002ad2: SWAP1
00002ad3: JUMP
00002ad4: JUMPDEST
00002ad5: PUSH0
00002ad6: CALLER
00002ad7: PUSH2 0x2ae1
00002ada: DUP6
00002adb: DUP3
00002adc: DUP6
00002add: PUSH2 0x3b81
00002ae0: JUMP
00002ae1: JUMPDEST
00002ae2: PUSH2 0x2aec
00002ae5: DUP6
00002ae6: DUP6
00002ae7: DUP6
00002ae8: PUSH2 0x3b05
00002aeb: JUMP
00002aec: JUMPDEST
00002aed: POP
00002aee: PUSH1 0x01
00002af0: SWAP5
00002af1: SWAP4
00002af2: POP
00002af3: POP
00002af4: POP
00002af5: POP
00002af6: JUMP
00002af7: JUMPDEST
00002af8: PUSH0
00002af9: PUSH2 0x1028
00002afc: PUSH2 0x3c91
00002aff: JUMP
00002b00: JUMPDEST
00002b01: PUSH1 0x01
00002b03: PUSH0
00002b04: SWAP1
00002b05: DUP2
00002b06: MSTORE
00002b07: PUSH0
00002b08: MLOAD
00002b09: PUSH1 0x20
00002b0b: PUSH2 0x5728
00002b0e: PUSH0
00002b0f: CODECOPY
00002b10: PUSH0
00002b11: MLOAD
00002b12: SWAP1
00002b13: PUSH0
00002b14: MSTORE
00002b15: PUSH1 0x20
00002b17: DUP2
00002b18: SWAP1
00002b19: MSTORE
00002b1a: PUSH0
00002b1b: MLOAD
00002b1c: PUSH1 0x20
00002b1e: PUSH2 0x5788
00002b21: PUSH0
00002b22: CODECOPY
00002b23: PUSH0
00002b24: MLOAD
00002b25: SWAP1
00002b26: PUSH0
00002b27: MSTORE
00002b28: SLOAD
00002b29: SWAP2
00002b2a: SWAP1
00002b2b: PUSH0
00002b2c: MLOAD
00002b2d: PUSH1 0x20
00002b2f: PUSH2 0x5748
00002b32: PUSH0
00002b33: CODECOPY
00002b34: PUSH0
00002b35: MLOAD
00002b36: SWAP1
00002b37: PUSH0
00002b38: MSTORE
00002b39: SWAP1
00002b3a: DUP3
00002b3b: PUSH1 0x02
00002b3d: JUMPDEST
00002b3e: PUSH1 0x02
00002b40: DUP2
00002b41: GT
00002b42: ISZERO
00002b43: PUSH2 0x2b4e
00002b46: JUMPI
00002b47: PUSH2 0x2b4e
00002b4a: PUSH2 0x51e6
00002b4d: JUMP
00002b4e: JUMPDEST
00002b4f: DUP2
00002b50: MSTORE
00002b51: PUSH1 0x20
00002b53: ADD
00002b54: SWAP1
00002b55: DUP2
00002b56: MSTORE
00002b57: PUSH1 0x20
00002b59: ADD
00002b5a: PUSH0
00002b5b: KECCAK256
00002b5c: SLOAD
00002b5d: SWAP2
00002b5e: POP
00002b5f: POP
00002b60: SWAP1
00002b61: SWAP2
00002b62: JUMP
00002b63: JUMPDEST
00002b64: PUSH0
00002b65: PUSH1 0x60
00002b67: PUSH0
00002b68: MLOAD
00002b69: PUSH1 0x20
00002b6b: PUSH2 0x5708
00002b6e: PUSH0
00002b6f: CODECOPY
00002b70: PUSH0
00002b71: MLOAD
00002b72: SWAP1
00002b73: PUSH0
00002b74: MSTORE
00002b75: PUSH1 0x02
00002b77: ADD
00002b78: SLOAD
00002b79: PUSH1 0x01
00002b7b: PUSH1 0x01
00002b7d: PUSH1 0xa0
00002b7f: SHL
00002b80: SUB
00002b81: AND
00002b82: CALLER
00002b83: EQ
00002b84: PUSH2 0x2ba0
00002b87: JUMPI
00002b88: PUSH1 0x40
00002b8a: MLOAD
00002b8b: PUSH4 0x80897acb
00002b90: PUSH1 0xe0
00002b92: SHL
00002b93: DUP2
00002b94: MSTORE
00002b95: PUSH1 0x04
00002b97: ADD
00002b98: PUSH1 0x40
00002b9a: MLOAD
00002b9b: DUP1
00002b9c: SWAP2
00002b9d: SUB
00002b9e: SWAP1
00002b9f: REVERT
00002ba0: JUMPDEST
00002ba1: PUSH1 0x01
00002ba3: DUP6
00002ba4: PUSH1 0x01
00002ba6: DUP2
00002ba7: GT
00002ba8: ISZERO
00002ba9: PUSH2 0x2bb4
00002bac: JUMPI
00002bad: PUSH2 0x2bb4
00002bb0: PUSH2 0x51e6
00002bb3: JUMP
00002bb4: JUMPDEST
00002bb5: SUB
00002bb6: PUSH2 0x2c1b
00002bb9: JUMPI
00002bba: DUP7
00002bbb: PUSH1 0x01
00002bbd: PUSH1 0x01
00002bbf: PUSH1 0xa0
00002bc1: SHL
00002bc2: SUB
00002bc3: AND
00002bc4: DUP5
00002bc5: DUP5
00002bc6: PUSH1 0x40
00002bc8: MLOAD
00002bc9: PUSH2 0x2bd3
00002bcc: SWAP3
00002bcd: SWAP2
00002bce: SWAP1
00002bcf: PUSH2 0x539f
00002bd2: JUMP
00002bd3: JUMPDEST
00002bd4: PUSH0
00002bd5: PUSH1 0x40
00002bd7: MLOAD
00002bd8: DUP1
00002bd9: DUP4
00002bda: SUB
00002bdb: DUP2
00002bdc: DUP6
00002bdd: GAS
00002bde: DELEGATECALL
00002bdf: SWAP2
00002be0: POP
00002be1: POP
00002be2: RETURNDATASIZE
00002be3: DUP1
00002be4: PUSH0
00002be5: DUP2
00002be6: EQ
00002be7: PUSH2 0x2c0b
00002bea: JUMPI
00002beb: PUSH1 0x40
00002bed: MLOAD
00002bee: SWAP2
00002bef: POP
00002bf0: PUSH1 0x1f
00002bf2: NOT
00002bf3: PUSH1 0x3f
00002bf5: RETURNDATASIZE
00002bf6: ADD
00002bf7: AND
00002bf8: DUP3
00002bf9: ADD
00002bfa: PUSH1 0x40
00002bfc: MSTORE
00002bfd: RETURNDATASIZE
00002bfe: DUP3
00002bff: MSTORE
00002c00: RETURNDATASIZE
00002c01: PUSH0
00002c02: PUSH1 0x20
00002c04: DUP5
00002c05: ADD
00002c06: RETURNDATACOPY
00002c07: PUSH2 0x2c10
00002c0a: JUMP
00002c0b: JUMPDEST
00002c0c: PUSH1 0x60
00002c0e: SWAP2
00002c0f: POP
00002c10: JUMPDEST
00002c11: POP
00002c12: SWAP1
00002c13: SWAP3
00002c14: POP
00002c15: SWAP1
00002c16: POP
00002c17: PUSH2 0x2c7c
00002c1a: JUMP
00002c1b: JUMPDEST
00002c1c: DUP7
00002c1d: PUSH1 0x01
00002c1f: PUSH1 0x01
00002c21: PUSH1 0xa0
00002c23: SHL
00002c24: SUB
00002c25: AND
00002c26: DUP7
00002c27: DUP6
00002c28: DUP6
00002c29: PUSH1 0x40
00002c2b: MLOAD
00002c2c: PUSH2 0x2c36
00002c2f: SWAP3
00002c30: SWAP2
00002c31: SWAP1
00002c32: PUSH2 0x539f
00002c35: JUMP
00002c36: JUMPDEST
00002c37: PUSH0
00002c38: PUSH1 0x40
00002c3a: MLOAD
00002c3b: DUP1
00002c3c: DUP4
00002c3d: SUB
00002c3e: DUP2
00002c3f: DUP6
00002c40: DUP8
00002c41: GAS
00002c42: CALL
00002c43: SWAP3
00002c44: POP
00002c45: POP
00002c46: POP
00002c47: RETURNDATASIZE
00002c48: DUP1
00002c49: PUSH0
00002c4a: DUP2
00002c4b: EQ
00002c4c: PUSH2 0x2c70
00002c4f: JUMPI
00002c50: PUSH1 0x40
00002c52: MLOAD
00002c53: SWAP2
00002c54: POP
00002c55: PUSH1 0x1f
00002c57: NOT
00002c58: PUSH1 0x3f
00002c5a: RETURNDATASIZE
00002c5b: ADD
00002c5c: AND
00002c5d: DUP3
00002c5e: ADD
00002c5f: PUSH1 0x40
00002c61: MSTORE
00002c62: RETURNDATASIZE
00002c63: DUP3
00002c64: MSTORE
00002c65: RETURNDATASIZE
00002c66: PUSH0
00002c67: PUSH1 0x20
00002c69: DUP5
00002c6a: ADD
00002c6b: RETURNDATACOPY
00002c6c: PUSH2 0x2c75
00002c6f: JUMP
00002c70: JUMPDEST
00002c71: PUSH1 0x60
00002c73: SWAP2
00002c74: POP
00002c75: JUMPDEST
00002c76: POP
00002c77: SWAP1
00002c78: SWAP3
00002c79: POP
00002c7a: SWAP1
00002c7b: POP
00002c7c: JUMPDEST
00002c7d: SWAP6
00002c7e: POP
00002c7f: SWAP6
00002c80: SWAP4
00002c81: POP
00002c82: POP
00002c83: POP
00002c84: POP
00002c85: JUMP
00002c86: JUMPDEST
00002c87: PUSH0
00002c88: PUSH0
00002c89: PUSH2 0x2c90
00002c8c: PUSH2 0x30f1
00002c8f: JUMP
00002c90: JUMPDEST
00002c91: SWAP1
00002c92: POP
00002c93: PUSH2 0x2ca9
00002c96: DUP2
00002c97: PUSH2 0x0120
00002c9a: ADD
00002c9b: MLOAD
00002c9c: DUP3
00002c9d: PUSH0
00002c9e: ADD
00002c9f: MLOAD
00002ca0: DUP4
00002ca1: PUSH1 0x20
00002ca3: ADD
00002ca4: MLOAD
00002ca5: PUSH2 0x2eef
00002ca8: JUMP
00002ca9: JUMPDEST
00002caa: SWAP2
00002cab: POP
00002cac: POP
00002cad: SWAP1
00002cae: JUMP
00002caf: JUMPDEST
00002cb0: PUSH0
00002cb1: MLOAD
00002cb2: PUSH1 0x20
00002cb4: PUSH2 0x5708
00002cb7: PUSH0
00002cb8: CODECOPY
00002cb9: PUSH0
00002cba: MLOAD
00002cbb: SWAP1
00002cbc: PUSH0
00002cbd: MSTORE
00002cbe: SLOAD
00002cbf: PUSH1 0x01
00002cc1: PUSH1 0x01
00002cc3: PUSH1 0xa0
00002cc5: SHL
00002cc6: SUB
00002cc7: AND
00002cc8: SWAP1
00002cc9: JUMP
00002cca: JUMPDEST
00002ccb: PUSH0
00002ccc: PUSH0
00002ccd: DUP3
00002cce: PUSH1 0x01
00002cd0: DUP2
00002cd1: GT
00002cd2: ISZERO
00002cd3: PUSH2 0x2cde
00002cd6: JUMPI
00002cd7: PUSH2 0x2cde
00002cda: PUSH2 0x51e6
00002cdd: JUMP
00002cde: JUMPDEST
00002cdf: PUSH1 0x02
00002ce1: DUP2
00002ce2: GT
00002ce3: ISZERO
00002ce4: PUSH2 0x2cef
00002ce7: JUMPI
00002ce8: PUSH2 0x2cef
00002ceb: PUSH2 0x51e6
00002cee: JUMP
00002cef: JUMPDEST
00002cf0: SWAP1
00002cf1: POP
00002cf2: PUSH0
00002cf3: PUSH0
00002cf4: PUSH2 0x2cfe
00002cf7: PUSH2 0x2a1a
00002cfa: PUSH2 0x30f1
00002cfd: JUMP
00002cfe: JUMPDEST
00002cff: SWAP2
00002d00: POP
00002d01: SWAP2
00002d02: POP
00002d03: PUSH2 0x2005
00002d06: DUP7
00002d07: DUP4
00002d08: DUP4
00002d09: PUSH0
00002d0a: DUP8
00002d0b: PUSH2 0x3790
00002d0e: JUMP
00002d0f: JUMPDEST
00002d10: PUSH0
00002d11: PUSH0
00002d12: PUSH0
00002d13: PUSH2 0x2d1d
00002d16: PUSH2 0x2859
00002d19: PUSH2 0x30f1
00002d1c: JUMP
00002d1d: JUMPDEST
00002d1e: SWAP1
00002d1f: SWAP3
00002d20: POP
00002d21: SWAP1
00002d22: POP
00002d23: PUSH2 0x17b0
00002d26: DUP6
00002d27: DUP4
00002d28: DUP4
00002d29: PUSH1 0x02
00002d2b: DUP9
00002d2c: PUSH1 0x02
00002d2e: DUP2
00002d2f: GT
00002d30: ISZERO
00002d31: PUSH2 0x2d3c
00002d34: JUMPI
00002d35: PUSH2 0x2d3c
00002d38: PUSH2 0x51e6
00002d3b: JUMP
00002d3c: JUMPDEST
00002d3d: EQ
00002d3e: PUSH2 0x2d47
00002d41: JUMPI
00002d42: PUSH0
00002d43: PUSH2 0x2d4a
00002d46: JUMP
00002d47: JUMPDEST
00002d48: PUSH1 0x01
00002d4a: JUMPDEST
00002d4b: DUP9
00002d4c: PUSH2 0x33e2
00002d4f: JUMP
00002d50: JUMPDEST
00002d51: PUSH0
00002d52: PUSH2 0x2d59
00002d55: PUSH2 0x2892
00002d58: JUMP
00002d59: JUMPDEST
00002d5a: PUSH1 0x40
00002d5c: MLOAD
00002d5d: PUSH4 0x07439b49
00002d62: PUSH1 0xe0
00002d64: SHL
00002d65: DUP2
00002d66: MSTORE
00002d67: ADDRESS
00002d68: PUSH1 0x04
00002d6a: DUP3
00002d6b: ADD
00002d6c: MSTORE
00002d6d: PUSH1 0x01
00002d6f: PUSH1 0x01
00002d71: PUSH1 0xa0
00002d73: SHL
00002d74: SUB
00002d75: SWAP2
00002d76: SWAP1
00002d77: SWAP2
00002d78: AND
00002d79: SWAP1
00002d7a: PUSH4 0x07439b49
00002d7f: SWAP1
00002d80: PUSH1 0x24
00002d82: ADD
00002d83: PUSH1 0x20
00002d85: PUSH1 0x40
00002d87: MLOAD
00002d88: DUP1
00002d89: DUP4
00002d8a: SUB
00002d8b: DUP2
00002d8c: DUP7
00002d8d: GAS
00002d8e: STATICCALL
00002d8f: ISZERO
00002d90: DUP1
00002d91: ISZERO
00002d92: PUSH2 0x2d9d
00002d95: JUMPI
00002d96: RETURNDATASIZE
00002d97: PUSH0
00002d98: PUSH0
00002d99: RETURNDATACOPY
00002d9a: RETURNDATASIZE
00002d9b: PUSH0
00002d9c: REVERT
00002d9d: JUMPDEST
00002d9e: POP
00002d9f: POP
00002da0: POP
00002da1: POP
00002da2: PUSH1 0x40
00002da4: MLOAD
00002da5: RETURNDATASIZE
00002da6: PUSH1 0x1f
00002da8: NOT
00002da9: PUSH1 0x1f
00002dab: DUP3
00002dac: ADD
00002dad: AND
00002dae: DUP3
00002daf: ADD
00002db0: DUP1
00002db1: PUSH1 0x40
00002db3: MSTORE
00002db4: POP
00002db5: DUP2
00002db6: ADD
00002db7: SWAP1
00002db8: PUSH2 0x2dc1
00002dbb: SWAP2
00002dbc: SWAP1
00002dbd: PUSH2 0x50ec
00002dc0: JUMP
00002dc1: JUMPDEST
00002dc2: PUSH1 0x01
00002dc4: PUSH1 0x01
00002dc6: PUSH1 0xa0
00002dc8: SHL
00002dc9: SUB
00002dca: AND
00002dcb: DUP3
00002dcc: PUSH1 0x01
00002dce: PUSH1 0x01
00002dd0: PUSH1 0xa0
00002dd2: SHL
00002dd3: SUB
00002dd4: AND
00002dd5: EQ
00002dd6: PUSH2 0x2de0
00002dd9: JUMPI
00002dda: POP
00002ddb: PUSH0
00002ddc: SWAP2
00002ddd: SWAP1
00002dde: POP
00002ddf: JUMP
00002de0: JUMPDEST
00002de1: PUSH0
00002de2: DUP1
00002de3: DUP1
00002de4: MSTORE
00002de5: PUSH0
00002de6: MLOAD
00002de7: PUSH1 0x20
00002de9: PUSH2 0x5728
00002dec: PUSH0
00002ded: CODECOPY
00002dee: PUSH0
00002def: MLOAD
00002df0: SWAP1
00002df1: PUSH0
00002df2: MSTORE
00002df3: PUSH1 0x20
00002df5: SWAP1
00002df6: DUP2
00002df7: MSTORE
00002df8: PUSH32 0x1d6b5be70a9f383ca45b06b91c80fedc4b8206aae15f8f5652c9213b796e9a02
00002e19: SLOAD
00002e1a: PUSH1 0x40
00002e1c: DUP1
00002e1d: MLOAD
00002e1e: PUSH4 0x70a08231
00002e23: PUSH1 0xe0
00002e25: SHL
00002e26: DUP2
00002e27: MSTORE
00002e28: ADDRESS
00002e29: PUSH1 0x04
00002e2b: DUP3
00002e2c: ADD
00002e2d: MSTORE
00002e2e: SWAP1
00002e2f: MLOAD
00002e30: PUSH0
00002e31: MLOAD
00002e32: PUSH1 0x20
00002e34: PUSH2 0x5748
00002e37: PUSH0
00002e38: CODECOPY
00002e39: PUSH0
00002e3a: MLOAD
00002e3b: SWAP1
00002e3c: PUSH0
00002e3d: MSTORE
00002e3e: SWAP5
00002e3f: SWAP3
00002e40: SWAP4
00002e41: PUSH1 0x01
00002e43: PUSH1 0x01
00002e45: PUSH1 0xa0
00002e47: SHL
00002e48: SUB
00002e49: DUP9
00002e4a: AND
00002e4b: SWAP3
00002e4c: PUSH4 0x70a08231
00002e51: SWAP3
00002e52: PUSH1 0x24
00002e54: DUP1
00002e55: DUP4
00002e56: ADD
00002e57: SWAP4
00002e58: SWAP3
00002e59: DUP3
00002e5a: SWAP1
00002e5b: SUB
00002e5c: ADD
00002e5d: DUP2
00002e5e: DUP7
00002e5f: GAS
00002e60: STATICCALL
00002e61: ISZERO
00002e62: DUP1
00002e63: ISZERO
00002e64: PUSH2 0x2e6f
00002e67: JUMPI
00002e68: RETURNDATASIZE
00002e69: PUSH0
00002e6a: PUSH0
00002e6b: RETURNDATACOPY
00002e6c: RETURNDATASIZE
00002e6d: PUSH0
00002e6e: REVERT
00002e6f: JUMPDEST
00002e70: POP
00002e71: POP
00002e72: POP
00002e73: POP
00002e74: PUSH1 0x40
00002e76: MLOAD
00002e77: RETURNDATASIZE
00002e78: PUSH1 0x1f
00002e7a: NOT
00002e7b: PUSH1 0x1f
00002e7d: DUP3
00002e7e: ADD
00002e7f: AND
00002e80: DUP3
00002e81: ADD
00002e82: DUP1
00002e83: PUSH1 0x40
00002e85: MSTORE
00002e86: POP
00002e87: DUP2
00002e88: ADD
00002e89: SWAP1
00002e8a: PUSH2 0x2e93
00002e8d: SWAP2
00002e8e: SWAP1
00002e8f: PUSH2 0x5092
00002e92: JUMP
00002e93: JUMPDEST
00002e94: SWAP1
00002e95: POP
00002e96: DUP2
00002e97: DUP2
00002e98: GT
00002e99: PUSH2 0x2ea2
00002e9c: JUMPI
00002e9d: PUSH0
00002e9e: PUSH2 0x17b0
00002ea1: JUMP
00002ea2: JUMPDEST
00002ea3: SUB
00002ea4: SWAP4
00002ea5: SWAP3
00002ea6: POP
00002ea7: POP
00002ea8: POP
00002ea9: JUMP
00002eaa: JUMPDEST
00002eab: PUSH0
00002eac: PUSH0
00002ead: DUP3
00002eae: PUSH1 0x01
00002eb0: DUP2
00002eb1: GT
00002eb2: ISZERO
00002eb3: PUSH2 0x2ebe
00002eb6: JUMPI
00002eb7: PUSH2 0x2ebe
00002eba: PUSH2 0x51e6
00002ebd: JUMP
00002ebe: JUMPDEST
00002ebf: PUSH1 0x02
00002ec1: DUP2
00002ec2: GT
00002ec3: ISZERO
00002ec4: PUSH2 0x2ecf
00002ec7: JUMPI
00002ec8: PUSH2 0x2ecf
00002ecb: PUSH2 0x51e6
00002ece: JUMP
00002ecf: JUMPDEST
00002ed0: SWAP1
00002ed1: POP
00002ed2: PUSH0
00002ed3: PUSH0
00002ed4: PUSH2 0x2ede
00002ed7: PUSH2 0x2a1a
00002eda: PUSH2 0x30f1
00002edd: JUMP
00002ede: JUMPDEST
00002edf: SWAP2
00002ee0: POP
00002ee1: SWAP2
00002ee2: POP
00002ee3: PUSH2 0x2005
00002ee6: DUP7
00002ee7: DUP4
00002ee8: DUP4
00002ee9: PUSH0
00002eea: DUP8
00002eeb: PUSH2 0x33e2
00002eee: JUMP
00002eef: JUMPDEST
00002ef0: PUSH1 0x40
00002ef2: MLOAD
00002ef3: PUSH4 0xe9c1bd61
00002ef8: PUSH1 0xe0
00002efa: SHL
00002efb: DUP2
00002efc: MSTORE
00002efd: PUSH1 0x01
00002eff: PUSH1 0x01
00002f01: PUSH1 0xa0
00002f03: SHL
00002f04: SUB
00002f05: DUP5
00002f06: AND
00002f07: PUSH1 0x04
00002f09: DUP3
00002f0a: ADD
00002f0b: MSTORE
00002f0c: PUSH1 0x24
00002f0e: DUP2
00002f0f: ADD
00002f10: DUP4
00002f11: SWAP1
00002f12: MSTORE
00002f13: PUSH1 0x44
00002f15: DUP2
00002f16: ADD
00002f17: DUP3
00002f18: SWAP1
00002f19: MSTORE
00002f1a: PUSH0
00002f1b: SWAP1
00002f1c: PUSH20 0x2d53aed73de024222971fc66b1ea3c55a11dd558
00002f31: SWAP1
00002f32: PUSH4 0xe9c1bd61
00002f37: SWAP1
00002f38: PUSH1 0x64
00002f3a: ADD
00002f3b: PUSH1 0x20
00002f3d: PUSH1 0x40
00002f3f: MLOAD
00002f40: DUP1
00002f41: DUP4
00002f42: SUB
00002f43: DUP2
00002f44: DUP7
00002f45: GAS
00002f46: DELEGATECALL
00002f47: ISZERO
00002f48: DUP1
00002f49: ISZERO
00002f4a: PUSH2 0x2f55
00002f4d: JUMPI
00002f4e: RETURNDATASIZE
00002f4f: PUSH0
00002f50: PUSH0
00002f51: RETURNDATACOPY
00002f52: RETURNDATASIZE
00002f53: PUSH0
00002f54: REVERT
00002f55: JUMPDEST
00002f56: POP
00002f57: POP
00002f58: POP
00002f59: POP
00002f5a: PUSH1 0x40
00002f5c: MLOAD
00002f5d: RETURNDATASIZE
00002f5e: PUSH1 0x1f
00002f60: NOT
00002f61: PUSH1 0x1f
00002f63: DUP3
00002f64: ADD
00002f65: AND
00002f66: DUP3
00002f67: ADD
00002f68: DUP1
00002f69: PUSH1 0x40
00002f6b: MSTORE
00002f6c: POP
00002f6d: DUP2
00002f6e: ADD
00002f6f: SWAP1
00002f70: PUSH2 0x2f79
00002f73: SWAP2
00002f74: SWAP1
00002f75: PUSH2 0x5092
00002f78: JUMP
00002f79: JUMPDEST
00002f7a: SWAP1
00002f7b: POP
00002f7c: DUP1
00002f7d: ISZERO
00002f7e: PUSH2 0x10ed
00002f81: JUMPI
00002f82: PUSH1 0x40
00002f84: MLOAD
00002f85: DUP2
00002f86: DUP2
00002f87: MSTORE
00002f88: PUSH32 0xd1fe0093c54116fe147366ec7de3cfa98e1e02e91d7ccb124241f6beae255b4c
00002fa9: SWAP1
00002faa: PUSH1 0x20
00002fac: ADD
00002fad: PUSH1 0x40
00002faf: MLOAD
00002fb0: DUP1
00002fb1: SWAP2
00002fb2: SUB
00002fb3: SWAP1
00002fb4: LOG1
00002fb5: SWAP4
00002fb6: SWAP3
00002fb7: POP
00002fb8: POP
00002fb9: POP
00002fba: JUMP
00002fbb: JUMPDEST
00002fbc: PUSH0
00002fbd: PUSH0
00002fbe: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
00002fd3: PUSH4 0x7ca0c3c5
00002fd8: DUP8
00002fd9: DUP8
00002fda: DUP8
00002fdb: DUP8
00002fdc: PUSH1 0x40
00002fde: MLOAD
00002fdf: DUP6
00002fe0: PUSH4 0xffffffff
00002fe5: AND
00002fe6: PUSH1 0xe0
00002fe8: SHL
00002fe9: DUP2
00002fea: MSTORE
00002feb: PUSH1 0x04
00002fed: ADD
00002fee: PUSH2 0x2ffa
00002ff1: SWAP5
00002ff2: SWAP4
00002ff3: SWAP3
00002ff4: SWAP2
00002ff5: SWAP1
00002ff6: PUSH2 0x53ae
00002ff9: JUMP
00002ffa: JUMPDEST
00002ffb: PUSH1 0x40
00002ffd: DUP1
00002ffe: MLOAD
00002fff: DUP1
00003000: DUP4
00003001: SUB
00003002: DUP2
00003003: DUP7
00003004: GAS
00003005: DELEGATECALL
00003006: ISZERO
00003007: DUP1
00003008: ISZERO
00003009: PUSH2 0x3014
0000300c: JUMPI
0000300d: RETURNDATASIZE
0000300e: PUSH0
0000300f: PUSH0
00003010: RETURNDATACOPY
00003011: RETURNDATASIZE
00003012: PUSH0
00003013: REVERT
00003014: JUMPDEST
00003015: POP
00003016: POP
00003017: POP
00003018: POP
00003019: PUSH1 0x40
0000301b: MLOAD
0000301c: RETURNDATASIZE
0000301d: PUSH1 0x1f
0000301f: NOT
00003020: PUSH1 0x1f
00003022: DUP3
00003023: ADD
00003024: AND
00003025: DUP3
00003026: ADD
00003027: DUP1
00003028: PUSH1 0x40
0000302a: MSTORE
0000302b: POP
0000302c: DUP2
0000302d: ADD
0000302e: SWAP1
0000302f: PUSH2 0x3038
00003032: SWAP2
00003033: SWAP1
00003034: PUSH2 0x5107
00003037: JUMP
00003038: JUMPDEST
00003039: SWAP1
0000303a: SWAP3
0000303b: POP
0000303c: SWAP1
0000303d: POP
0000303e: PUSH1 0x01
00003040: DUP4
00003041: PUSH1 0x01
00003043: DUP2
00003044: GT
00003045: ISZERO
00003046: PUSH2 0x3051
00003049: JUMPI
0000304a: PUSH2 0x3051
0000304d: PUSH2 0x51e6
00003050: JUMP
00003051: JUMPDEST
00003052: SUB
00003053: PUSH2 0x30a1
00003056: JUMPI
00003057: PUSH1 0x40
00003059: DUP1
0000305a: MLOAD
0000305b: DUP4
0000305c: DUP2
0000305d: MSTORE
0000305e: PUSH1 0x20
00003060: DUP2
00003061: ADD
00003062: DUP4
00003063: SWAP1
00003064: MSTORE
00003065: PUSH1 0x01
00003067: PUSH1 0x01
00003069: PUSH1 0xa0
0000306b: SHL
0000306c: SUB
0000306d: DUP7
0000306e: AND
0000306f: SWAP2
00003070: CALLER
00003071: SWAP2
00003072: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
00003093: SWAP2
00003094: ADD
00003095: PUSH1 0x40
00003097: MLOAD
00003098: DUP1
00003099: SWAP2
0000309a: SUB
0000309b: SWAP1
0000309c: LOG3
0000309d: PUSH2 0x30e8
000030a0: JUMP
000030a1: JUMPDEST
000030a2: PUSH1 0x40
000030a4: DUP1
000030a5: MLOAD
000030a6: DUP4
000030a7: DUP2
000030a8: MSTORE
000030a9: PUSH1 0x20
000030ab: DUP2
000030ac: ADD
000030ad: DUP4
000030ae: SWAP1
000030af: MSTORE
000030b0: PUSH1 0x01
000030b2: PUSH1 0x01
000030b4: PUSH1 0xa0
000030b6: SHL
000030b7: SUB
000030b8: DUP7
000030b9: AND
000030ba: SWAP2
000030bb: CALLER
000030bc: SWAP2
000030bd: PUSH32 0x1ad348f5de3e19e23d88e34248ceb6ab09804a35a3abc0e7758045b7b9036acd
000030de: SWAP2
000030df: ADD
000030e0: PUSH1 0x40
000030e2: MLOAD
000030e3: DUP1
000030e4: SWAP2
000030e5: SUB
000030e6: SWAP1
000030e7: LOG3
000030e8: JUMPDEST
000030e9: SWAP5
000030ea: POP
000030eb: SWAP5
000030ec: SWAP3
000030ed: POP
000030ee: POP
000030ef: POP
000030f0: JUMP
000030f1: JUMPDEST
000030f2: PUSH1 0x40
000030f4: DUP1
000030f5: MLOAD
000030f6: PUSH2 0x0220
000030f9: DUP2
000030fa: ADD
000030fb: DUP3
000030fc: MSTORE
000030fd: PUSH0
000030fe: DUP1
000030ff: DUP3
00003100: MSTORE
00003101: PUSH1 0x20
00003103: DUP3
00003104: ADD
00003105: DUP2
00003106: SWAP1
00003107: MSTORE
00003108: SWAP2
00003109: DUP2
0000310a: ADD
0000310b: DUP3
0000310c: SWAP1
0000310d: MSTORE
0000310e: PUSH1 0x60
00003110: DUP2
00003111: ADD
00003112: DUP3
00003113: SWAP1
00003114: MSTORE
00003115: PUSH1 0x80
00003117: DUP2
00003118: ADD
00003119: DUP3
0000311a: SWAP1
0000311b: MSTORE
0000311c: PUSH1 0xa0
0000311e: DUP2
0000311f: ADD
00003120: DUP3
00003121: SWAP1
00003122: MSTORE
00003123: PUSH1 0xc0
00003125: DUP2
00003126: ADD
00003127: DUP3
00003128: SWAP1
00003129: MSTORE
0000312a: PUSH1 0xe0
0000312c: DUP2
0000312d: ADD
0000312e: DUP3
0000312f: SWAP1
00003130: MSTORE
00003131: PUSH2 0x0100
00003134: DUP2
00003135: ADD
00003136: DUP3
00003137: SWAP1
00003138: MSTORE
00003139: PUSH2 0x0120
0000313c: DUP2
0000313d: ADD
0000313e: DUP3
0000313f: SWAP1
00003140: MSTORE
00003141: PUSH2 0x0140
00003144: DUP2
00003145: ADD
00003146: DUP3
00003147: SWAP1
00003148: MSTORE
00003149: PUSH2 0x0160
0000314c: DUP2
0000314d: ADD
0000314e: DUP3
0000314f: SWAP1
00003150: MSTORE
00003151: PUSH2 0x0180
00003154: DUP2
00003155: ADD
00003156: DUP3
00003157: SWAP1
00003158: MSTORE
00003159: PUSH2 0x01a0
0000315c: DUP2
0000315d: ADD
0000315e: DUP3
0000315f: SWAP1
00003160: MSTORE
00003161: PUSH2 0x01c0
00003164: DUP2
00003165: ADD
00003166: DUP3
00003167: SWAP1
00003168: MSTORE
00003169: PUSH2 0x01e0
0000316c: DUP2
0000316d: ADD
0000316e: DUP3
0000316f: SWAP1
00003170: MSTORE
00003171: PUSH2 0x0200
00003174: DUP2
00003175: ADD
00003176: SWAP2
00003177: SWAP1
00003178: SWAP2
00003179: MSTORE
0000317a: PUSH0
0000317b: MLOAD
0000317c: PUSH1 0x20
0000317e: PUSH2 0x5708
00003181: PUSH0
00003182: CODECOPY
00003183: PUSH0
00003184: MLOAD
00003185: SWAP1
00003186: PUSH0
00003187: MSTORE
00003188: PUSH1 0x01
0000318a: ADD
0000318b: SLOAD
0000318c: PUSH1 0x40
0000318e: MLOAD
0000318f: PUSH4 0xe48a5f7b
00003194: PUSH1 0xe0
00003196: SHL
00003197: DUP2
00003198: MSTORE
00003199: ADDRESS
0000319a: PUSH1 0x04
0000319c: DUP3
0000319d: ADD
0000319e: MSTORE
0000319f: PUSH1 0x01
000031a1: PUSH1 0x01
000031a3: PUSH1 0xa0
000031a5: SHL
000031a6: SUB
000031a7: SWAP1
000031a8: SWAP2
000031a9: AND
000031aa: SWAP1
000031ab: PUSH4 0xe48a5f7b
000031b0: SWAP1
000031b1: PUSH1 0x24
000031b3: ADD
000031b4: PUSH2 0x0220
000031b7: PUSH1 0x40
000031b9: MLOAD
000031ba: DUP1
000031bb: DUP4
000031bc: SUB
000031bd: DUP2
000031be: DUP7
000031bf: GAS
000031c0: STATICCALL
000031c1: ISZERO
000031c2: DUP1
000031c3: ISZERO
000031c4: PUSH2 0x31cf
000031c7: JUMPI
000031c8: RETURNDATASIZE
000031c9: PUSH0
000031ca: PUSH0
000031cb: RETURNDATACOPY
000031cc: RETURNDATASIZE
000031cd: PUSH0
000031ce: REVERT
000031cf: JUMPDEST
000031d0: POP
000031d1: POP
000031d2: POP
000031d3: POP
000031d4: PUSH1 0x40
000031d6: MLOAD
000031d7: RETURNDATASIZE
000031d8: PUSH1 0x1f
000031da: NOT
000031db: PUSH1 0x1f
000031dd: DUP3
000031de: ADD
000031df: AND
000031e0: DUP3
000031e1: ADD
000031e2: DUP1
000031e3: PUSH1 0x40
000031e5: MSTORE
000031e6: POP
000031e7: DUP2
000031e8: ADD
000031e9: SWAP1
000031ea: PUSH2 0x1028
000031ed: SWAP2
000031ee: SWAP1
000031ef: PUSH2 0x5286
000031f2: JUMP
000031f3: JUMPDEST
000031f4: PUSH0
000031f5: DUP1
000031f6: DUP1
000031f7: DUP4
000031f8: PUSH1 0x02
000031fa: DUP2
000031fb: GT
000031fc: ISZERO
000031fd: PUSH2 0x3208
00003200: JUMPI
00003201: PUSH2 0x3208
00003204: PUSH2 0x51e6
00003207: JUMP
00003208: JUMPDEST
00003209: SUB
0000320a: PUSH2 0x32e9
0000320d: JUMPI
0000320e: DUP4
0000320f: PUSH1 0x40
00003211: ADD
00003212: MLOAD
00003213: PUSH1 0x01
00003215: PUSH1 0x01
00003217: PUSH1 0xa0
00003219: SHL
0000321a: SUB
0000321b: AND
0000321c: PUSH4 0xb6d821c7
00003221: PUSH0
00003222: PUSH1 0x40
00003224: MLOAD
00003225: DUP3
00003226: PUSH4 0xffffffff
0000322b: AND
0000322c: PUSH1 0xe0
0000322e: SHL
0000322f: DUP2
00003230: MSTORE
00003231: PUSH1 0x04
00003233: ADD
00003234: PUSH2 0x323d
00003237: SWAP2
00003238: SWAP1
00003239: PUSH2 0x53d8
0000323c: JUMP
0000323d: JUMPDEST
0000323e: PUSH1 0x20
00003240: PUSH1 0x40
00003242: MLOAD
00003243: DUP1
00003244: DUP4
00003245: SUB
00003246: DUP2
00003247: DUP7
00003248: GAS
00003249: STATICCALL
0000324a: ISZERO
0000324b: DUP1
0000324c: ISZERO
0000324d: PUSH2 0x3258
00003250: JUMPI
00003251: RETURNDATASIZE
00003252: PUSH0
00003253: PUSH0
00003254: RETURNDATACOPY
00003255: RETURNDATASIZE
00003256: PUSH0
00003257: REVERT
00003258: JUMPDEST
00003259: POP
0000325a: POP
0000325b: POP
0000325c: POP
0000325d: PUSH1 0x40
0000325f: MLOAD
00003260: RETURNDATASIZE
00003261: PUSH1 0x1f
00003263: NOT
00003264: PUSH1 0x1f
00003266: DUP3
00003267: ADD
00003268: AND
00003269: DUP3
0000326a: ADD
0000326b: DUP1
0000326c: PUSH1 0x40
0000326e: MSTORE
0000326f: POP
00003270: DUP2
00003271: ADD
00003272: SWAP1
00003273: PUSH2 0x327c
00003276: SWAP2
00003277: SWAP1
00003278: PUSH2 0x5092
0000327b: JUMP
0000327c: JUMPDEST
0000327d: SWAP2
0000327e: POP
0000327f: DUP4
00003280: PUSH1 0x80
00003282: ADD
00003283: MLOAD
00003284: PUSH1 0x01
00003286: PUSH1 0x01
00003288: PUSH1 0xa0
0000328a: SHL
0000328b: SUB
0000328c: AND
0000328d: PUSH4 0x18160ddd
00003292: PUSH1 0x40
00003294: MLOAD
00003295: DUP2
00003296: PUSH4 0xffffffff
0000329b: AND
0000329c: PUSH1 0xe0
0000329e: SHL
0000329f: DUP2
000032a0: MSTORE
000032a1: PUSH1 0x04
000032a3: ADD
000032a4: PUSH1 0x20
000032a6: PUSH1 0x40
000032a8: MLOAD
000032a9: DUP1
000032aa: DUP4
000032ab: SUB
000032ac: DUP2
000032ad: DUP7
000032ae: GAS
000032af: STATICCALL
000032b0: ISZERO
000032b1: DUP1
000032b2: ISZERO
000032b3: PUSH2 0x32be
000032b6: JUMPI
000032b7: RETURNDATASIZE
000032b8: PUSH0
000032b9: PUSH0
000032ba: RETURNDATACOPY
000032bb: RETURNDATASIZE
000032bc: PUSH0
000032bd: REVERT
000032be: JUMPDEST
000032bf: POP
000032c0: POP
000032c1: POP
000032c2: POP
000032c3: PUSH1 0x40
000032c5: MLOAD
000032c6: RETURNDATASIZE
000032c7: PUSH1 0x1f
000032c9: NOT
000032ca: PUSH1 0x1f
000032cc: DUP3
000032cd: ADD
000032ce: AND
000032cf: DUP3
000032d0: ADD
000032d1: DUP1
000032d2: PUSH1 0x40
000032d4: MSTORE
000032d5: POP
000032d6: DUP2
000032d7: ADD
000032d8: SWAP1
000032d9: PUSH2 0x32e2
000032dc: SWAP2
000032dd: SWAP1
000032de: PUSH2 0x5092
000032e1: JUMP
000032e2: JUMPDEST
000032e3: SWAP1
000032e4: POP
000032e5: PUSH2 0x2844
000032e8: JUMP
000032e9: JUMPDEST
000032ea: PUSH1 0x01
000032ec: DUP4
000032ed: PUSH1 0x02
000032ef: DUP2
000032f0: GT
000032f1: ISZERO
000032f2: PUSH2 0x32fd
000032f5: JUMPI
000032f6: PUSH2 0x32fd
000032f9: PUSH2 0x51e6
000032fc: JUMP
000032fd: JUMPDEST
000032fe: SUB
000032ff: PUSH2 0x3360
00003302: JUMPI
00003303: PUSH2 0x331e
00003306: DUP5
00003307: PUSH1 0x40
00003309: ADD
0000330a: MLOAD
0000330b: DUP6
0000330c: PUSH2 0x0120
0000330f: ADD
00003310: MLOAD
00003311: DUP7
00003312: PUSH0
00003313: ADD
00003314: MLOAD
00003315: DUP8
00003316: PUSH1 0x20
00003318: ADD
00003319: MLOAD
0000331a: PUSH2 0x3d04
0000331d: JUMP
0000331e: JUMPDEST
0000331f: SWAP2
00003320: POP
00003321: DUP4
00003322: PUSH1 0xa0
00003324: ADD
00003325: MLOAD
00003326: PUSH1 0x01
00003328: PUSH1 0x01
0000332a: PUSH1 0xa0
0000332c: SHL
0000332d: SUB
0000332e: AND
0000332f: PUSH4 0x18160ddd
00003334: PUSH1 0x40
00003336: MLOAD
00003337: DUP2
00003338: PUSH4 0xffffffff
0000333d: AND
0000333e: PUSH1 0xe0
00003340: SHL
00003341: DUP2
00003342: MSTORE
00003343: PUSH1 0x04
00003345: ADD
00003346: PUSH1 0x20
00003348: PUSH1 0x40
0000334a: MLOAD
0000334b: DUP1
0000334c: DUP4
0000334d: SUB
0000334e: DUP2
0000334f: DUP7
00003350: GAS
00003351: STATICCALL
00003352: ISZERO
00003353: DUP1
00003354: ISZERO
00003355: PUSH2 0x32be
00003358: JUMPI
00003359: RETURNDATASIZE
0000335a: PUSH0
0000335b: PUSH0
0000335c: RETURNDATACOPY
0000335d: RETURNDATASIZE
0000335e: PUSH0
0000335f: REVERT
00003360: JUMPDEST
00003361: PUSH2 0x3373
00003364: DUP5
00003365: PUSH1 0x40
00003367: ADD
00003368: MLOAD
00003369: DUP6
0000336a: PUSH2 0x0120
0000336d: ADD
0000336e: MLOAD
0000336f: PUSH2 0x3dfa
00003372: JUMP
00003373: JUMPDEST
00003374: SWAP2
00003375: POP
00003376: DUP4
00003377: PUSH1 0xc0
00003379: ADD
0000337a: MLOAD
0000337b: PUSH1 0x01
0000337d: PUSH1 0x01
0000337f: PUSH1 0xa0
00003381: SHL
00003382: SUB
00003383: AND
00003384: PUSH4 0x18160ddd
00003389: PUSH1 0x40
0000338b: MLOAD
0000338c: DUP2
0000338d: PUSH4 0xffffffff
00003392: AND
00003393: PUSH1 0xe0
00003395: SHL
00003396: DUP2
00003397: MSTORE
00003398: PUSH1 0x04
0000339a: ADD
0000339b: PUSH1 0x20
0000339d: PUSH1 0x40
0000339f: MLOAD
000033a0: DUP1
000033a1: DUP4
000033a2: SUB
000033a3: DUP2
000033a4: DUP7
000033a5: GAS
000033a6: STATICCALL
000033a7: ISZERO
000033a8: DUP1
000033a9: ISZERO
000033aa: PUSH2 0x33b5
000033ad: JUMPI
000033ae: RETURNDATASIZE
000033af: PUSH0
000033b0: PUSH0
000033b1: RETURNDATACOPY
000033b2: RETURNDATASIZE
000033b3: PUSH0
000033b4: REVERT
000033b5: JUMPDEST
000033b6: POP
000033b7: POP
000033b8: POP
000033b9: POP
000033ba: PUSH1 0x40
000033bc: MLOAD
000033bd: RETURNDATASIZE
000033be: PUSH1 0x1f
000033c0: NOT
000033c1: PUSH1 0x1f
000033c3: DUP3
000033c4: ADD
000033c5: AND
000033c6: DUP3
000033c7: ADD
000033c8: DUP1
000033c9: PUSH1 0x40
000033cb: MSTORE
000033cc: POP
000033cd: DUP2
000033ce: ADD
000033cf: SWAP1
000033d0: PUSH2 0x33d9
000033d3: SWAP2
000033d4: SWAP1
000033d5: PUSH2 0x5092
000033d8: JUMP
000033d9: JUMPDEST
000033da: SWAP1
000033db: POP
000033dc: SWAP3
000033dd: POP
000033de: SWAP3
000033df: SWAP1
000033e0: POP
000033e1: JUMP
000033e2: JUMPDEST
000033e3: PUSH0
000033e4: PUSH0
000033e5: PUSH0
000033e6: PUSH2 0x33f0
000033e9: DUP8
000033ea: DUP8
000033eb: DUP7
000033ec: PUSH2 0x3ee4
000033ef: JUMP
000033f0: JUMPDEST
000033f1: SWAP2
000033f2: POP
000033f3: SWAP2
000033f4: POP
000033f5: DUP2
000033f6: PUSH0
000033f7: SUB
000033f8: PUSH2 0x3405
000033fb: JUMPI
000033fc: DUP8
000033fd: SWAP3
000033fe: POP
000033ff: POP
00003400: POP
00003401: PUSH2 0x17b0
00003404: JUMP
00003405: JUMPDEST
00003406: PUSH2 0x3411
00003409: DUP9
0000340a: DUP4
0000340b: DUP4
0000340c: DUP9
0000340d: PUSH2 0x3f3f
00003410: JUMP
00003411: JUMPDEST
00003412: SWAP9
00003413: SWAP8
00003414: POP
00003415: POP
00003416: POP
00003417: POP
00003418: POP
00003419: POP
0000341a: POP
0000341b: POP
0000341c: JUMP
0000341d: JUMPDEST
0000341e: PUSH0
0000341f: DUP1
00003420: PUSH32 0x5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00
00003441: PUSH2 0x18d1
00003444: JUMP
00003445: JUMPDEST
00003446: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102
00003467: DUP1
00003468: SLOAD
00003469: PUSH1 0x60
0000346b: SWAP2
0000346c: PUSH0
0000346d: MLOAD
0000346e: PUSH1 0x20
00003470: PUSH2 0x5768
00003473: PUSH0
00003474: CODECOPY
00003475: PUSH0
00003476: MLOAD
00003477: SWAP1
00003478: PUSH0
00003479: MSTORE
0000347a: SWAP2
0000347b: PUSH2 0x3483
0000347e: SWAP1
0000347f: PUSH2 0x53f2
00003482: JUMP
00003483: JUMPDEST
00003484: DUP1
00003485: PUSH1 0x1f
00003487: ADD
00003488: PUSH1 0x20
0000348a: DUP1
0000348b: SWAP2
0000348c: DIV
0000348d: MUL
0000348e: PUSH1 0x20
00003490: ADD
00003491: PUSH1 0x40
00003493: MLOAD
00003494: SWAP1
00003495: DUP2
00003496: ADD
00003497: PUSH1 0x40
00003499: MSTORE
0000349a: DUP1
0000349b: SWAP3
0000349c: SWAP2
0000349d: SWAP1
0000349e: DUP2
0000349f: DUP2
000034a0: MSTORE
000034a1: PUSH1 0x20
000034a3: ADD
000034a4: DUP3
000034a5: DUP1
000034a6: SLOAD
000034a7: PUSH2 0x34af
000034aa: SWAP1
000034ab: PUSH2 0x53f2
000034ae: JUMP
000034af: JUMPDEST
000034b0: DUP1
000034b1: ISZERO
000034b2: PUSH2 0x34fa
000034b5: JUMPI
000034b6: DUP1
000034b7: PUSH1 0x1f
000034b9: LT
000034ba: PUSH2 0x34d1
000034bd: JUMPI
000034be: PUSH2 0x0100
000034c1: DUP1
000034c2: DUP4
000034c3: SLOAD
000034c4: DIV
000034c5: MUL
000034c6: DUP4
000034c7: MSTORE
000034c8: SWAP2
000034c9: PUSH1 0x20
000034cb: ADD
000034cc: SWAP2
000034cd: PUSH2 0x34fa
000034d0: JUMP
000034d1: JUMPDEST
000034d2: DUP3
000034d3: ADD
000034d4: SWAP2
000034d5: SWAP1
000034d6: PUSH0
000034d7: MSTORE
000034d8: PUSH1 0x20
000034da: PUSH0
000034db: KECCAK256
000034dc: SWAP1
000034dd: JUMPDEST
000034de: DUP2
000034df: SLOAD
000034e0: DUP2
000034e1: MSTORE
000034e2: SWAP1
000034e3: PUSH1 0x01
000034e5: ADD
000034e6: SWAP1
000034e7: PUSH1 0x20
000034e9: ADD
000034ea: DUP1
000034eb: DUP4
000034ec: GT
000034ed: PUSH2 0x34dd
000034f0: JUMPI
000034f1: DUP3
000034f2: SWAP1
000034f3: SUB
000034f4: PUSH1 0x1f
000034f6: AND
000034f7: DUP3
000034f8: ADD
000034f9: SWAP2
000034fa: JUMPDEST
000034fb: POP
000034fc: POP
000034fd: POP
000034fe: POP
000034ff: POP
00003500: SWAP2
00003501: POP
00003502: POP
00003503: SWAP1
00003504: JUMP
00003505: JUMPDEST
00003506: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103
00003527: DUP1
00003528: SLOAD
00003529: PUSH1 0x60
0000352b: SWAP2
0000352c: PUSH0
0000352d: MLOAD
0000352e: PUSH1 0x20
00003530: PUSH2 0x5768
00003533: PUSH0
00003534: CODECOPY
00003535: PUSH0
00003536: MLOAD
00003537: SWAP1
00003538: PUSH0
00003539: MSTORE
0000353a: SWAP2
0000353b: PUSH2 0x3483
0000353e: SWAP1
0000353f: PUSH2 0x53f2
00003542: JUMP
00003543: JUMPDEST
00003544: PUSH2 0x356d
00003547: PUSH1 0x40
00003549: MLOAD
0000354a: DUP1
0000354b: PUSH1 0x60
0000354d: ADD
0000354e: PUSH1 0x40
00003550: MSTORE
00003551: DUP1
00003552: PUSH0
00003553: DUP2
00003554: MSTORE
00003555: PUSH1 0x20
00003557: ADD
00003558: PUSH0
00003559: DUP2
0000355a: MSTORE
0000355b: PUSH1 0x20
0000355d: ADD
0000355e: PUSH0
0000355f: PUSH1 0x01
00003561: PUSH1 0x01
00003563: PUSH1 0x40
00003565: SHL
00003566: SUB
00003567: AND
00003568: DUP2
00003569: MSTORE
0000356a: POP
0000356b: SWAP1
0000356c: JUMP
0000356d: JUMPDEST
0000356e: POP
0000356f: PUSH1 0x40
00003571: DUP1
00003572: MLOAD
00003573: PUSH1 0x60
00003575: DUP2
00003576: ADD
00003577: DUP3
00003578: MSTORE
00003579: PUSH0
0000357a: MLOAD
0000357b: PUSH1 0x20
0000357d: PUSH2 0x5788
00003580: PUSH0
00003581: CODECOPY
00003582: PUSH0
00003583: MLOAD
00003584: SWAP1
00003585: PUSH0
00003586: MSTORE
00003587: SLOAD
00003588: DUP2
00003589: MSTORE
0000358a: PUSH1 0x02
0000358c: PUSH0
0000358d: MSTORE
0000358e: PUSH0
0000358f: MLOAD
00003590: PUSH1 0x20
00003592: PUSH2 0x5728
00003595: PUSH0
00003596: CODECOPY
00003597: PUSH0
00003598: MLOAD
00003599: SWAP1
0000359a: PUSH0
0000359b: MSTORE
0000359c: PUSH1 0x20
0000359e: SWAP1
0000359f: DUP2
000035a0: MSTORE
000035a1: PUSH32 0x9b40389f0c625a77401470835767c77e909c039c8fc3275d3c2d2a048f8d5757
000035c2: SLOAD
000035c3: SWAP1
000035c4: DUP3
000035c5: ADD
000035c6: MSTORE
000035c7: PUSH0
000035c8: MLOAD
000035c9: PUSH1 0x20
000035cb: PUSH2 0x5748
000035ce: PUSH0
000035cf: CODECOPY
000035d0: PUSH0
000035d1: MLOAD
000035d2: SWAP1
000035d3: PUSH0
000035d4: MSTORE
000035d5: SLOAD
000035d6: PUSH1 0x01
000035d8: PUSH1 0xc0
000035da: SHL
000035db: SWAP1
000035dc: DIV
000035dd: PUSH1 0x01
000035df: PUSH1 0x01
000035e1: PUSH1 0x40
000035e3: SHL
000035e4: SUB
000035e5: AND
000035e6: SWAP2
000035e7: DUP2
000035e8: ADD
000035e9: SWAP2
000035ea: SWAP1
000035eb: SWAP2
000035ec: MSTORE
000035ed: SWAP1
000035ee: JUMP
000035ef: JUMPDEST
000035f0: PUSH0
000035f1: CALLER
000035f2: PUSH2 0x29dc
000035f5: DUP2
000035f6: DUP6
000035f7: DUP6
000035f8: PUSH2 0x3b05
000035fb: JUMP
000035fc: JUMPDEST
000035fd: PUSH0
000035fe: PUSH0
000035ff: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
00003614: PUSH4 0x5af0d5b8
00003619: PUSH1 0x40
0000361b: MLOAD
0000361c: DUP1
0000361d: PUSH1 0xc0
0000361f: ADD
00003620: PUSH1 0x40
00003622: MSTORE
00003623: DUP1
00003624: DUP12
00003625: DUP2
00003626: MSTORE
00003627: PUSH1 0x20
00003629: ADD
0000362a: DUP11
0000362b: DUP2
0000362c: MSTORE
0000362d: PUSH1 0x20
0000362f: ADD
00003630: DUP10
00003631: PUSH1 0x01
00003633: PUSH1 0x01
00003635: PUSH1 0xa0
00003637: SHL
00003638: SUB
00003639: AND
0000363a: DUP2
0000363b: MSTORE
0000363c: PUSH1 0x20
0000363e: ADD
0000363f: DUP9
00003640: PUSH1 0x01
00003642: PUSH1 0x01
00003644: PUSH1 0xa0
00003646: SHL
00003647: SUB
00003648: AND
00003649: DUP2
0000364a: MSTORE
0000364b: PUSH1 0x20
0000364d: ADD
0000364e: DUP8
0000364f: PUSH1 0x01
00003651: PUSH1 0x01
00003653: PUSH1 0xa0
00003655: SHL
00003656: SUB
00003657: AND
00003658: DUP2
00003659: MSTORE
0000365a: PUSH1 0x20
0000365c: ADD
0000365d: DUP7
0000365e: PUSH1 0x01
00003660: DUP2
00003661: GT
00003662: ISZERO
00003663: PUSH2 0x366e
00003666: JUMPI
00003667: PUSH2 0x366e
0000366a: PUSH2 0x51e6
0000366d: JUMP
0000366e: JUMPDEST
0000366f: DUP2
00003670: MSTORE
00003671: POP
00003672: PUSH1 0x40
00003674: MLOAD
00003675: DUP3
00003676: PUSH4 0xffffffff
0000367b: AND
0000367c: PUSH1 0xe0
0000367e: SHL
0000367f: DUP2
00003680: MSTORE
00003681: PUSH1 0x04
00003683: ADD
00003684: PUSH2 0x368d
00003687: SWAP2
00003688: SWAP1
00003689: PUSH2 0x5424
0000368c: JUMP
0000368d: JUMPDEST
0000368e: PUSH1 0x40
00003690: DUP1
00003691: MLOAD
00003692: DUP1
00003693: DUP4
00003694: SUB
00003695: DUP2
00003696: DUP7
00003697: GAS
00003698: DELEGATECALL
00003699: ISZERO
0000369a: DUP1
0000369b: ISZERO
0000369c: PUSH2 0x36a7
0000369f: JUMPI
000036a0: RETURNDATASIZE
000036a1: PUSH0
000036a2: PUSH0
000036a3: RETURNDATACOPY
000036a4: RETURNDATASIZE
000036a5: PUSH0
000036a6: REVERT
000036a7: JUMPDEST
000036a8: POP
000036a9: POP
000036aa: POP
000036ab: POP
000036ac: PUSH1 0x40
000036ae: MLOAD
000036af: RETURNDATASIZE
000036b0: PUSH1 0x1f
000036b2: NOT
000036b3: PUSH1 0x1f
000036b5: DUP3
000036b6: ADD
000036b7: AND
000036b8: DUP3
000036b9: ADD
000036ba: DUP1
000036bb: PUSH1 0x40
000036bd: MSTORE
000036be: POP
000036bf: DUP2
000036c0: ADD
000036c1: SWAP1
000036c2: PUSH2 0x36cb
000036c5: SWAP2
000036c6: SWAP1
000036c7: PUSH2 0x5107
000036ca: JUMP
000036cb: JUMPDEST
000036cc: SWAP1
000036cd: SWAP3
000036ce: POP
000036cf: SWAP1
000036d0: POP
000036d1: PUSH1 0x01
000036d3: DUP4
000036d4: PUSH1 0x01
000036d6: DUP2
000036d7: GT
000036d8: ISZERO
000036d9: PUSH2 0x36e4
000036dc: JUMPI
000036dd: PUSH2 0x36e4
000036e0: PUSH2 0x51e6
000036e3: JUMP
000036e4: JUMPDEST
000036e5: SUB
000036e6: PUSH2 0x3739
000036e9: JUMPI
000036ea: PUSH1 0x40
000036ec: DUP1
000036ed: MLOAD
000036ee: DUP4
000036ef: DUP2
000036f0: MSTORE
000036f1: PUSH1 0x20
000036f3: DUP2
000036f4: ADD
000036f5: DUP4
000036f6: SWAP1
000036f7: MSTORE
000036f8: PUSH1 0x01
000036fa: PUSH1 0x01
000036fc: PUSH1 0xa0
000036fe: SHL
000036ff: SUB
00003700: DUP1
00003701: DUP9
00003702: AND
00003703: SWAP3
00003704: SWAP1
00003705: DUP10
00003706: AND
00003707: SWAP2
00003708: CALLER
00003709: SWAP2
0000370a: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db
0000372b: SWAP2
0000372c: ADD
0000372d: PUSH1 0x40
0000372f: MLOAD
00003730: DUP1
00003731: SWAP2
00003732: SUB
00003733: SWAP1
00003734: LOG4
00003735: PUSH2 0x3785
00003738: JUMP
00003739: JUMPDEST
0000373a: PUSH1 0x40
0000373c: DUP1
0000373d: MLOAD
0000373e: DUP4
0000373f: DUP2
00003740: MSTORE
00003741: PUSH1 0x20
00003743: DUP2
00003744: ADD
00003745: DUP4
00003746: SWAP1
00003747: MSTORE
00003748: PUSH1 0x01
0000374a: PUSH1 0x01
0000374c: PUSH1 0xa0
0000374e: SHL
0000374f: SUB
00003750: DUP1
00003751: DUP9
00003752: AND
00003753: SWAP3
00003754: SWAP1
00003755: DUP10
00003756: AND
00003757: SWAP2
00003758: CALLER
00003759: SWAP2
0000375a: PUSH32 0x2dac01ea07cfa812db5881eaad96ba201c018c042b8f9ea7278cdf6f29e65f24
0000377b: SWAP2
0000377c: ADD
0000377d: PUSH1 0x40
0000377f: MLOAD
00003780: DUP1
00003781: SWAP2
00003782: SUB
00003783: SWAP1
00003784: LOG4
00003785: JUMPDEST
00003786: SWAP7
00003787: POP
00003788: SWAP7
00003789: SWAP5
0000378a: POP
0000378b: POP
0000378c: POP
0000378d: POP
0000378e: POP
0000378f: JUMP
00003790: JUMPDEST
00003791: PUSH0
00003792: PUSH0
00003793: PUSH0
00003794: PUSH2 0x379e
00003797: DUP8
00003798: DUP8
00003799: DUP7
0000379a: PUSH2 0x3ee4
0000379d: JUMP
0000379e: JUMPDEST
0000379f: SWAP2
000037a0: POP
000037a1: SWAP2
000037a2: POP
000037a3: DUP2
000037a4: PUSH0
000037a5: SUB
000037a6: PUSH2 0x37b3
000037a9: JUMPI
000037aa: DUP8
000037ab: SWAP3
000037ac: POP
000037ad: POP
000037ae: POP
000037af: PUSH2 0x17b0
000037b2: JUMP
000037b3: JUMPDEST
000037b4: PUSH2 0x3411
000037b7: DUP9
000037b8: DUP3
000037b9: DUP5
000037ba: DUP9
000037bb: PUSH2 0x3f3f
000037be: JUMP
000037bf: JUMPDEST
000037c0: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
000037e1: DUP1
000037e2: SLOAD
000037e3: PUSH1 0x01
000037e5: PUSH1 0x40
000037e7: SHL
000037e8: DUP2
000037e9: DIV
000037ea: PUSH1 0xff
000037ec: AND
000037ed: ISZERO
000037ee: SWAP1
000037ef: PUSH1 0x01
000037f1: PUSH1 0x01
000037f3: PUSH1 0x40
000037f5: SHL
000037f6: SUB
000037f7: AND
000037f8: PUSH0
000037f9: DUP2
000037fa: ISZERO
000037fb: DUP1
000037fc: ISZERO
000037fd: PUSH2 0x3803
00003800: JUMPI
00003801: POP
00003802: DUP3
00003803: JUMPDEST
00003804: SWAP1
00003805: POP
00003806: PUSH0
00003807: DUP3
00003808: PUSH1 0x01
0000380a: PUSH1 0x01
0000380c: PUSH1 0x40
0000380e: SHL
0000380f: SUB
00003810: AND
00003811: PUSH1 0x01
00003813: EQ
00003814: DUP1
00003815: ISZERO
00003816: PUSH2 0x381e
00003819: JUMPI
0000381a: POP
0000381b: ADDRESS
0000381c: EXTCODESIZE
0000381d: ISZERO
0000381e: JUMPDEST
0000381f: SWAP1
00003820: POP
00003821: DUP2
00003822: ISZERO
00003823: DUP1
00003824: ISZERO
00003825: PUSH2 0x382c
00003828: JUMPI
00003829: POP
0000382a: DUP1
0000382b: ISZERO
0000382c: JUMPDEST
0000382d: ISZERO
0000382e: PUSH2 0x384a
00003831: JUMPI
00003832: PUSH1 0x40
00003834: MLOAD
00003835: PUSH4 0xf92ee8a9
0000383a: PUSH1 0xe0
0000383c: SHL
0000383d: DUP2
0000383e: MSTORE
0000383f: PUSH1 0x04
00003841: ADD
00003842: PUSH1 0x40
00003844: MLOAD
00003845: DUP1
00003846: SWAP2
00003847: SUB
00003848: SWAP1
00003849: REVERT
0000384a: JUMPDEST
0000384b: DUP5
0000384c: SLOAD
0000384d: PUSH8 0xffffffffffffffff
00003856: NOT
00003857: AND
00003858: PUSH1 0x01
0000385a: OR
0000385b: DUP6
0000385c: SSTORE
0000385d: DUP4
0000385e: ISZERO
0000385f: PUSH2 0x3874
00003862: JUMPI
00003863: DUP5
00003864: SLOAD
00003865: PUSH1 0xff
00003867: PUSH1 0x40
00003869: SHL
0000386a: NOT
0000386b: AND
0000386c: PUSH1 0x01
0000386e: PUSH1 0x40
00003870: SHL
00003871: OR
00003872: DUP6
00003873: SSTORE
00003874: JUMPDEST
00003875: PUSH2 0x38b2
00003878: PUSH1 0x40
0000387a: MLOAD
0000387b: DUP1
0000387c: PUSH1 0x40
0000387e: ADD
0000387f: PUSH1 0x40
00003881: MSTORE
00003882: DUP1
00003883: PUSH1 0x18
00003885: DUP2
00003886: MSTORE
00003887: PUSH1 0x20
00003889: ADD
0000388a: PUSH32 0x53696c6f5368617265546f6b656e4549503731324e616d650000000000000000
000038ab: DUP2
000038ac: MSTORE
000038ad: POP
000038ae: PUSH2 0x3f81
000038b1: JUMP
000038b2: JUMPDEST
000038b3: PUSH1 0x40
000038b5: MLOAD
000038b6: PUSH4 0x1983f68f
000038bb: PUSH1 0xe2
000038bd: SHL
000038be: DUP2
000038bf: MSTORE
000038c0: PUSH1 0x01
000038c2: PUSH1 0x01
000038c4: PUSH1 0xa0
000038c6: SHL
000038c7: SUB
000038c8: DUP1
000038c9: DUP11
000038ca: AND
000038cb: PUSH1 0x04
000038cd: DUP4
000038ce: ADD
000038cf: MSTORE
000038d0: DUP9
000038d1: AND
000038d2: PUSH1 0x24
000038d4: DUP3
000038d5: ADD
000038d6: MSTORE
000038d7: PUSH3 0xffffff
000038db: DUP8
000038dc: AND
000038dd: PUSH1 0x44
000038df: DUP3
000038e0: ADD
000038e1: MSTORE
000038e2: PUSH20 0x73de8d3b49000cc9fd2a05f27b37af0c1f6e3133
000038f7: SWAP1
000038f8: PUSH4 0x660fda3c
000038fd: SWAP1
000038fe: PUSH1 0x64
00003900: ADD
00003901: PUSH0
00003902: PUSH1 0x40
00003904: MLOAD
00003905: DUP1
00003906: DUP4
00003907: SUB
00003908: DUP2
00003909: DUP7
0000390a: DUP1
0000390b: EXTCODESIZE
0000390c: ISZERO
0000390d: DUP1
0000390e: ISZERO
0000390f: PUSH2 0x3916
00003912: JUMPI
00003913: PUSH0
00003914: PUSH0
00003915: REVERT
00003916: JUMPDEST
00003917: POP
00003918: GAS
00003919: DELEGATECALL
0000391a: ISZERO
0000391b: DUP1
0000391c: ISZERO
0000391d: PUSH2 0x3928
00003920: JUMPI
00003921: RETURNDATASIZE
00003922: PUSH0
00003923: PUSH0
00003924: RETURNDATACOPY
00003925: RETURNDATASIZE
00003926: PUSH0
00003927: REVERT
00003928: JUMPDEST
00003929: POP
0000392a: POP
0000392b: POP
0000392c: POP
0000392d: DUP4
0000392e: ISZERO
0000392f: PUSH2 0x3972
00003932: JUMPI
00003933: DUP5
00003934: SLOAD
00003935: PUSH1 0xff
00003937: PUSH1 0x40
00003939: SHL
0000393a: NOT
0000393b: AND
0000393c: DUP6
0000393d: SSTORE
0000393e: PUSH1 0x40
00003940: MLOAD
00003941: PUSH1 0x01
00003943: DUP2
00003944: MSTORE
00003945: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
00003966: SWAP1
00003967: PUSH1 0x20
00003969: ADD
0000396a: PUSH1 0x40
0000396c: MLOAD
0000396d: DUP1
0000396e: SWAP2
0000396f: SUB
00003970: SWAP1
00003971: LOG1
00003972: JUMPDEST
00003973: POP
00003974: POP
00003975: POP
00003976: POP
00003977: POP
00003978: POP
00003979: POP
0000397a: POP
0000397b: JUMP
0000397c: JUMPDEST
0000397d: PUSH1 0x01
0000397f: PUSH1 0x01
00003981: PUSH1 0xa0
00003983: SHL
00003984: SUB
00003985: DUP3
00003986: AND
00003987: PUSH2 0x39a5
0000398a: JUMPI
0000398b: PUSH1 0x40
0000398d: MLOAD
0000398e: PUSH4 0xec442f05
00003993: PUSH1 0xe0
00003995: SHL
00003996: DUP2
00003997: MSTORE
00003998: PUSH0
00003999: PUSH1 0x04
0000399b: DUP3
0000399c: ADD
0000399d: MSTORE
0000399e: PUSH1 0x24
000039a0: ADD
000039a1: PUSH2 0x1ada
000039a4: JUMP
000039a5: JUMPDEST
000039a6: PUSH2 0x2100
000039a9: PUSH0
000039aa: DUP4
000039ab: DUP4
000039ac: PUSH2 0x3fac
000039af: JUMP
000039b0: JUMPDEST
000039b1: DUP4
000039b2: TIMESTAMP
000039b3: GT
000039b4: ISZERO
000039b5: PUSH2 0x39d4
000039b8: JUMPI
000039b9: PUSH1 0x40
000039bb: MLOAD
000039bc: PUSH4 0x313c8981
000039c1: PUSH1 0xe1
000039c3: SHL
000039c4: DUP2
000039c5: MSTORE
000039c6: PUSH1 0x04
000039c8: DUP2
000039c9: ADD
000039ca: DUP6
000039cb: SWAP1
000039cc: MSTORE
000039cd: PUSH1 0x24
000039cf: ADD
000039d0: PUSH2 0x1ada
000039d3: JUMP
000039d4: JUMPDEST
000039d5: PUSH0
000039d6: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
000039f7: DUP9
000039f8: DUP9
000039f9: DUP9
000039fa: PUSH2 0x3a3e
000039fd: DUP13
000039fe: PUSH1 0x01
00003a00: PUSH1 0x01
00003a02: PUSH1 0xa0
00003a04: SHL
00003a05: SUB
00003a06: AND
00003a07: PUSH0
00003a08: SWAP1
00003a09: DUP2
00003a0a: MSTORE
00003a0b: PUSH32 0x5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00
00003a2c: PUSH1 0x20
00003a2e: MSTORE
00003a2f: PUSH1 0x40
00003a31: SWAP1
00003a32: KECCAK256
00003a33: DUP1
00003a34: SLOAD
00003a35: PUSH1 0x01
00003a37: DUP2
00003a38: ADD
00003a39: SWAP1
00003a3a: SWAP2
00003a3b: SSTORE
00003a3c: SWAP1
00003a3d: JUMP
00003a3e: JUMPDEST
00003a3f: PUSH1 0x40
00003a41: DUP1
00003a42: MLOAD
00003a43: PUSH1 0x20
00003a45: DUP2
00003a46: ADD
00003a47: SWAP7
00003a48: SWAP1
00003a49: SWAP7
00003a4a: MSTORE
00003a4b: PUSH1 0x01
00003a4d: PUSH1 0x01
00003a4f: PUSH1 0xa0
00003a51: SHL
00003a52: SUB
00003a53: SWAP5
00003a54: DUP6
00003a55: AND
00003a56: SWAP1
00003a57: DUP7
00003a58: ADD
00003a59: MSTORE
00003a5a: SWAP3
00003a5b: SWAP1
00003a5c: SWAP2
00003a5d: AND
00003a5e: PUSH1 0x60
00003a60: DUP5
00003a61: ADD
00003a62: MSTORE
00003a63: PUSH1 0x80
00003a65: DUP4
00003a66: ADD
00003a67: MSTORE
00003a68: PUSH1 0xa0
00003a6a: DUP3
00003a6b: ADD
00003a6c: MSTORE
00003a6d: PUSH1 0xc0
00003a6f: DUP2
00003a70: ADD
00003a71: DUP7
00003a72: SWAP1
00003a73: MSTORE
00003a74: PUSH1 0xe0
00003a76: ADD
00003a77: PUSH1 0x40
00003a79: MLOAD
00003a7a: PUSH1 0x20
00003a7c: DUP2
00003a7d: DUP4
00003a7e: SUB
00003a7f: SUB
00003a80: DUP2
00003a81: MSTORE
00003a82: SWAP1
00003a83: PUSH1 0x40
00003a85: MSTORE
00003a86: DUP1
00003a87: MLOAD
00003a88: SWAP1
00003a89: PUSH1 0x20
00003a8b: ADD
00003a8c: KECCAK256
00003a8d: SWAP1
00003a8e: POP
00003a8f: PUSH0
00003a90: PUSH2 0x3a98
00003a93: DUP3
00003a94: PUSH2 0x3fe2
00003a97: JUMP
00003a98: JUMPDEST
00003a99: SWAP1
00003a9a: POP
00003a9b: PUSH0
00003a9c: PUSH2 0x3aa7
00003a9f: DUP3
00003aa0: DUP8
00003aa1: DUP8
00003aa2: DUP8
00003aa3: PUSH2 0x400e
00003aa6: JUMP
00003aa7: JUMPDEST
00003aa8: SWAP1
00003aa9: POP
00003aaa: DUP10
00003aab: PUSH1 0x01
00003aad: PUSH1 0x01
00003aaf: PUSH1 0xa0
00003ab1: SHL
00003ab2: SUB
00003ab3: AND
00003ab4: DUP2
00003ab5: PUSH1 0x01
00003ab7: PUSH1 0x01
00003ab9: PUSH1 0xa0
00003abb: SHL
00003abc: SUB
00003abd: AND
00003abe: EQ
00003abf: PUSH2 0x3aee
00003ac2: JUMPI
00003ac3: PUSH1 0x40
00003ac5: MLOAD
00003ac6: PUSH4 0x25c00723
00003acb: PUSH1 0xe1
00003acd: SHL
00003ace: DUP2
00003acf: MSTORE
00003ad0: PUSH1 0x01
00003ad2: PUSH1 0x01
00003ad4: PUSH1 0xa0
00003ad6: SHL
00003ad7: SUB
00003ad8: DUP1
00003ad9: DUP4
00003ada: AND
00003adb: PUSH1 0x04
00003add: DUP4
00003ade: ADD
00003adf: MSTORE
00003ae0: DUP12
00003ae1: AND
00003ae2: PUSH1 0x24
00003ae4: DUP3
00003ae5: ADD
00003ae6: MSTORE
00003ae7: PUSH1 0x44
00003ae9: ADD
00003aea: PUSH2 0x1ada
00003aed: JUMP
00003aee: JUMPDEST
00003aef: PUSH2 0x3af9
00003af2: DUP11
00003af3: DUP11
00003af4: DUP11
00003af5: PUSH2 0x3c84
00003af8: JUMP
00003af9: JUMPDEST
00003afa: POP
00003afb: POP
00003afc: POP
00003afd: POP
00003afe: POP
00003aff: POP
00003b00: POP
00003b01: POP
00003b02: POP
00003b03: POP
00003b04: JUMP
00003b05: JUMPDEST
00003b06: PUSH1 0x01
00003b08: PUSH1 0x01
00003b0a: PUSH1 0xa0
00003b0c: SHL
00003b0d: SUB
00003b0e: DUP4
00003b0f: AND
00003b10: PUSH2 0x3b2e
00003b13: JUMPI
00003b14: PUSH1 0x40
00003b16: MLOAD
00003b17: PUSH4 0x4b637e8f
00003b1c: PUSH1 0xe1
00003b1e: SHL
00003b1f: DUP2
00003b20: MSTORE
00003b21: PUSH0
00003b22: PUSH1 0x04
00003b24: DUP3
00003b25: ADD
00003b26: MSTORE
00003b27: PUSH1 0x24
00003b29: ADD
00003b2a: PUSH2 0x1ada
00003b2d: JUMP
00003b2e: JUMPDEST
00003b2f: PUSH1 0x01
00003b31: PUSH1 0x01
00003b33: PUSH1 0xa0
00003b35: SHL
00003b36: SUB
00003b37: DUP3
00003b38: AND
00003b39: PUSH2 0x3b57
00003b3c: JUMPI
00003b3d: PUSH1 0x40
00003b3f: MLOAD
00003b40: PUSH4 0xec442f05
00003b45: PUSH1 0xe0
00003b47: SHL
00003b48: DUP2
00003b49: MSTORE
00003b4a: PUSH0
00003b4b: PUSH1 0x04
00003b4d: DUP3
00003b4e: ADD
00003b4f: MSTORE
00003b50: PUSH1 0x24
00003b52: ADD
00003b53: PUSH2 0x1ada
00003b56: JUMP
00003b57: JUMPDEST
00003b58: PUSH2 0x2147
00003b5b: DUP4
00003b5c: DUP4
00003b5d: DUP4
00003b5e: PUSH2 0x3fac
00003b61: JUMP
00003b62: JUMPDEST
00003b63: PUSH0
00003b64: PUSH0
00003b65: PUSH2 0x3b6c
00003b68: PUSH2 0x30f1
00003b6b: JUMP
00003b6c: JUMPDEST
00003b6d: SWAP1
00003b6e: POP
00003b6f: PUSH2 0x2ca9
00003b72: DUP2
00003b73: PUSH1 0x40
00003b75: ADD
00003b76: MLOAD
00003b77: DUP3
00003b78: PUSH2 0x0120
00003b7b: ADD
00003b7c: MLOAD
00003b7d: PUSH2 0x3dfa
00003b80: JUMP
00003b81: JUMPDEST
00003b82: PUSH0
00003b83: PUSH2 0x3b8c
00003b86: DUP5
00003b87: DUP5
00003b88: PUSH2 0x23f1
00003b8b: JUMP
00003b8c: JUMPDEST
00003b8d: SWAP1
00003b8e: POP
00003b8f: PUSH0
00003b90: NOT
00003b91: DUP2
00003b92: EQ
00003b93: PUSH2 0x1899
00003b96: JUMPI
00003b97: DUP2
00003b98: DUP2
00003b99: LT
00003b9a: ISZERO
00003b9b: PUSH2 0x3bd0
00003b9e: JUMPI
00003b9f: PUSH1 0x40
00003ba1: MLOAD
00003ba2: PUSH4 0x7dc7a0d9
00003ba7: PUSH1 0xe1
00003ba9: SHL
00003baa: DUP2
00003bab: MSTORE
00003bac: PUSH1 0x01
00003bae: PUSH1 0x01
00003bb0: PUSH1 0xa0
00003bb2: SHL
00003bb3: SUB
00003bb4: DUP5
00003bb5: AND
00003bb6: PUSH1 0x04
00003bb8: DUP3
00003bb9: ADD
00003bba: MSTORE
00003bbb: PUSH1 0x24
00003bbd: DUP2
00003bbe: ADD
00003bbf: DUP3
00003bc0: SWAP1
00003bc1: MSTORE
00003bc2: PUSH1 0x44
00003bc4: DUP2
00003bc5: ADD
00003bc6: DUP4
00003bc7: SWAP1
00003bc8: MSTORE
00003bc9: PUSH1 0x64
00003bcb: ADD
00003bcc: PUSH2 0x1ada
00003bcf: JUMP
00003bd0: JUMPDEST
00003bd1: PUSH2 0x1899
00003bd4: DUP5
00003bd5: DUP5
00003bd6: DUP5
00003bd7: DUP5
00003bd8: SUB
00003bd9: PUSH0
00003bda: PUSH2 0x403a
00003bdd: JUMP
00003bde: JUMPDEST
00003bdf: PUSH1 0x01
00003be1: PUSH1 0x01
00003be3: PUSH1 0xa0
00003be5: SHL
00003be6: SUB
00003be7: DUP3
00003be8: AND
00003be9: PUSH2 0x3c07
00003bec: JUMPI
00003bed: PUSH1 0x40
00003bef: MLOAD
00003bf0: PUSH4 0x4b637e8f
00003bf5: PUSH1 0xe1
00003bf7: SHL
00003bf8: DUP2
00003bf9: MSTORE
00003bfa: PUSH0
00003bfb: PUSH1 0x04
00003bfd: DUP3
00003bfe: ADD
00003bff: MSTORE
00003c00: PUSH1 0x24
00003c02: ADD
00003c03: PUSH2 0x1ada
00003c06: JUMP
00003c07: JUMPDEST
00003c08: PUSH2 0x2100
00003c0b: DUP3
00003c0c: PUSH0
00003c0d: DUP4
00003c0e: PUSH2 0x3fac
00003c11: JUMP
00003c12: JUMPDEST
00003c13: PUSH1 0x01
00003c15: PUSH0
00003c16: SWAP1
00003c17: DUP2
00003c18: MSTORE
00003c19: PUSH0
00003c1a: MLOAD
00003c1b: PUSH1 0x20
00003c1d: PUSH2 0x5728
00003c20: PUSH0
00003c21: CODECOPY
00003c22: PUSH0
00003c23: MLOAD
00003c24: SWAP1
00003c25: PUSH0
00003c26: MSTORE
00003c27: PUSH1 0x20
00003c29: DUP2
00003c2a: SWAP1
00003c2b: MSTORE
00003c2c: PUSH0
00003c2d: MLOAD
00003c2e: PUSH1 0x20
00003c30: PUSH2 0x5788
00003c33: PUSH0
00003c34: CODECOPY
00003c35: PUSH0
00003c36: MLOAD
00003c37: SWAP1
00003c38: PUSH0
00003c39: MSTORE
00003c3a: SLOAD
00003c3b: SWAP2
00003c3c: SWAP1
00003c3d: PUSH0
00003c3e: MLOAD
00003c3f: PUSH1 0x20
00003c41: PUSH2 0x5748
00003c44: PUSH0
00003c45: CODECOPY
00003c46: PUSH0
00003c47: MLOAD
00003c48: SWAP1
00003c49: PUSH0
00003c4a: MSTORE
00003c4b: SWAP1
00003c4c: DUP3
00003c4d: DUP1
00003c4e: PUSH2 0x2b3d
00003c51: JUMP
00003c52: JUMPDEST
00003c53: PUSH0
00003c54: PUSH0
00003c55: PUSH0
00003c56: PUSH2 0x3c61
00003c59: ADDRESS
00003c5a: DUP8
00003c5b: DUP8
00003c5c: DUP8
00003c5d: PUSH2 0x3d04
00003c60: JUMP
00003c61: JUMPDEST
00003c62: SWAP2
00003c63: POP
00003c64: PUSH2 0x3c6d
00003c67: ADDRESS
00003c68: DUP8
00003c69: PUSH2 0x3dfa
00003c6c: JUMP
00003c6d: JUMPDEST
00003c6e: SWAP1
00003c6f: POP
00003c70: PUSH2 0x3c79
00003c73: DUP3
00003c74: DUP3
00003c75: PUSH2 0x4131
00003c78: JUMP
00003c79: JUMPDEST
00003c7a: SWAP3
00003c7b: POP
00003c7c: SWAP4
00003c7d: POP
00003c7e: SWAP4
00003c7f: POP
00003c80: SWAP4
00003c81: SWAP1
00003c82: POP
00003c83: JUMP
00003c84: JUMPDEST
00003c85: PUSH2 0x2147
00003c88: DUP4
00003c89: DUP4
00003c8a: DUP4
00003c8b: PUSH1 0x01
00003c8d: PUSH2 0x403a
00003c90: JUMP
00003c91: JUMPDEST
00003c92: PUSH0
00003c93: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
00003cb4: PUSH2 0x3cbb
00003cb7: PUSH2 0x4149
00003cba: JUMP
00003cbb: JUMPDEST
00003cbc: PUSH2 0x3cc3
00003cbf: PUSH2 0x41b1
00003cc2: JUMP
00003cc3: JUMPDEST
00003cc4: PUSH1 0x40
00003cc6: DUP1
00003cc7: MLOAD
00003cc8: PUSH1 0x20
00003cca: DUP2
00003ccb: ADD
00003ccc: SWAP5
00003ccd: SWAP1
00003cce: SWAP5
00003ccf: MSTORE
00003cd0: DUP4
00003cd1: ADD
00003cd2: SWAP2
00003cd3: SWAP1
00003cd4: SWAP2
00003cd5: MSTORE
00003cd6: PUSH1 0x60
00003cd8: DUP3
00003cd9: ADD
00003cda: MSTORE
00003cdb: CHAINID
00003cdc: PUSH1 0x80
00003cde: DUP3
00003cdf: ADD
00003ce0: MSTORE
00003ce1: ADDRESS
00003ce2: PUSH1 0xa0
00003ce4: DUP3
00003ce5: ADD
00003ce6: MSTORE
00003ce7: PUSH1 0xc0
00003ce9: ADD
00003cea: PUSH1 0x40
00003cec: MLOAD
00003ced: PUSH1 0x20
00003cef: DUP2
00003cf0: DUP4
00003cf1: SUB
00003cf2: SUB
00003cf3: DUP2
00003cf4: MSTORE
00003cf5: SWAP1
00003cf6: PUSH1 0x40
00003cf8: MSTORE
00003cf9: DUP1
00003cfa: MLOAD
00003cfb: SWAP1
00003cfc: PUSH1 0x20
00003cfe: ADD
00003cff: KECCAK256
00003d00: SWAP1
00003d01: POP
00003d02: SWAP1
00003d03: JUMP
00003d04: JUMPDEST
00003d05: PUSH1 0x40
00003d07: MLOAD
00003d08: PUSH4 0x67efe7fd
00003d0d: PUSH1 0xe1
00003d0f: SHL
00003d10: DUP2
00003d11: MSTORE
00003d12: PUSH1 0x01
00003d14: PUSH1 0x01
00003d16: PUSH1 0xa0
00003d18: SHL
00003d19: SUB
00003d1a: DUP6
00003d1b: DUP2
00003d1c: AND
00003d1d: PUSH1 0x04
00003d1f: DUP4
00003d20: ADD
00003d21: MSTORE
00003d22: TIMESTAMP
00003d23: PUSH1 0x24
00003d25: DUP4
00003d26: ADD
00003d27: MSTORE
00003d28: PUSH0
00003d29: SWAP2
00003d2a: DUP3
00003d2b: SWAP2
00003d2c: DUP7
00003d2d: AND
00003d2e: SWAP1
00003d2f: PUSH4 0xcfdfcffa
00003d34: SWAP1
00003d35: PUSH1 0x44
00003d37: ADD
00003d38: PUSH1 0x20
00003d3a: PUSH1 0x40
00003d3c: MLOAD
00003d3d: DUP1
00003d3e: DUP4
00003d3f: SUB
00003d40: DUP2
00003d41: DUP7
00003d42: GAS
00003d43: STATICCALL
00003d44: SWAP3
00003d45: POP
00003d46: POP
00003d47: POP
00003d48: DUP1
00003d49: ISZERO
00003d4a: PUSH2 0x3d70
00003d4d: JUMPI
00003d4e: POP
00003d4f: PUSH1 0x40
00003d51: DUP1
00003d52: MLOAD
00003d53: PUSH1 0x1f
00003d55: RETURNDATASIZE
00003d56: SWAP1
00003d57: DUP2
00003d58: ADD
00003d59: PUSH1 0x1f
00003d5b: NOT
00003d5c: AND
00003d5d: DUP3
00003d5e: ADD
00003d5f: SWAP1
00003d60: SWAP3
00003d61: MSTORE
00003d62: PUSH2 0x3d6d
00003d65: SWAP2
00003d66: DUP2
00003d67: ADD
00003d68: SWAP1
00003d69: PUSH2 0x5092
00003d6c: JUMP
00003d6d: JUMPDEST
00003d6e: PUSH1 0x01
00003d70: JUMPDEST
00003d71: ISZERO
00003d72: PUSH2 0x3d78
00003d75: JUMPI
00003d76: SWAP1
00003d77: POP
00003d78: JUMPDEST
00003d79: PUSH0
00003d7a: PUSH0
00003d7b: DUP8
00003d7c: PUSH1 0x01
00003d7e: PUSH1 0x01
00003d80: PUSH1 0xa0
00003d82: SHL
00003d83: SUB
00003d84: AND
00003d85: PUSH4 0x39c5c505
00003d8a: PUSH1 0x40
00003d8c: MLOAD
00003d8d: DUP2
00003d8e: PUSH4 0xffffffff
00003d93: AND
00003d94: PUSH1 0xe0
00003d96: SHL
00003d97: DUP2
00003d98: MSTORE
00003d99: PUSH1 0x04
00003d9b: ADD
00003d9c: PUSH1 0x40
00003d9e: DUP1
00003d9f: MLOAD
00003da0: DUP1
00003da1: DUP4
00003da2: SUB
00003da3: DUP2
00003da4: DUP7
00003da5: GAS
00003da6: STATICCALL
00003da7: ISZERO
00003da8: DUP1
00003da9: ISZERO
00003daa: PUSH2 0x3db5
00003dad: JUMPI
00003dae: RETURNDATASIZE
00003daf: PUSH0
00003db0: PUSH0
00003db1: RETURNDATACOPY
00003db2: RETURNDATASIZE
00003db3: PUSH0
00003db4: REVERT
00003db5: JUMPDEST
00003db6: POP
00003db7: POP
00003db8: POP
00003db9: POP
00003dba: PUSH1 0x40
00003dbc: MLOAD
00003dbd: RETURNDATASIZE
00003dbe: PUSH1 0x1f
00003dc0: NOT
00003dc1: PUSH1 0x1f
00003dc3: DUP3
00003dc4: ADD
00003dc5: AND
00003dc6: DUP3
00003dc7: ADD
00003dc8: DUP1
00003dc9: PUSH1 0x40
00003dcb: MSTORE
00003dcc: POP
00003dcd: DUP2
00003dce: ADD
00003dcf: SWAP1
00003dd0: PUSH2 0x3dd9
00003dd3: SWAP2
00003dd4: SWAP1
00003dd5: PUSH2 0x5107
00003dd8: JUMP
00003dd9: JUMPDEST
00003dda: SWAP2
00003ddb: POP
00003ddc: SWAP2
00003ddd: POP
00003dde: PUSH2 0x3dea
00003de1: DUP3
00003de2: DUP3
00003de3: DUP6
00003de4: DUP10
00003de5: DUP10
00003de6: PUSH2 0x41f3
00003de9: JUMP
00003dea: JUMPDEST
00003deb: POP
00003dec: SWAP2
00003ded: SWAP11
00003dee: SWAP10
00003def: POP
00003df0: POP
00003df1: POP
00003df2: POP
00003df3: POP
00003df4: POP
00003df5: POP
00003df6: POP
00003df7: POP
00003df8: POP
00003df9: JUMP
00003dfa: JUMPDEST
00003dfb: PUSH1 0x40
00003dfd: MLOAD
00003dfe: PUSH4 0x67efe7fd
00003e03: PUSH1 0xe1
00003e05: SHL
00003e06: DUP2
00003e07: MSTORE
00003e08: PUSH1 0x01
00003e0a: PUSH1 0x01
00003e0c: PUSH1 0xa0
00003e0e: SHL
00003e0f: SUB
00003e10: DUP4
00003e11: DUP2
00003e12: AND
00003e13: PUSH1 0x04
00003e15: DUP4
00003e16: ADD
00003e17: MSTORE
00003e18: TIMESTAMP
00003e19: PUSH1 0x24
00003e1b: DUP4
00003e1c: ADD
00003e1d: MSTORE
00003e1e: PUSH0
00003e1f: SWAP2
00003e20: DUP3
00003e21: SWAP2
00003e22: DUP5
00003e23: AND
00003e24: SWAP1
00003e25: PUSH4 0xcfdfcffa
00003e2a: SWAP1
00003e2b: PUSH1 0x44
00003e2d: ADD
00003e2e: PUSH1 0x20
00003e30: PUSH1 0x40
00003e32: MLOAD
00003e33: DUP1
00003e34: DUP4
00003e35: SUB
00003e36: DUP2
00003e37: DUP7
00003e38: GAS
00003e39: STATICCALL
00003e3a: SWAP3
00003e3b: POP
00003e3c: POP
00003e3d: POP
00003e3e: DUP1
00003e3f: ISZERO
00003e40: PUSH2 0x3e66
00003e43: JUMPI
00003e44: POP
00003e45: PUSH1 0x40
00003e47: DUP1
00003e48: MLOAD
00003e49: PUSH1 0x1f
00003e4b: RETURNDATASIZE
00003e4c: SWAP1
00003e4d: DUP2
00003e4e: ADD
00003e4f: PUSH1 0x1f
00003e51: NOT
00003e52: AND
00003e53: DUP3
00003e54: ADD
00003e55: SWAP1
00003e56: SWAP3
00003e57: MSTORE
00003e58: PUSH2 0x3e63
00003e5b: SWAP2
00003e5c: DUP2
00003e5d: ADD
00003e5e: SWAP1
00003e5f: PUSH2 0x5092
00003e62: JUMP
00003e63: JUMPDEST
00003e64: PUSH1 0x01
00003e66: JUMPDEST
00003e67: ISZERO
00003e68: PUSH2 0x3e6e
00003e6b: JUMPI
00003e6c: SWAP1
00003e6d: POP
00003e6e: JUMPDEST
00003e6f: PUSH1 0x40
00003e71: MLOAD
00003e72: PUSH4 0xb6d821c7
00003e77: PUSH1 0xe0
00003e79: SHL
00003e7a: DUP2
00003e7b: MSTORE
00003e7c: PUSH2 0x201f
00003e7f: SWAP1
00003e80: PUSH1 0x01
00003e82: PUSH1 0x01
00003e84: PUSH1 0xa0
00003e86: SHL
00003e87: SUB
00003e88: DUP7
00003e89: AND
00003e8a: SWAP1
00003e8b: PUSH4 0xb6d821c7
00003e90: SWAP1
00003e91: PUSH2 0x3e9f
00003e94: SWAP1
00003e95: PUSH1 0x02
00003e97: SWAP1
00003e98: PUSH1 0x04
00003e9a: ADD
00003e9b: PUSH2 0x53d8
00003e9e: JUMP
00003e9f: JUMPDEST
00003ea0: PUSH1 0x20
00003ea2: PUSH1 0x40
00003ea4: MLOAD
00003ea5: DUP1
00003ea6: DUP4
00003ea7: SUB
00003ea8: DUP2
00003ea9: DUP7
00003eaa: GAS
00003eab: STATICCALL
00003eac: ISZERO
00003ead: DUP1
00003eae: ISZERO
00003eaf: PUSH2 0x3eba
00003eb2: JUMPI
00003eb3: RETURNDATASIZE
00003eb4: PUSH0
00003eb5: PUSH0
00003eb6: RETURNDATACOPY
00003eb7: RETURNDATASIZE
00003eb8: PUSH0
00003eb9: REVERT
00003eba: JUMPDEST
00003ebb: POP
00003ebc: POP
00003ebd: POP
00003ebe: POP
00003ebf: PUSH1 0x40
00003ec1: MLOAD
00003ec2: RETURNDATASIZE
00003ec3: PUSH1 0x1f
00003ec5: NOT
00003ec6: PUSH1 0x1f
00003ec8: DUP3
00003ec9: ADD
00003eca: AND
00003ecb: DUP3
00003ecc: ADD
00003ecd: DUP1
00003ece: PUSH1 0x40
00003ed0: MSTORE
00003ed1: POP
00003ed2: DUP2
00003ed3: ADD
00003ed4: SWAP1
00003ed5: PUSH2 0x3ede
00003ed8: SWAP2
00003ed9: SWAP1
00003eda: PUSH2 0x5092
00003edd: JUMP
00003ede: JUMPDEST
00003edf: DUP3
00003ee0: PUSH2 0x424d
00003ee3: JUMP
00003ee4: JUMPDEST
00003ee5: PUSH0
00003ee6: PUSH0
00003ee7: DUP4
00003ee8: PUSH0
00003ee9: SUB
00003eea: PUSH2 0x3ef1
00003eed: JUMPI
00003eee: PUSH0
00003eef: SWAP5
00003ef0: POP
00003ef1: JUMPDEST
00003ef2: PUSH1 0x02
00003ef4: DUP4
00003ef5: PUSH1 0x02
00003ef7: DUP2
00003ef8: GT
00003ef9: ISZERO
00003efa: PUSH2 0x3f05
00003efd: JUMPI
00003efe: PUSH2 0x3f05
00003f01: PUSH2 0x51e6
00003f04: JUMP
00003f05: JUMPDEST
00003f06: EQ
00003f07: PUSH2 0x3f30
00003f0a: JUMPI
00003f0b: PUSH2 0x3f16
00003f0e: PUSH1 0x03
00003f10: PUSH1 0x0a
00003f12: PUSH2 0x5571
00003f15: JUMP
00003f16: JUMPDEST
00003f17: PUSH2 0x3f20
00003f1a: SWAP1
00003f1b: DUP6
00003f1c: PUSH2 0x557c
00003f1f: JUMP
00003f20: JUMPDEST
00003f21: PUSH2 0x3f2b
00003f24: DUP7
00003f25: PUSH1 0x01
00003f27: PUSH2 0x557c
00003f2a: JUMP
00003f2b: JUMPDEST
00003f2c: PUSH2 0x3f33
00003f2f: JUMP
00003f30: JUMPDEST
00003f31: DUP4
00003f32: DUP6
00003f33: JUMPDEST
00003f34: SWAP1
00003f35: SWAP7
00003f36: SWAP1
00003f37: SWAP6
00003f38: POP
00003f39: SWAP4
00003f3a: POP
00003f3b: POP
00003f3c: POP
00003f3d: POP
00003f3e: JUMP
00003f3f: JUMPDEST
00003f40: PUSH0
00003f41: PUSH2 0x3f6c
00003f44: PUSH2 0x3f4c
00003f47: DUP4
00003f48: PUSH2 0x4295
00003f4b: JUMP
00003f4c: JUMPDEST
00003f4d: DUP1
00003f4e: ISZERO
00003f4f: PUSH2 0x3f67
00003f52: JUMPI
00003f53: POP
00003f54: PUSH0
00003f55: DUP5
00003f56: DUP1
00003f57: PUSH2 0x3f62
00003f5a: JUMPI
00003f5b: PUSH2 0x3f62
00003f5e: PUSH2 0x558f
00003f61: JUMP
00003f62: JUMPDEST
00003f63: DUP7
00003f64: DUP9
00003f65: MULMOD
00003f66: GT
00003f67: JUMPDEST
00003f68: ISZERO
00003f69: ISZERO
00003f6a: SWAP1
00003f6b: JUMP
00003f6c: JUMPDEST
00003f6d: PUSH2 0x3f77
00003f70: DUP7
00003f71: DUP7
00003f72: DUP7
00003f73: PUSH2 0x42c1
00003f76: JUMP
00003f77: JUMPDEST
00003f78: PUSH2 0x17b0
00003f7b: SWAP2
00003f7c: SWAP1
00003f7d: PUSH2 0x557c
00003f80: JUMP
00003f81: JUMPDEST
00003f82: PUSH2 0x3f89
00003f85: PUSH2 0x437e
00003f88: JUMP
00003f89: JUMPDEST
00003f8a: PUSH2 0x29cc
00003f8d: DUP2
00003f8e: PUSH1 0x40
00003f90: MLOAD
00003f91: DUP1
00003f92: PUSH1 0x40
00003f94: ADD
00003f95: PUSH1 0x40
00003f97: MSTORE
00003f98: DUP1
00003f99: PUSH1 0x01
00003f9b: DUP2
00003f9c: MSTORE
00003f9d: PUSH1 0x20
00003f9f: ADD
00003fa0: PUSH1 0x31
00003fa2: PUSH1 0xf8
00003fa4: SHL
00003fa5: DUP2
00003fa6: MSTORE
00003fa7: POP
00003fa8: PUSH2 0x43c9
00003fab: JUMP
00003fac: JUMPDEST
00003fad: DUP1
00003fae: PUSH0
00003faf: SUB
00003fb0: PUSH2 0x3fcc
00003fb3: JUMPI
00003fb4: PUSH1 0x40
00003fb6: MLOAD
00003fb7: PUSH4 0x10cadee3
00003fbc: PUSH1 0xe0
00003fbe: SHL
00003fbf: DUP2
00003fc0: MSTORE
00003fc1: PUSH1 0x04
00003fc3: ADD
00003fc4: PUSH1 0x40
00003fc6: MLOAD
00003fc7: DUP1
00003fc8: SWAP2
00003fc9: SUB
00003fca: SWAP1
00003fcb: REVERT
00003fcc: JUMPDEST
00003fcd: PUSH2 0x3fd7
00003fd0: DUP4
00003fd1: DUP4
00003fd2: DUP4
00003fd3: PUSH2 0x4428
00003fd6: JUMP
00003fd7: JUMPDEST
00003fd8: PUSH2 0x2147
00003fdb: DUP4
00003fdc: DUP4
00003fdd: DUP4
00003fde: PUSH2 0x4574
00003fe1: JUMP
00003fe2: JUMPDEST
00003fe3: PUSH0
00003fe4: PUSH2 0x10bb
00003fe7: PUSH2 0x3fee
00003fea: PUSH2 0x2af7
00003fed: JUMP
00003fee: JUMPDEST
00003fef: DUP4
00003ff0: PUSH1 0x40
00003ff2: MLOAD
00003ff3: PUSH2 0x1901
00003ff6: PUSH1 0xf0
00003ff8: SHL
00003ff9: DUP2
00003ffa: MSTORE
00003ffb: PUSH1 0x02
00003ffd: DUP2
00003ffe: ADD
00003fff: SWAP3
00004000: SWAP1
00004001: SWAP3
00004002: MSTORE
00004003: PUSH1 0x22
00004005: DUP3
00004006: ADD
00004007: MSTORE
00004008: PUSH1 0x42
0000400a: SWAP1
0000400b: KECCAK256
0000400c: SWAP1
0000400d: JUMP
0000400e: JUMPDEST
0000400f: PUSH0
00004010: PUSH0
00004011: PUSH0
00004012: PUSH0
00004013: PUSH2 0x401e
00004016: DUP9
00004017: DUP9
00004018: DUP9
00004019: DUP9
0000401a: PUSH2 0x464a
0000401d: JUMP
0000401e: JUMPDEST
0000401f: SWAP3
00004020: POP
00004021: SWAP3
00004022: POP
00004023: SWAP3
00004024: POP
00004025: PUSH2 0x402e
00004028: DUP3
00004029: DUP3
0000402a: PUSH2 0x4712
0000402d: JUMP
0000402e: JUMPDEST
0000402f: POP
00004030: SWAP1
00004031: SWAP7
00004032: SWAP6
00004033: POP
00004034: POP
00004035: POP
00004036: POP
00004037: POP
00004038: POP
00004039: JUMP
0000403a: JUMPDEST
0000403b: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00
0000405c: PUSH1 0x01
0000405e: PUSH1 0x01
00004060: PUSH1 0xa0
00004062: SHL
00004063: SUB
00004064: DUP6
00004065: AND
00004066: PUSH2 0x4084
00004069: JUMPI
0000406a: PUSH1 0x40
0000406c: MLOAD
0000406d: PUSH4 0xe602df05
00004072: PUSH1 0xe0
00004074: SHL
00004075: DUP2
00004076: MSTORE
00004077: PUSH0
00004078: PUSH1 0x04
0000407a: DUP3
0000407b: ADD
0000407c: MSTORE
0000407d: PUSH1 0x24
0000407f: ADD
00004080: PUSH2 0x1ada
00004083: JUMP
00004084: JUMPDEST
00004085: PUSH1 0x01
00004087: PUSH1 0x01
00004089: PUSH1 0xa0
0000408b: SHL
0000408c: SUB
0000408d: DUP5
0000408e: AND
0000408f: PUSH2 0x40ad
00004092: JUMPI
00004093: PUSH1 0x40
00004095: MLOAD
00004096: PUSH4 0x4a1406b1
0000409b: PUSH1 0xe1
0000409d: SHL
0000409e: DUP2
0000409f: MSTORE
000040a0: PUSH0
000040a1: PUSH1 0x04
000040a3: DUP3
000040a4: ADD
000040a5: MSTORE
000040a6: PUSH1 0x24
000040a8: ADD
000040a9: PUSH2 0x1ada
000040ac: JUMP
000040ad: JUMPDEST
000040ae: PUSH1 0x01
000040b0: PUSH1 0x01
000040b2: PUSH1 0xa0
000040b4: SHL
000040b5: SUB
000040b6: DUP1
000040b7: DUP7
000040b8: AND
000040b9: PUSH0
000040ba: SWAP1
000040bb: DUP2
000040bc: MSTORE
000040bd: PUSH1 0x01
000040bf: DUP4
000040c0: ADD
000040c1: PUSH1 0x20
000040c3: SWAP1
000040c4: DUP2
000040c5: MSTORE
000040c6: PUSH1 0x40
000040c8: DUP1
000040c9: DUP4
000040ca: KECCAK256
000040cb: SWAP4
000040cc: DUP9
000040cd: AND
000040ce: DUP4
000040cf: MSTORE
000040d0: SWAP3
000040d1: SWAP1
000040d2: MSTORE
000040d3: KECCAK256
000040d4: DUP4
000040d5: SWAP1
000040d6: SSTORE
000040d7: DUP2
000040d8: ISZERO
000040d9: PUSH2 0x412a
000040dc: JUMPI
000040dd: DUP4
000040de: PUSH1 0x01
000040e0: PUSH1 0x01
000040e2: PUSH1 0xa0
000040e4: SHL
000040e5: SUB
000040e6: AND
000040e7: DUP6
000040e8: PUSH1 0x01
000040ea: PUSH1 0x01
000040ec: PUSH1 0xa0
000040ee: SHL
000040ef: SUB
000040f0: AND
000040f1: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00004112: DUP6
00004113: PUSH1 0x40
00004115: MLOAD
00004116: PUSH2 0x4121
00004119: SWAP2
0000411a: DUP2
0000411b: MSTORE
0000411c: PUSH1 0x20
0000411e: ADD
0000411f: SWAP1
00004120: JUMP
00004121: JUMPDEST
00004122: PUSH1 0x40
00004124: MLOAD
00004125: DUP1
00004126: SWAP2
00004127: SUB
00004128: SWAP1
00004129: LOG3
0000412a: JUMPDEST
0000412b: POP
0000412c: POP
0000412d: POP
0000412e: POP
0000412f: POP
00004130: JUMP
00004131: JUMPDEST
00004132: PUSH0
00004133: DUP3
00004134: DUP3
00004135: GT
00004136: PUSH2 0x4141
00004139: JUMPI
0000413a: DUP2
0000413b: DUP4
0000413c: SUB
0000413d: PUSH2 0x10ed
00004140: JUMP
00004141: JUMPDEST
00004142: PUSH0
00004143: SWAP4
00004144: SWAP3
00004145: POP
00004146: POP
00004147: POP
00004148: JUMP
00004149: JUMPDEST
0000414a: PUSH0
0000414b: PUSH0
0000414c: MLOAD
0000414d: PUSH1 0x20
0000414f: PUSH2 0x5768
00004152: PUSH0
00004153: CODECOPY
00004154: PUSH0
00004155: MLOAD
00004156: SWAP1
00004157: PUSH0
00004158: MSTORE
00004159: DUP2
0000415a: PUSH2 0x4161
0000415d: PUSH2 0x3445
00004160: JUMP
00004161: JUMPDEST
00004162: DUP1
00004163: MLOAD
00004164: SWAP1
00004165: SWAP2
00004166: POP
00004167: ISZERO
00004168: PUSH2 0x4179
0000416b: JUMPI
0000416c: DUP1
0000416d: MLOAD
0000416e: PUSH1 0x20
00004170: SWAP1
00004171: SWAP2
00004172: ADD
00004173: KECCAK256
00004174: SWAP3
00004175: SWAP2
00004176: POP
00004177: POP
00004178: JUMP
00004179: JUMPDEST
0000417a: DUP2
0000417b: SLOAD
0000417c: DUP1
0000417d: ISZERO
0000417e: PUSH2 0x4188
00004181: JUMPI
00004182: SWAP4
00004183: SWAP3
00004184: POP
00004185: POP
00004186: POP
00004187: JUMP
00004188: JUMPDEST
00004189: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
000041aa: SWAP4
000041ab: POP
000041ac: POP
000041ad: POP
000041ae: POP
000041af: SWAP1
000041b0: JUMP
000041b1: JUMPDEST
000041b2: PUSH0
000041b3: PUSH0
000041b4: MLOAD
000041b5: PUSH1 0x20
000041b7: PUSH2 0x5768
000041ba: PUSH0
000041bb: CODECOPY
000041bc: PUSH0
000041bd: MLOAD
000041be: SWAP1
000041bf: PUSH0
000041c0: MSTORE
000041c1: DUP2
000041c2: PUSH2 0x41c9
000041c5: PUSH2 0x3505
000041c8: JUMP
000041c9: JUMPDEST
000041ca: DUP1
000041cb: MLOAD
000041cc: SWAP1
000041cd: SWAP2
000041ce: POP
000041cf: ISZERO
000041d0: PUSH2 0x41e1
000041d3: JUMPI
000041d4: DUP1
000041d5: MLOAD
000041d6: PUSH1 0x20
000041d8: SWAP1
000041d9: SWAP2
000041da: ADD
000041db: KECCAK256
000041dc: SWAP3
000041dd: SWAP2
000041de: POP
000041df: POP
000041e0: JUMP
000041e1: JUMPDEST
000041e2: PUSH1 0x01
000041e4: DUP3
000041e5: ADD
000041e6: SLOAD
000041e7: DUP1
000041e8: ISZERO
000041e9: PUSH2 0x4188
000041ec: JUMPI
000041ed: SWAP4
000041ee: SWAP3
000041ef: POP
000041f0: POP
000041f1: POP
000041f2: JUMP
000041f3: JUMPDEST
000041f4: PUSH0
000041f5: PUSH0
000041f6: PUSH0
000041f7: PUSH0
000041f8: PUSH2 0x4201
000041fb: DUP9
000041fc: DUP9
000041fd: PUSH2 0x424d
00004200: JUMP
00004201: JUMPDEST
00004202: SWAP1
00004203: SWAP4
00004204: POP
00004205: SWAP1
00004206: POP
00004207: DUP6
00004208: DUP6
00004209: ADD
0000420a: PUSH2 0x421c
0000420d: DUP3
0000420e: DUP3
0000420f: PUSH8 0x0de0b6b3a7640000
00004218: PUSH2 0x47ca
0000421b: JUMP
0000421c: JUMPDEST
0000421d: SWAP3
0000421e: POP
0000421f: PUSH0
00004220: PUSH2 0x4229
00004223: DUP5
00004224: DUP5
00004225: PUSH2 0x55a3
00004228: JUMP
00004229: JUMPDEST
0000422a: SWAP1
0000422b: POP
0000422c: DUP11
0000422d: NOT
0000422e: DUP2
0000422f: DUP2
00004230: LT
00004231: ISZERO
00004232: PUSH2 0x4239
00004235: JUMPI
00004236: DUP1
00004237: SWAP2
00004238: POP
00004239: JUMPDEST
0000423a: DUP2
0000423b: DUP13
0000423c: ADD
0000423d: SWAP7
0000423e: POP
0000423f: POP
00004240: POP
00004241: POP
00004242: SWAP6
00004243: POP
00004244: SWAP6
00004245: POP
00004246: SWAP6
00004247: POP
00004248: SWAP6
00004249: SWAP2
0000424a: POP
0000424b: POP
0000424c: JUMP
0000424d: JUMPDEST
0000424e: PUSH0
0000424f: DUP1
00004250: DUP4
00004251: ISZERO
00004252: DUP1
00004253: PUSH2 0x425a
00004256: JUMPI
00004257: POP
00004258: DUP3
00004259: ISZERO
0000425a: JUMPDEST
0000425b: ISZERO
0000425c: PUSH2 0x4269
0000425f: JUMPI
00004260: POP
00004261: DUP3
00004262: SWAP1
00004263: POP
00004264: PUSH0
00004265: PUSH2 0x2844
00004268: JUMP
00004269: JUMPDEST
0000426a: PUSH2 0x427c
0000426d: DUP5
0000426e: DUP5
0000426f: PUSH8 0x0de0b6b3a7640000
00004278: PUSH2 0x47ca
0000427b: JUMP
0000427c: JUMPDEST
0000427d: SWAP1
0000427e: POP
0000427f: DUP1
00004280: DUP5
00004281: ADD
00004282: SWAP2
00004283: POP
00004284: DUP4
00004285: DUP3
00004286: LT
00004287: ISZERO
00004288: PUSH2 0x2844
0000428b: JUMPI
0000428c: POP
0000428d: SWAP2
0000428e: SWAP3
0000428f: PUSH0
00004290: SWAP3
00004291: POP
00004292: SWAP1
00004293: POP
00004294: JUMP
00004295: JUMPDEST
00004296: PUSH0
00004297: PUSH1 0x02
00004299: DUP3
0000429a: PUSH1 0x03
0000429c: DUP2
0000429d: GT
0000429e: ISZERO
0000429f: PUSH2 0x42aa
000042a2: JUMPI
000042a3: PUSH2 0x42aa
000042a6: PUSH2 0x51e6
000042a9: JUMP
000042aa: JUMPDEST
000042ab: PUSH2 0x42b4
000042ae: SWAP2
000042af: SWAP1
000042b0: PUSH2 0x55b6
000042b3: JUMP
000042b4: JUMPDEST
000042b5: PUSH1 0xff
000042b7: AND
000042b8: PUSH1 0x01
000042ba: EQ
000042bb: SWAP1
000042bc: POP
000042bd: SWAP2
000042be: SWAP1
000042bf: POP
000042c0: JUMP
000042c1: JUMPDEST
000042c2: PUSH0
000042c3: DUP4
000042c4: DUP4
000042c5: MUL
000042c6: DUP2
000042c7: PUSH0
000042c8: NOT
000042c9: DUP6
000042ca: DUP8
000042cb: MULMOD
000042cc: DUP3
000042cd: DUP2
000042ce: LT
000042cf: DUP4
000042d0: DUP3
000042d1: SUB
000042d2: SUB
000042d3: SWAP2
000042d4: POP
000042d5: POP
000042d6: DUP1
000042d7: PUSH0
000042d8: SUB
000042d9: PUSH2 0x42f5
000042dc: JUMPI
000042dd: DUP4
000042de: DUP3
000042df: DUP2
000042e0: PUSH2 0x42eb
000042e3: JUMPI
000042e4: PUSH2 0x42eb
000042e7: PUSH2 0x558f
000042ea: JUMP
000042eb: JUMPDEST
000042ec: DIV
000042ed: SWAP3
000042ee: POP
000042ef: POP
000042f0: POP
000042f1: PUSH2 0x10ed
000042f4: JUMP
000042f5: JUMPDEST
000042f6: DUP1
000042f7: DUP5
000042f8: GT
000042f9: PUSH2 0x4313
000042fc: JUMPI
000042fd: PUSH2 0x4313
00004300: DUP5
00004301: ISZERO
00004302: PUSH2 0x430c
00004305: JUMPI
00004306: PUSH1 0x11
00004308: PUSH2 0x4812
0000430b: JUMP
0000430c: JUMPDEST
0000430d: PUSH1 0x12
0000430f: PUSH2 0x4812
00004312: JUMP
00004313: JUMPDEST
00004314: PUSH0
00004315: DUP5
00004316: DUP7
00004317: DUP9
00004318: MULMOD
00004319: PUSH0
0000431a: DUP7
0000431b: DUP2
0000431c: SUB
0000431d: DUP8
0000431e: AND
0000431f: SWAP7
00004320: DUP8
00004321: SWAP1
00004322: DIV
00004323: SWAP7
00004324: PUSH1 0x02
00004326: PUSH1 0x03
00004328: DUP10
00004329: MUL
0000432a: DUP2
0000432b: XOR
0000432c: DUP1
0000432d: DUP11
0000432e: MUL
0000432f: DUP3
00004330: SUB
00004331: MUL
00004332: DUP1
00004333: DUP11
00004334: MUL
00004335: DUP3
00004336: SUB
00004337: MUL
00004338: DUP1
00004339: DUP11
0000433a: MUL
0000433b: DUP3
0000433c: SUB
0000433d: MUL
0000433e: DUP1
0000433f: DUP11
00004340: MUL
00004341: DUP3
00004342: SUB
00004343: MUL
00004344: DUP1
00004345: DUP11
00004346: MUL
00004347: DUP3
00004348: SUB
00004349: MUL
0000434a: DUP1
0000434b: DUP11
0000434c: MUL
0000434d: SWAP1
0000434e: SWAP2
0000434f: SUB
00004350: MUL
00004351: SWAP2
00004352: DUP2
00004353: SWAP1
00004354: SUB
00004355: DUP2
00004356: SWAP1
00004357: DIV
00004358: PUSH1 0x01
0000435a: ADD
0000435b: DUP7
0000435c: DUP5
0000435d: GT
0000435e: SWAP1
0000435f: SWAP6
00004360: SUB
00004361: SWAP5
00004362: SWAP1
00004363: SWAP5
00004364: MUL
00004365: SWAP2
00004366: SWAP1
00004367: SWAP5
00004368: SUB
00004369: SWAP3
0000436a: SWAP1
0000436b: SWAP3
0000436c: DIV
0000436d: SWAP2
0000436e: SWAP1
0000436f: SWAP2
00004370: OR
00004371: SWAP2
00004372: SWAP1
00004373: SWAP2
00004374: MUL
00004375: SWAP2
00004376: POP
00004377: POP
00004378: SWAP4
00004379: SWAP3
0000437a: POP
0000437b: POP
0000437c: POP
0000437d: JUMP
0000437e: JUMPDEST
0000437f: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
000043a0: SLOAD
000043a1: PUSH1 0x01
000043a3: PUSH1 0x40
000043a5: SHL
000043a6: SWAP1
000043a7: DIV
000043a8: PUSH1 0xff
000043aa: AND
000043ab: PUSH2 0x43c7
000043ae: JUMPI
000043af: PUSH1 0x40
000043b1: MLOAD
000043b2: PUSH4 0x1afcd79f
000043b7: PUSH1 0xe3
000043b9: SHL
000043ba: DUP2
000043bb: MSTORE
000043bc: PUSH1 0x04
000043be: ADD
000043bf: PUSH1 0x40
000043c1: MLOAD
000043c2: DUP1
000043c3: SWAP2
000043c4: SUB
000043c5: SWAP1
000043c6: REVERT
000043c7: JUMPDEST
000043c8: JUMP
000043c9: JUMPDEST
000043ca: PUSH2 0x43d1
000043cd: PUSH2 0x437e
000043d0: JUMP
000043d1: JUMPDEST
000043d2: PUSH0
000043d3: MLOAD
000043d4: PUSH1 0x20
000043d6: PUSH2 0x5768
000043d9: PUSH0
000043da: CODECOPY
000043db: PUSH0
000043dc: MLOAD
000043dd: SWAP1
000043de: PUSH0
000043df: MSTORE
000043e0: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102
00004401: PUSH2 0x440a
00004404: DUP5
00004405: DUP3
00004406: PUSH2 0x5627
00004409: JUMP
0000440a: JUMPDEST
0000440b: POP
0000440c: PUSH1 0x03
0000440e: DUP2
0000440f: ADD
00004410: PUSH2 0x4419
00004413: DUP4
00004414: DUP3
00004415: PUSH2 0x5627
00004418: JUMP
00004419: JUMPDEST
0000441a: POP
0000441b: PUSH0
0000441c: DUP1
0000441d: DUP3
0000441e: SSTORE
0000441f: PUSH1 0x01
00004421: SWAP1
00004422: SWAP2
00004423: ADD
00004424: SSTORE
00004425: POP
00004426: POP
00004427: JUMP
00004428: JUMPDEST
00004429: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00
0000444a: PUSH1 0x01
0000444c: PUSH1 0x01
0000444e: PUSH1 0xa0
00004450: SHL
00004451: SUB
00004452: DUP5
00004453: AND
00004454: PUSH2 0x4475
00004457: JUMPI
00004458: DUP2
00004459: DUP2
0000445a: PUSH1 0x02
0000445c: ADD
0000445d: PUSH0
0000445e: DUP3
0000445f: DUP3
00004460: SLOAD
00004461: PUSH2 0x446a
00004464: SWAP2
00004465: SWAP1
00004466: PUSH2 0x557c
00004469: JUMP
0000446a: JUMPDEST
0000446b: SWAP1
0000446c: SWAP2
0000446d: SSTORE
0000446e: POP
0000446f: PUSH2 0x44e5
00004472: SWAP1
00004473: POP
00004474: JUMP
00004475: JUMPDEST
00004476: PUSH1 0x01
00004478: PUSH1 0x01
0000447a: PUSH1 0xa0
0000447c: SHL
0000447d: SUB
0000447e: DUP5
0000447f: AND
00004480: PUSH0
00004481: SWAP1
00004482: DUP2
00004483: MSTORE
00004484: PUSH1 0x20
00004486: DUP3
00004487: SWAP1
00004488: MSTORE
00004489: PUSH1 0x40
0000448b: SWAP1
0000448c: KECCAK256
0000448d: SLOAD
0000448e: DUP3
0000448f: DUP2
00004490: LT
00004491: ISZERO
00004492: PUSH2 0x44c7
00004495: JUMPI
00004496: PUSH1 0x40
00004498: MLOAD
00004499: PUSH4 0x391434e3
0000449e: PUSH1 0xe2
000044a0: SHL
000044a1: DUP2
000044a2: MSTORE
000044a3: PUSH1 0x01
000044a5: PUSH1 0x01
000044a7: PUSH1 0xa0
000044a9: SHL
000044aa: SUB
000044ab: DUP7
000044ac: AND
000044ad: PUSH1 0x04
000044af: DUP3
000044b0: ADD
000044b1: MSTORE
000044b2: PUSH1 0x24
000044b4: DUP2
000044b5: ADD
000044b6: DUP3
000044b7: SWAP1
000044b8: MSTORE
000044b9: PUSH1 0x44
000044bb: DUP2
000044bc: ADD
000044bd: DUP5
000044be: SWAP1
000044bf: MSTORE
000044c0: PUSH1 0x64
000044c2: ADD
000044c3: PUSH2 0x1ada
000044c6: JUMP
000044c7: JUMPDEST
000044c8: PUSH1 0x01
000044ca: PUSH1 0x01
000044cc: PUSH1 0xa0
000044ce: SHL
000044cf: SUB
000044d0: DUP6
000044d1: AND
000044d2: PUSH0
000044d3: SWAP1
000044d4: DUP2
000044d5: MSTORE
000044d6: PUSH1 0x20
000044d8: DUP4
000044d9: SWAP1
000044da: MSTORE
000044db: PUSH1 0x40
000044dd: SWAP1
000044de: KECCAK256
000044df: SWAP1
000044e0: DUP4
000044e1: SWAP1
000044e2: SUB
000044e3: SWAP1
000044e4: SSTORE
000044e5: JUMPDEST
000044e6: PUSH1 0x01
000044e8: PUSH1 0x01
000044ea: PUSH1 0xa0
000044ec: SHL
000044ed: SUB
000044ee: DUP4
000044ef: AND
000044f0: PUSH2 0x4503
000044f3: JUMPI
000044f4: PUSH1 0x02
000044f6: DUP2
000044f7: ADD
000044f8: DUP1
000044f9: SLOAD
000044fa: DUP4
000044fb: SWAP1
000044fc: SUB
000044fd: SWAP1
000044fe: SSTORE
000044ff: PUSH2 0x4521
00004502: JUMP
00004503: JUMPDEST
00004504: PUSH1 0x01
00004506: PUSH1 0x01
00004508: PUSH1 0xa0
0000450a: SHL
0000450b: SUB
0000450c: DUP4
0000450d: AND
0000450e: PUSH0
0000450f: SWAP1
00004510: DUP2
00004511: MSTORE
00004512: PUSH1 0x20
00004514: DUP3
00004515: SWAP1
00004516: MSTORE
00004517: PUSH1 0x40
00004519: SWAP1
0000451a: KECCAK256
0000451b: DUP1
0000451c: SLOAD
0000451d: DUP4
0000451e: ADD
0000451f: SWAP1
00004520: SSTORE
00004521: JUMPDEST
00004522: DUP3
00004523: PUSH1 0x01
00004525: PUSH1 0x01
00004527: PUSH1 0xa0
00004529: SHL
0000452a: SUB
0000452b: AND
0000452c: DUP5
0000452d: PUSH1 0x01
0000452f: PUSH1 0x01
00004531: PUSH1 0xa0
00004533: SHL
00004534: SUB
00004535: AND
00004536: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00004557: DUP5
00004558: PUSH1 0x40
0000455a: MLOAD
0000455b: PUSH2 0x4566
0000455e: SWAP2
0000455f: DUP2
00004560: MSTORE
00004561: PUSH1 0x20
00004563: ADD
00004564: SWAP1
00004565: JUMP
00004566: JUMPDEST
00004567: PUSH1 0x40
00004569: MLOAD
0000456a: DUP1
0000456b: SWAP2
0000456c: SUB
0000456d: SWAP1
0000456e: LOG3
0000456f: POP
00004570: POP
00004571: POP
00004572: POP
00004573: JUMP
00004574: JUMPDEST
00004575: PUSH0
00004576: MLOAD
00004577: PUSH1 0x20
00004579: PUSH2 0x5708
0000457c: PUSH0
0000457d: CODECOPY
0000457e: PUSH0
0000457f: MLOAD
00004580: SWAP1
00004581: PUSH0
00004582: MSTORE
00004583: PUSH2 0x458c
00004586: DUP5
00004587: DUP5
00004588: PUSH2 0x4823
0000458b: JUMP
0000458c: JUMPDEST
0000458d: DUP1
0000458e: ISZERO
0000458f: PUSH2 0x459c
00004592: JUMPI
00004593: POP
00004594: PUSH1 0x03
00004596: DUP2
00004597: ADD
00004598: SLOAD
00004599: PUSH1 0xff
0000459b: AND
0000459c: JUMPDEST
0000459d: ISZERO
0000459e: PUSH2 0x463f
000045a1: JUMPI
000045a2: PUSH1 0x40
000045a4: MLOAD
000045a5: PUSH4 0x6f15550f
000045aa: PUSH1 0xe1
000045ac: SHL
000045ad: DUP2
000045ae: MSTORE
000045af: PUSH1 0x01
000045b1: PUSH1 0x01
000045b3: PUSH1 0xa0
000045b5: SHL
000045b6: SUB
000045b7: DUP6
000045b8: AND
000045b9: PUSH1 0x04
000045bb: DUP3
000045bc: ADD
000045bd: MSTORE
000045be: PUSH0
000045bf: SWAP1
000045c0: PUSH20 0x281ce96b63a35ef91846579e4562ab6b92e632f2
000045d5: SWAP1
000045d6: PUSH4 0xde2aaa1e
000045db: SWAP1
000045dc: PUSH1 0x24
000045de: ADD
000045df: PUSH1 0x20
000045e1: PUSH1 0x40
000045e3: MLOAD
000045e4: DUP1
000045e5: DUP4
000045e6: SUB
000045e7: DUP2
000045e8: DUP7
000045e9: GAS
000045ea: DELEGATECALL
000045eb: ISZERO
000045ec: DUP1
000045ed: ISZERO
000045ee: PUSH2 0x45f9
000045f1: JUMPI
000045f2: RETURNDATASIZE
000045f3: PUSH0
000045f4: PUSH0
000045f5: RETURNDATACOPY
000045f6: RETURNDATASIZE
000045f7: PUSH0
000045f8: REVERT
000045f9: JUMPDEST
000045fa: POP
000045fb: POP
000045fc: POP
000045fd: POP
000045fe: PUSH1 0x40
00004600: MLOAD
00004601: RETURNDATASIZE
00004602: PUSH1 0x1f
00004604: NOT
00004605: PUSH1 0x1f
00004607: DUP3
00004608: ADD
00004609: AND
0000460a: DUP3
0000460b: ADD
0000460c: DUP1
0000460d: PUSH1 0x40
0000460f: MSTORE
00004610: POP
00004611: DUP2
00004612: ADD
00004613: SWAP1
00004614: PUSH2 0x461d
00004617: SWAP2
00004618: SWAP1
00004619: PUSH2 0x50d3
0000461c: JUMP
0000461d: JUMPDEST
0000461e: SWAP1
0000461f: POP
00004620: DUP1
00004621: PUSH2 0x463d
00004624: JUMPI
00004625: PUSH1 0x40
00004627: MLOAD
00004628: PUSH4 0x3c3b8e1b
0000462d: PUSH1 0xe2
0000462f: SHL
00004630: DUP2
00004631: MSTORE
00004632: PUSH1 0x04
00004634: ADD
00004635: PUSH1 0x40
00004637: MLOAD
00004638: DUP1
00004639: SWAP2
0000463a: SUB
0000463b: SWAP1
0000463c: REVERT
0000463d: JUMPDEST
0000463e: POP
0000463f: JUMPDEST
00004640: PUSH2 0x1899
00004643: DUP5
00004644: DUP5
00004645: DUP5
00004646: PUSH2 0x4848
00004649: JUMP
0000464a: JUMPDEST
0000464b: PUSH0
0000464c: DUP1
0000464d: DUP1
0000464e: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
0000466f: DUP5
00004670: GT
00004671: ISZERO
00004672: PUSH2 0x4683
00004675: JUMPI
00004676: POP
00004677: PUSH0
00004678: SWAP2
00004679: POP
0000467a: PUSH1 0x03
0000467c: SWAP1
0000467d: POP
0000467e: DUP3
0000467f: PUSH2 0x4708
00004682: JUMP
00004683: JUMPDEST
00004684: PUSH1 0x40
00004686: DUP1
00004687: MLOAD
00004688: PUSH0
00004689: DUP1
0000468a: DUP3
0000468b: MSTORE
0000468c: PUSH1 0x20
0000468e: DUP3
0000468f: ADD
00004690: DUP1
00004691: DUP5
00004692: MSTORE
00004693: DUP11
00004694: SWAP1
00004695: MSTORE
00004696: PUSH1 0xff
00004698: DUP10
00004699: AND
0000469a: SWAP3
0000469b: DUP3
0000469c: ADD
0000469d: SWAP3
0000469e: SWAP1
0000469f: SWAP3
000046a0: MSTORE
000046a1: PUSH1 0x60
000046a3: DUP2
000046a4: ADD
000046a5: DUP8
000046a6: SWAP1
000046a7: MSTORE
000046a8: PUSH1 0x80
000046aa: DUP2
000046ab: ADD
000046ac: DUP7
000046ad: SWAP1
000046ae: MSTORE
000046af: PUSH1 0x01
000046b1: SWAP1
000046b2: PUSH1 0xa0
000046b4: ADD
000046b5: PUSH1 0x20
000046b7: PUSH1 0x40
000046b9: MLOAD
000046ba: PUSH1 0x20
000046bc: DUP2
000046bd: SUB
000046be: SWAP1
000046bf: DUP1
000046c0: DUP5
000046c1: SUB
000046c2: SWAP1
000046c3: DUP6
000046c4: GAS
000046c5: STATICCALL
000046c6: ISZERO
000046c7: DUP1
000046c8: ISZERO
000046c9: PUSH2 0x46d4
000046cc: JUMPI
000046cd: RETURNDATASIZE
000046ce: PUSH0
000046cf: PUSH0
000046d0: RETURNDATACOPY
000046d1: RETURNDATASIZE
000046d2: PUSH0
000046d3: REVERT
000046d4: JUMPDEST
000046d5: POP
000046d6: POP
000046d7: PUSH1 0x40
000046d9: MLOAD
000046da: PUSH1 0x1f
000046dc: NOT
000046dd: ADD
000046de: MLOAD
000046df: SWAP2
000046e0: POP
000046e1: POP
000046e2: PUSH1 0x01
000046e4: PUSH1 0x01
000046e6: PUSH1 0xa0
000046e8: SHL
000046e9: SUB
000046ea: DUP2
000046eb: AND
000046ec: PUSH2 0x46ff
000046ef: JUMPI
000046f0: POP
000046f1: PUSH0
000046f2: SWAP3
000046f3: POP
000046f4: PUSH1 0x01
000046f6: SWAP2
000046f7: POP
000046f8: DUP3
000046f9: SWAP1
000046fa: POP
000046fb: PUSH2 0x4708
000046fe: JUMP
000046ff: JUMPDEST
00004700: SWAP3
00004701: POP
00004702: PUSH0
00004703: SWAP2
00004704: POP
00004705: DUP2
00004706: SWAP1
00004707: POP
00004708: JUMPDEST
00004709: SWAP5
0000470a: POP
0000470b: SWAP5
0000470c: POP
0000470d: SWAP5
0000470e: SWAP2
0000470f: POP
00004710: POP
00004711: JUMP
00004712: JUMPDEST
00004713: PUSH0
00004714: DUP3
00004715: PUSH1 0x03
00004717: DUP2
00004718: GT
00004719: ISZERO
0000471a: PUSH2 0x4725
0000471d: JUMPI
0000471e: PUSH2 0x4725
00004721: PUSH2 0x51e6
00004724: JUMP
00004725: JUMPDEST
00004726: SUB
00004727: PUSH2 0x472e
0000472a: JUMPI
0000472b: POP
0000472c: POP
0000472d: JUMP
0000472e: JUMPDEST
0000472f: PUSH1 0x01
00004731: DUP3
00004732: PUSH1 0x03
00004734: DUP2
00004735: GT
00004736: ISZERO
00004737: PUSH2 0x4742
0000473a: JUMPI
0000473b: PUSH2 0x4742
0000473e: PUSH2 0x51e6
00004741: JUMP
00004742: JUMPDEST
00004743: SUB
00004744: PUSH2 0x4760
00004747: JUMPI
00004748: PUSH1 0x40
0000474a: MLOAD
0000474b: PUSH4 0xf645eedf
00004750: PUSH1 0xe0
00004752: SHL
00004753: DUP2
00004754: MSTORE
00004755: PUSH1 0x04
00004757: ADD
00004758: PUSH1 0x40
0000475a: MLOAD
0000475b: DUP1
0000475c: SWAP2
0000475d: SUB
0000475e: SWAP1
0000475f: REVERT
00004760: JUMPDEST
00004761: PUSH1 0x02
00004763: DUP3
00004764: PUSH1 0x03
00004766: DUP2
00004767: GT
00004768: ISZERO
00004769: PUSH2 0x4774
0000476c: JUMPI
0000476d: PUSH2 0x4774
00004770: PUSH2 0x51e6
00004773: JUMP
00004774: JUMPDEST
00004775: SUB
00004776: PUSH2 0x4795
00004779: JUMPI
0000477a: PUSH1 0x40
0000477c: MLOAD
0000477d: PUSH4 0xfce698f7
00004782: PUSH1 0xe0
00004784: SHL
00004785: DUP2
00004786: MSTORE
00004787: PUSH1 0x04
00004789: DUP2
0000478a: ADD
0000478b: DUP3
0000478c: SWAP1
0000478d: MSTORE
0000478e: PUSH1 0x24
00004790: ADD
00004791: PUSH2 0x1ada
00004794: JUMP
00004795: JUMPDEST
00004796: PUSH1 0x03
00004798: DUP3
00004799: PUSH1 0x03
0000479b: DUP2
0000479c: GT
0000479d: ISZERO
0000479e: PUSH2 0x47a9
000047a1: JUMPI
000047a2: PUSH2 0x47a9
000047a5: PUSH2 0x51e6
000047a8: JUMP
000047a9: JUMPDEST
000047aa: SUB
000047ab: PUSH2 0x2100
000047ae: JUMPI
000047af: PUSH1 0x40
000047b1: MLOAD
000047b2: PUSH4 0x35e2f383
000047b7: PUSH1 0xe2
000047b9: SHL
000047ba: DUP2
000047bb: MSTORE
000047bc: PUSH1 0x04
000047be: DUP2
000047bf: ADD
000047c0: DUP3
000047c1: SWAP1
000047c2: MSTORE
000047c3: PUSH1 0x24
000047c5: ADD
000047c6: PUSH2 0x1ada
000047c9: JUMP
000047ca: JUMPDEST
000047cb: PUSH0
000047cc: DUP4
000047cd: PUSH0
000047ce: SUB
000047cf: PUSH2 0x47d9
000047d2: JUMPI
000047d3: POP
000047d4: PUSH0
000047d5: PUSH2 0x10ed
000047d8: JUMP
000047d9: JUMPDEST
000047da: POP
000047db: DUP3
000047dc: DUP3
000047dd: MUL
000047de: DUP3
000047df: DUP5
000047e0: DUP3
000047e1: DUP2
000047e2: PUSH2 0x47ed
000047e5: JUMPI
000047e6: PUSH2 0x47ed
000047e9: PUSH2 0x558f
000047ec: JUMP
000047ed: JUMPDEST
000047ee: DIV
000047ef: EQ
000047f0: PUSH2 0x47fa
000047f3: JUMPI
000047f4: POP
000047f5: PUSH0
000047f6: PUSH2 0x10ed
000047f9: JUMP
000047fa: JUMPDEST
000047fb: DUP2
000047fc: DUP2
000047fd: DUP2
000047fe: PUSH2 0x4809
00004801: JUMPI
00004802: PUSH2 0x4809
00004805: PUSH2 0x558f
00004808: JUMP
00004809: JUMPDEST
0000480a: DIV
0000480b: SWAP5
0000480c: SWAP4
0000480d: POP
0000480e: POP
0000480f: POP
00004810: POP
00004811: JUMP
00004812: JUMPDEST
00004813: PUSH4 0x4e487b71
00004818: PUSH0
00004819: MSTORE
0000481a: DUP1
0000481b: PUSH1 0x20
0000481d: MSTORE
0000481e: PUSH1 0x24
00004820: PUSH1 0x1c
00004822: REVERT
00004823: JUMPDEST
00004824: PUSH0
00004825: PUSH1 0x01
00004827: PUSH1 0x01
00004829: PUSH1 0xa0
0000482b: SHL
0000482c: SUB
0000482d: DUP4
0000482e: AND
0000482f: ISZERO
00004830: DUP1
00004831: ISZERO
00004832: SWAP1
00004833: PUSH2 0x10ed
00004836: JUMPI
00004837: POP
00004838: POP
00004839: PUSH1 0x01
0000483b: PUSH1 0x01
0000483d: PUSH1 0xa0
0000483f: SHL
00004840: SUB
00004841: AND
00004842: ISZERO
00004843: ISZERO
00004844: SWAP2
00004845: SWAP1
00004846: POP
00004847: JUMP
00004848: JUMPDEST
00004849: PUSH1 0x40
0000484b: DUP1
0000484c: MLOAD
0000484d: PUSH1 0x80
0000484f: DUP2
00004850: ADD
00004851: DUP3
00004852: MSTORE
00004853: PUSH32 0x01b0b3f9d6e360167e522fa2b18ba597ad7b2b35841fec7e1ca4dbb0adea1202
00004874: SLOAD
00004875: PUSH1 0x01
00004877: PUSH1 0x01
00004879: PUSH1 0xa0
0000487b: SHL
0000487c: SUB
0000487d: DUP2
0000487e: AND
0000487f: DUP3
00004880: MSTORE
00004881: PUSH3 0xffffff
00004885: PUSH1 0x01
00004887: PUSH1 0xa0
00004889: SHL
0000488a: DUP3
0000488b: DIV
0000488c: DUP2
0000488d: AND
0000488e: PUSH1 0x20
00004890: DUP5
00004891: ADD
00004892: MSTORE
00004893: PUSH1 0x01
00004895: PUSH1 0xb8
00004897: SHL
00004898: DUP3
00004899: DIV
0000489a: DUP2
0000489b: AND
0000489c: SWAP4
0000489d: DUP4
0000489e: ADD
0000489f: SWAP4
000048a0: SWAP1
000048a1: SWAP4
000048a2: MSTORE
000048a3: PUSH1 0x01
000048a5: PUSH1 0xd0
000048a7: SHL
000048a8: SWAP1
000048a9: DIV
000048aa: SWAP1
000048ab: SWAP2
000048ac: AND
000048ad: PUSH1 0x60
000048af: DUP3
000048b0: ADD
000048b1: DUP2
000048b2: SWAP1
000048b3: MSTORE
000048b4: PUSH0
000048b5: MLOAD
000048b6: PUSH1 0x20
000048b8: PUSH2 0x5708
000048bb: PUSH0
000048bc: CODECOPY
000048bd: PUSH0
000048be: MLOAD
000048bf: SWAP1
000048c0: PUSH0
000048c1: MSTORE
000048c2: SWAP2
000048c3: SWAP1
000048c4: PUSH0
000048c5: SWAP1
000048c6: PUSH2 0x48ce
000048c9: SWAP1
000048ca: PUSH2 0x49d3
000048cd: JUMP
000048ce: JUMPDEST
000048cf: PUSH1 0x40
000048d1: DUP4
000048d2: ADD
000048d3: MLOAD
000048d4: SWAP1
000048d5: SWAP2
000048d6: POP
000048d7: DUP2
000048d8: AND
000048d9: PUSH3 0xffffff
000048dd: AND
000048de: DUP2
000048df: EQ
000048e0: PUSH2 0x48eb
000048e3: JUMPI
000048e4: POP
000048e5: POP
000048e6: POP
000048e7: POP
000048e8: POP
000048e9: POP
000048ea: JUMP
000048eb: JUMPDEST
000048ec: DUP2
000048ed: MLOAD
000048ee: DUP4
000048ef: SLOAD
000048f0: PUSH1 0x01
000048f2: PUSH1 0x01
000048f4: PUSH1 0xa0
000048f6: SHL
000048f7: SUB
000048f8: SWAP2
000048f9: DUP3
000048fa: AND
000048fb: SWAP2
000048fc: PUSH4 0xaef28235
00004901: SWAP2
00004902: AND
00004903: DUP4
00004904: DUP10
00004905: DUP10
00004906: DUP10
00004907: PUSH2 0x490f
0000490a: DUP4
0000490b: PUSH2 0x18ad
0000490e: JUMP
0000490f: JUMPDEST
00004910: PUSH2 0x4918
00004913: DUP14
00004914: PUSH2 0x18ad
00004917: JUMP
00004918: JUMPDEST
00004919: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02
0000493a: SLOAD
0000493b: PUSH1 0x40
0000493d: MLOAD
0000493e: PUSH12 0xffffffffffffffffffffffff
0000494b: NOT
0000494c: PUSH1 0x60
0000494e: SWAP8
0000494f: DUP9
00004950: SHL
00004951: DUP2
00004952: AND
00004953: PUSH1 0x20
00004955: DUP4
00004956: ADD
00004957: MSTORE
00004958: SWAP6
00004959: SWAP1
0000495a: SWAP7
0000495b: SHL
0000495c: SWAP1
0000495d: SWAP5
0000495e: AND
0000495f: PUSH1 0x34
00004961: DUP7
00004962: ADD
00004963: MSTORE
00004964: PUSH1 0x48
00004966: DUP6
00004967: ADD
00004968: SWAP3
00004969: SWAP1
0000496a: SWAP3
0000496b: MSTORE
0000496c: PUSH1 0x68
0000496e: DUP5
0000496f: ADD
00004970: MSTORE
00004971: PUSH1 0x88
00004973: DUP4
00004974: ADD
00004975: MSTORE
00004976: PUSH1 0xa8
00004978: DUP3
00004979: ADD
0000497a: MSTORE
0000497b: PUSH1 0xc8
0000497d: ADD
0000497e: PUSH1 0x40
00004980: MLOAD
00004981: PUSH1 0x20
00004983: DUP2
00004984: DUP4
00004985: SUB
00004986: SUB
00004987: DUP2
00004988: MSTORE
00004989: SWAP1
0000498a: PUSH1 0x40
0000498c: MSTORE
0000498d: PUSH1 0x40
0000498f: MLOAD
00004990: DUP5
00004991: PUSH4 0xffffffff
00004996: AND
00004997: PUSH1 0xe0
00004999: SHL
0000499a: DUP2
0000499b: MSTORE
0000499c: PUSH1 0x04
0000499e: ADD
0000499f: PUSH2 0x49aa
000049a2: SWAP4
000049a3: SWAP3
000049a4: SWAP2
000049a5: SWAP1
000049a6: PUSH2 0x56e1
000049a9: JUMP
000049aa: JUMPDEST
000049ab: PUSH0
000049ac: PUSH1 0x40
000049ae: MLOAD
000049af: DUP1
000049b0: DUP4
000049b1: SUB
000049b2: DUP2
000049b3: PUSH0
000049b4: DUP8
000049b5: DUP1
000049b6: EXTCODESIZE
000049b7: ISZERO
000049b8: DUP1
000049b9: ISZERO
000049ba: PUSH2 0x49c1
000049bd: JUMPI
000049be: PUSH0
000049bf: PUSH0
000049c0: REVERT
000049c1: JUMPDEST
000049c2: POP
000049c3: GAS
000049c4: CALL
000049c5: ISZERO
000049c6: DUP1
000049c7: ISZERO
000049c8: PUSH2 0x3af9
000049cb: JUMPI
000049cc: RETURNDATASIZE
000049cd: PUSH0
000049ce: PUSH0
000049cf: RETURNDATACOPY
000049d0: RETURNDATASIZE
000049d1: PUSH0
000049d2: REVERT
000049d3: JUMPDEST
000049d4: PUSH0
000049d5: PUSH2 0x0800
000049d8: DUP3
000049d9: EQ
000049da: DUP1
000049db: PUSH2 0x49e5
000049de: JUMPI
000049df: POP
000049e0: PUSH2 0x1000
000049e3: DUP3
000049e4: EQ
000049e5: JUMPDEST
000049e6: DUP1
000049e7: PUSH2 0x49f1
000049ea: JUMPI
000049eb: POP
000049ec: PUSH2 0x2000
000049ef: DUP3
000049f0: EQ
000049f1: JUMPDEST
000049f2: PUSH2 0x4a0e
000049f5: JUMPI
000049f6: PUSH1 0x40
000049f8: MLOAD
000049f9: PUSH4 0xa1e9dd9d
000049fe: PUSH1 0xe0
00004a00: SHL
00004a01: DUP2
00004a02: MSTORE
00004a03: PUSH1 0x04
00004a05: ADD
00004a06: PUSH1 0x40
00004a08: MLOAD
00004a09: DUP1
00004a0a: SWAP2
00004a0b: SUB
00004a0c: SWAP1
00004a0d: REVERT
00004a0e: JUMPDEST
00004a0f: POP
00004a10: PUSH2 0x0400
00004a13: OR
00004a14: SWAP1
00004a15: JUMP
00004a16: JUMPDEST
00004a17: PUSH0
00004a18: DUP2
00004a19: MLOAD
00004a1a: DUP1
00004a1b: DUP5
00004a1c: MSTORE
00004a1d: DUP1
00004a1e: PUSH1 0x20
00004a20: DUP5
00004a21: ADD
00004a22: PUSH1 0x20
00004a24: DUP7
00004a25: ADD
00004a26: MCOPY
00004a27: PUSH0
00004a28: PUSH1 0x20
00004a2a: DUP3
00004a2b: DUP7
00004a2c: ADD
00004a2d: ADD
00004a2e: MSTORE
00004a2f: PUSH1 0x20
00004a31: PUSH1 0x1f
00004a33: NOT
00004a34: PUSH1 0x1f
00004a36: DUP4
00004a37: ADD
00004a38: AND
00004a39: DUP6
00004a3a: ADD
00004a3b: ADD
00004a3c: SWAP2
00004a3d: POP
00004a3e: POP
00004a3f: SWAP3
00004a40: SWAP2
00004a41: POP
00004a42: POP
00004a43: JUMP
00004a44: JUMPDEST
00004a45: PUSH1 0x20
00004a47: DUP2
00004a48: MSTORE
00004a49: PUSH0
00004a4a: PUSH2 0x10ed
00004a4d: PUSH1 0x20
00004a4f: DUP4
00004a50: ADD
00004a51: DUP5
00004a52: PUSH2 0x4a16
00004a55: JUMP
00004a56: JUMPDEST
00004a57: PUSH1 0x01
00004a59: PUSH1 0x01
00004a5b: PUSH1 0xa0
00004a5d: SHL
00004a5e: SUB
00004a5f: DUP2
00004a60: AND
00004a61: DUP2
00004a62: EQ
00004a63: PUSH2 0x29cc
00004a66: JUMPI
00004a67: PUSH0
00004a68: PUSH0
00004a69: REVERT
00004a6a: JUMPDEST
00004a6b: PUSH1 0x02
00004a6d: DUP2
00004a6e: LT
00004a6f: PUSH2 0x29cc
00004a72: JUMPI
00004a73: PUSH0
00004a74: PUSH0
00004a75: REVERT
00004a76: JUMPDEST
00004a77: PUSH0
00004a78: PUSH0
00004a79: PUSH1 0x40
00004a7b: DUP4
00004a7c: DUP6
00004a7d: SUB
00004a7e: SLT
00004a7f: ISZERO
00004a80: PUSH2 0x4a87
00004a83: JUMPI
00004a84: PUSH0
00004a85: PUSH0
00004a86: REVERT
00004a87: JUMPDEST
00004a88: DUP3
00004a89: CALLDATALOAD
00004a8a: PUSH2 0x4a92
00004a8d: DUP2
00004a8e: PUSH2 0x4a56
00004a91: JUMP
00004a92: JUMPDEST
00004a93: SWAP2
00004a94: POP
00004a95: PUSH1 0x20
00004a97: DUP4
00004a98: ADD
00004a99: CALLDATALOAD
00004a9a: PUSH2 0x4aa2
00004a9d: DUP2
00004a9e: PUSH2 0x4a6a
00004aa1: JUMP
00004aa2: JUMPDEST
00004aa3: DUP1
00004aa4: SWAP2
00004aa5: POP
00004aa6: POP
00004aa7: SWAP3
00004aa8: POP
00004aa9: SWAP3
00004aaa: SWAP1
00004aab: POP
00004aac: JUMP
00004aad: JUMPDEST
00004aae: PUSH0
00004aaf: PUSH1 0x20
00004ab1: DUP3
00004ab2: DUP5
00004ab3: SUB
00004ab4: SLT
00004ab5: ISZERO
00004ab6: PUSH2 0x4abd
00004ab9: JUMPI
00004aba: PUSH0
00004abb: PUSH0
00004abc: REVERT
00004abd: JUMPDEST
00004abe: POP
00004abf: CALLDATALOAD
00004ac0: SWAP2
00004ac1: SWAP1
00004ac2: POP
00004ac3: JUMP
00004ac4: JUMPDEST
00004ac5: PUSH0
00004ac6: PUSH0
00004ac7: PUSH1 0x40
00004ac9: DUP4
00004aca: DUP6
00004acb: SUB
00004acc: SLT
00004acd: ISZERO
00004ace: PUSH2 0x4ad5
00004ad1: JUMPI
00004ad2: PUSH0
00004ad3: PUSH0
00004ad4: REVERT
00004ad5: JUMPDEST
00004ad6: DUP3
00004ad7: CALLDATALOAD
00004ad8: PUSH2 0x4ae0
00004adb: DUP2
00004adc: PUSH2 0x4a56
00004adf: JUMP
00004ae0: JUMPDEST
00004ae1: SWAP5
00004ae2: PUSH1 0x20
00004ae4: SWAP4
00004ae5: SWAP1
00004ae6: SWAP4
00004ae7: ADD
00004ae8: CALLDATALOAD
00004ae9: SWAP4
00004aea: POP
00004aeb: POP
00004aec: POP
00004aed: JUMP
00004aee: JUMPDEST
00004aef: PUSH0
00004af0: PUSH0
00004af1: PUSH1 0x40
00004af3: DUP4
00004af4: DUP6
00004af5: SUB
00004af6: SLT
00004af7: ISZERO
00004af8: PUSH2 0x4aff
00004afb: JUMPI
00004afc: PUSH0
00004afd: PUSH0
00004afe: REVERT
00004aff: JUMPDEST
00004b00: DUP3
00004b01: CALLDATALOAD
00004b02: SWAP2
00004b03: POP
00004b04: PUSH1 0x20
00004b06: DUP4
00004b07: ADD
00004b08: CALLDATALOAD
00004b09: PUSH2 0x4aa2
00004b0c: DUP2
00004b0d: PUSH2 0x4a6a
00004b10: JUMP
00004b11: JUMPDEST
00004b12: PUSH0
00004b13: PUSH0
00004b14: PUSH0
00004b15: PUSH1 0x60
00004b17: DUP5
00004b18: DUP7
00004b19: SUB
00004b1a: SLT
00004b1b: ISZERO
00004b1c: PUSH2 0x4b23
00004b1f: JUMPI
00004b20: PUSH0
00004b21: PUSH0
00004b22: REVERT
00004b23: JUMPDEST
00004b24: DUP4
00004b25: CALLDATALOAD
00004b26: PUSH2 0x4b2e
00004b29: DUP2
00004b2a: PUSH2 0x4a56
00004b2d: JUMP
00004b2e: JUMPDEST
00004b2f: SWAP3
00004b30: POP
00004b31: PUSH1 0x20
00004b33: DUP5
00004b34: ADD
00004b35: CALLDATALOAD
00004b36: PUSH2 0x4b3e
00004b39: DUP2
00004b3a: PUSH2 0x4a56
00004b3d: JUMP
00004b3e: JUMPDEST
00004b3f: SWAP3
00004b40: SWAP6
00004b41: SWAP3
00004b42: SWAP5
00004b43: POP
00004b44: POP
00004b45: POP
00004b46: PUSH1 0x40
00004b48: SWAP2
00004b49: SWAP1
00004b4a: SWAP2
00004b4b: ADD
00004b4c: CALLDATALOAD
00004b4d: SWAP1
00004b4e: JUMP
00004b4f: JUMPDEST
00004b50: PUSH0
00004b51: PUSH1 0x20
00004b53: DUP3
00004b54: DUP5
00004b55: SUB
00004b56: SLT
00004b57: ISZERO
00004b58: PUSH2 0x4b5f
00004b5b: JUMPI
00004b5c: PUSH0
00004b5d: PUSH0
00004b5e: REVERT
00004b5f: JUMPDEST
00004b60: DUP2
00004b61: CALLDATALOAD
00004b62: PUSH2 0x10ed
00004b65: DUP2
00004b66: PUSH2 0x4a56
00004b69: JUMP
00004b6a: JUMPDEST
00004b6b: PUSH0
00004b6c: PUSH0
00004b6d: DUP4
00004b6e: PUSH1 0x1f
00004b70: DUP5
00004b71: ADD
00004b72: SLT
00004b73: PUSH2 0x4b7a
00004b76: JUMPI
00004b77: PUSH0
00004b78: PUSH0
00004b79: REVERT
00004b7a: JUMPDEST
00004b7b: POP
00004b7c: DUP2
00004b7d: CALLDATALOAD
00004b7e: PUSH1 0x01
00004b80: PUSH1 0x01
00004b82: PUSH1 0x40
00004b84: SHL
00004b85: SUB
00004b86: DUP2
00004b87: GT
00004b88: ISZERO
00004b89: PUSH2 0x4b90
00004b8c: JUMPI
00004b8d: PUSH0
00004b8e: PUSH0
00004b8f: REVERT
00004b90: JUMPDEST
00004b91: PUSH1 0x20
00004b93: DUP4
00004b94: ADD
00004b95: SWAP2
00004b96: POP
00004b97: DUP4
00004b98: PUSH1 0x20
00004b9a: DUP3
00004b9b: DUP6
00004b9c: ADD
00004b9d: ADD
00004b9e: GT
00004b9f: ISZERO
00004ba0: PUSH2 0x2844
00004ba3: JUMPI
00004ba4: PUSH0
00004ba5: PUSH0
00004ba6: REVERT
00004ba7: JUMPDEST
00004ba8: PUSH0
00004ba9: PUSH0
00004baa: PUSH0
00004bab: PUSH0
00004bac: PUSH0
00004bad: PUSH1 0x80
00004baf: DUP7
00004bb0: DUP9
00004bb1: SUB
00004bb2: SLT
00004bb3: ISZERO
00004bb4: PUSH2 0x4bbb
00004bb7: JUMPI
00004bb8: PUSH0
00004bb9: PUSH0
00004bba: REVERT
00004bbb: JUMPDEST
00004bbc: DUP6
00004bbd: CALLDATALOAD
00004bbe: PUSH2 0x4bc6
00004bc1: DUP2
00004bc2: PUSH2 0x4a56
00004bc5: JUMP
00004bc6: JUMPDEST
00004bc7: SWAP5
00004bc8: POP
00004bc9: PUSH1 0x20
00004bcb: DUP7
00004bcc: ADD
00004bcd: CALLDATALOAD
00004bce: SWAP4
00004bcf: POP
00004bd0: PUSH1 0x40
00004bd2: DUP7
00004bd3: ADD
00004bd4: CALLDATALOAD
00004bd5: PUSH2 0x4bdd
00004bd8: DUP2
00004bd9: PUSH2 0x4a6a
00004bdc: JUMP
00004bdd: JUMPDEST
00004bde: SWAP3
00004bdf: POP
00004be0: PUSH1 0x60
00004be2: DUP7
00004be3: ADD
00004be4: CALLDATALOAD
00004be5: PUSH1 0x01
00004be7: PUSH1 0x01
00004be9: PUSH1 0x40
00004beb: SHL
00004bec: SUB
00004bed: DUP2
00004bee: GT
00004bef: ISZERO
00004bf0: PUSH2 0x4bf7
00004bf3: JUMPI
00004bf4: PUSH0
00004bf5: PUSH0
00004bf6: REVERT
00004bf7: JUMPDEST
00004bf8: PUSH2 0x4c03
00004bfb: DUP9
00004bfc: DUP3
00004bfd: DUP10
00004bfe: ADD
00004bff: PUSH2 0x4b6a
00004c02: JUMP
00004c03: JUMPDEST
00004c04: SWAP7
00004c05: SWAP10
00004c06: SWAP6
00004c07: SWAP9
00004c08: POP
00004c09: SWAP4
00004c0a: SWAP7
00004c0b: POP
00004c0c: SWAP3
00004c0d: SWAP5
00004c0e: SWAP4
00004c0f: SWAP3
00004c10: POP
00004c11: POP
00004c12: POP
00004c13: JUMP
00004c14: JUMPDEST
00004c15: DUP3
00004c16: ISZERO
00004c17: ISZERO
00004c18: DUP2
00004c19: MSTORE
00004c1a: PUSH1 0x40
00004c1c: PUSH1 0x20
00004c1e: DUP3
00004c1f: ADD
00004c20: MSTORE
00004c21: PUSH0
00004c22: PUSH2 0x10a7
00004c25: PUSH1 0x40
00004c27: DUP4
00004c28: ADD
00004c29: DUP5
00004c2a: PUSH2 0x4a16
00004c2d: JUMP
00004c2e: JUMPDEST
00004c2f: PUSH3 0xffffff
00004c33: DUP2
00004c34: AND
00004c35: DUP2
00004c36: EQ
00004c37: PUSH2 0x29cc
00004c3a: JUMPI
00004c3b: PUSH0
00004c3c: PUSH0
00004c3d: REVERT
00004c3e: JUMPDEST
00004c3f: PUSH0
00004c40: PUSH0
00004c41: PUSH1 0x40
00004c43: DUP4
00004c44: DUP6
00004c45: SUB
00004c46: SLT
00004c47: ISZERO
00004c48: PUSH2 0x4c4f
00004c4b: JUMPI
00004c4c: PUSH0
00004c4d: PUSH0
00004c4e: REVERT
00004c4f: JUMPDEST
00004c50: DUP3
00004c51: CALLDATALOAD
00004c52: PUSH2 0x4c5a
00004c55: DUP2
00004c56: PUSH2 0x4c2e
00004c59: JUMP
00004c5a: JUMPDEST
00004c5b: SWAP2
00004c5c: POP
00004c5d: PUSH1 0x20
00004c5f: DUP4
00004c60: ADD
00004c61: CALLDATALOAD
00004c62: PUSH2 0x4aa2
00004c65: DUP2
00004c66: PUSH2 0x4c2e
00004c69: JUMP
00004c6a: JUMPDEST
00004c6b: PUSH0
00004c6c: PUSH0
00004c6d: PUSH0
00004c6e: PUSH0
00004c6f: PUSH0
00004c70: PUSH1 0x80
00004c72: DUP7
00004c73: DUP9
00004c74: SUB
00004c75: SLT
00004c76: ISZERO
00004c77: PUSH2 0x4c7e
00004c7a: JUMPI
00004c7b: PUSH0
00004c7c: PUSH0
00004c7d: REVERT
00004c7e: JUMPDEST
00004c7f: DUP6
00004c80: CALLDATALOAD
00004c81: PUSH2 0x4c89
00004c84: DUP2
00004c85: PUSH2 0x4a56
00004c88: JUMP
00004c89: JUMPDEST
00004c8a: SWAP5
00004c8b: POP
00004c8c: PUSH1 0x20
00004c8e: DUP7
00004c8f: ADD
00004c90: CALLDATALOAD
00004c91: PUSH2 0x4c99
00004c94: DUP2
00004c95: PUSH2 0x4a56
00004c98: JUMP
00004c99: JUMPDEST
00004c9a: SWAP4
00004c9b: POP
00004c9c: PUSH1 0x40
00004c9e: DUP7
00004c9f: ADD
00004ca0: CALLDATALOAD
00004ca1: SWAP3
00004ca2: POP
00004ca3: PUSH1 0x60
00004ca5: DUP7
00004ca6: ADD
00004ca7: CALLDATALOAD
00004ca8: PUSH1 0x01
00004caa: PUSH1 0x01
00004cac: PUSH1 0x40
00004cae: SHL
00004caf: SUB
00004cb0: DUP2
00004cb1: GT
00004cb2: ISZERO
00004cb3: PUSH2 0x4bf7
00004cb6: JUMPI
00004cb7: PUSH0
00004cb8: PUSH0
00004cb9: REVERT
00004cba: JUMPDEST
00004cbb: DUP1
00004cbc: CALLDATALOAD
00004cbd: PUSH1 0x03
00004cbf: DUP2
00004cc0: LT
00004cc1: PUSH2 0x4cc8
00004cc4: JUMPI
00004cc5: PUSH0
00004cc6: PUSH0
00004cc7: REVERT
00004cc8: JUMPDEST
00004cc9: SWAP2
00004cca: SWAP1
00004ccb: POP
00004ccc: JUMP
00004ccd: JUMPDEST
00004cce: PUSH0
00004ccf: PUSH0
00004cd0: PUSH1 0x40
00004cd2: DUP4
00004cd3: DUP6
00004cd4: SUB
00004cd5: SLT
00004cd6: ISZERO
00004cd7: PUSH2 0x4cde
00004cda: JUMPI
00004cdb: PUSH0
00004cdc: PUSH0
00004cdd: REVERT
00004cde: JUMPDEST
00004cdf: DUP3
00004ce0: CALLDATALOAD
00004ce1: SWAP2
00004ce2: POP
00004ce3: PUSH2 0x33d9
00004ce6: PUSH1 0x20
00004ce8: DUP5
00004ce9: ADD
00004cea: PUSH2 0x4cba
00004ced: JUMP
00004cee: JUMPDEST
00004cef: PUSH0
00004cf0: PUSH0
00004cf1: PUSH0
00004cf2: PUSH1 0x60
00004cf4: DUP5
00004cf5: DUP7
00004cf6: SUB
00004cf7: SLT
00004cf8: ISZERO
00004cf9: PUSH2 0x4d00
00004cfc: JUMPI
00004cfd: PUSH0
00004cfe: PUSH0
00004cff: REVERT
00004d00: JUMPDEST
00004d01: DUP4
00004d02: CALLDATALOAD
00004d03: PUSH2 0x4d0b
00004d06: DUP2
00004d07: PUSH2 0x4a56
00004d0a: JUMP
00004d0b: JUMPDEST
00004d0c: SWAP6
00004d0d: PUSH1 0x20
00004d0f: DUP6
00004d10: ADD
00004d11: CALLDATALOAD
00004d12: SWAP6
00004d13: POP
00004d14: PUSH1 0x40
00004d16: SWAP1
00004d17: SWAP5
00004d18: ADD
00004d19: CALLDATALOAD
00004d1a: SWAP4
00004d1b: SWAP3
00004d1c: POP
00004d1d: POP
00004d1e: POP
00004d1f: JUMP
00004d20: JUMPDEST
00004d21: PUSH0
00004d22: PUSH0
00004d23: PUSH1 0x40
00004d25: DUP4
00004d26: DUP6
00004d27: SUB
00004d28: SLT
00004d29: ISZERO
00004d2a: PUSH2 0x4d31
00004d2d: JUMPI
00004d2e: PUSH0
00004d2f: PUSH0
00004d30: REVERT
00004d31: JUMPDEST
00004d32: DUP3
00004d33: CALLDATALOAD
00004d34: SWAP2
00004d35: POP
00004d36: PUSH1 0x20
00004d38: DUP4
00004d39: ADD
00004d3a: CALLDATALOAD
00004d3b: PUSH2 0x4aa2
00004d3e: DUP2
00004d3f: PUSH2 0x4a56
00004d42: JUMP
00004d43: JUMPDEST
00004d44: PUSH0
00004d45: PUSH0
00004d46: PUSH0
00004d47: PUSH1 0x60
00004d49: DUP5
00004d4a: DUP7
00004d4b: SUB
00004d4c: SLT
00004d4d: ISZERO
00004d4e: PUSH2 0x4d55
00004d51: JUMPI
00004d52: PUSH0
00004d53: PUSH0
00004d54: REVERT
00004d55: JUMPDEST
00004d56: DUP4
00004d57: CALLDATALOAD
00004d58: SWAP3
00004d59: POP
00004d5a: PUSH1 0x20
00004d5c: DUP5
00004d5d: ADD
00004d5e: CALLDATALOAD
00004d5f: PUSH2 0x4d67
00004d62: DUP2
00004d63: PUSH2 0x4a56
00004d66: JUMP
00004d67: JUMPDEST
00004d68: SWAP2
00004d69: POP
00004d6a: PUSH1 0x40
00004d6c: DUP5
00004d6d: ADD
00004d6e: CALLDATALOAD
00004d6f: PUSH2 0x4d77
00004d72: DUP2
00004d73: PUSH2 0x4a56
00004d76: JUMP
00004d77: JUMPDEST
00004d78: DUP1
00004d79: SWAP2
00004d7a: POP
00004d7b: POP
00004d7c: SWAP3
00004d7d: POP
00004d7e: SWAP3
00004d7f: POP
00004d80: SWAP3
00004d81: JUMP
00004d82: JUMPDEST
00004d83: PUSH1 0xff
00004d85: PUSH1 0xf8
00004d87: SHL
00004d88: DUP9
00004d89: AND
00004d8a: DUP2
00004d8b: MSTORE
00004d8c: PUSH1 0xe0
00004d8e: PUSH1 0x20
00004d90: DUP3
00004d91: ADD
00004d92: MSTORE
00004d93: PUSH0
00004d94: PUSH2 0x4da0
00004d97: PUSH1 0xe0
00004d99: DUP4
00004d9a: ADD
00004d9b: DUP10
00004d9c: PUSH2 0x4a16
00004d9f: JUMP
00004da0: JUMPDEST
00004da1: DUP3
00004da2: DUP2
00004da3: SUB
00004da4: PUSH1 0x40
00004da6: DUP5
00004da7: ADD
00004da8: MSTORE
00004da9: PUSH2 0x4db2
00004dac: DUP2
00004dad: DUP10
00004dae: PUSH2 0x4a16
00004db1: JUMP
00004db2: JUMPDEST
00004db3: PUSH1 0x60
00004db5: DUP5
00004db6: ADD
00004db7: DUP9
00004db8: SWAP1
00004db9: MSTORE
00004dba: PUSH1 0x01
00004dbc: PUSH1 0x01
00004dbe: PUSH1 0xa0
00004dc0: SHL
00004dc1: SUB
00004dc2: DUP8
00004dc3: AND
00004dc4: PUSH1 0x80
00004dc6: DUP6
00004dc7: ADD
00004dc8: MSTORE
00004dc9: PUSH1 0xa0
00004dcb: DUP5
00004dcc: ADD
00004dcd: DUP7
00004dce: SWAP1
00004dcf: MSTORE
00004dd0: DUP4
00004dd1: DUP2
00004dd2: SUB
00004dd3: PUSH1 0xc0
00004dd5: DUP6
00004dd6: ADD
00004dd7: MSTORE
00004dd8: DUP5
00004dd9: MLOAD
00004dda: DUP1
00004ddb: DUP3
00004ddc: MSTORE
00004ddd: PUSH1 0x20
00004ddf: DUP1
00004de0: DUP8
00004de1: ADD
00004de2: SWAP4
00004de3: POP
00004de4: SWAP1
00004de5: SWAP2
00004de6: ADD
00004de7: SWAP1
00004de8: PUSH0
00004de9: JUMPDEST
00004dea: DUP2
00004deb: DUP2
00004dec: LT
00004ded: ISZERO
00004dee: PUSH2 0x4e07
00004df1: JUMPI
00004df2: DUP4
00004df3: MLOAD
00004df4: DUP4
00004df5: MSTORE
00004df6: PUSH1 0x20
00004df8: SWAP4
00004df9: DUP5
00004dfa: ADD
00004dfb: SWAP4
00004dfc: SWAP1
00004dfd: SWAP3
00004dfe: ADD
00004dff: SWAP2
00004e00: PUSH1 0x01
00004e02: ADD
00004e03: PUSH2 0x4de9
00004e06: JUMP
00004e07: JUMPDEST
00004e08: POP
00004e09: SWAP1
00004e0a: SWAP12
00004e0b: SWAP11
00004e0c: POP
00004e0d: POP
00004e0e: POP
00004e0f: POP
00004e10: POP
00004e11: POP
00004e12: POP
00004e13: POP
00004e14: POP
00004e15: POP
00004e16: POP
00004e17: JUMP
00004e18: JUMPDEST
00004e19: PUSH0
00004e1a: PUSH1 0x20
00004e1c: DUP3
00004e1d: DUP5
00004e1e: SUB
00004e1f: SLT
00004e20: ISZERO
00004e21: PUSH2 0x4e28
00004e24: JUMPI
00004e25: PUSH0
00004e26: PUSH0
00004e27: REVERT
00004e28: JUMPDEST
00004e29: PUSH2 0x10ed
00004e2c: DUP3
00004e2d: PUSH2 0x4cba
00004e30: JUMP
00004e31: JUMPDEST
00004e32: PUSH0
00004e33: PUSH0
00004e34: PUSH0
00004e35: PUSH1 0x60
00004e37: DUP5
00004e38: DUP7
00004e39: SUB
00004e3a: SLT
00004e3b: ISZERO
00004e3c: PUSH2 0x4e43
00004e3f: JUMPI
00004e40: PUSH0
00004e41: PUSH0
00004e42: REVERT
00004e43: JUMPDEST
00004e44: DUP4
00004e45: CALLDATALOAD
00004e46: SWAP3
00004e47: POP
00004e48: PUSH1 0x20
00004e4a: DUP5
00004e4b: ADD
00004e4c: CALLDATALOAD
00004e4d: PUSH2 0x4e55
00004e50: DUP2
00004e51: PUSH2 0x4a56
00004e54: JUMP
00004e55: JUMPDEST
00004e56: SWAP2
00004e57: POP
00004e58: PUSH1 0x40
00004e5a: DUP5
00004e5b: ADD
00004e5c: CALLDATALOAD
00004e5d: PUSH2 0x4d77
00004e60: DUP2
00004e61: PUSH2 0x4a6a
00004e64: JUMP
00004e65: JUMPDEST
00004e66: PUSH0
00004e67: PUSH0
00004e68: PUSH0
00004e69: PUSH0
00004e6a: PUSH1 0x80
00004e6c: DUP6
00004e6d: DUP8
00004e6e: SUB
00004e6f: SLT
00004e70: ISZERO
00004e71: PUSH2 0x4e78
00004e74: JUMPI
00004e75: PUSH0
00004e76: PUSH0
00004e77: REVERT
00004e78: JUMPDEST
00004e79: DUP5
00004e7a: CALLDATALOAD
00004e7b: SWAP4
00004e7c: POP
00004e7d: PUSH1 0x20
00004e7f: DUP6
00004e80: ADD
00004e81: CALLDATALOAD
00004e82: PUSH2 0x4e8a
00004e85: DUP2
00004e86: PUSH2 0x4a56
00004e89: JUMP
00004e8a: JUMPDEST
00004e8b: SWAP3
00004e8c: POP
00004e8d: PUSH1 0x40
00004e8f: DUP6
00004e90: ADD
00004e91: CALLDATALOAD
00004e92: PUSH2 0x4e9a
00004e95: DUP2
00004e96: PUSH2 0x4a56
00004e99: JUMP
00004e9a: JUMPDEST
00004e9b: SWAP2
00004e9c: POP
00004e9d: PUSH1 0x60
00004e9f: DUP6
00004ea0: ADD
00004ea1: CALLDATALOAD
00004ea2: PUSH2 0x4eaa
00004ea5: DUP2
00004ea6: PUSH2 0x4a6a
00004ea9: JUMP
00004eaa: JUMPDEST
00004eab: SWAP4
00004eac: SWAP7
00004ead: SWAP3
00004eae: SWAP6
00004eaf: POP
00004eb0: SWAP1
00004eb1: SWAP4
00004eb2: POP
00004eb3: POP
00004eb4: JUMP
00004eb5: JUMPDEST
00004eb6: PUSH1 0xff
00004eb8: DUP2
00004eb9: AND
00004eba: DUP2
00004ebb: EQ
00004ebc: PUSH2 0x29cc
00004ebf: JUMPI
00004ec0: PUSH0
00004ec1: PUSH0
00004ec2: REVERT
00004ec3: JUMPDEST
00004ec4: PUSH0
00004ec5: PUSH0
00004ec6: PUSH0
00004ec7: PUSH0
00004ec8: PUSH0
00004ec9: PUSH0
00004eca: PUSH0
00004ecb: PUSH1 0xe0
00004ecd: DUP9
00004ece: DUP11
00004ecf: SUB
00004ed0: SLT
00004ed1: ISZERO
00004ed2: PUSH2 0x4ed9
00004ed5: JUMPI
00004ed6: PUSH0
00004ed7: PUSH0
00004ed8: REVERT
00004ed9: JUMPDEST
00004eda: DUP8
00004edb: CALLDATALOAD
00004edc: PUSH2 0x4ee4
00004edf: DUP2
00004ee0: PUSH2 0x4a56
00004ee3: JUMP
00004ee4: JUMPDEST
00004ee5: SWAP7
00004ee6: POP
00004ee7: PUSH1 0x20
00004ee9: DUP9
00004eea: ADD
00004eeb: CALLDATALOAD
00004eec: PUSH2 0x4ef4
00004eef: DUP2
00004ef0: PUSH2 0x4a56
00004ef3: JUMP
00004ef4: JUMPDEST
00004ef5: SWAP6
00004ef6: POP
00004ef7: PUSH1 0x40
00004ef9: DUP9
00004efa: ADD
00004efb: CALLDATALOAD
00004efc: SWAP5
00004efd: POP
00004efe: PUSH1 0x60
00004f00: DUP9
00004f01: ADD
00004f02: CALLDATALOAD
00004f03: SWAP4
00004f04: POP
00004f05: PUSH1 0x80
00004f07: DUP9
00004f08: ADD
00004f09: CALLDATALOAD
00004f0a: PUSH2 0x4f12
00004f0d: DUP2
00004f0e: PUSH2 0x4eb5
00004f11: JUMP
00004f12: JUMPDEST
00004f13: SWAP7
00004f14: SWAP10
00004f15: SWAP6
00004f16: SWAP9
00004f17: POP
00004f18: SWAP4
00004f19: SWAP7
00004f1a: SWAP3
00004f1b: SWAP6
00004f1c: SWAP5
00004f1d: PUSH1 0xa0
00004f1f: DUP5
00004f20: ADD
00004f21: CALLDATALOAD
00004f22: SWAP5
00004f23: POP
00004f24: PUSH1 0xc0
00004f26: SWAP1
00004f27: SWAP4
00004f28: ADD
00004f29: CALLDATALOAD
00004f2a: SWAP3
00004f2b: SWAP2
00004f2c: POP
00004f2d: POP
00004f2e: JUMP
00004f2f: JUMPDEST
00004f30: PUSH0
00004f31: PUSH0
00004f32: PUSH1 0x40
00004f34: DUP4
00004f35: DUP6
00004f36: SUB
00004f37: SLT
00004f38: ISZERO
00004f39: PUSH2 0x4f40
00004f3c: JUMPI
00004f3d: PUSH0
00004f3e: PUSH0
00004f3f: REVERT
00004f40: JUMPDEST
00004f41: DUP3
00004f42: CALLDATALOAD
00004f43: PUSH2 0x4f4b
00004f46: DUP2
00004f47: PUSH2 0x4a56
00004f4a: JUMP
00004f4b: JUMPDEST
00004f4c: SWAP2
00004f4d: POP
00004f4e: PUSH1 0x20
00004f50: DUP4
00004f51: ADD
00004f52: CALLDATALOAD
00004f53: PUSH2 0x4aa2
00004f56: DUP2
00004f57: PUSH2 0x4a56
00004f5a: JUMP
00004f5b: JUMPDEST
00004f5c: PUSH4 0x4e487b71
00004f61: PUSH1 0xe0
00004f63: SHL
00004f64: PUSH0
00004f65: MSTORE
00004f66: PUSH1 0x41
00004f68: PUSH1 0x04
00004f6a: MSTORE
00004f6b: PUSH1 0x24
00004f6d: PUSH0
00004f6e: REVERT
00004f6f: JUMPDEST
00004f70: PUSH1 0x40
00004f72: MLOAD
00004f73: PUSH2 0x0220
00004f76: DUP2
00004f77: ADD
00004f78: PUSH1 0x01
00004f7a: PUSH1 0x01
00004f7c: PUSH1 0x40
00004f7e: SHL
00004f7f: SUB
00004f80: DUP2
00004f81: GT
00004f82: DUP3
00004f83: DUP3
00004f84: LT
00004f85: OR
00004f86: ISZERO
00004f87: PUSH2 0x4f92
00004f8a: JUMPI
00004f8b: PUSH2 0x4f92
00004f8e: PUSH2 0x4f5b
00004f91: JUMP
00004f92: JUMPDEST
00004f93: PUSH1 0x40
00004f95: MSTORE
00004f96: SWAP1
00004f97: JUMP
00004f98: JUMPDEST
00004f99: PUSH1 0x40
00004f9b: MLOAD
00004f9c: PUSH1 0x1f
00004f9e: DUP3
00004f9f: ADD
00004fa0: PUSH1 0x1f
00004fa2: NOT
00004fa3: AND
00004fa4: DUP2
00004fa5: ADD
00004fa6: PUSH1 0x01
00004fa8: PUSH1 0x01
00004faa: PUSH1 0x40
00004fac: SHL
00004fad: SUB
00004fae: DUP2
00004faf: GT
00004fb0: DUP3
00004fb1: DUP3
00004fb2: LT
00004fb3: OR
00004fb4: ISZERO
00004fb5: PUSH2 0x4fc0
00004fb8: JUMPI
00004fb9: PUSH2 0x4fc0
00004fbc: PUSH2 0x4f5b
00004fbf: JUMP
00004fc0: JUMPDEST
00004fc1: PUSH1 0x40
00004fc3: MSTORE
00004fc4: SWAP2
00004fc5: SWAP1
00004fc6: POP
00004fc7: JUMP
00004fc8: JUMPDEST
00004fc9: PUSH0
00004fca: PUSH1 0x20
00004fcc: DUP3
00004fcd: DUP5
00004fce: SUB
00004fcf: SLT
00004fd0: ISZERO
00004fd1: PUSH2 0x4fd8
00004fd4: JUMPI
00004fd5: PUSH0
00004fd6: PUSH0
00004fd7: REVERT
00004fd8: JUMPDEST
00004fd9: DUP2
00004fda: MLOAD
00004fdb: PUSH1 0x01
00004fdd: PUSH1 0x01
00004fdf: PUSH1 0x40
00004fe1: SHL
00004fe2: SUB
00004fe3: DUP2
00004fe4: GT
00004fe5: ISZERO
00004fe6: PUSH2 0x4fed
00004fe9: JUMPI
00004fea: PUSH0
00004feb: PUSH0
00004fec: REVERT
00004fed: JUMPDEST
00004fee: DUP3
00004fef: ADD
00004ff0: PUSH1 0x1f
00004ff2: DUP2
00004ff3: ADD
00004ff4: DUP5
00004ff5: SGT
00004ff6: PUSH2 0x4ffd
00004ff9: JUMPI
00004ffa: PUSH0
00004ffb: PUSH0
00004ffc: REVERT
00004ffd: JUMPDEST
00004ffe: DUP1
00004fff: MLOAD
00005000: PUSH1 0x01
00005002: PUSH1 0x01
00005004: PUSH1 0x40
00005006: SHL
00005007: SUB
00005008: DUP2
00005009: GT
0000500a: ISZERO
0000500b: PUSH2 0x5016
0000500e: JUMPI
0000500f: PUSH2 0x5016
00005012: PUSH2 0x4f5b
00005015: JUMP
00005016: JUMPDEST
00005017: PUSH2 0x5029
0000501a: PUSH1 0x1f
0000501c: DUP3
0000501d: ADD
0000501e: PUSH1 0x1f
00005020: NOT
00005021: AND
00005022: PUSH1 0x20
00005024: ADD
00005025: PUSH2 0x4f98
00005028: JUMP
00005029: JUMPDEST
0000502a: DUP2
0000502b: DUP2
0000502c: MSTORE
0000502d: DUP6
0000502e: PUSH1 0x20
00005030: DUP4
00005031: DUP6
00005032: ADD
00005033: ADD
00005034: GT
00005035: ISZERO
00005036: PUSH2 0x503d
00005039: JUMPI
0000503a: PUSH0
0000503b: PUSH0
0000503c: REVERT
0000503d: JUMPDEST
0000503e: DUP2
0000503f: PUSH1 0x20
00005041: DUP5
00005042: ADD
00005043: PUSH1 0x20
00005045: DUP4
00005046: ADD
00005047: MCOPY
00005048: PUSH0
00005049: SWAP2
0000504a: DUP2
0000504b: ADD
0000504c: PUSH1 0x20
0000504e: ADD
0000504f: SWAP2
00005050: SWAP1
00005051: SWAP2
00005052: MSTORE
00005053: SWAP5
00005054: SWAP4
00005055: POP
00005056: POP
00005057: POP
00005058: POP
00005059: JUMP
0000505a: JUMPDEST
0000505b: DUP1
0000505c: MLOAD
0000505d: PUSH2 0x4cc8
00005060: DUP2
00005061: PUSH2 0x4a56
00005064: JUMP
00005065: JUMPDEST
00005066: PUSH0
00005067: PUSH0
00005068: PUSH1 0x40
0000506a: DUP4
0000506b: DUP6
0000506c: SUB
0000506d: SLT
0000506e: ISZERO
0000506f: PUSH2 0x5076
00005072: JUMPI
00005073: PUSH0
00005074: PUSH0
00005075: REVERT
00005076: JUMPDEST
00005077: DUP3
00005078: MLOAD
00005079: PUSH2 0x5081
0000507c: DUP2
0000507d: PUSH2 0x4a56
00005080: JUMP
00005081: JUMPDEST
00005082: PUSH1 0x20
00005084: DUP5
00005085: ADD
00005086: MLOAD
00005087: SWAP1
00005088: SWAP3
00005089: POP
0000508a: PUSH2 0x4aa2
0000508d: DUP2
0000508e: PUSH2 0x4a56
00005091: JUMP
00005092: JUMPDEST
00005093: PUSH0
00005094: PUSH1 0x20
00005096: DUP3
00005097: DUP5
00005098: SUB
00005099: SLT
0000509a: ISZERO
0000509b: PUSH2 0x50a2
0000509e: JUMPI
0000509f: PUSH0
000050a0: PUSH0
000050a1: REVERT
000050a2: JUMPDEST
000050a3: POP
000050a4: MLOAD
000050a5: SWAP2
000050a6: SWAP1
000050a7: POP
000050a8: JUMP
000050a9: JUMPDEST
000050aa: PUSH0
000050ab: PUSH1 0x20
000050ad: DUP3
000050ae: DUP5
000050af: SUB
000050b0: SLT
000050b1: ISZERO
000050b2: PUSH2 0x50b9
000050b5: JUMPI
000050b6: PUSH0
000050b7: PUSH0
000050b8: REVERT
000050b9: JUMPDEST
000050ba: DUP2
000050bb: MLOAD
000050bc: PUSH2 0x10ed
000050bf: DUP2
000050c0: PUSH2 0x4eb5
000050c3: JUMP
000050c4: JUMPDEST
000050c5: DUP1
000050c6: MLOAD
000050c7: DUP1
000050c8: ISZERO
000050c9: ISZERO
000050ca: DUP2
000050cb: EQ
000050cc: PUSH2 0x4cc8
000050cf: JUMPI
000050d0: PUSH0
000050d1: PUSH0
000050d2: REVERT
000050d3: JUMPDEST
000050d4: PUSH0
000050d5: PUSH1 0x20
000050d7: DUP3
000050d8: DUP5
000050d9: SUB
000050da: SLT
000050db: ISZERO
000050dc: PUSH2 0x50e3
000050df: JUMPI
000050e0: PUSH0
000050e1: PUSH0
000050e2: REVERT
000050e3: JUMPDEST
000050e4: PUSH2 0x10ed
000050e7: DUP3
000050e8: PUSH2 0x50c4
000050eb: JUMP
000050ec: JUMPDEST
000050ed: PUSH0
000050ee: PUSH1 0x20
000050f0: DUP3
000050f1: DUP5
000050f2: SUB
000050f3: SLT
000050f4: ISZERO
000050f5: PUSH2 0x50fc
000050f8: JUMPI
000050f9: PUSH0
000050fa: PUSH0
000050fb: REVERT
000050fc: JUMPDEST
000050fd: DUP2
000050fe: MLOAD
000050ff: PUSH2 0x10ed
00005102: DUP2
00005103: PUSH2 0x4a56
00005106: JUMP
00005107: JUMPDEST
00005108: PUSH0
00005109: PUSH0
0000510a: PUSH1 0x40
0000510c: DUP4
0000510d: DUP6
0000510e: SUB
0000510f: SLT
00005110: ISZERO
00005111: PUSH2 0x5118
00005114: JUMPI
00005115: PUSH0
00005116: PUSH0
00005117: REVERT
00005118: JUMPDEST
00005119: POP
0000511a: POP
0000511b: DUP1
0000511c: MLOAD
0000511d: PUSH1 0x20
0000511f: SWAP1
00005120: SWAP2
00005121: ADD
00005122: MLOAD
00005123: SWAP1
00005124: SWAP3
00005125: SWAP1
00005126: SWAP2
00005127: POP
00005128: JUMP
00005129: JUMPDEST
0000512a: PUSH0
0000512b: PUSH0
0000512c: PUSH0
0000512d: PUSH1 0x60
0000512f: DUP5
00005130: DUP7
00005131: SUB
00005132: SLT
00005133: ISZERO
00005134: PUSH2 0x513b
00005137: JUMPI
00005138: PUSH0
00005139: PUSH0
0000513a: REVERT
0000513b: JUMPDEST
0000513c: DUP4
0000513d: MLOAD
0000513e: PUSH1 0x20
00005140: DUP6
00005141: ADD
00005142: MLOAD
00005143: SWAP1
00005144: SWAP4
00005145: POP
00005146: SWAP2
00005147: POP
00005148: PUSH2 0x5153
0000514b: PUSH1 0x40
0000514d: DUP6
0000514e: ADD
0000514f: PUSH2 0x50c4
00005152: JUMP
00005153: JUMPDEST
00005154: SWAP1
00005155: POP
00005156: SWAP3
00005157: POP
00005158: SWAP3
00005159: POP
0000515a: SWAP3
0000515b: JUMP
0000515c: JUMPDEST
0000515d: PUSH1 0x01
0000515f: PUSH1 0x01
00005161: PUSH1 0xa0
00005163: SHL
00005164: SUB
00005165: DUP7
00005166: DUP2
00005167: AND
00005168: DUP3
00005169: MSTORE
0000516a: DUP6
0000516b: AND
0000516c: PUSH1 0x20
0000516e: DUP3
0000516f: ADD
00005170: MSTORE
00005171: PUSH1 0x40
00005173: DUP2
00005174: ADD
00005175: DUP5
00005176: SWAP1
00005177: MSTORE
00005178: PUSH1 0x80
0000517a: PUSH1 0x60
0000517c: DUP3
0000517d: ADD
0000517e: DUP2
0000517f: SWAP1
00005180: MSTORE
00005181: DUP2
00005182: ADD
00005183: DUP3
00005184: SWAP1
00005185: MSTORE
00005186: DUP2
00005187: DUP4
00005188: PUSH1 0xa0
0000518a: DUP4
0000518b: ADD
0000518c: CALLDATACOPY
0000518d: PUSH0
0000518e: DUP2
0000518f: DUP4
00005190: ADD
00005191: PUSH1 0xa0
00005193: SWAP1
00005194: DUP2
00005195: ADD
00005196: SWAP2
00005197: SWAP1
00005198: SWAP2
00005199: MSTORE
0000519a: PUSH1 0x1f
0000519c: SWAP1
0000519d: SWAP3
0000519e: ADD
0000519f: PUSH1 0x1f
000051a1: NOT
000051a2: AND
000051a3: ADD
000051a4: ADD
000051a5: SWAP5
000051a6: SWAP4
000051a7: POP
000051a8: POP
000051a9: POP
000051aa: POP
000051ab: JUMP
000051ac: JUMPDEST
000051ad: DUP2
000051ae: MLOAD
000051af: DUP2
000051b0: MSTORE
000051b1: PUSH1 0x20
000051b3: DUP1
000051b4: DUP4
000051b5: ADD
000051b6: MLOAD
000051b7: SWAP1
000051b8: DUP3
000051b9: ADD
000051ba: MSTORE
000051bb: PUSH1 0x40
000051bd: DUP1
000051be: DUP4
000051bf: ADD
000051c0: MLOAD
000051c1: PUSH1 0x01
000051c3: PUSH1 0x01
000051c5: PUSH1 0xa0
000051c7: SHL
000051c8: SUB
000051c9: SWAP1
000051ca: DUP2
000051cb: AND
000051cc: SWAP2
000051cd: DUP4
000051ce: ADD
000051cf: SWAP2
000051d0: SWAP1
000051d1: SWAP2
000051d2: MSTORE
000051d3: PUSH1 0x60
000051d5: SWAP3
000051d6: DUP4
000051d7: ADD
000051d8: MLOAD
000051d9: AND
000051da: SWAP2
000051db: DUP2
000051dc: ADD
000051dd: SWAP2
000051de: SWAP1
000051df: SWAP2
000051e0: MSTORE
000051e1: PUSH1 0x80
000051e3: ADD
000051e4: SWAP1
000051e5: JUMP
000051e6: JUMPDEST
000051e7: PUSH4 0x4e487b71
000051ec: PUSH1 0xe0
000051ee: SHL
000051ef: PUSH0
000051f0: MSTORE
000051f1: PUSH1 0x21
000051f3: PUSH1 0x04
000051f5: MSTORE
000051f6: PUSH1 0x24
000051f8: PUSH0
000051f9: REVERT
000051fa: JUMPDEST
000051fb: PUSH0
000051fc: PUSH0
000051fd: PUSH1 0x40
000051ff: DUP4
00005200: DUP6
00005201: SUB
00005202: SLT
00005203: ISZERO
00005204: PUSH2 0x520b
00005207: JUMPI
00005208: PUSH0
00005209: PUSH0
0000520a: REVERT
0000520b: JUMPDEST
0000520c: DUP3
0000520d: MLOAD
0000520e: PUSH2 0x5216
00005211: DUP2
00005212: PUSH2 0x4c2e
00005215: JUMP
00005216: JUMPDEST
00005217: PUSH1 0x20
00005219: DUP5
0000521a: ADD
0000521b: MLOAD
0000521c: SWAP1
0000521d: SWAP3
0000521e: POP
0000521f: PUSH2 0x4aa2
00005222: DUP2
00005223: PUSH2 0x4c2e
00005226: JUMP
00005227: JUMPDEST
00005228: PUSH1 0x02
0000522a: DUP2
0000522b: LT
0000522c: PUSH2 0x5237
0000522f: JUMPI
00005230: PUSH2 0x5237
00005233: PUSH2 0x51e6
00005236: JUMP
00005237: JUMPDEST
00005238: SWAP1
00005239: MSTORE
0000523a: JUMP
0000523b: JUMPDEST
0000523c: DUP2
0000523d: MLOAD
0000523e: DUP2
0000523f: MSTORE
00005240: PUSH1 0x20
00005242: DUP1
00005243: DUP4
00005244: ADD
00005245: MLOAD
00005246: PUSH1 0x01
00005248: PUSH1 0x01
0000524a: PUSH1 0xa0
0000524c: SHL
0000524d: SUB
0000524e: AND
0000524f: SWAP1
00005250: DUP3
00005251: ADD
00005252: MSTORE
00005253: PUSH1 0x40
00005255: DUP1
00005256: DUP4
00005257: ADD
00005258: MLOAD
00005259: PUSH1 0x60
0000525b: DUP4
0000525c: ADD
0000525d: SWAP2
0000525e: PUSH2 0x16ed
00005261: SWAP1
00005262: DUP5
00005263: ADD
00005264: DUP3
00005265: PUSH2 0x5227
00005268: JUMP
00005269: JUMPDEST
0000526a: PUSH1 0x01
0000526c: PUSH1 0x01
0000526e: PUSH1 0xa0
00005270: SHL
00005271: SUB
00005272: DUP4
00005273: AND
00005274: DUP2
00005275: MSTORE
00005276: PUSH1 0x40
00005278: DUP2
00005279: ADD
0000527a: PUSH2 0x10ed
0000527d: PUSH1 0x20
0000527f: DUP4
00005280: ADD
00005281: DUP5
00005282: PUSH2 0x5227
00005285: JUMP
00005286: JUMPDEST
00005287: PUSH0
00005288: PUSH2 0x0220
0000528b: DUP3
0000528c: DUP5
0000528d: SUB
0000528e: SLT
0000528f: DUP1
00005290: ISZERO
00005291: PUSH2 0x5298
00005294: JUMPI
00005295: PUSH0
00005296: PUSH0
00005297: REVERT
00005298: JUMPDEST
00005299: POP
0000529a: PUSH2 0x52a1
0000529d: PUSH2 0x4f6f
000052a0: JUMP
000052a1: JUMPDEST
000052a2: DUP3
000052a3: MLOAD
000052a4: DUP2
000052a5: MSTORE
000052a6: PUSH1 0x20
000052a8: DUP1
000052a9: DUP5
000052aa: ADD
000052ab: MLOAD
000052ac: SWAP1
000052ad: DUP3
000052ae: ADD
000052af: MSTORE
000052b0: PUSH2 0x52bb
000052b3: PUSH1 0x40
000052b5: DUP5
000052b6: ADD
000052b7: PUSH2 0x505a
000052ba: JUMP
000052bb: JUMPDEST
000052bc: PUSH1 0x40
000052be: DUP3
000052bf: ADD
000052c0: MSTORE
000052c1: PUSH2 0x52cc
000052c4: PUSH1 0x60
000052c6: DUP5
000052c7: ADD
000052c8: PUSH2 0x505a
000052cb: JUMP
000052cc: JUMPDEST
000052cd: PUSH1 0x60
000052cf: DUP3
000052d0: ADD
000052d1: MSTORE
000052d2: PUSH2 0x52dd
000052d5: PUSH1 0x80
000052d7: DUP5
000052d8: ADD
000052d9: PUSH2 0x505a
000052dc: JUMP
000052dd: JUMPDEST
000052de: PUSH1 0x80
000052e0: DUP3
000052e1: ADD
000052e2: MSTORE
000052e3: PUSH2 0x52ee
000052e6: PUSH1 0xa0
000052e8: DUP5
000052e9: ADD
000052ea: PUSH2 0x505a
000052ed: JUMP
000052ee: JUMPDEST
000052ef: PUSH1 0xa0
000052f1: DUP3
000052f2: ADD
000052f3: MSTORE
000052f4: PUSH2 0x52ff
000052f7: PUSH1 0xc0
000052f9: DUP5
000052fa: ADD
000052fb: PUSH2 0x505a
000052fe: JUMP
000052ff: JUMPDEST
00005300: PUSH1 0xc0
00005302: DUP3
00005303: ADD
00005304: MSTORE
00005305: PUSH2 0x5310
00005308: PUSH1 0xe0
0000530a: DUP5
0000530b: ADD
0000530c: PUSH2 0x505a
0000530f: JUMP
00005310: JUMPDEST
00005311: PUSH1 0xe0
00005313: DUP3
00005314: ADD
00005315: MSTORE
00005316: PUSH2 0x5322
00005319: PUSH2 0x0100
0000531c: DUP5
0000531d: ADD
0000531e: PUSH2 0x505a
00005321: JUMP
00005322: JUMPDEST
00005323: PUSH2 0x0100
00005326: DUP3
00005327: ADD
00005328: MSTORE
00005329: PUSH2 0x5335
0000532c: PUSH2 0x0120
0000532f: DUP5
00005330: ADD
00005331: PUSH2 0x505a
00005334: JUMP
00005335: JUMPDEST
00005336: PUSH2 0x0120
00005339: DUP3
0000533a: ADD
0000533b: MSTORE
0000533c: PUSH2 0x0140
0000533f: DUP4
00005340: DUP2
00005341: ADD
00005342: MLOAD
00005343: SWAP1
00005344: DUP3
00005345: ADD
00005346: MSTORE
00005347: PUSH2 0x0160
0000534a: DUP1
0000534b: DUP5
0000534c: ADD
0000534d: MLOAD
0000534e: SWAP1
0000534f: DUP3
00005350: ADD
00005351: MSTORE
00005352: PUSH2 0x0180
00005355: DUP1
00005356: DUP5
00005357: ADD
00005358: MLOAD
00005359: SWAP1
0000535a: DUP3
0000535b: ADD
0000535c: MSTORE
0000535d: PUSH2 0x01a0
00005360: DUP1
00005361: DUP5
00005362: ADD
00005363: MLOAD
00005364: SWAP1
00005365: DUP3
00005366: ADD
00005367: MSTORE
00005368: PUSH2 0x01c0
0000536b: DUP1
0000536c: DUP5
0000536d: ADD
0000536e: MLOAD
0000536f: SWAP1
00005370: DUP3
00005371: ADD
00005372: MSTORE
00005373: PUSH2 0x537f
00005376: PUSH2 0x01e0
00005379: DUP5
0000537a: ADD
0000537b: PUSH2 0x505a
0000537e: JUMP
0000537f: JUMPDEST
00005380: PUSH2 0x01e0
00005383: DUP3
00005384: ADD
00005385: MSTORE
00005386: PUSH2 0x5392
00005389: PUSH2 0x0200
0000538c: DUP5
0000538d: ADD
0000538e: PUSH2 0x50c4
00005391: JUMP
00005392: JUMPDEST
00005393: PUSH2 0x0200
00005396: DUP3
00005397: ADD
00005398: MSTORE
00005399: SWAP4
0000539a: SWAP3
0000539b: POP
0000539c: POP
0000539d: POP
0000539e: JUMP
0000539f: JUMPDEST
000053a0: DUP2
000053a1: DUP4
000053a2: DUP3
000053a3: CALLDATACOPY
000053a4: PUSH0
000053a5: SWAP2
000053a6: ADD
000053a7: SWAP1
000053a8: DUP2
000053a9: MSTORE
000053aa: SWAP2
000053ab: SWAP1
000053ac: POP
000053ad: JUMP
000053ae: JUMPDEST
000053af: DUP5
000053b0: DUP2
000053b1: MSTORE
000053b2: PUSH1 0x20
000053b4: DUP2
000053b5: ADD
000053b6: DUP5
000053b7: SWAP1
000053b8: MSTORE
000053b9: PUSH1 0x01
000053bb: PUSH1 0x01
000053bd: PUSH1 0xa0
000053bf: SHL
000053c0: SUB
000053c1: DUP4
000053c2: AND
000053c3: PUSH1 0x40
000053c5: DUP3
000053c6: ADD
000053c7: MSTORE
000053c8: PUSH1 0x80
000053ca: DUP2
000053cb: ADD
000053cc: PUSH2 0x17b0
000053cf: PUSH1 0x60
000053d1: DUP4
000053d2: ADD
000053d3: DUP5
000053d4: PUSH2 0x5227
000053d7: JUMP
000053d8: JUMPDEST
000053d9: PUSH1 0x20
000053db: DUP2
000053dc: ADD
000053dd: PUSH1 0x03
000053df: DUP4
000053e0: LT
000053e1: PUSH2 0x53ec
000053e4: JUMPI
000053e5: PUSH2 0x53ec
000053e8: PUSH2 0x51e6
000053eb: JUMP
000053ec: JUMPDEST
000053ed: SWAP2
000053ee: SWAP1
000053ef: MSTORE
000053f0: SWAP1
000053f1: JUMP
000053f2: JUMPDEST
000053f3: PUSH1 0x01
000053f5: DUP2
000053f6: DUP2
000053f7: SHR
000053f8: SWAP1
000053f9: DUP3
000053fa: AND
000053fb: DUP1
000053fc: PUSH2 0x5406
000053ff: JUMPI
00005400: PUSH1 0x7f
00005402: DUP3
00005403: AND
00005404: SWAP2
00005405: POP
00005406: JUMPDEST
00005407: PUSH1 0x20
00005409: DUP3
0000540a: LT
0000540b: DUP2
0000540c: SUB
0000540d: PUSH2 0x27c0
00005410: JUMPI
00005411: PUSH4 0x4e487b71
00005416: PUSH1 0xe0
00005418: SHL
00005419: PUSH0
0000541a: MSTORE
0000541b: PUSH1 0x22
0000541d: PUSH1 0x04
0000541f: MSTORE
00005420: PUSH1 0x24
00005422: PUSH0
00005423: REVERT
00005424: JUMPDEST
00005425: DUP2
00005426: MLOAD
00005427: DUP2
00005428: MSTORE
00005429: PUSH1 0x20
0000542b: DUP1
0000542c: DUP4
0000542d: ADD
0000542e: MLOAD
0000542f: SWAP1
00005430: DUP3
00005431: ADD
00005432: MSTORE
00005433: PUSH1 0x40
00005435: DUP1
00005436: DUP4
00005437: ADD
00005438: MLOAD
00005439: PUSH1 0x01
0000543b: PUSH1 0x01
0000543d: PUSH1 0xa0
0000543f: SHL
00005440: SUB
00005441: SWAP1
00005442: DUP2
00005443: AND
00005444: SWAP2
00005445: DUP4
00005446: ADD
00005447: SWAP2
00005448: SWAP1
00005449: SWAP2
0000544a: MSTORE
0000544b: PUSH1 0x60
0000544d: DUP1
0000544e: DUP5
0000544f: ADD
00005450: MLOAD
00005451: DUP3
00005452: AND
00005453: SWAP1
00005454: DUP4
00005455: ADD
00005456: MSTORE
00005457: PUSH1 0x80
00005459: DUP1
0000545a: DUP5
0000545b: ADD
0000545c: MLOAD
0000545d: SWAP1
0000545e: SWAP2
0000545f: AND
00005460: SWAP1
00005461: DUP3
00005462: ADD
00005463: MSTORE
00005464: PUSH1 0xa0
00005466: DUP1
00005467: DUP4
00005468: ADD
00005469: MLOAD
0000546a: PUSH1 0xc0
0000546c: DUP4
0000546d: ADD
0000546e: SWAP2
0000546f: PUSH2 0x16ed
00005472: SWAP1
00005473: DUP5
00005474: ADD
00005475: DUP3
00005476: PUSH2 0x5227
00005479: JUMP
0000547a: JUMPDEST
0000547b: PUSH4 0x4e487b71
00005480: PUSH1 0xe0
00005482: SHL
00005483: PUSH0
00005484: MSTORE
00005485: PUSH1 0x11
00005487: PUSH1 0x04
00005489: MSTORE
0000548a: PUSH1 0x24
0000548c: PUSH0
0000548d: REVERT
0000548e: JUMPDEST
0000548f: PUSH1 0x01
00005491: DUP2
00005492: JUMPDEST
00005493: PUSH1 0x01
00005495: DUP5
00005496: GT
00005497: ISZERO
00005498: PUSH2 0x54c9
0000549b: JUMPI
0000549c: DUP1
0000549d: DUP6
0000549e: DIV
0000549f: DUP2
000054a0: GT
000054a1: ISZERO
000054a2: PUSH2 0x54ad
000054a5: JUMPI
000054a6: PUSH2 0x54ad
000054a9: PUSH2 0x547a
000054ac: JUMP
000054ad: JUMPDEST
000054ae: PUSH1 0x01
000054b0: DUP5
000054b1: AND
000054b2: ISZERO
000054b3: PUSH2 0x54bb
000054b6: JUMPI
000054b7: SWAP1
000054b8: DUP2
000054b9: MUL
000054ba: SWAP1
000054bb: JUMPDEST
000054bc: PUSH1 0x01
000054be: SWAP4
000054bf: SWAP1
000054c0: SWAP4
000054c1: SHR
000054c2: SWAP3
000054c3: DUP1
000054c4: MUL
000054c5: PUSH2 0x5492
000054c8: JUMP
000054c9: JUMPDEST
000054ca: SWAP4
000054cb: POP
000054cc: SWAP4
000054cd: SWAP2
000054ce: POP
000054cf: POP
000054d0: JUMP
000054d1: JUMPDEST
000054d2: PUSH0
000054d3: DUP3
000054d4: PUSH2 0x54df
000054d7: JUMPI
000054d8: POP
000054d9: PUSH1 0x01
000054db: PUSH2 0x10bb
000054de: JUMP
000054df: JUMPDEST
000054e0: DUP2
000054e1: PUSH2 0x54eb
000054e4: JUMPI
000054e5: POP
000054e6: PUSH0
000054e7: PUSH2 0x10bb
000054ea: JUMP
000054eb: JUMPDEST
000054ec: DUP2
000054ed: PUSH1 0x01
000054ef: DUP2
000054f0: EQ
000054f1: PUSH2 0x5501
000054f4: JUMPI
000054f5: PUSH1 0x02
000054f7: DUP2
000054f8: EQ
000054f9: PUSH2 0x550b
000054fc: JUMPI
000054fd: PUSH2 0x5527
00005500: JUMP
00005501: JUMPDEST
00005502: PUSH1 0x01
00005504: SWAP2
00005505: POP
00005506: POP
00005507: PUSH2 0x10bb
0000550a: JUMP
0000550b: JUMPDEST
0000550c: PUSH1 0xff
0000550e: DUP5
0000550f: GT
00005510: ISZERO
00005511: PUSH2 0x551c
00005514: JUMPI
00005515: PUSH2 0x551c
00005518: PUSH2 0x547a
0000551b: JUMP
0000551c: JUMPDEST
0000551d: POP
0000551e: POP
0000551f: PUSH1 0x01
00005521: DUP3
00005522: SHL
00005523: PUSH2 0x10bb
00005526: JUMP
00005527: JUMPDEST
00005528: POP
00005529: PUSH1 0x20
0000552b: DUP4
0000552c: LT
0000552d: PUSH2 0x0133
00005530: DUP4
00005531: LT
00005532: AND
00005533: PUSH1 0x4e
00005535: DUP5
00005536: LT
00005537: PUSH1 0x0b
00005539: DUP5
0000553a: LT
0000553b: AND
0000553c: OR
0000553d: ISZERO
0000553e: PUSH2 0x554a
00005541: JUMPI
00005542: POP
00005543: DUP2
00005544: DUP2
00005545: EXP
00005546: PUSH2 0x10bb
00005549: JUMP
0000554a: JUMPDEST
0000554b: PUSH2 0x5556
0000554e: PUSH0
0000554f: NOT
00005550: DUP5
00005551: DUP5
00005552: PUSH2 0x548e
00005555: JUMP
00005556: JUMPDEST
00005557: DUP1
00005558: PUSH0
00005559: NOT
0000555a: DIV
0000555b: DUP3
0000555c: GT
0000555d: ISZERO
0000555e: PUSH2 0x5569
00005561: JUMPI
00005562: PUSH2 0x5569
00005565: PUSH2 0x547a
00005568: JUMP
00005569: JUMPDEST
0000556a: MUL
0000556b: SWAP4
0000556c: SWAP3
0000556d: POP
0000556e: POP
0000556f: POP
00005570: JUMP
00005571: JUMPDEST
00005572: PUSH0
00005573: PUSH2 0x10ed
00005576: DUP4
00005577: DUP4
00005578: PUSH2 0x54d1
0000557b: JUMP
0000557c: JUMPDEST
0000557d: DUP1
0000557e: DUP3
0000557f: ADD
00005580: DUP1
00005581: DUP3
00005582: GT
00005583: ISZERO
00005584: PUSH2 0x10bb
00005587: JUMPI
00005588: PUSH2 0x10bb
0000558b: PUSH2 0x547a
0000558e: JUMP
0000558f: JUMPDEST
00005590: PUSH4 0x4e487b71
00005595: PUSH1 0xe0
00005597: SHL
00005598: PUSH0
00005599: MSTORE
0000559a: PUSH1 0x12
0000559c: PUSH1 0x04
0000559e: MSTORE
0000559f: PUSH1 0x24
000055a1: PUSH0
000055a2: REVERT
000055a3: JUMPDEST
000055a4: DUP2
000055a5: DUP2
000055a6: SUB
000055a7: DUP2
000055a8: DUP2
000055a9: GT
000055aa: ISZERO
000055ab: PUSH2 0x10bb
000055ae: JUMPI
000055af: PUSH2 0x10bb
000055b2: PUSH2 0x547a
000055b5: JUMP
000055b6: JUMPDEST
000055b7: PUSH0
000055b8: PUSH1 0xff
000055ba: DUP4
000055bb: AND
000055bc: DUP1
000055bd: PUSH2 0x55d4
000055c0: JUMPI
000055c1: PUSH4 0x4e487b71
000055c6: PUSH1 0xe0
000055c8: SHL
000055c9: PUSH0
000055ca: MSTORE
000055cb: PUSH1 0x12
000055cd: PUSH1 0x04
000055cf: MSTORE
000055d0: PUSH1 0x24
000055d2: PUSH0
000055d3: REVERT
000055d4: JUMPDEST
000055d5: DUP1
000055d6: PUSH1 0xff
000055d8: DUP5
000055d9: AND
000055da: MOD
000055db: SWAP2
000055dc: POP
000055dd: POP
000055de: SWAP3
000055df: SWAP2
000055e0: POP
000055e1: POP
000055e2: JUMP
000055e3: JUMPDEST
000055e4: PUSH1 0x1f
000055e6: DUP3
000055e7: GT
000055e8: ISZERO
000055e9: PUSH2 0x2147
000055ec: JUMPI
000055ed: DUP1
000055ee: PUSH0
000055ef: MSTORE
000055f0: PUSH1 0x20
000055f2: PUSH0
000055f3: KECCAK256
000055f4: PUSH1 0x1f
000055f6: DUP5
000055f7: ADD
000055f8: PUSH1 0x05
000055fa: SHR
000055fb: DUP2
000055fc: ADD
000055fd: PUSH1 0x20
000055ff: DUP6
00005600: LT
00005601: ISZERO
00005602: PUSH2 0x5608
00005605: JUMPI
00005606: POP
00005607: DUP1
00005608: JUMPDEST
00005609: PUSH1 0x1f
0000560b: DUP5
0000560c: ADD
0000560d: PUSH1 0x05
0000560f: SHR
00005610: DUP3
00005611: ADD
00005612: SWAP2
00005613: POP
00005614: JUMPDEST
00005615: DUP2
00005616: DUP2
00005617: LT
00005618: ISZERO
00005619: PUSH2 0x412a
0000561c: JUMPI
0000561d: PUSH0
0000561e: DUP2
0000561f: SSTORE
00005620: PUSH1 0x01
00005622: ADD
00005623: PUSH2 0x5614
00005626: JUMP
00005627: JUMPDEST
00005628: DUP2
00005629: MLOAD
0000562a: PUSH1 0x01
0000562c: PUSH1 0x01
0000562e: PUSH1 0x40
00005630: SHL
00005631: SUB
00005632: DUP2
00005633: GT
00005634: ISZERO
00005635: PUSH2 0x5640
00005638: JUMPI
00005639: PUSH2 0x5640
0000563c: PUSH2 0x4f5b
0000563f: JUMP
00005640: JUMPDEST
00005641: PUSH2 0x5654
00005644: DUP2
00005645: PUSH2 0x564e
00005648: DUP5
00005649: SLOAD
0000564a: PUSH2 0x53f2
0000564d: JUMP
0000564e: JUMPDEST
0000564f: DUP5
00005650: PUSH2 0x55e3
00005653: JUMP
00005654: JUMPDEST
00005655: PUSH1 0x20
00005657: PUSH1 0x1f
00005659: DUP3
0000565a: GT
0000565b: PUSH1 0x01
0000565d: DUP2
0000565e: EQ
0000565f: PUSH2 0x5686
00005662: JUMPI
00005663: PUSH0
00005664: DUP4
00005665: ISZERO
00005666: PUSH2 0x566f
00005669: JUMPI
0000566a: POP
0000566b: DUP5
0000566c: DUP3
0000566d: ADD
0000566e: MLOAD
0000566f: JUMPDEST
00005670: PUSH0
00005671: NOT
00005672: PUSH1 0x03
00005674: DUP6
00005675: SWAP1
00005676: SHL
00005677: SHR
00005678: NOT
00005679: AND
0000567a: PUSH1 0x01
0000567c: DUP5
0000567d: SWAP1
0000567e: SHL
0000567f: OR
00005680: DUP5
00005681: SSTORE
00005682: PUSH2 0x412a
00005685: JUMP
00005686: JUMPDEST
00005687: PUSH0
00005688: DUP5
00005689: DUP2
0000568a: MSTORE
0000568b: PUSH1 0x20
0000568d: DUP2
0000568e: KECCAK256
0000568f: PUSH1 0x1f
00005691: NOT
00005692: DUP6
00005693: AND
00005694: SWAP2
00005695: JUMPDEST
00005696: DUP3
00005697: DUP2
00005698: LT
00005699: ISZERO
0000569a: PUSH2 0x56b5
0000569d: JUMPI
0000569e: DUP8
0000569f: DUP6
000056a0: ADD
000056a1: MLOAD
000056a2: DUP3
000056a3: SSTORE
000056a4: PUSH1 0x20
000056a6: SWAP5
000056a7: DUP6
000056a8: ADD
000056a9: SWAP5
000056aa: PUSH1 0x01
000056ac: SWAP1
000056ad: SWAP3
000056ae: ADD
000056af: SWAP2
000056b0: ADD
000056b1: PUSH2 0x5695
000056b4: JUMP
000056b5: JUMPDEST
000056b6: POP
000056b7: DUP5
000056b8: DUP3
000056b9: LT
000056ba: ISZERO
000056bb: PUSH2 0x56d2
000056be: JUMPI
000056bf: DUP7
000056c0: DUP5
000056c1: ADD
000056c2: MLOAD
000056c3: PUSH0
000056c4: NOT
000056c5: PUSH1 0x03
000056c7: DUP8
000056c8: SWAP1
000056c9: SHL
000056ca: PUSH1 0xf8
000056cc: AND
000056cd: SHR
000056ce: NOT
000056cf: AND
000056d0: DUP2
000056d1: SSTORE
000056d2: JUMPDEST
000056d3: POP
000056d4: POP
000056d5: POP
000056d6: POP
000056d7: PUSH1 0x01
000056d9: SWAP1
000056da: DUP2
000056db: SHL
000056dc: ADD
000056dd: SWAP1
000056de: SSTORE
000056df: POP
000056e0: JUMP
000056e1: JUMPDEST
000056e2: PUSH1 0x01
000056e4: DUP1
000056e5: PUSH1 0xa0
000056e7: SHL
000056e8: SUB
000056e9: DUP5
000056ea: AND
000056eb: DUP2
000056ec: MSTORE
000056ed: DUP3
000056ee: PUSH1 0x20
000056f0: DUP3
000056f1: ADD
000056f2: MSTORE
000056f3: PUSH1 0x60
000056f5: PUSH1 0x40
000056f7: DUP3
000056f8: ADD
000056f9: MSTORE
000056fa: PUSH0
000056fb: PUSH2 0x17b0
000056fe: PUSH1 0x60
00005700: DUP4
00005701: ADD
00005702: DUP5
00005703: PUSH2 0x4a16
00005706: JUMP
00005707: INVALID
00005708: ADD
00005709: UNKNOWN(0xB0)
0000570a: UNKNOWN(0xB3)
0000570b: UNKNOWN(0xF9)
0000570c: UNKNOWN(0xD6)
0000570d: UNKNOWN(0xE3)
0000570e: PUSH1 0x16
00005710: PUSH31 0x522fa2b18ba597ad7b2b35841fec7e1ca4dbb0adea1200d7513ffe3a01a9f6
00005730: PUSH1 0x60
00005732: DUP10
00005733: UNKNOWN(0xD1)
00005734: UNKNOWN(0xB6)
00005735: PUSH17 0x11bca35bec018ac0faa914e1c529408f83
00005747: MUL
00005748: UNKNOWN(0xD7)
00005749: MLOAD
0000574a: EXTCODEHASH
0000574b: INVALID
0000574c: GASPRICE
0000574d: ADD
0000574e: UNKNOWN(0xA9)
0000574f: UNKNOWN(0xF6)
00005750: PUSH1 0x60
00005752: DUP10
00005753: UNKNOWN(0xD1)
00005754: UNKNOWN(0xB6)
00005755: PUSH17 0x11bca35bec018ac0faa914e1c529408f83
00005767: STOP
00005768: LOG1
00005769: PUSH11 0x46d94261c7517cc8ff89f6
00005775: SHR
00005776: UNKNOWN(0x0C)
00005777: UNKNOWN(0xE9)
00005778: CALLDATALOAD
00005779: SWAP9
0000577a: UNKNOWN(0xE3)
0000577b: UNKNOWN(0xC8)
0000577c: BLOBHASH
0000577d: DUP1
0000577e: LT
0000577f: GT
00005780: UNKNOWN(0xDE)
00005781: UNKNOWN(0xE6)
00005782: BLOBHASH
00005783: UNKNOWN(0xA6)
00005784: UNKNOWN(0xA5)
00005785: JUMPI
00005786: UNKNOWN(0xD1)
00005787: STOP
00005788: SWAP16
00005789: UNKNOWN(0x4C)
0000578a: SWAP12
0000578b: SWAP1
0000578c: UNKNOWN(0xB8)
0000578d: CALLDATACOPY
0000578e: MCOPY
0000578f: BYTE
00005790: SHR
00005791: MLOAD
00005792: BASEFEE
00005793: EXTCODESIZE
00005794: EXTCODECOPY
00005795: LOG4
00005796: SELFBALANCE
00005797: UNKNOWN(0xC3)
00005798: UNKNOWN(0xCE)
00005799: UNKNOWN(0xF6)
0000579a: SSTORE
0000579b: PUSH29 0x7e1ddcfb2935a045af6b0ec7a2646970667358221220e81a903e0235bb
000057b9: UNKNOWN(0xAC)
000057ba: UNKNOWN(0xD5)
000057bb: UNKNOWN(0xD1)
000057bc: SWAP14
000057bd: PUSH21 0x3a667f9d6c02a21bf8d6ca6c849d567a4518ff0864
000057d3: PUSH20

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0x7550c6f7738fc5c8182b89c56c81a3002a66603a0fae52d32ea39e7b5a1c0651
call_targets: 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
target_varies: no
classification: constant_target
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 51,
    "trace_id": "0x7550c6f7738fc5c8182b89c56c81a3002a66603a0fae52d32ea39e7b5a1c0651",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be"
    ],
    "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": "0xeb3beb29",
            "selector": "0xeb3beb29",
            "calldata_variants": [
                "0xeb3beb29",
                "0xeb3beb290000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xecd658b4",
            "selector": "0xecd658b4",
            "calldata_variants": [
                "0xecd658b4",
                "0xecd658b40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6b911bc",
            "selector": "0xf6b911bc",
            "calldata_variants": [
                "0xf6b911bc",
                "0xf6b911bc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa9b1c6a",
            "selector": "0xfa9b1c6a",
            "calldata_variants": [
                "0xfa9b1c6a",
                "0xfa9b1c6a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffbaaf7a",
            "selector": "0xffbaaf7a",
            "calldata_variants": [
                "0xffbaaf7a",
                "0xffbaaf7a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda537660",
            "selector": "0xda537660",
            "calldata_variants": [
                "0xda537660",
                "0xda5376600000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdce5c2db",
            "selector": "0xdce5c2db",
            "calldata_variants": [
                "0xdce5c2db",
                "0xdce5c2db0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4198,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 4783,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 5028,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 25,
    "untrusted_delegatecall_count": 25
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x910713f3f5dd3a2bfad2ca7fadd69f8b94552f3fd1e7c8a96cb249857b0e98c3
call_targets: 0xef1bc66e0ea9717a3f2c969633a989d6bf41024b
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x910713f3f5dd3a2bfad2ca7fadd69f8b94552f3fd1e7c8a96cb249857b0e98c3",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xef1bc66e0ea9717a3f2c969633a989d6bf41024b"
    ],
    "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": "0xeb3beb29",
            "selector": "0xeb3beb29",
            "calldata_variants": [
                "0xeb3beb29",
                "0xeb3beb290000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xecd658b4",
            "selector": "0xecd658b4",
            "calldata_variants": [
                "0xecd658b4",
                "0xecd658b40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6b911bc",
            "selector": "0xf6b911bc",
            "calldata_variants": [
                "0xf6b911bc",
                "0xf6b911bc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa9b1c6a",
            "selector": "0xfa9b1c6a",
            "calldata_variants": [
                "0xfa9b1c6a",
                "0xfa9b1c6a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffbaaf7a",
            "selector": "0xffbaaf7a",
            "calldata_variants": [
                "0xffbaaf7a",
                "0xffbaaf7a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda537660",
            "selector": "0xda537660",
            "calldata_variants": [
                "0xda537660",
                "0xda5376600000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdce5c2db",
            "selector": "0xdce5c2db",
            "calldata_variants": [
                "0xdce5c2db",
                "0xdce5c2db0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4466,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7814,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10942,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 5,
    "guards_detected": [],
    "untrusted_call_count": 5
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x910713f3f5dd3a2bfad2ca7fadd69f8b94552f3fd1e7c8a96cb249857b0e98c3
call_targets: 0xef1bc66e0ea9717a3f2c969633a989d6bf41024b
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x910713f3f5dd3a2bfad2ca7fadd69f8b94552f3fd1e7c8a96cb249857b0e98c3",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xef1bc66e0ea9717a3f2c969633a989d6bf41024b"
    ],
    "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": "0xeb3beb29",
            "selector": "0xeb3beb29",
            "calldata_variants": [
                "0xeb3beb29",
                "0xeb3beb290000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xecd658b4",
            "selector": "0xecd658b4",
            "calldata_variants": [
                "0xecd658b4",
                "0xecd658b40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6b911bc",
            "selector": "0xf6b911bc",
            "calldata_variants": [
                "0xf6b911bc",
                "0xf6b911bc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa9b1c6a",
            "selector": "0xfa9b1c6a",
            "calldata_variants": [
                "0xfa9b1c6a",
                "0xfa9b1c6a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffbaaf7a",
            "selector": "0xffbaaf7a",
            "calldata_variants": [
                "0xffbaaf7a",
                "0xffbaaf7a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda537660",
            "selector": "0xda537660",
            "calldata_variants": [
                "0xda537660",
                "0xda5376600000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdce5c2db",
            "selector": "0xdce5c2db",
            "calldata_variants": [
                "0xdce5c2db",
                "0xdce5c2db0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4466,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7814,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10942,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 5,
    "guards_detected": []
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 25
}
medium access_control codex Silo initialization is permissionless and can be front‑run if deployment is not atomic 75 no
view
evidence_json
{
    "evidence": "`Silo.initialize` is external with no access control, and `Actions.initialize` accepts any `_siloConfig` once when storage is empty.",
    "locations": [
        "contracts/silo-core/contracts/Silo.sol:65",
        "contracts/silo-core/contracts/lib/Actions.sol:43"
    ],
    "recommendation": "Restrict `initialize` to the factory (e.g., `require(msg.sender == address(factory))`), or ensure deployment + initialization are atomic and no external callers can race. Consider constructor-based configuration when not using proxies/clones.",
    "exploit_scenario": "If a new Silo instance is deployed but `initialize` is not executed in the same transaction, an attacker can call `initialize` first with a malicious `ISiloConfig`, setting hook receiver/oracles/fees and permanently controlling or bricking the vault."
}
low other codex Hook receiver can delegatecall arbitrary targets via `callOnBehalfOfSilo` 65 no
view
evidence_json
{
    "evidence": "`callOnBehalfOfSilo` allows `Delegatecall` and only checks `msg.sender` equals the configured hook receiver.",
    "locations": [
        "contracts/silo-core/contracts/Silo.sol:55",
        "contracts/silo-core/contracts/lib/Actions.sol:501",
        "contracts/silo-core/contracts/lib/Actions.sol:517"
    ],
    "recommendation": "Remove or restrict the delegatecall path (allowlist targets), and treat hook receiver as a highly trusted, immutable component with strong governance and security controls.",
    "exploit_scenario": "A compromised or upgradeable hook receiver can invoke `callOnBehalfOfSilo` with `Delegatecall` to execute arbitrary code in Silo storage context, allowing storage corruption or asset drainage without further checks."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 10
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 22
}