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

Analysis Run

64fdfe11-456e-45f6-8615-c93b752c18eb

complete
Chain ID
1
Address
Block Number
Created
Mon, Jan 5, 2026 7:59 PM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Unprotected genesis/commit address initialization enables delegatecall takeover and fund drain
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
31746 report.consolidate complete 1 / 1 3 months ago
95899 artifact.fetch complete 1 / 3 1 week ago
95900 tool.cast_disasm complete 1 / 3 1 week ago
95901 analysis.bundle complete 1 / 3 1 week ago
95902 capability.graph complete 1 / 3 1 week ago
95903 detector.run complete 1 / 3 1 week ago
95904 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
1
No findings?
no
Summary
Critical proxy-hijack path: `setGenesisRootAndAddresses` is publicly callable when the commit/exit addresses are unset, allowing an attacker to set a malicious delegatecall target and drain all assets held by the contract.
View stderr
[codex:578029] OpenAI Codex v0.77.0 (research preview)
[codex:578029] --------
[codex:578029] workdir: /tmp/codex-multi-2prxuax3
[codex:578029] model: gpt-5.2-codex
[codex:578029] provider: openai
[codex:578029] approval: never
[codex:578029] sandbox: read-only
[codex:578029] reasoning effort: xhigh
[codex:578029] reasoning summaries: auto
[codex:578029] session id: 019b8fb8-752e-73c1-97f5-2048d3da2ee3
[codex:578029] --------
[codex:578029] user
[codex:578029] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:578029] 
[codex:578029] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:578029] 
[codex:578029] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:578029] - Gas inefficiency, code quality, naming, or best practices
[codex:578029] - Theoretical vulnerabilities without a clear extraction path
[codex:578029] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:578029] - Front-running unless it enables theft beyond MEV
[codex:578029] - DoS, griefing, or issues that don't result in attacker profit
[codex:578029] - Missing events, view function issues, or informational findings
[codex:578029] 
[codex:578029] HIGH-VALUE PATTERNS TO HUNT:
[codex:578029] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:578029] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:578029] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:578029] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:578029] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:578029] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:578029] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:578029] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:578029] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:578029] 
[codex:578029] For each finding, you MUST provide:
[codex:578029] 1. Exact file and line numbers of vulnerable code
[codex:578029] 2. Step-by-step exploit transaction sequence
[codex:578029] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:578029] 
[codex:578029] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:578029] 
[codex:578029] Output MUST be valid JSON matching the provided schema.
[codex:578029] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:578029] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:578029] mcp startup: no servers
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Reading AUDIT_BUNDLE.txt**
[codex:578029] exec
[codex:578029] /bin/bash -lc ls in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] AUDIT_BUNDLE.txt
[codex:578029] codex-output-schema.json
[codex:578029] contracts
[codex:578029] exec
[codex:578029] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:578029] 
[codex:578029] ================================================================================
[codex:578029] FILE: contracts/contracts/Bytes.sol
[codex:578029] ================================================================================
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] 
[codex:578029] // Functions named bytesToX, except bytesToBytes20, where X is some type of size N < 32 (size of one word)
[codex:578029] // implements the following algorithm:
[codex:578029] // f(bytes memory input, uint offset) -> X out
[codex:578029] // where byte representation of out is N bytes from input at the given offset
[codex:578029] // 1) We compute memory location of the word W such that last N bytes of W is input[offset..offset+N]
[codex:578029] // W_address = input + 32 (skip stored length of bytes) + offset - (32 - N) == input + offset + N
[codex:578029] // 2) We load W from memory into out, last N bytes of W are placed into out
[codex:578029] 
[codex:578029] library Bytes {
[codex:578029] 
[codex:578029]     function toBytesFromUInt16(uint16 self) internal pure returns (bytes memory _bts) {
[codex:578029]         return toBytesFromUIntTruncated(uint(self), 2);
[codex:578029]     }
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Searching for vulnerabilities in contracts**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "initialize|upgrade|withdraw|withdrawal|pending|fullExit|deposit|transfer" -S contracts/contracts | head' in /tmp/codex-multi-2prxuax3 succeeded in 17ms:
[codex:578029] contracts/contracts/Upgradeable.sol:4:/// @title Interface of the upgradeable contract
[codex:578029] contracts/contracts/Upgradeable.sol:9:    /// @notice Upgrades target of upgradeable contract
[codex:578029] contracts/contracts/Upgradeable.sol:12:    function upgradeTarget(address newTarget, bytes calldata newTargetInitializationParameters) external;
[codex:578029] contracts/contracts/Verifier.sol:11:    function initialize(bytes calldata) external {
[codex:578029] contracts/contracts/Verifier.sol:14:    /// @notice Verifier contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/Verifier.sol:15:    /// @param upgradeParameters Encoded representation of upgrade parameters
[codex:578029] contracts/contracts/Verifier.sol:16:    function upgrade(bytes calldata upgradeParameters) external {}
[codex:578029] contracts/contracts/UpgradeableMaster.sol:4:/// @title Interface of the upgradeable master contract (defines notice period duration and allows finish upgrade during preparation of it)
[codex:578029] contracts/contracts/UpgradeableMaster.sol:9:    /// @notice Notice period before activation preparation status of upgrade mode
[codex:578029] contracts/contracts/UpgradeableMaster.sol:13:    function upgradeNoticePeriodStarted() external;
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Locating main contract definition**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "contract Zk|contract ZKS|contract ZkSync|contract ZK" -S contracts/contracts' in /tmp/codex-multi-2prxuax3 succeeded in 10ms:
[codex:578029] contracts/contracts/ZkSync.sol:24:contract ZkSync is PairTokenManager, UpgradeableMaster, Storage, Config, Events, ReentrancyGuard {
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,240p' contracts/contracts/ZkSync.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] 
[codex:578029] import "./ReentrancyGuard.sol";
[codex:578029] import "./SafeMath.sol";
[codex:578029] import "./SafeMathUInt128.sol";
[codex:578029] import "./SafeCast.sol";
[codex:578029] import "./Utils.sol";
[codex:578029] 
[codex:578029] import "./Storage.sol";
[codex:578029] import "./Config.sol";
[codex:578029] import "./Events.sol";
[codex:578029] 
[codex:578029] import "./Bytes.sol";
[codex:578029] import "./Operations.sol";
[codex:578029] 
[codex:578029] import "./UpgradeableMaster.sol";
[codex:578029] import "./uniswap/UniswapV2Factory.sol";
[codex:578029] 
[codex:578029] import "./PairTokenManager.sol";
[codex:578029] 
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '240,520p' contracts/contracts/ZkSync.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029]                     } else {
[codex:578029]                         // It is pair token
[codex:578029]                         tokenAddr = tokenAddresses[tokenId];
[codex:578029]                     }
[codex:578029]                     // tokenAddr cannot be 0
[codex:578029]                     require(tokenAddr != address(0), "cwt0");
[codex:578029]                     // we can just check that call not reverts because it wants to withdraw all amount
[codex:578029]                     (sent,) = address(this).call.gas(withdrawGasLimit)(
[codex:578029]                         abi.encodeWithSignature("withdrawERC20Guarded(address,address,uint128,uint128)", tokenAddr, to, amount, amount)
[codex:578029]                     );
[codex:578029]                 }
[codex:578029]                 if (!sent) {
[codex:578029]                     balancesToWithdraw[packedBalanceKey].balanceToWithdraw += amount;
[codex:578029]                 }
[codex:578029]             }
[codex:578029]         }
[codex:578029]         if (toProcess > 0) {
[codex:578029]             emit PendingWithdrawalsComplete(startIndex, startIndex + toProcess);
[codex:578029]         }
[codex:578029]     }
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Analyzing potential unprotected initialization exploit**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "Proxy|Upgradeable|upgradeTarget|delegatecall" -S contracts/contracts' in /tmp/codex-multi-2prxuax3 succeeded in 10ms:
[codex:578029] contracts/contracts/ZkSync.sol:16:import "./UpgradeableMaster.sol";
[codex:578029] contracts/contracts/ZkSync.sol:24:contract ZkSync is PairTokenManager, UpgradeableMaster, Storage, Config, Events, ReentrancyGuard {
[codex:578029] contracts/contracts/ZkSync.sol:143:    /// @notice Franklin contract initialization. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/ZkSync.sol:180:    /// @notice zkSync contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/ZkSync.sol:517:        // Execute external function from facet using delegatecall and return any value.
[codex:578029] contracts/contracts/ZkSync.sol:520:            let result := delegatecall(gas(), nextAddress, 0, calldatasize(), 0, 0)
[codex:578029] contracts/contracts/Upgradeable.sol:7:interface Upgradeable {
[codex:578029] contracts/contracts/Upgradeable.sol:12:    function upgradeTarget(address newTarget, bytes calldata newTargetInitializationParameters) external;
[codex:578029] contracts/contracts/VerifierExit.sol:12:    /// @notice VerifierExit contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/Verifier.sol:14:    /// @notice Verifier contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/UpgradeableMaster.sol:7:interface UpgradeableMaster {
[codex:578029] contracts/contracts/Events.sol:3:import "./Upgradeable.sol";
[codex:578029] contracts/contracts/Governance.sol:57:    /// @notice Governance contract initialization. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/Governance.sol:68:    /// @notice Governance contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] contracts/contracts/uniswap/UniswapV2Factory.sol:25:    /// @notice PairManager contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Searching for proxy contract files**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'ls contracts/contracts' in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] Bytes.sol
[codex:578029] Config.sol
[codex:578029] Events.sol
[codex:578029] Governance.sol
[codex:578029] IERC20.sol
[codex:578029] KeysWithPlonkAggVerifier.sol
[codex:578029] KeysWithPlonkSingleVerifier.sol
[codex:578029] Operations.sol
[codex:578029] PairTokenManager.sol
[codex:578029] PlonkAggCore.sol
[codex:578029] PlonkCoreLib.sol
[codex:578029] PlonkSingleCore.sol
[codex:578029] ReentrancyGuard.sol
[codex:578029] SafeCast.sol
[codex:578029] SafeMath.sol
[codex:578029] SafeMathUInt128.sol
[codex:578029] Storage.sol
[codex:578029] uniswap
[codex:578029] UpgradeableMaster.sol
[codex:578029] Upgradeable.sol
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Analyzing governance initialization vulnerabilities**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,220p' contracts/contracts/Governance.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] 
[codex:578029] import "./Config.sol";
[codex:578029] 
[codex:578029] 
[codex:578029] /// @title Governance Contract
[codex:578029] /// @author Matter Labs
[codex:578029] /// @author ZKSwap L2 Labs
[codex:578029] contract Governance is Config {
[codex:578029] 
[codex:578029]     /// @notice Token added to Franklin net
[codex:578029]     event NewToken(
[codex:578029]         address indexed token,
[codex:578029]         uint16 indexed tokenId
[codex:578029]     );
[codex:578029] 
[codex:578029]     /// @notice Governor changed
[codex:578029]     event NewGovernor(
[codex:578029]         address newGovernor
[codex:578029]     );
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Analyzing initialize access risks**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,260p' contracts/contracts/PairTokenManager.sol" in /tmp/codex-multi-2prxuax3 succeeded in 9ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] 
[codex:578029] contract PairTokenManager {
[codex:578029]     /// @notice Max amount of pair tokens registered in the network.
[codex:578029]     uint16 constant MAX_AMOUNT_OF_PAIR_TOKENS = 49152;
[codex:578029] 
[codex:578029]     uint16 constant PAIR_TOKEN_START_ID = 16384;
[codex:578029] 
[codex:578029]     /// @notice Total number of pair tokens registered in the network
[codex:578029]     uint16 public totalPairTokens;
[codex:578029] 
[codex:578029]     /// @notice List of registered tokens by tokenId
[codex:578029]     mapping(uint16 => address) public tokenAddresses;
[codex:578029] 
[codex:578029]     /// @notice List of registered tokens by address
[codex:578029]     mapping(address => uint16) public tokenIds;
[codex:578029]     
[codex:578029]     /// @notice Token added to Franklin net
[codex:578029]     event NewToken(
[codex:578029]         address indexed token,
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Checking storage details**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,260p' contracts/contracts/Storage.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] 
[codex:578029] import "./IERC20.sol";
[codex:578029] 
[codex:578029] import "./Governance.sol";
[codex:578029] import "./Verifier.sol";
[codex:578029] import "./VerifierExit.sol";
[codex:578029] import "./Operations.sol";
[codex:578029] 
[codex:578029] import "./uniswap/UniswapV2Factory.sol";
[codex:578029] 
[codex:578029] /// @title ZKSwap storage contract
[codex:578029] /// @author Matter Labs
[codex:578029] /// @author ZKSwap L2 Labs
[codex:578029] contract Storage {
[codex:578029] 
[codex:578029]     /// @notice Flag indicates that upgrade preparation status is active
[codex:578029]     /// @dev Will store false in case of not active upgrade mode
[codex:578029]     bool public upgradePreparationActive;
[codex:578029] 
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Analyzing withdrawal and reentrancy risks**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "balancesToWithdraw" -S contracts/contracts' in /tmp/codex-multi-2prxuax3 succeeded in 9ms:
[codex:578029] contracts/contracts/ZkSync.sol:227:            uint128 amount = balancesToWithdraw[packedBalanceKey].balanceToWithdraw;
[codex:578029] contracts/contracts/ZkSync.sol:230:                balancesToWithdraw[packedBalanceKey].balanceToWithdraw -= amount;
[codex:578029] contracts/contracts/ZkSync.sol:252:                    balancesToWithdraw[packedBalanceKey].balanceToWithdraw += amount;
[codex:578029] contracts/contracts/ZkSync.sol:275:                balancesToWithdraw[packedBalanceKey].balanceToWithdraw += op.amount;
[codex:578029] contracts/contracts/ZkSync.sol:375:        uint128 balance = balancesToWithdraw[packedBalanceKey].balanceToWithdraw;
[codex:578029] contracts/contracts/ZkSync.sol:395:        uint128 balance = balancesToWithdraw[packedBalanceKey].balanceToWithdraw;
[codex:578029] contracts/contracts/ZkSync.sol:426:        // User must fill storage slot of balancesToWithdraw(msg.sender, tokenId) with nonzero value
[codex:578029] contracts/contracts/ZkSync.sol:429:        balancesToWithdraw[packedBalanceKey].gasReserveValue = 0xff;
[codex:578029] contracts/contracts/ZkSync.sol:465:        uint128 balance = balancesToWithdraw[packedBalanceKey].balanceToWithdraw;
[codex:578029] contracts/contracts/ZkSync.sol:466:        balancesToWithdraw[packedBalanceKey].balanceToWithdraw = balance.sub(_amount);
[codex:578029] contracts/contracts/Storage.sol:40:    mapping(bytes22 => BalanceToWithdraw) public balancesToWithdraw;
[codex:578029] contracts/contracts/Storage.sol:133:    /// @notice Gets value from balancesToWithdraw
[codex:578029] contracts/contracts/Storage.sol:135:        return balancesToWithdraw[packAddressAndTokenId(_address, _tokenId)].balanceToWithdraw;
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Searching for commit and verify functions**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "commit|verify|revert|exodus|priority" -S contracts/contracts | head -n 50' in /tmp/codex-multi-2prxuax3 succeeded in 10ms:
[codex:578029] contracts/contracts/ZkSync.sol:83:        // Priority Queue request
[codex:578029] contracts/contracts/ZkSync.sol:96:        addPriorityRequest(Operations.OpType.CreatePair, pubData, userData);
[codex:578029] contracts/contracts/ZkSync.sol:134:        return !exodusMode;
[codex:578029] contracts/contracts/ZkSync.sol:139:        zkSyncCommitBlockAddress = address(this);
[codex:578029] contracts/contracts/ZkSync.sol:169:    function setGenesisRootAndAddresses(bytes32 _genesisRoot, address _zkSyncCommitBlockAddress, address _zkSyncExitAddress) external {
[codex:578029] contracts/contracts/ZkSync.sol:171:        // _zkSyncCommitBlockAddress and _zkSyncExitAddress have been set to
[codex:578029] contracts/contracts/ZkSync.sol:173:        require(zkSyncCommitBlockAddress == address(0), "sraa1");
[codex:578029] contracts/contracts/ZkSync.sol:176:        zkSyncCommitBlockAddress = _zkSyncCommitBlockAddress;
[codex:578029] contracts/contracts/ZkSync.sol:185:    /// @dev NOTE: will revert if transfer call fails or rollup balance difference (before and after transfer) is bigger than _maxAmount
[codex:578029] contracts/contracts/ZkSync.sol:192:        // wtg10 - can be called only from this contract as one "external" call (to revert all this function state changes if it is needed)
[codex:578029] contracts/contracts/ZkSync.sol:234:                    sent = Utils.sendETHNoRevert(toPayable, amount);
[codex:578029] contracts/contracts/ZkSync.sol:246:                    // we can just check that call not reverts because it wants to withdraw all amount
[codex:578029] contracts/contracts/ZkSync.sol:261:    /// @notice Accrues users balances from deposit priority requests in Exodus mode
[codex:578029] contracts/contracts/ZkSync.sol:262:    /// @dev WARNING: Only for Exodus mode
[codex:578029] contracts/contracts/ZkSync.sol:265:    function cancelOutstandingDepositsForExodusMode(uint64 _n) external nonReentrant {
[codex:578029] contracts/contracts/ZkSync.sol:266:        require(exodusMode, "coe01");
[codex:578029] contracts/contracts/ZkSync.sol:267:        // exodus mode not active
[codex:578029] contracts/contracts/ZkSync.sol:268:        uint64 toProcess = Utils.minU64(totalOpenPriorityRequests, _n);
[codex:578029] contracts/contracts/ZkSync.sol:271:        for (uint64 id = firstPriorityRequestId; id < firstPriorityRequestId + toProcess; id++) {
[codex:578029] contracts/contracts/ZkSync.sol:272:            if (priorityRequests[id].opType == Operations.OpType.Deposit) {
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Searching for commit functions in AUDIT_BUNDLE**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "commitBlock|commitBlocks|verifyBlock|exodus" -S AUDIT_BUNDLE.txt | head -n 50' in /tmp/codex-multi-2prxuax3 succeeded in 7ms:
[codex:578029] 480:    /// @notice Pending withdrawals index range that were added in the verifyBlock operation.
[codex:578029] 3706:    /// @notice Flag indicates that exodus (mass exit) mode is triggered
[codex:578029] 3708:    bool public exodusMode;
[codex:578029] 4152:        return !exodusMode;
[codex:578029] 4284:        require(exodusMode, "coe01");
[codex:578029] 4285:        // exodus mode not active
[codex:578029] 4491:    /// @notice Checks that current state not is exodus mode
[codex:578029] 4493:        require(!exodusMode, "fre11");
[codex:578029] 4494:        // exodus mode activated
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Analyzing potential LP token minting exploit**
[codex:578029] exec
[codex:578029] /bin/bash -lc 'rg -n "setZkSyncAddress" -S contracts/contracts' in /tmp/codex-multi-2prxuax3 succeeded in 10ms:
[codex:578029] contracts/contracts/uniswap/UniswapV2Factory.sol:20:    function setZkSyncAddress(address _zksyncAddress) external {
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Analyzing potential factory access issues**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,260p' contracts/contracts/Utils.sol" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] 
[codex:578029] import "./IERC20.sol";
[codex:578029] import "./Bytes.sol";
[codex:578029] 
[codex:578029] library Utils {
[codex:578029]     /// @notice Returns lesser of two values
[codex:578029]     function minU32(uint32 a, uint32 b) internal pure returns (uint32) {
[codex:578029]         return a < b ? a : b;
[codex:578029]     }
[codex:578029] 
[codex:578029]     /// @notice Returns lesser of two values
[codex:578029]     function minU64(uint64 a, uint64 b) internal pure returns (uint64) {
[codex:578029]         return a < b ? a : b;
[codex:578029]     }
[codex:578029] 
[codex:578029]     /// @notice Sends tokens
[codex:578029]     /// @dev NOTE: this function handles tokens that have transfer function not strictly compatible with ERC20 standard
[codex:578029]     /// @dev NOTE: call `transfer` to this token may return (bool) or nothing
[codex:578029]     /// @param _token Token address
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Investigating potential verification flaws**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,220p' contracts/contracts/VerifierExit.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] pragma experimental ABIEncoderV2;
[codex:578029] 
[codex:578029] import "./KeysWithPlonkSingleVerifier.sol";
[codex:578029] 
[codex:578029] // Hardcoded constants to avoid accessing store
[codex:578029] contract VerifierExit is KeysWithPlonkSingleVerifier {
[codex:578029] 
[codex:578029]     function initialize(bytes calldata) external {
[codex:578029]     }
[codex:578029] 
[codex:578029]     /// @notice VerifierExit contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029]     /// @param upgradeParameters Encoded representation of upgrade parameters
[codex:578029]     function upgrade(bytes calldata upgradeParameters) external {}
[codex:578029] 
[codex:578029]     function verifyExitProof(
[codex:578029]         bytes32 _rootHash,
[codex:578029]         uint32 _accountId,
[codex:578029]         address _owner,
[codex:578029]         uint16 _tokenId,
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Confirming need for verifier**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,200p' contracts/contracts/Verifier.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] pragma experimental ABIEncoderV2;
[codex:578029] 
[codex:578029] import "./KeysWithPlonkAggVerifier.sol";
[codex:578029] 
[codex:578029] // Hardcoded constants to avoid accessing store
[codex:578029] contract Verifier is KeysWithPlonkAggVerifier {
[codex:578029] 
[codex:578029]     bool constant DUMMY_VERIFIER = false;
[codex:578029] 
[codex:578029]     function initialize(bytes calldata) external {
[codex:578029]     }
[codex:578029] 
[codex:578029]     /// @notice Verifier contract upgrade. Can be external because Proxy contract intercepts illegal calls of this function.
[codex:578029]     /// @param upgradeParameters Encoded representation of upgrade parameters
[codex:578029]     function upgrade(bytes calldata upgradeParameters) external {}
[codex:578029] 
[codex:578029]     function isBlockSizeSupported(uint32 _size) public pure returns (bool) {
[codex:578029]         if (DUMMY_VERIFIER) {
[codex:578029]             return true;
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Analyzing potential withdrawal and token handling vulnerabilities**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,200p' contracts/contracts/SafeMathUInt128.sol" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] 
[codex:578029] /**
[codex:578029]  * @dev Wrappers over Solidity's arithmetic operations with added overflow
[codex:578029]  * checks.
[codex:578029]  *
[codex:578029]  * Arithmetic operations in Solidity wrap on overflow. This can easily result
[codex:578029]  * in bugs, because programmers usually assume that an overflow raises an
[codex:578029]  * error, which is the standard behavior in high level programming languages.
[codex:578029]  * `SafeMath` restores this intuition by reverting the transaction when an
[codex:578029]  * operation overflows.
[codex:578029]  *
[codex:578029]  * Using this library instead of the unchecked operations eliminates an entire
[codex:578029]  * class of bugs, so it's recommended to use it always.
[codex:578029]  */
[codex:578029] library SafeMathUInt128 {
[codex:578029]     /**
[codex:578029]      * @dev Returns the addition of two unsigned integers, reverting on
[codex:578029]      * overflow.
[codex:578029]      *
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Checking ReentrancyGuard for vulnerabilities**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,120p' contracts/contracts/ReentrancyGuard.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] 
[codex:578029] /**
[codex:578029]  * @dev Contract module that helps prevent reentrant calls to a function.
[codex:578029]  *
[codex:578029]  * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
[codex:578029]  * available, which can be applied to functions to make sure there are no nested
[codex:578029]  * (reentrant) calls to them.
[codex:578029]  *
[codex:578029]  * Note that because there is a single `nonReentrant` guard, functions marked as
[codex:578029]  * `nonReentrant` may not call one another. This can be worked around by making
[codex:578029]  * those functions `private`, and then adding `external` `nonReentrant` entry
[codex:578029]  * points to them.
[codex:578029]  *
[codex:578029]  * TIP: If you would like to learn more about reentrancy and alternative ways
[codex:578029]  * to protect against it, check out our blog post
[codex:578029]  * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
[codex:578029]  *
[codex:578029]  * _Since v2.5.0:_ this module is now much more gas efficient, given net gas
[codex:578029]  * metering changes introduced in the Istanbul hardfork.
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Analyzing reentrancy guard and token operations**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,160p' contracts/contracts/Upgradeable.sol" in /tmp/codex-multi-2prxuax3 succeeded in 5ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] 
[codex:578029] 
[codex:578029] /// @title Interface of the upgradeable contract
[codex:578029] /// @author Matter Labs
[codex:578029] /// @author ZKSwap L2 Labs
[codex:578029] interface Upgradeable {
[codex:578029] 
[codex:578029]     /// @notice Upgrades target of upgradeable contract
[codex:578029]     /// @param newTarget New target
[codex:578029]     /// @param newTargetInitializationParameters New target initialization parameters
[codex:578029]     function upgradeTarget(address newTarget, bytes calldata newTargetInitializationParameters) external;
[codex:578029] 
[codex:578029] }
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Checking term meaning**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,200p' contracts/contracts/UpgradeableMaster.sol" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] 
[codex:578029] 
[codex:578029] /// @title Interface of the upgradeable master contract (defines notice period duration and allows finish upgrade during preparation of it)
[codex:578029] /// @author Matter Labs
[codex:578029] /// @author ZKSwap L2 Labs
[codex:578029] interface UpgradeableMaster {
[codex:578029] 
[codex:578029]     /// @notice Notice period before activation preparation status of upgrade mode
[codex:578029]     function getNoticePeriod() external returns (uint);
[codex:578029] 
[codex:578029]     /// @notice Notifies contract that notice period started
[codex:578029]     function upgradeNoticePeriodStarted() external;
[codex:578029] 
[codex:578029]     /// @notice Notifies contract that upgrade preparation status is activated
[codex:578029]     function upgradePreparationStarted() external;
[codex:578029] 
[codex:578029]     /// @notice Notifies contract that upgrade canceled
[codex:578029]     function upgradeCanceled() external;
[codex:578029] 
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Investigating potential signature verification issue**
[codex:578029] exec
[codex:578029] /bin/bash -lc "sed -n '1,260p' contracts/contracts/Operations.sol" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029] pragma solidity ^0.5.0;
[codex:578029] 
[codex:578029] import "./Bytes.sol";
[codex:578029] 
[codex:578029] 
[codex:578029] /// @title ZKSwap operations tools
[codex:578029] library Operations {
[codex:578029] 
[codex:578029]     // Circuit ops and their pubdata (chunks * bytes)
[codex:578029] 
[codex:578029]     /// @notice ZKSwap circuit operation type
[codex:578029]     enum OpType {
[codex:578029]         Noop,
[codex:578029]         Deposit,
[codex:578029]         TransferToNew,
[codex:578029]         PartialExit,
[codex:578029]         _CloseAccount, // used for correct op id offset
[codex:578029]         Transfer,
[codex:578029]         FullExit,
[codex:578029]         ChangePubKey,
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Analyzing unprotected initialization vulnerability**
[codex:578029] 
[codex:578029] I'm investigating how the unprotected setGenesisRootAndAddresses allows an attacker to set critical commit and exit addresses to malicious contracts before initialization, enabling delegatecalls via fallback to manipulate contract storage and drain funds through withdraw functions. This hinges on proxy deployment leaving addresses zero and deposits being possible pre-initialization. I'll check code line numbers next for clarity.
[codex:578029] exec
[codex:578029] /bin/bash -lc "nl -ba contracts/contracts/ZkSync.sol | sed -n '150,220p'" in /tmp/codex-multi-2prxuax3 succeeded in 7ms:
[codex:578029]    150	        require(address(governance) == address(0), "init0");
[codex:578029]    151	        initializeReentrancyGuard();
[codex:578029]    152	
[codex:578029]    153	        (
[codex:578029]    154	            address _governanceAddress,
[codex:578029]    155	            address _verifierAddress,
[codex:578029]    156	            address _verifierExitAddress,
[codex:578029]    157	            address _pairManagerAddress
[codex:578029]    158	        ) = abi.decode(initializationParameters, (address, address, address, address));
[codex:578029]    159	
[codex:578029]    160	        verifier = Verifier(_verifierAddress);
[codex:578029]    161	        verifierExit = VerifierExit(_verifierExitAddress);
[codex:578029]    162	        governance = Governance(_governanceAddress);
[codex:578029]    163	        pairmanager = UniswapV2Factory(_pairManagerAddress);
[codex:578029]    164	
[codex:578029]    165	        maxDepositAmount = DEFAULT_MAX_DEPOSIT_AMOUNT;
[codex:578029]    166	        withdrawGasLimit = ERC20_WITHDRAWAL_GAS_LIMIT;
[codex:578029]    167	    }
[codex:578029]    168	
[codex:578029]    169	    function setGenesisRootAndAddresses(bytes32 _genesisRoot, address _zkSyncCommitBlockAddress, address _zkSyncExitAddress) external {
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Considering fallback line numbers for delegatecall**
[codex:578029] exec
[codex:578029] /bin/bash -lc "nl -ba contracts/contracts/ZkSync.sol | sed -n '500,560p'" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029]    500	
[codex:578029]    501	        emit NewPriorityRequest(
[codex:578029]    502	            msg.sender,
[codex:578029]    503	            nextPriorityRequestId,
[codex:578029]    504	            _opType,
[codex:578029]    505	            _pubData,
[codex:578029]    506	            _userData,
[codex:578029]    507	            expirationBlock
[codex:578029]    508	        );
[codex:578029]    509	
[codex:578029]    510	        totalOpenPriorityRequests++;
[codex:578029]    511	    }
[codex:578029]    512	
[codex:578029]    513	    // The contract is too large. Break some functions to zkSyncCommitBlockAddress
[codex:578029]    514	    function() external payable {
[codex:578029]    515	        address nextAddress = zkSyncCommitBlockAddress;
[codex:578029]    516	        require(nextAddress != address(0), "zkSyncCommitBlockAddress should be set");
[codex:578029]    517	        // Execute external function from facet using delegatecall and return any value.
[codex:578029]    518	        assembly {
[codex:578029]    519	            calldatacopy(0, 0, calldatasize())
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Analyzing unprotected initialization vulnerability**
[codex:578029] 
[codex:578029] I'll examine how missing access control in setGenesisRootAndAddresses can enable an attacker—especially in proxy deployments—to set malicious contract addresses, then exploit delegatecall in fallback to hijack funds via withdraw functions, while collecting relevant line numbers for evidence.
[codex:578029] exec
[codex:578029] /bin/bash -lc "nl -ba contracts/contracts/ZkSync.sol | sed -n '300,380p'" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029]    300	    /// @param _amount Ether amount to withdraw
[codex:578029]    301	    function withdrawETHWithAddress(uint128 _amount, address payable _to) external nonReentrant {
[codex:578029]    302	        require(_to != address(0), "ipa11");
[codex:578029]    303	        registerWithdrawal(0, _amount, _to);
[codex:578029]    304	        (bool success,) = _to.call.value(_amount)("");
[codex:578029]    305	        require(success, "fwe12");
[codex:578029]    306	        // ETH withdraw failed
[codex:578029]    307	    }
[codex:578029]    308	
[codex:578029]    309	    /// @notice Config amount limit for each ERC20 deposit
[codex:578029]    310	    /// @param _amount Max deposit amount
[codex:578029]    311	    function setMaxDepositAmount(uint128 _amount) external {
[codex:578029]    312	        governance.requireGovernor(msg.sender);
[codex:578029]    313	        maxDepositAmount = _amount;
[codex:578029]    314	    }
[codex:578029]    315	
[codex:578029]    316	    /// @notice Config gas limit for withdraw erc20 token
[codex:578029]    317	    /// @param _gasLimit withdraw erc20 gas limit
[codex:578029]    318	    function setWithDrawGasLimit(uint256 _gasLimit) external {
[codex:578029]    319	        governance.requireGovernor(msg.sender);
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Noticing WithdrawETH call without address**
[codex:578029] exec
[codex:578029] /bin/bash -lc "nl -ba contracts/contracts/ZkSync.sol | sed -n '260,320p'" in /tmp/codex-multi-2prxuax3 succeeded in 6ms:
[codex:578029]    260	
[codex:578029]    261	    /// @notice Accrues users balances from deposit priority requests in Exodus mode
[codex:578029]    262	    /// @dev WARNING: Only for Exodus mode
[codex:578029]    263	    /// @dev Canceling may take several separate transactions to be completed
[codex:578029]    264	    /// @param _n number of requests to process
[codex:578029]    265	    function cancelOutstandingDepositsForExodusMode(uint64 _n) external nonReentrant {
[codex:578029]    266	        require(exodusMode, "coe01");
[codex:578029]    267	        // exodus mode not active
[codex:578029]    268	        uint64 toProcess = Utils.minU64(totalOpenPriorityRequests, _n);
[codex:578029]    269	        require(toProcess > 0, "coe02");
[codex:578029]    270	        // no deposits to process
[codex:578029]    271	        for (uint64 id = firstPriorityRequestId; id < firstPriorityRequestId + toProcess; id++) {
[codex:578029]    272	            if (priorityRequests[id].opType == Operations.OpType.Deposit) {
[codex:578029]    273	                Operations.Deposit memory op = Operations.readDepositPubdata(priorityRequests[id].pubData);
[codex:578029]    274	                bytes22 packedBalanceKey = packAddressAndTokenId(op.owner, op.tokenId);
[codex:578029]    275	                balancesToWithdraw[packedBalanceKey].balanceToWithdraw += op.amount;
[codex:578029]    276	            }
[codex:578029]    277	            delete priorityRequests[id];
[codex:578029]    278	        }
[codex:578029]    279	        firstPriorityRequestId += toProcess;
[codex:578029] 
[codex:578029] thinking
[codex:578029] **Analyzing unprotected delegatecall vulnerability**
[codex:578029] 
[codex:578029] I'll work through the details of the unprotected `setGenesisRootAndAddresses` function allowing an attacker in the proxy deployment phase to hijack delegatecall targets, enabling arbitrary code execution, storage manipulation, and a full drain of contract funds, then prepare a JSON-formatted report including exact line references and an attack scenario.
[codex:578029] codex
[codex:578029] {"no_findings":false,"summary":"Critical proxy-hijack path: `setGenesisRootAndAddresses` is publicly callable when the commit/exit addresses are unset, allowing an attacker to set a malicious delegatecall target and drain all assets held by the contract.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected genesis/commit address initialization enables delegatecall takeover and fund drain","exploit_scenario":"1) On a fresh proxy deployment (constructor not run), `zkSyncCommitBlockAddress`/`zkSyncExitAddress` are zero. An attacker deploys a malicious facet with a `drain()` function that calls `IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)))` and/or sends `address(this).balance` to `msg.sender`.\n2) Attacker calls `setGenesisRootAndAddresses(...)` to set `_zkSyncCommitBlockAddress` to the malicious facet (and any `_zkSyncExitAddress`).\n3) Attacker calls the ZkSync proxy with calldata for `drain()`; fallback delegates to the malicious facet, executing in ZkSync context and transferring ETH/ERC20s to the attacker.\nProfit: up to 100% of ETH and ERC20 balances held by the ZkSync contract (all user deposits).","recommendation":"Restrict `setGenesisRootAndAddresses` to governance/owner and/or fold it into the authenticated initializer. Also consider making the fallback delegatecall target immutable after a trusted initialization step and verifying the caller for any admin-only setup.","evidence":"`setGenesisRootAndAddresses` is external with no access control and only checks for zero addresses, allowing anyone to set `zkSyncCommitBlockAddress`/`zkSyncExitAddress`. The fallback then blindly delegatecalls to `zkSyncCommitBlockAddress`, enabling arbitrary code execution in ZkSync storage.","locations":["contracts/contracts/ZkSync.sol:169","contracts/contracts/ZkSync.sol:173","contracts/contracts/ZkSync.sol:175","contracts/contracts/ZkSync.sol:176","contracts/contracts/ZkSync.sol:513","contracts/contracts/ZkSync.sol:515","contracts/contracts/ZkSync.sol:519"]}]}
[codex:578029] tokens used
[codex:578029] 86,839
[codex:578029] {"no_findings":false,"summary":"Critical proxy-hijack path: `setGenesisRootAndAddresses` is publicly callable when the commit/exit addresses are unset, allowing an attacker to set a malicious delegatecall target and drain all assets held by the contract.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected genesis/commit address initialization enables delegatecall takeover and fund drain","exploit_scenario":"1) On a fresh proxy deployment (constructor not run), `zkSyncCommitBlockAddress`/`zkSyncExitAddress` are zero. An attacker deploys a malicious facet with a `drain()` function that calls `IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)))` and/or sends `address(this).balance` to `msg.sender`.\n2) Attacker calls `setGenesisRootAndAddresses(...)` to set `_zkSyncCommitBlockAddress` to the malicious facet (and any `_zkSyncExitAddress`).\n3) Attacker calls the ZkSync proxy with calldata for `drain()`; fallback delegates to the malicious facet, executing in ZkSync context and transferring ETH/ERC20s to the attacker.\nProfit: up to 100% of ETH and ERC20 balances held by the ZkSync contract (all user deposits).","recommendation":"Restrict `setGenesisRootAndAddresses` to governance/owner and/or fold it into the authenticated initializer. Also consider making the fallback delegatecall target immutable after a trusted initialization step and verifying the caller for any admin-only setup.","evidence":"`setGenesisRootAndAddresses` is external with no access control and only checks for zero addresses, allowing anyone to set `zkSyncCommitBlockAddress`/`zkSyncExitAddress`. The fallback then blindly delegatecalls to `zkSyncCommitBlockAddress`, enabling arbitrary code execution in ZkSync storage.","locations":["contracts/contracts/ZkSync.sol:169","contracts/contracts/ZkSync.sol:173","contracts/contracts/ZkSync.sol:175","contracts/contracts/ZkSync.sol:176","contracts/contracts/ZkSync.sol:513","contracts/contracts/ZkSync.sol:515","contracts/contracts/ZkSync.sol:519"]}]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-05T19:59:17.339656+00:00",
        "returncode": 0
    },
    "summary": "Critical proxy-hijack path: `setGenesisRootAndAddresses` is publicly callable when the commit/exit addresses are unset, allowing an attacker to set a malicious delegatecall target and drain all assets held by the contract.",
    "raw_final": {
        "summary": "Critical proxy-hijack path: `setGenesisRootAndAddresses` is publicly callable when the commit/exit addresses are unset, allowing an attacker to set a malicious delegatecall target and drain all assets held by the contract.",
        "findings": [
            {
                "title": "Unprotected genesis/commit address initialization enables delegatecall takeover and fund drain",
                "category": "upgradeability",
                "evidence": "`setGenesisRootAndAddresses` is external with no access control and only checks for zero addresses, allowing anyone to set `zkSyncCommitBlockAddress`/`zkSyncExitAddress`. The fallback then blindly delegatecalls to `zkSyncCommitBlockAddress`, enabling arbitrary code execution in ZkSync storage.",
                "severity": "critical",
                "locations": [
                    "contracts/contracts/ZkSync.sol:169",
                    "contracts/contracts/ZkSync.sol:173",
                    "contracts/contracts/ZkSync.sol:175",
                    "contracts/contracts/ZkSync.sol:176",
                    "contracts/contracts/ZkSync.sol:513",
                    "contracts/contracts/ZkSync.sol:515",
                    "contracts/contracts/ZkSync.sol:519"
                ],
                "recommendation": "Restrict `setGenesisRootAndAddresses` to governance/owner and/or fold it into the authenticated initializer. Also consider making the fallback delegatecall target immutable after a trusted initialization step and verifying the caller for any admin-only setup.",
                "exploit_scenario": "1) On a fresh proxy deployment (constructor not run), `zkSyncCommitBlockAddress`/`zkSyncExitAddress` are zero. An attacker deploys a malicious facet with a `drain()` function that calls `IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)))` and/or sends `address(this).balance` to `msg.sender`.\n2) Attacker calls `setGenesisRootAndAddresses(...)` to set `_zkSyncCommitBlockAddress` to the malicious facet (and any `_zkSyncExitAddress`).\n3) Attacker calls the ZkSync proxy with calldata for `drain()`; fallback delegates to the malicious facet, executing in ZkSync context and transferring ETH/ERC20s to the attacker.\nProfit: up to 100% of ETH and ERC20 balances held by the ZkSync contract (all user deposits)."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
30
EXT*/BALANCE
24
Total opcodes
11919
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 0x02e1
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x8ac7d296
00000019: GT
0000001a: PUSH2 0x0190
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xc57b22be
00000024: GT
00000025: PUSH2 0x00dc
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xe7f40cf6
0000002f: GT
00000030: PUSH2 0x0095
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xfa6b53c3
0000003a: GT
0000003b: PUSH2 0x006f
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xfa6b53c3
00000045: EQ
00000046: PUSH2 0x0d09
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xfaf4d8cb
00000050: EQ
00000051: PUSH2 0x0d46
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xfc97a303
0000005b: EQ
0000005c: PUSH2 0x0d5b
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xffeec237
00000066: EQ
00000067: PUSH2 0x0d8e
0000006a: JUMPI
0000006b: PUSH2 0x02e1
0000006e: JUMP
0000006f: JUMPDEST
00000070: DUP1
00000071: PUSH4 0xe7f40cf6
00000076: EQ
00000077: PUSH2 0x0c75
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xe96aa205
00000081: EQ
00000082: PUSH2 0x0c8a
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xf3a4d4af
0000008c: EQ
0000008d: PUSH2 0x0cbd
00000090: JUMPI
00000091: PUSH2 0x02e1
00000094: JUMP
00000095: JUMPDEST
00000096: DUP1
00000097: PUSH4 0xc57b22be
0000009c: EQ
0000009d: PUSH2 0x0b56
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xc94c5b7c
000000a7: EQ
000000a8: PUSH2 0x0b6b
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xc9c65396
000000b2: EQ
000000b3: PUSH2 0x0bad
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xcc54f026
000000bd: EQ
000000be: PUSH2 0x0be8
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0xcd24ee08
000000c8: EQ
000000c9: PUSH2 0x0c14
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0xe17376b5
000000d3: EQ
000000d4: PUSH2 0x0c29
000000d7: JUMPI
000000d8: PUSH2 0x02e1
000000db: JUMP
000000dc: JUMPDEST
000000dd: DUP1
000000de: PUSH4 0xa2f9f1ce
000000e3: GT
000000e4: PUSH2 0x0149
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0xb5d6b8be
000000ee: GT
000000ef: PUSH2 0x0123
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0xb5d6b8be
000000f9: EQ
000000fa: PUSH2 0x0a95
000000fd: JUMPI
000000fe: DUP1
000000ff: PUSH4 0xb7c73165
00000104: EQ
00000105: PUSH2 0x0aaa
00000108: JUMPI
00000109: DUP1
0000010a: PUSH4 0xbc5cd7ba
0000010f: EQ
00000110: PUSH2 0x0ae2
00000113: JUMPI
00000114: DUP1
00000115: PUSH4 0xc488a09c
0000011a: EQ
0000011b: PUSH2 0x0b23
0000011e: JUMPI
0000011f: PUSH2 0x02e1
00000122: JUMP
00000123: JUMPDEST
00000124: DUP1
00000125: PUSH4 0xa2f9f1ce
0000012a: EQ
0000012b: PUSH2 0x09fd
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0xa5dcdf71
00000135: EQ
00000136: PUSH2 0x0a53
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0xb269b9ae
00000140: EQ
00000141: PUSH2 0x08b2
00000144: JUMPI
00000145: PUSH2 0x02e1
00000148: JUMP
00000149: JUMPDEST
0000014a: DUP1
0000014b: PUSH4 0x8ac7d296
00000150: EQ
00000151: PUSH2 0x08dc
00000154: JUMPI
00000155: DUP1
00000156: PUSH4 0x8ae20dc9
0000015b: EQ
0000015c: PUSH2 0x08f1
0000015f: JUMPI
00000160: DUP1
00000161: PUSH4 0x8d43428a
00000166: EQ
00000167: PUSH2 0x0930
0000016a: JUMPI
0000016b: DUP1
0000016c: PUSH4 0x8ed83271
00000171: EQ
00000172: PUSH2 0x0963
00000175: JUMPI
00000176: DUP1
00000177: PUSH4 0x922e1492
0000017c: EQ
0000017d: PUSH2 0x0994
00000180: JUMPI
00000181: DUP1
00000182: PUSH4 0x9a83400d
00000187: EQ
00000188: PUSH2 0x09a9
0000018b: JUMPI
0000018c: PUSH2 0x02e1
0000018f: JUMP
00000190: JUMPDEST
00000191: DUP1
00000192: PUSH4 0x34f6bb1c
00000197: GT
00000198: PUSH2 0x024f
0000019b: JUMPI
0000019c: DUP1
0000019d: PUSH4 0x67708dae
000001a2: GT
000001a3: PUSH2 0x0208
000001a6: JUMPI
000001a7: DUP1
000001a8: PUSH4 0x78b91e70
000001ad: GT
000001ae: PUSH2 0x01e2
000001b1: JUMPI
000001b2: DUP1
000001b3: PUSH4 0x78b91e70
000001b8: EQ
000001b9: PUSH2 0x07d6
000001bc: JUMPI
000001bd: DUP1
000001be: PUSH4 0x7d490798
000001c3: EQ
000001c4: PUSH2 0x07eb
000001c7: JUMPI
000001c8: DUP1
000001c9: PUSH4 0x871b8ff1
000001ce: EQ
000001cf: PUSH2 0x08b2
000001d2: JUMPI
000001d3: DUP1
000001d4: PUSH4 0x8773334c
000001d9: EQ
000001da: PUSH2 0x08c7
000001dd: JUMPI
000001de: PUSH2 0x02e1
000001e1: JUMP
000001e2: JUMPDEST
000001e3: DUP1
000001e4: PUSH4 0x67708dae
000001e9: EQ
000001ea: PUSH2 0x075e
000001ed: JUMPI
000001ee: DUP1
000001ef: PUSH4 0x6a387fc9
000001f4: EQ
000001f5: PUSH2 0x0773
000001f8: JUMPI
000001f9: DUP1
000001fa: PUSH4 0x77d6e067
000001ff: EQ
00000200: PUSH2 0x07a3
00000203: JUMPI
00000204: PUSH2 0x02e1
00000207: JUMP
00000208: JUMPDEST
00000209: DUP1
0000020a: PUSH4 0x34f6bb1c
0000020f: EQ
00000210: PUSH2 0x05b8
00000213: JUMPI
00000214: DUP1
00000215: PUSH4 0x3b154b73
0000021a: EQ
0000021b: PUSH2 0x05e9
0000021e: JUMPI
0000021f: DUP1
00000220: PUSH4 0x3c06e514
00000225: EQ
00000226: PUSH2 0x05fe
00000229: JUMPI
0000022a: DUP1
0000022b: PUSH4 0x3c6461a9
00000230: EQ
00000231: PUSH2 0x0613
00000234: JUMPI
00000235: DUP1
00000236: PUSH4 0x439fab91
0000023b: EQ
0000023c: PUSH2 0x066c
0000023f: JUMPI
00000240: DUP1
00000241: PUSH4 0x5cd0783e
00000246: EQ
00000247: PUSH2 0x06e7
0000024a: JUMPI
0000024b: PUSH2 0x02e1
0000024e: JUMP
0000024f: JUMPDEST
00000250: DUP1
00000251: PUSH4 0x2a3174f4
00000256: GT
00000257: PUSH2 0x02a1
0000025a: JUMPI
0000025b: DUP1
0000025c: PUSH4 0x2a3174f4
00000261: EQ
00000262: PUSH2 0x04d1
00000265: JUMPI
00000266: DUP1
00000267: PUSH4 0x2b8c062a
0000026c: EQ
0000026d: PUSH2 0x04e6
00000270: JUMPI
00000271: DUP1
00000272: PUSH4 0x2d24006c
00000277: EQ
00000278: PUSH2 0x0520
0000027b: JUMPI
0000027c: DUP1
0000027d: PUSH4 0x2d2da806
00000282: EQ
00000283: PUSH2 0x0535
00000286: JUMPI
00000287: DUP1
00000288: PUSH4 0x2f804bd2
0000028d: EQ
0000028e: PUSH2 0x055b
00000291: JUMPI
00000292: DUP1
00000293: PUSH4 0x34c961fc
00000298: EQ
00000299: PUSH2 0x058e
0000029c: JUMPI
0000029d: PUSH2 0x02e1
000002a0: JUMP
000002a1: JUMPDEST
000002a2: DUP1
000002a3: PUSH1 0xe2
000002a5: EQ
000002a6: PUSH2 0x034d
000002a9: JUMPI
000002aa: DUP1
000002ab: PUSH4 0x10603dad
000002b0: EQ
000002b1: PUSH2 0x038e
000002b4: JUMPI
000002b5: DUP1
000002b6: PUSH4 0x1523ab05
000002bb: EQ
000002bc: PUSH2 0x03d8
000002bf: JUMPI
000002c0: DUP1
000002c1: PUSH4 0x21ae6054
000002c6: EQ
000002c7: PUSH2 0x0406
000002ca: JUMPI
000002cb: DUP1
000002cc: PUSH4 0x25394645
000002d1: EQ
000002d2: PUSH2 0x042d
000002d5: JUMPI
000002d6: DUP1
000002d7: PUSH4 0x264c0912
000002dc: EQ
000002dd: PUSH2 0x04a8
000002e0: JUMPI
000002e1: JUMPDEST
000002e2: PUSH1 0x13
000002e4: SLOAD
000002e5: PUSH1 0x01
000002e7: PUSH1 0x01
000002e9: PUSH1 0xa0
000002eb: SHL
000002ec: SUB
000002ed: AND
000002ee: DUP1
000002ef: PUSH2 0x0329
000002f2: JUMPI
000002f3: PUSH1 0x40
000002f5: MLOAD
000002f6: PUSH3 0x461bcd
000002fa: PUSH1 0xe5
000002fc: SHL
000002fd: DUP2
000002fe: MSTORE
000002ff: PUSH1 0x04
00000301: ADD
00000302: DUP1
00000303: DUP1
00000304: PUSH1 0x20
00000306: ADD
00000307: DUP3
00000308: DUP2
00000309: SUB
0000030a: DUP3
0000030b: MSTORE
0000030c: PUSH1 0x26
0000030e: DUP2
0000030f: MSTORE
00000310: PUSH1 0x20
00000312: ADD
00000313: DUP1
00000314: PUSH2 0x414c
00000317: PUSH1 0x26
00000319: SWAP2
0000031a: CODECOPY
0000031b: PUSH1 0x40
0000031d: ADD
0000031e: SWAP2
0000031f: POP
00000320: POP
00000321: PUSH1 0x40
00000323: MLOAD
00000324: DUP1
00000325: SWAP2
00000326: SUB
00000327: SWAP1
00000328: REVERT
00000329: JUMPDEST
0000032a: CALLDATASIZE
0000032b: PUSH1 0x00
0000032d: DUP1
0000032e: CALLDATACOPY
0000032f: PUSH1 0x00
00000331: DUP1
00000332: CALLDATASIZE
00000333: PUSH1 0x00
00000335: DUP5
00000336: GAS
00000337: DELEGATECALL
00000338: RETURNDATASIZE
00000339: PUSH1 0x00
0000033b: DUP1
0000033c: RETURNDATACOPY
0000033d: DUP1
0000033e: DUP1
0000033f: ISZERO
00000340: PUSH2 0x0348
00000343: JUMPI
00000344: RETURNDATASIZE
00000345: PUSH1 0x00
00000347: RETURN
00000348: JUMPDEST
00000349: RETURNDATASIZE
0000034a: PUSH1 0x00
0000034c: REVERT
0000034d: JUMPDEST
0000034e: CALLVALUE
0000034f: DUP1
00000350: ISZERO
00000351: PUSH2 0x0359
00000354: JUMPI
00000355: PUSH1 0x00
00000357: DUP1
00000358: REVERT
00000359: JUMPDEST
0000035a: POP
0000035b: PUSH2 0x038c
0000035e: PUSH1 0x04
00000360: DUP1
00000361: CALLDATASIZE
00000362: SUB
00000363: PUSH1 0x40
00000365: DUP2
00000366: LT
00000367: ISZERO
00000368: PUSH2 0x0370
0000036b: JUMPI
0000036c: PUSH1 0x00
0000036e: DUP1
0000036f: REVERT
00000370: JUMPDEST
00000371: POP
00000372: DUP1
00000373: CALLDATALOAD
00000374: PUSH4 0xffffffff
00000379: AND
0000037a: SWAP1
0000037b: PUSH1 0x20
0000037d: ADD
0000037e: CALLDATALOAD
0000037f: PUSH1 0x01
00000381: PUSH1 0x01
00000383: PUSH1 0xa0
00000385: SHL
00000386: SUB
00000387: AND
00000388: PUSH2 0x0da3
0000038b: JUMP
0000038c: JUMPDEST
0000038d: STOP
0000038e: JUMPDEST
0000038f: CALLVALUE
00000390: DUP1
00000391: ISZERO
00000392: PUSH2 0x039a
00000395: JUMPI
00000396: PUSH1 0x00
00000398: DUP1
00000399: REVERT
0000039a: JUMPDEST
0000039b: POP
0000039c: PUSH2 0x03bc
0000039f: PUSH1 0x04
000003a1: DUP1
000003a2: CALLDATASIZE
000003a3: SUB
000003a4: PUSH1 0x20
000003a6: DUP2
000003a7: LT
000003a8: ISZERO
000003a9: PUSH2 0x03b1
000003ac: JUMPI
000003ad: PUSH1 0x00
000003af: DUP1
000003b0: REVERT
000003b1: JUMPDEST
000003b2: POP
000003b3: CALLDATALOAD
000003b4: PUSH2 0xffff
000003b7: AND
000003b8: PUSH2 0x0fea
000003bb: JUMP
000003bc: JUMPDEST
000003bd: PUSH1 0x40
000003bf: DUP1
000003c0: MLOAD
000003c1: PUSH1 0x01
000003c3: PUSH1 0x01
000003c5: PUSH1 0xa0
000003c7: SHL
000003c8: SUB
000003c9: SWAP1
000003ca: SWAP3
000003cb: AND
000003cc: DUP3
000003cd: MSTORE
000003ce: MLOAD
000003cf: SWAP1
000003d0: DUP2
000003d1: SWAP1
000003d2: SUB
000003d3: PUSH1 0x20
000003d5: ADD
000003d6: SWAP1
000003d7: RETURN
000003d8: JUMPDEST
000003d9: CALLVALUE
000003da: DUP1
000003db: ISZERO
000003dc: PUSH2 0x03e4
000003df: JUMPI
000003e0: PUSH1 0x00
000003e2: DUP1
000003e3: REVERT
000003e4: JUMPDEST
000003e5: POP
000003e6: PUSH2 0x03ed
000003e9: PUSH2 0x1005
000003ec: JUMP
000003ed: JUMPDEST
000003ee: PUSH1 0x40
000003f0: DUP1
000003f1: MLOAD
000003f2: PUSH4 0xffffffff
000003f7: SWAP1
000003f8: SWAP3
000003f9: AND
000003fa: DUP3
000003fb: MSTORE
000003fc: MLOAD
000003fd: SWAP1
000003fe: DUP2
000003ff: SWAP1
00000400: SUB
00000401: PUSH1 0x20
00000403: ADD
00000404: SWAP1
00000405: RETURN
00000406: JUMPDEST
00000407: CALLVALUE
00000408: DUP1
00000409: ISZERO
0000040a: PUSH2 0x0412
0000040d: JUMPI
0000040e: PUSH1 0x00
00000410: DUP1
00000411: REVERT
00000412: JUMPDEST
00000413: POP
00000414: PUSH2 0x041b
00000417: PUSH2 0x1018
0000041a: JUMP
0000041b: JUMPDEST
0000041c: PUSH1 0x40
0000041e: DUP1
0000041f: MLOAD
00000420: SWAP2
00000421: DUP3
00000422: MSTORE
00000423: MLOAD
00000424: SWAP1
00000425: DUP2
00000426: SWAP1
00000427: SUB
00000428: PUSH1 0x20
0000042a: ADD
0000042b: SWAP1
0000042c: RETURN
0000042d: JUMPDEST
0000042e: CALLVALUE
0000042f: DUP1
00000430: ISZERO
00000431: PUSH2 0x0439
00000434: JUMPI
00000435: PUSH1 0x00
00000437: DUP1
00000438: REVERT
00000439: JUMPDEST
0000043a: POP
0000043b: PUSH2 0x038c
0000043e: PUSH1 0x04
00000440: DUP1
00000441: CALLDATASIZE
00000442: SUB
00000443: PUSH1 0x20
00000445: DUP2
00000446: LT
00000447: ISZERO
00000448: PUSH2 0x0450
0000044b: JUMPI
0000044c: PUSH1 0x00
0000044e: DUP1
0000044f: REVERT
00000450: JUMPDEST
00000451: DUP2
00000452: ADD
00000453: SWAP1
00000454: PUSH1 0x20
00000456: DUP2
00000457: ADD
00000458: DUP2
00000459: CALLDATALOAD
0000045a: PUSH1 0x01
0000045c: PUSH1 0x20
0000045e: SHL
0000045f: DUP2
00000460: GT
00000461: ISZERO
00000462: PUSH2 0x046a
00000465: JUMPI
00000466: PUSH1 0x00
00000468: DUP1
00000469: REVERT
0000046a: JUMPDEST
0000046b: DUP3
0000046c: ADD
0000046d: DUP4
0000046e: PUSH1 0x20
00000470: DUP3
00000471: ADD
00000472: GT
00000473: ISZERO
00000474: PUSH2 0x047c
00000477: JUMPI
00000478: PUSH1 0x00
0000047a: DUP1
0000047b: REVERT
0000047c: JUMPDEST
0000047d: DUP1
0000047e: CALLDATALOAD
0000047f: SWAP1
00000480: PUSH1 0x20
00000482: ADD
00000483: SWAP2
00000484: DUP5
00000485: PUSH1 0x01
00000487: DUP4
00000488: MUL
00000489: DUP5
0000048a: ADD
0000048b: GT
0000048c: PUSH1 0x01
0000048e: PUSH1 0x20
00000490: SHL
00000491: DUP4
00000492: GT
00000493: OR
00000494: ISZERO
00000495: PUSH2 0x049d
00000498: JUMPI
00000499: PUSH1 0x00
0000049b: DUP1
0000049c: REVERT
0000049d: JUMPDEST
0000049e: POP
0000049f: SWAP1
000004a0: SWAP3
000004a1: POP
000004a2: SWAP1
000004a3: POP
000004a4: PUSH2 0x103c
000004a7: JUMP
000004a8: JUMPDEST
000004a9: CALLVALUE
000004aa: DUP1
000004ab: ISZERO
000004ac: PUSH2 0x04b4
000004af: JUMPI
000004b0: PUSH1 0x00
000004b2: DUP1
000004b3: REVERT
000004b4: JUMPDEST
000004b5: POP
000004b6: PUSH2 0x04bd
000004b9: PUSH2 0x1040
000004bc: JUMP
000004bd: JUMPDEST
000004be: PUSH1 0x40
000004c0: DUP1
000004c1: MLOAD
000004c2: SWAP2
000004c3: ISZERO
000004c4: ISZERO
000004c5: DUP3
000004c6: MSTORE
000004c7: MLOAD
000004c8: SWAP1
000004c9: DUP2
000004ca: SWAP1
000004cb: SUB
000004cc: PUSH1 0x20
000004ce: ADD
000004cf: SWAP1
000004d0: RETURN
000004d1: JUMPDEST
000004d2: CALLVALUE
000004d3: DUP1
000004d4: ISZERO
000004d5: PUSH2 0x04dd
000004d8: JUMPI
000004d9: PUSH1 0x00
000004db: DUP1
000004dc: REVERT
000004dd: JUMPDEST
000004de: POP
000004df: PUSH2 0x041b
000004e2: PUSH2 0x1049
000004e5: JUMP
000004e6: JUMPDEST
000004e7: CALLVALUE
000004e8: DUP1
000004e9: ISZERO
000004ea: PUSH2 0x04f2
000004ed: JUMPI
000004ee: PUSH1 0x00
000004f0: DUP1
000004f1: REVERT
000004f2: JUMPDEST
000004f3: POP
000004f4: PUSH2 0x04bd
000004f7: PUSH1 0x04
000004f9: DUP1
000004fa: CALLDATASIZE
000004fb: SUB
000004fc: PUSH1 0x40
000004fe: DUP2
000004ff: LT
00000500: ISZERO
00000501: PUSH2 0x0509
00000504: JUMPI
00000505: PUSH1 0x00
00000507: DUP1
00000508: REVERT
00000509: JUMPDEST
0000050a: POP
0000050b: DUP1
0000050c: CALLDATALOAD
0000050d: PUSH4 0xffffffff
00000512: AND
00000513: SWAP1
00000514: PUSH1 0x20
00000516: ADD
00000517: CALLDATALOAD
00000518: PUSH2 0xffff
0000051b: AND
0000051c: PUSH2 0x1051
0000051f: JUMP
00000520: JUMPDEST
00000521: CALLVALUE
00000522: DUP1
00000523: ISZERO
00000524: PUSH2 0x052c
00000527: JUMPI
00000528: PUSH1 0x00
0000052a: DUP1
0000052b: REVERT
0000052c: JUMPDEST
0000052d: POP
0000052e: PUSH2 0x03ed
00000531: PUSH2 0x1071
00000534: JUMP
00000535: JUMPDEST
00000536: PUSH2 0x038c
00000539: PUSH1 0x04
0000053b: DUP1
0000053c: CALLDATASIZE
0000053d: SUB
0000053e: PUSH1 0x20
00000540: DUP2
00000541: LT
00000542: ISZERO
00000543: PUSH2 0x054b
00000546: JUMPI
00000547: PUSH1 0x00
00000549: DUP1
0000054a: REVERT
0000054b: JUMPDEST
0000054c: POP
0000054d: CALLDATALOAD
0000054e: PUSH1 0x01
00000550: PUSH1 0x01
00000552: PUSH1 0xa0
00000554: SHL
00000555: SUB
00000556: AND
00000557: PUSH2 0x1084
0000055a: JUMP
0000055b: JUMPDEST
0000055c: CALLVALUE
0000055d: DUP1
0000055e: ISZERO
0000055f: PUSH2 0x0567
00000562: JUMPI
00000563: PUSH1 0x00
00000565: DUP1
00000566: REVERT
00000567: JUMPDEST
00000568: POP
00000569: PUSH2 0x038c
0000056c: PUSH1 0x04
0000056e: DUP1
0000056f: CALLDATASIZE
00000570: SUB
00000571: PUSH1 0x20
00000573: DUP2
00000574: LT
00000575: ISZERO
00000576: PUSH2 0x057e
00000579: JUMPI
0000057a: PUSH1 0x00
0000057c: DUP1
0000057d: REVERT
0000057e: JUMPDEST
0000057f: POP
00000580: CALLDATALOAD
00000581: PUSH1 0x01
00000583: PUSH1 0x01
00000585: PUSH1 0x40
00000587: SHL
00000588: SUB
00000589: AND
0000058a: PUSH2 0x1118
0000058d: JUMP
0000058e: JUMPDEST
0000058f: CALLVALUE
00000590: DUP1
00000591: ISZERO
00000592: PUSH2 0x059a
00000595: JUMPI
00000596: PUSH1 0x00
00000598: DUP1
00000599: REVERT
0000059a: JUMPDEST
0000059b: POP
0000059c: PUSH2 0x038c
0000059f: PUSH1 0x04
000005a1: DUP1
000005a2: CALLDATASIZE
000005a3: SUB
000005a4: PUSH1 0x20
000005a6: DUP2
000005a7: LT
000005a8: ISZERO
000005a9: PUSH2 0x05b1
000005ac: JUMPI
000005ad: PUSH1 0x00
000005af: DUP1
000005b0: REVERT
000005b1: JUMPDEST
000005b2: POP
000005b3: CALLDATALOAD
000005b4: PUSH2 0x1445
000005b7: JUMP
000005b8: JUMPDEST
000005b9: CALLVALUE
000005ba: DUP1
000005bb: ISZERO
000005bc: PUSH2 0x05c4
000005bf: JUMPI
000005c0: PUSH1 0x00
000005c2: DUP1
000005c3: REVERT
000005c4: JUMPDEST
000005c5: POP
000005c6: PUSH2 0x05cd
000005c9: PUSH2 0x14b0
000005cc: JUMP
000005cd: JUMPDEST
000005ce: PUSH1 0x40
000005d0: DUP1
000005d1: MLOAD
000005d2: PUSH1 0x01
000005d4: PUSH1 0x01
000005d6: PUSH1 0x40
000005d8: SHL
000005d9: SUB
000005da: SWAP1
000005db: SWAP3
000005dc: AND
000005dd: DUP3
000005de: MSTORE
000005df: MLOAD
000005e0: SWAP1
000005e1: DUP2
000005e2: SWAP1
000005e3: SUB
000005e4: PUSH1 0x20
000005e6: ADD
000005e7: SWAP1
000005e8: RETURN
000005e9: JUMPDEST
000005ea: CALLVALUE
000005eb: DUP1
000005ec: ISZERO
000005ed: PUSH2 0x05f5
000005f0: JUMPI
000005f1: PUSH1 0x00
000005f3: DUP1
000005f4: REVERT
000005f5: JUMPDEST
000005f6: POP
000005f7: PUSH2 0x038c
000005fa: PUSH2 0x14c6
000005fd: JUMP
000005fe: JUMPDEST
000005ff: CALLVALUE
00000600: DUP1
00000601: ISZERO
00000602: PUSH2 0x060a
00000605: JUMPI
00000606: PUSH1 0x00
00000608: DUP1
00000609: REVERT
0000060a: JUMPDEST
0000060b: POP
0000060c: PUSH2 0x03ed
0000060f: PUSH2 0x14c8
00000612: JUMP
00000613: JUMPDEST
00000614: CALLVALUE
00000615: DUP1
00000616: ISZERO
00000617: PUSH2 0x061f
0000061a: JUMPI
0000061b: PUSH1 0x00
0000061d: DUP1
0000061e: REVERT
0000061f: JUMPDEST
00000620: POP
00000621: PUSH2 0x0647
00000624: PUSH1 0x04
00000626: DUP1
00000627: CALLDATASIZE
00000628: SUB
00000629: PUSH1 0x20
0000062b: DUP2
0000062c: LT
0000062d: ISZERO
0000062e: PUSH2 0x0636
00000631: JUMPI
00000632: PUSH1 0x00
00000634: DUP1
00000635: REVERT
00000636: JUMPDEST
00000637: POP
00000638: CALLDATALOAD
00000639: PUSH1 0x01
0000063b: PUSH1 0x01
0000063d: PUSH1 0x50
0000063f: SHL
00000640: SUB
00000641: NOT
00000642: AND
00000643: PUSH2 0x14db
00000646: JUMP
00000647: JUMPDEST
00000648: PUSH1 0x40
0000064a: DUP1
0000064b: MLOAD
0000064c: PUSH1 0x01
0000064e: PUSH1 0x01
00000650: PUSH1 0x80
00000652: SHL
00000653: SUB
00000654: SWAP1
00000655: SWAP4
00000656: AND
00000657: DUP4
00000658: MSTORE
00000659: PUSH1 0xff
0000065b: SWAP1
0000065c: SWAP2
0000065d: AND
0000065e: PUSH1 0x20
00000660: DUP4
00000661: ADD
00000662: MSTORE
00000663: DUP1
00000664: MLOAD
00000665: SWAP2
00000666: DUP3
00000667: SWAP1
00000668: SUB
00000669: ADD
0000066a: SWAP1
0000066b: RETURN
0000066c: JUMPDEST
0000066d: CALLVALUE
0000066e: DUP1
0000066f: ISZERO
00000670: PUSH2 0x0678
00000673: JUMPI
00000674: PUSH1 0x00
00000676: DUP1
00000677: REVERT
00000678: JUMPDEST
00000679: POP
0000067a: PUSH2 0x038c
0000067d: PUSH1 0x04
0000067f: DUP1
00000680: CALLDATASIZE
00000681: SUB
00000682: PUSH1 0x20
00000684: DUP2
00000685: LT
00000686: ISZERO
00000687: PUSH2 0x068f
0000068a: JUMPI
0000068b: PUSH1 0x00
0000068d: DUP1
0000068e: REVERT
0000068f: JUMPDEST
00000690: DUP2
00000691: ADD
00000692: SWAP1
00000693: PUSH1 0x20
00000695: DUP2
00000696: ADD
00000697: DUP2
00000698: CALLDATALOAD
00000699: PUSH1 0x01
0000069b: PUSH1 0x20
0000069d: SHL
0000069e: DUP2
0000069f: GT
000006a0: ISZERO
000006a1: PUSH2 0x06a9
000006a4: JUMPI
000006a5: PUSH1 0x00
000006a7: DUP1
000006a8: REVERT
000006a9: JUMPDEST
000006aa: DUP3
000006ab: ADD
000006ac: DUP4
000006ad: PUSH1 0x20
000006af: DUP3
000006b0: ADD
000006b1: GT
000006b2: ISZERO
000006b3: PUSH2 0x06bb
000006b6: JUMPI
000006b7: PUSH1 0x00
000006b9: DUP1
000006ba: REVERT
000006bb: JUMPDEST
000006bc: DUP1
000006bd: CALLDATALOAD
000006be: SWAP1
000006bf: PUSH1 0x20
000006c1: ADD
000006c2: SWAP2
000006c3: DUP5
000006c4: PUSH1 0x01
000006c6: DUP4
000006c7: MUL
000006c8: DUP5
000006c9: ADD
000006ca: GT
000006cb: PUSH1 0x01
000006cd: PUSH1 0x20
000006cf: SHL
000006d0: DUP4
000006d1: GT
000006d2: OR
000006d3: ISZERO
000006d4: PUSH2 0x06dc
000006d7: JUMPI
000006d8: PUSH1 0x00
000006da: DUP1
000006db: REVERT
000006dc: JUMPDEST
000006dd: POP
000006de: SWAP1
000006df: SWAP3
000006e0: POP
000006e1: SWAP1
000006e2: POP
000006e3: PUSH2 0x1502
000006e6: JUMP
000006e7: JUMPDEST
000006e8: CALLVALUE
000006e9: DUP1
000006ea: ISZERO
000006eb: PUSH2 0x06f3
000006ee: JUMPI
000006ef: PUSH1 0x00
000006f1: DUP1
000006f2: REVERT
000006f3: JUMPDEST
000006f4: POP
000006f5: PUSH2 0x0717
000006f8: PUSH1 0x04
000006fa: DUP1
000006fb: CALLDATASIZE
000006fc: SUB
000006fd: PUSH1 0x20
000006ff: DUP2
00000700: LT
00000701: ISZERO
00000702: PUSH2 0x070a
00000705: JUMPI
00000706: PUSH1 0x00
00000708: DUP1
00000709: REVERT
0000070a: JUMPDEST
0000070b: POP
0000070c: CALLDATALOAD
0000070d: PUSH4 0xffffffff
00000712: AND
00000713: PUSH2 0x15e5
00000716: JUMP
00000717: JUMPDEST
00000718: PUSH1 0x40
0000071a: DUP1
0000071b: MLOAD
0000071c: PUSH4 0xffffffff
00000721: SWAP8
00000722: DUP9
00000723: AND
00000724: DUP2
00000725: MSTORE
00000726: PUSH1 0x01
00000728: PUSH1 0x01
0000072a: PUSH1 0x40
0000072c: SHL
0000072d: SUB
0000072e: SWAP1
0000072f: SWAP7
00000730: AND
00000731: PUSH1 0x20
00000733: DUP8
00000734: ADD
00000735: MSTORE
00000736: SWAP4
00000737: SWAP1
00000738: SWAP6
00000739: AND
0000073a: DUP5
0000073b: DUP5
0000073c: ADD
0000073d: MSTORE
0000073e: PUSH1 0x60
00000740: DUP5
00000741: ADD
00000742: SWAP2
00000743: SWAP1
00000744: SWAP2
00000745: MSTORE
00000746: PUSH1 0x80
00000748: DUP4
00000749: ADD
0000074a: MSTORE
0000074b: PUSH1 0xa0
0000074d: DUP3
0000074e: ADD
0000074f: SWAP3
00000750: SWAP1
00000751: SWAP3
00000752: MSTORE
00000753: SWAP1
00000754: MLOAD
00000755: SWAP1
00000756: DUP2
00000757: SWAP1
00000758: SUB
00000759: PUSH1 0xc0
0000075b: ADD
0000075c: SWAP1
0000075d: RETURN
0000075e: JUMPDEST
0000075f: CALLVALUE
00000760: DUP1
00000761: ISZERO
00000762: PUSH2 0x076a
00000765: JUMPI
00000766: PUSH1 0x00
00000768: DUP1
00000769: REVERT
0000076a: JUMPDEST
0000076b: POP
0000076c: PUSH2 0x05cd
0000076f: PUSH2 0x162e
00000772: JUMP
00000773: JUMPDEST
00000774: CALLVALUE
00000775: DUP1
00000776: ISZERO
00000777: PUSH2 0x077f
0000077a: JUMPI
0000077b: PUSH1 0x00
0000077d: DUP1
0000077e: REVERT
0000077f: JUMPDEST
00000780: POP
00000781: PUSH2 0x038c
00000784: PUSH1 0x04
00000786: DUP1
00000787: CALLDATASIZE
00000788: SUB
00000789: PUSH1 0x20
0000078b: DUP2
0000078c: LT
0000078d: ISZERO
0000078e: PUSH2 0x0796
00000791: JUMPI
00000792: PUSH1 0x00
00000794: DUP1
00000795: REVERT
00000796: JUMPDEST
00000797: POP
00000798: CALLDATALOAD
00000799: PUSH4 0xffffffff
0000079e: AND
0000079f: PUSH2 0x163d
000007a2: JUMP
000007a3: JUMPDEST
000007a4: CALLVALUE
000007a5: DUP1
000007a6: ISZERO
000007a7: PUSH2 0x07af
000007aa: JUMPI
000007ab: PUSH1 0x00
000007ad: DUP1
000007ae: REVERT
000007af: JUMPDEST
000007b0: POP
000007b1: PUSH2 0x038c
000007b4: PUSH1 0x04
000007b6: DUP1
000007b7: CALLDATASIZE
000007b8: SUB
000007b9: PUSH1 0x20
000007bb: DUP2
000007bc: LT
000007bd: ISZERO
000007be: PUSH2 0x07c6
000007c1: JUMPI
000007c2: PUSH1 0x00
000007c4: DUP1
000007c5: REVERT
000007c6: JUMPDEST
000007c7: POP
000007c8: CALLDATALOAD
000007c9: PUSH1 0x01
000007cb: PUSH1 0x01
000007cd: PUSH1 0x80
000007cf: SHL
000007d0: SUB
000007d1: AND
000007d2: PUSH2 0x1a93
000007d5: JUMP
000007d6: JUMPDEST
000007d7: CALLVALUE
000007d8: DUP1
000007d9: ISZERO
000007da: PUSH2 0x07e2
000007dd: JUMPI
000007de: PUSH1 0x00
000007e0: DUP1
000007e1: REVERT
000007e2: JUMPDEST
000007e3: POP
000007e4: PUSH2 0x038c
000007e7: PUSH2 0x1b19
000007ea: JUMP
000007eb: JUMPDEST
000007ec: CALLVALUE
000007ed: DUP1
000007ee: ISZERO
000007ef: PUSH2 0x07f7
000007f2: JUMPI
000007f3: PUSH1 0x00
000007f5: DUP1
000007f6: REVERT
000007f7: JUMPDEST
000007f8: POP
000007f9: PUSH2 0x081e
000007fc: PUSH1 0x04
000007fe: DUP1
000007ff: CALLDATASIZE
00000800: SUB
00000801: PUSH1 0x20
00000803: DUP2
00000804: LT
00000805: ISZERO
00000806: PUSH2 0x080e
00000809: JUMPI
0000080a: PUSH1 0x00
0000080c: DUP1
0000080d: REVERT
0000080e: JUMPDEST
0000080f: POP
00000810: CALLDATALOAD
00000811: PUSH1 0x01
00000813: PUSH1 0x01
00000815: PUSH1 0x40
00000817: SHL
00000818: SUB
00000819: AND
0000081a: PUSH2 0x1b2c
0000081d: JUMP
0000081e: JUMPDEST
0000081f: PUSH1 0x40
00000821: MLOAD
00000822: DUP1
00000823: DUP5
00000824: PUSH1 0x0b
00000826: DUP2
00000827: GT
00000828: ISZERO
00000829: PUSH2 0x082e
0000082c: JUMPI
0000082d: INVALID
0000082e: JUMPDEST
0000082f: PUSH1 0xff
00000831: AND
00000832: DUP2
00000833: MSTORE
00000834: PUSH1 0x20
00000836: ADD
00000837: DUP1
00000838: PUSH1 0x20
0000083a: ADD
0000083b: DUP4
0000083c: DUP2
0000083d: MSTORE
0000083e: PUSH1 0x20
00000840: ADD
00000841: DUP3
00000842: DUP2
00000843: SUB
00000844: DUP3
00000845: MSTORE
00000846: DUP5
00000847: DUP2
00000848: DUP2
00000849: MLOAD
0000084a: DUP2
0000084b: MSTORE
0000084c: PUSH1 0x20
0000084e: ADD
0000084f: SWAP2
00000850: POP
00000851: DUP1
00000852: MLOAD
00000853: SWAP1
00000854: PUSH1 0x20
00000856: ADD
00000857: SWAP1
00000858: DUP1
00000859: DUP4
0000085a: DUP4
0000085b: PUSH1 0x00
0000085d: JUMPDEST
0000085e: DUP4
0000085f: DUP2
00000860: LT
00000861: ISZERO
00000862: PUSH2 0x0875
00000865: JUMPI
00000866: DUP2
00000867: DUP2
00000868: ADD
00000869: MLOAD
0000086a: DUP4
0000086b: DUP3
0000086c: ADD
0000086d: MSTORE
0000086e: PUSH1 0x20
00000870: ADD
00000871: PUSH2 0x085d
00000874: JUMP
00000875: JUMPDEST
00000876: POP
00000877: POP
00000878: POP
00000879: POP
0000087a: SWAP1
0000087b: POP
0000087c: SWAP1
0000087d: DUP2
0000087e: ADD
0000087f: SWAP1
00000880: PUSH1 0x1f
00000882: AND
00000883: DUP1
00000884: ISZERO
00000885: PUSH2 0x08a2
00000888: JUMPI
00000889: DUP1
0000088a: DUP3
0000088b: SUB
0000088c: DUP1
0000088d: MLOAD
0000088e: PUSH1 0x01
00000890: DUP4
00000891: PUSH1 0x20
00000893: SUB
00000894: PUSH2 0x0100
00000897: EXP
00000898: SUB
00000899: NOT
0000089a: AND
0000089b: DUP2
0000089c: MSTORE
0000089d: PUSH1 0x20
0000089f: ADD
000008a0: SWAP2
000008a1: POP
000008a2: JUMPDEST
000008a3: POP
000008a4: SWAP5
000008a5: POP
000008a6: POP
000008a7: POP
000008a8: POP
000008a9: POP
000008aa: PUSH1 0x40
000008ac: MLOAD
000008ad: DUP1
000008ae: SWAP2
000008af: SUB
000008b0: SWAP1
000008b1: RETURN
000008b2: JUMPDEST
000008b3: CALLVALUE
000008b4: DUP1
000008b5: ISZERO
000008b6: PUSH2 0x08be
000008b9: JUMPI
000008ba: PUSH1 0x00
000008bc: DUP1
000008bd: REVERT
000008be: JUMPDEST
000008bf: POP
000008c0: PUSH2 0x038c
000008c3: PUSH2 0x1be0
000008c6: JUMP
000008c7: JUMPDEST
000008c8: CALLVALUE
000008c9: DUP1
000008ca: ISZERO
000008cb: PUSH2 0x08d3
000008ce: JUMPI
000008cf: PUSH1 0x00
000008d1: DUP1
000008d2: REVERT
000008d3: JUMPDEST
000008d4: POP
000008d5: PUSH2 0x04bd
000008d8: PUSH2 0x1bf1
000008db: JUMP
000008dc: JUMPDEST
000008dd: CALLVALUE
000008de: DUP1
000008df: ISZERO
000008e0: PUSH2 0x08e8
000008e3: JUMPI
000008e4: PUSH1 0x00
000008e6: DUP1
000008e7: REVERT
000008e8: JUMPDEST
000008e9: POP
000008ea: PUSH2 0x041b
000008ed: PUSH2 0x1bfb
000008f0: JUMP
000008f1: JUMPDEST
000008f2: CALLVALUE
000008f3: DUP1
000008f4: ISZERO
000008f5: PUSH2 0x08fd
000008f8: JUMPI
000008f9: PUSH1 0x00
000008fb: DUP1
000008fc: REVERT
000008fd: JUMPDEST
000008fe: POP
000008ff: PUSH2 0x041b
00000902: PUSH1 0x04
00000904: DUP1
00000905: CALLDATASIZE
00000906: SUB
00000907: PUSH1 0x40
00000909: DUP2
0000090a: LT
0000090b: ISZERO
0000090c: PUSH2 0x0914
0000090f: JUMPI
00000910: PUSH1 0x00
00000912: DUP1
00000913: REVERT
00000914: JUMPDEST
00000915: POP
00000916: DUP1
00000917: CALLDATALOAD
00000918: PUSH1 0x01
0000091a: PUSH1 0x01
0000091c: PUSH1 0xa0
0000091e: SHL
0000091f: SUB
00000920: AND
00000921: SWAP1
00000922: PUSH1 0x20
00000924: ADD
00000925: CALLDATALOAD
00000926: PUSH4 0xffffffff
0000092b: AND
0000092c: PUSH2 0x1c01
0000092f: JUMP
00000930: JUMPDEST
00000931: CALLVALUE
00000932: DUP1
00000933: ISZERO
00000934: PUSH2 0x093c
00000937: JUMPI
00000938: PUSH1 0x00
0000093a: DUP1
0000093b: REVERT
0000093c: JUMPDEST
0000093d: POP
0000093e: PUSH2 0x038c
00000941: PUSH1 0x04
00000943: DUP1
00000944: CALLDATASIZE
00000945: SUB
00000946: PUSH1 0x20
00000948: DUP2
00000949: LT
0000094a: ISZERO
0000094b: PUSH2 0x0953
0000094e: JUMPI
0000094f: PUSH1 0x00
00000951: DUP1
00000952: REVERT
00000953: JUMPDEST
00000954: POP
00000955: CALLDATALOAD
00000956: PUSH1 0x01
00000958: PUSH1 0x01
0000095a: PUSH1 0xa0
0000095c: SHL
0000095d: SUB
0000095e: AND
0000095f: PUSH2 0x1c1e
00000962: JUMP
00000963: JUMPDEST
00000964: CALLVALUE
00000965: DUP1
00000966: ISZERO
00000967: PUSH2 0x096f
0000096a: JUMPI
0000096b: PUSH1 0x00
0000096d: DUP1
0000096e: REVERT
0000096f: JUMPDEST
00000970: POP
00000971: PUSH2 0x0978
00000974: PUSH2 0x1e01
00000977: JUMP
00000978: JUMPDEST
00000979: PUSH1 0x40
0000097b: DUP1
0000097c: MLOAD
0000097d: PUSH1 0x01
0000097f: PUSH1 0x01
00000981: PUSH1 0x80
00000983: SHL
00000984: SUB
00000985: SWAP1
00000986: SWAP3
00000987: AND
00000988: DUP3
00000989: MSTORE
0000098a: MLOAD
0000098b: SWAP1
0000098c: DUP2
0000098d: SWAP1
0000098e: SUB
0000098f: PUSH1 0x20
00000991: ADD
00000992: SWAP1
00000993: RETURN
00000994: JUMPDEST
00000995: CALLVALUE
00000996: DUP1
00000997: ISZERO
00000998: PUSH2 0x09a0
0000099b: JUMPI
0000099c: PUSH1 0x00
0000099e: DUP1
0000099f: REVERT
000009a0: JUMPDEST
000009a1: POP
000009a2: PUSH2 0x04bd
000009a5: PUSH2 0x1e10
000009a8: JUMP
000009a9: JUMPDEST
000009aa: CALLVALUE
000009ab: DUP1
000009ac: ISZERO
000009ad: PUSH2 0x09b5
000009b0: JUMPI
000009b1: PUSH1 0x00
000009b3: DUP1
000009b4: REVERT
000009b5: JUMPDEST
000009b6: POP
000009b7: PUSH2 0x0978
000009ba: PUSH1 0x04
000009bc: DUP1
000009bd: CALLDATASIZE
000009be: SUB
000009bf: PUSH1 0x80
000009c1: DUP2
000009c2: LT
000009c3: ISZERO
000009c4: PUSH2 0x09cc
000009c7: JUMPI
000009c8: PUSH1 0x00
000009ca: DUP1
000009cb: REVERT
000009cc: JUMPDEST
000009cd: POP
000009ce: PUSH1 0x01
000009d0: PUSH1 0x01
000009d2: PUSH1 0xa0
000009d4: SHL
000009d5: SUB
000009d6: DUP2
000009d7: CALLDATALOAD
000009d8: DUP2
000009d9: AND
000009da: SWAP2
000009db: PUSH1 0x20
000009dd: DUP2
000009de: ADD
000009df: CALLDATALOAD
000009e0: SWAP1
000009e1: SWAP2
000009e2: AND
000009e3: SWAP1
000009e4: PUSH1 0x01
000009e6: PUSH1 0x01
000009e8: PUSH1 0x80
000009ea: SHL
000009eb: SUB
000009ec: PUSH1 0x40
000009ee: DUP3
000009ef: ADD
000009f0: CALLDATALOAD
000009f1: DUP2
000009f2: AND
000009f3: SWAP2
000009f4: PUSH1 0x60
000009f6: ADD
000009f7: CALLDATALOAD
000009f8: AND
000009f9: PUSH2 0x1e19
000009fc: JUMP
000009fd: JUMPDEST
000009fe: CALLVALUE
000009ff: DUP1
00000a00: ISZERO
00000a01: PUSH2 0x0a09
00000a04: JUMPI
00000a05: PUSH1 0x00
00000a07: DUP1
00000a08: REVERT
00000a09: JUMPDEST
00000a0a: POP
00000a0b: PUSH2 0x0a2d
00000a0e: PUSH1 0x04
00000a10: DUP1
00000a11: CALLDATASIZE
00000a12: SUB
00000a13: PUSH1 0x20
00000a15: DUP2
00000a16: LT
00000a17: ISZERO
00000a18: PUSH2 0x0a20
00000a1b: JUMPI
00000a1c: PUSH1 0x00
00000a1e: DUP1
00000a1f: REVERT
00000a20: JUMPDEST
00000a21: POP
00000a22: CALLDATALOAD
00000a23: PUSH4 0xffffffff
00000a28: AND
00000a29: PUSH2 0x20a9
00000a2c: JUMP
00000a2d: JUMPDEST
00000a2e: PUSH1 0x40
00000a30: DUP1
00000a31: MLOAD
00000a32: PUSH1 0x01
00000a34: PUSH1 0x01
00000a36: PUSH1 0xa0
00000a38: SHL
00000a39: SUB
00000a3a: SWAP1
00000a3b: SWAP4
00000a3c: AND
00000a3d: DUP4
00000a3e: MSTORE
00000a3f: PUSH2 0xffff
00000a42: SWAP1
00000a43: SWAP2
00000a44: AND
00000a45: PUSH1 0x20
00000a47: DUP4
00000a48: ADD
00000a49: MSTORE
00000a4a: DUP1
00000a4b: MLOAD
00000a4c: SWAP2
00000a4d: DUP3
00000a4e: SWAP1
00000a4f: SUB
00000a50: ADD
00000a51: SWAP1
00000a52: RETURN
00000a53: JUMPDEST
00000a54: CALLVALUE
00000a55: DUP1
00000a56: ISZERO
00000a57: PUSH2 0x0a5f
00000a5a: JUMPI
00000a5b: PUSH1 0x00
00000a5d: DUP1
00000a5e: REVERT
00000a5f: JUMPDEST
00000a60: POP
00000a61: PUSH2 0x038c
00000a64: PUSH1 0x04
00000a66: DUP1
00000a67: CALLDATASIZE
00000a68: SUB
00000a69: PUSH1 0x40
00000a6b: DUP2
00000a6c: LT
00000a6d: ISZERO
00000a6e: PUSH2 0x0a76
00000a71: JUMPI
00000a72: PUSH1 0x00
00000a74: DUP1
00000a75: REVERT
00000a76: JUMPDEST
00000a77: POP
00000a78: DUP1
00000a79: CALLDATALOAD
00000a7a: PUSH1 0x01
00000a7c: PUSH1 0x01
00000a7e: PUSH1 0x80
00000a80: SHL
00000a81: SUB
00000a82: AND
00000a83: SWAP1
00000a84: PUSH1 0x20
00000a86: ADD
00000a87: CALLDATALOAD
00000a88: PUSH1 0x01
00000a8a: PUSH1 0x01
00000a8c: PUSH1 0xa0
00000a8e: SHL
00000a8f: SUB
00000a90: AND
00000a91: PUSH2 0x20d1
00000a94: JUMP
00000a95: JUMPDEST
00000a96: CALLVALUE
00000a97: DUP1
00000a98: ISZERO
00000a99: PUSH2 0x0aa1
00000a9c: JUMPI
00000a9d: PUSH1 0x00
00000a9f: DUP1
00000aa0: REVERT
00000aa1: JUMPDEST
00000aa2: POP
00000aa3: PUSH2 0x03bc
00000aa6: PUSH2 0x2228
00000aa9: JUMP
00000aaa: JUMPDEST
00000aab: CALLVALUE
00000aac: DUP1
00000aad: ISZERO
00000aae: PUSH2 0x0ab6
00000ab1: JUMPI
00000ab2: PUSH1 0x00
00000ab4: DUP1
00000ab5: REVERT
00000ab6: JUMPDEST
00000ab7: POP
00000ab8: PUSH2 0x04bd
00000abb: PUSH1 0x04
00000abd: DUP1
00000abe: CALLDATASIZE
00000abf: SUB
00000ac0: PUSH1 0x40
00000ac2: DUP2
00000ac3: LT
00000ac4: ISZERO
00000ac5: PUSH2 0x0acd
00000ac8: JUMPI
00000ac9: PUSH1 0x00
00000acb: DUP1
00000acc: REVERT
00000acd: JUMPDEST
00000ace: POP
00000acf: PUSH4 0xffffffff
00000ad4: DUP2
00000ad5: CALLDATALOAD
00000ad6: DUP2
00000ad7: AND
00000ad8: SWAP2
00000ad9: PUSH1 0x20
00000adb: ADD
00000adc: CALLDATALOAD
00000add: AND
00000ade: PUSH2 0x2237
00000ae1: JUMP
00000ae2: JUMPDEST
00000ae3: CALLVALUE
00000ae4: DUP1
00000ae5: ISZERO
00000ae6: PUSH2 0x0aee
00000ae9: JUMPI
00000aea: PUSH1 0x00
00000aec: DUP1
00000aed: REVERT
00000aee: JUMPDEST
00000aef: POP
00000af0: PUSH2 0x038c
00000af3: PUSH1 0x04
00000af5: DUP1
00000af6: CALLDATASIZE
00000af7: SUB
00000af8: PUSH1 0x60
00000afa: DUP2
00000afb: LT
00000afc: ISZERO
00000afd: PUSH2 0x0b05
00000b00: JUMPI
00000b01: PUSH1 0x00
00000b03: DUP1
00000b04: REVERT
00000b05: JUMPDEST
00000b06: POP
00000b07: DUP1
00000b08: CALLDATALOAD
00000b09: SWAP1
00000b0a: PUSH1 0x01
00000b0c: PUSH1 0x01
00000b0e: PUSH1 0xa0
00000b10: SHL
00000b11: SUB
00000b12: PUSH1 0x20
00000b14: DUP3
00000b15: ADD
00000b16: CALLDATALOAD
00000b17: DUP2
00000b18: AND
00000b19: SWAP2
00000b1a: PUSH1 0x40
00000b1c: ADD
00000b1d: CALLDATALOAD
00000b1e: AND
00000b1f: PUSH2 0x2257
00000b22: JUMP
00000b23: JUMPDEST
00000b24: CALLVALUE
00000b25: DUP1
00000b26: ISZERO
00000b27: PUSH2 0x0b2f
00000b2a: JUMPI
00000b2b: PUSH1 0x00
00000b2d: DUP1
00000b2e: REVERT
00000b2f: JUMPDEST
00000b30: POP
00000b31: PUSH2 0x038c
00000b34: PUSH1 0x04
00000b36: DUP1
00000b37: CALLDATASIZE
00000b38: SUB
00000b39: PUSH1 0x20
00000b3b: DUP2
00000b3c: LT
00000b3d: ISZERO
00000b3e: PUSH2 0x0b46
00000b41: JUMPI
00000b42: PUSH1 0x00
00000b44: DUP1
00000b45: REVERT
00000b46: JUMPDEST
00000b47: POP
00000b48: CALLDATALOAD
00000b49: PUSH1 0x01
00000b4b: PUSH1 0x01
00000b4d: PUSH1 0x80
00000b4f: SHL
00000b50: SUB
00000b51: AND
00000b52: PUSH2 0x233f
00000b55: JUMP
00000b56: JUMPDEST
00000b57: CALLVALUE
00000b58: DUP1
00000b59: ISZERO
00000b5a: PUSH2 0x0b62
00000b5d: JUMPI
00000b5e: PUSH1 0x00
00000b60: DUP1
00000b61: REVERT
00000b62: JUMPDEST
00000b63: POP
00000b64: PUSH2 0x05cd
00000b67: PUSH2 0x2449
00000b6a: JUMP
00000b6b: JUMPDEST
00000b6c: CALLVALUE
00000b6d: DUP1
00000b6e: ISZERO
00000b6f: PUSH2 0x0b77
00000b72: JUMPI
00000b73: PUSH1 0x00
00000b75: DUP1
00000b76: REVERT
00000b77: JUMPDEST
00000b78: POP
00000b79: PUSH2 0x038c
00000b7c: PUSH1 0x04
00000b7e: DUP1
00000b7f: CALLDATASIZE
00000b80: SUB
00000b81: PUSH1 0x40
00000b83: DUP2
00000b84: LT
00000b85: ISZERO
00000b86: PUSH2 0x0b8e
00000b89: JUMPI
00000b8a: PUSH1 0x00
00000b8c: DUP1
00000b8d: REVERT
00000b8e: JUMPDEST
00000b8f: POP
00000b90: DUP1
00000b91: CALLDATALOAD
00000b92: PUSH1 0x01
00000b94: PUSH1 0x01
00000b96: PUSH1 0xa0
00000b98: SHL
00000b99: SUB
00000b9a: AND
00000b9b: SWAP1
00000b9c: PUSH1 0x20
00000b9e: ADD
00000b9f: CALLDATALOAD
00000ba0: PUSH1 0x01
00000ba2: PUSH1 0x01
00000ba4: PUSH1 0x80
00000ba6: SHL
00000ba7: SUB
00000ba8: AND
00000ba9: PUSH2 0x245f
00000bac: JUMP
00000bad: JUMPDEST
00000bae: CALLVALUE
00000baf: DUP1
00000bb0: ISZERO
00000bb1: PUSH2 0x0bb9
00000bb4: JUMPI
00000bb5: PUSH1 0x00
00000bb7: DUP1
00000bb8: REVERT
00000bb9: JUMPDEST
00000bba: POP
00000bbb: PUSH2 0x038c
00000bbe: PUSH1 0x04
00000bc0: DUP1
00000bc1: CALLDATASIZE
00000bc2: SUB
00000bc3: PUSH1 0x40
00000bc5: DUP2
00000bc6: LT
00000bc7: ISZERO
00000bc8: PUSH2 0x0bd0
00000bcb: JUMPI
00000bcc: PUSH1 0x00
00000bce: DUP1
00000bcf: REVERT
00000bd0: JUMPDEST
00000bd1: POP
00000bd2: PUSH1 0x01
00000bd4: PUSH1 0x01
00000bd6: PUSH1 0xa0
00000bd8: SHL
00000bd9: SUB
00000bda: DUP2
00000bdb: CALLDATALOAD
00000bdc: DUP2
00000bdd: AND
00000bde: SWAP2
00000bdf: PUSH1 0x20
00000be1: ADD
00000be2: CALLDATALOAD
00000be3: AND
00000be4: PUSH2 0x2653
00000be7: JUMP
00000be8: JUMPDEST
00000be9: CALLVALUE
00000bea: DUP1
00000beb: ISZERO
00000bec: PUSH2 0x0bf4
00000bef: JUMPI
00000bf0: PUSH1 0x00
00000bf2: DUP1
00000bf3: REVERT
00000bf4: JUMPDEST
00000bf5: POP
00000bf6: PUSH2 0x0bfd
00000bf9: PUSH2 0x290b
00000bfc: JUMP
00000bfd: JUMPDEST
00000bfe: PUSH1 0x40
00000c00: DUP1
00000c01: MLOAD
00000c02: PUSH2 0xffff
00000c05: SWAP1
00000c06: SWAP3
00000c07: AND
00000c08: DUP3
00000c09: MSTORE
00000c0a: MLOAD
00000c0b: SWAP1
00000c0c: DUP2
00000c0d: SWAP1
00000c0e: SUB
00000c0f: PUSH1 0x20
00000c11: ADD
00000c12: SWAP1
00000c13: RETURN
00000c14: JUMPDEST
00000c15: CALLVALUE
00000c16: DUP1
00000c17: ISZERO
00000c18: PUSH2 0x0c20
00000c1b: JUMPI
00000c1c: PUSH1 0x00
00000c1e: DUP1
00000c1f: REVERT
00000c20: JUMPDEST
00000c21: POP
00000c22: PUSH2 0x03ed
00000c25: PUSH2 0x2915
00000c28: JUMP
00000c29: JUMPDEST
00000c2a: CALLVALUE
00000c2b: DUP1
00000c2c: ISZERO
00000c2d: PUSH2 0x0c35
00000c30: JUMPI
00000c31: PUSH1 0x00
00000c33: DUP1
00000c34: REVERT
00000c35: JUMPDEST
00000c36: POP
00000c37: PUSH2 0x038c
00000c3a: PUSH1 0x04
00000c3c: DUP1
00000c3d: CALLDATASIZE
00000c3e: SUB
00000c3f: PUSH1 0x60
00000c41: DUP2
00000c42: LT
00000c43: ISZERO
00000c44: PUSH2 0x0c4c
00000c47: JUMPI
00000c48: PUSH1 0x00
00000c4a: DUP1
00000c4b: REVERT
00000c4c: JUMPDEST
00000c4d: POP
00000c4e: PUSH1 0x01
00000c50: PUSH1 0x01
00000c52: PUSH1 0xa0
00000c54: SHL
00000c55: SUB
00000c56: DUP2
00000c57: CALLDATALOAD
00000c58: DUP2
00000c59: AND
00000c5a: SWAP2
00000c5b: PUSH1 0x01
00000c5d: PUSH1 0x01
00000c5f: PUSH1 0x68
00000c61: SHL
00000c62: SUB
00000c63: PUSH1 0x20
00000c65: DUP3
00000c66: ADD
00000c67: CALLDATALOAD
00000c68: AND
00000c69: SWAP2
00000c6a: PUSH1 0x40
00000c6c: SWAP1
00000c6d: SWAP2
00000c6e: ADD
00000c6f: CALLDATALOAD
00000c70: AND
00000c71: PUSH2 0x2921
00000c74: JUMP
00000c75: JUMPDEST
00000c76: CALLVALUE
00000c77: DUP1
00000c78: ISZERO
00000c79: PUSH2 0x0c81
00000c7c: JUMPI
00000c7d: PUSH1 0x00
00000c7f: DUP1
00000c80: REVERT
00000c81: JUMPDEST
00000c82: POP
00000c83: PUSH2 0x03bc
00000c86: PUSH2 0x2e27
00000c89: JUMP
00000c8a: JUMPDEST
00000c8b: CALLVALUE
00000c8c: DUP1
00000c8d: ISZERO
00000c8e: PUSH2 0x0c96
00000c91: JUMPI
00000c92: PUSH1 0x00
00000c94: DUP1
00000c95: REVERT
00000c96: JUMPDEST
00000c97: POP
00000c98: PUSH2 0x0bfd
00000c9b: PUSH1 0x04
00000c9d: DUP1
00000c9e: CALLDATASIZE
00000c9f: SUB
00000ca0: PUSH1 0x20
00000ca2: DUP2
00000ca3: LT
00000ca4: ISZERO
00000ca5: PUSH2 0x0cad
00000ca8: JUMPI
00000ca9: PUSH1 0x00
00000cab: DUP1
00000cac: REVERT
00000cad: JUMPDEST
00000cae: POP
00000caf: CALLDATALOAD
00000cb0: PUSH1 0x01
00000cb2: PUSH1 0x01
00000cb4: PUSH1 0xa0
00000cb6: SHL
00000cb7: SUB
00000cb8: AND
00000cb9: PUSH2 0x2e36
00000cbc: JUMP
00000cbd: JUMPDEST
00000cbe: CALLVALUE
00000cbf: DUP1
00000cc0: ISZERO
00000cc1: PUSH2 0x0cc9
00000cc4: JUMPI
00000cc5: PUSH1 0x00
00000cc7: DUP1
00000cc8: REVERT
00000cc9: JUMPDEST
00000cca: POP
00000ccb: PUSH2 0x038c
00000cce: PUSH1 0x04
00000cd0: DUP1
00000cd1: CALLDATASIZE
00000cd2: SUB
00000cd3: PUSH1 0x60
00000cd5: DUP2
00000cd6: LT
00000cd7: ISZERO
00000cd8: PUSH2 0x0ce0
00000cdb: JUMPI
00000cdc: PUSH1 0x00
00000cde: DUP1
00000cdf: REVERT
00000ce0: JUMPDEST
00000ce1: POP
00000ce2: PUSH1 0x01
00000ce4: PUSH1 0x01
00000ce6: PUSH1 0xa0
00000ce8: SHL
00000ce9: SUB
00000cea: DUP2
00000ceb: CALLDATALOAD
00000cec: DUP2
00000ced: AND
00000cee: SWAP2
00000cef: PUSH1 0x01
00000cf1: PUSH1 0x01
00000cf3: PUSH1 0x80
00000cf5: SHL
00000cf6: SUB
00000cf7: PUSH1 0x20
00000cf9: DUP3
00000cfa: ADD
00000cfb: CALLDATALOAD
00000cfc: AND
00000cfd: SWAP2
00000cfe: PUSH1 0x40
00000d00: SWAP1
00000d01: SWAP2
00000d02: ADD
00000d03: CALLDATALOAD
00000d04: AND
00000d05: PUSH2 0x2ed6
00000d08: JUMP
00000d09: JUMPDEST
00000d0a: CALLVALUE
00000d0b: DUP1
00000d0c: ISZERO
00000d0d: PUSH2 0x0d15
00000d10: JUMPI
00000d11: PUSH1 0x00
00000d13: DUP1
00000d14: REVERT
00000d15: JUMPDEST
00000d16: POP
00000d17: PUSH2 0x0978
00000d1a: PUSH1 0x04
00000d1c: DUP1
00000d1d: CALLDATASIZE
00000d1e: SUB
00000d1f: PUSH1 0x40
00000d21: DUP2
00000d22: LT
00000d23: ISZERO
00000d24: PUSH2 0x0d2c
00000d27: JUMPI
00000d28: PUSH1 0x00
00000d2a: DUP1
00000d2b: REVERT
00000d2c: JUMPDEST
00000d2d: POP
00000d2e: DUP1
00000d2f: CALLDATALOAD
00000d30: PUSH1 0x01
00000d32: PUSH1 0x01
00000d34: PUSH1 0xa0
00000d36: SHL
00000d37: SUB
00000d38: AND
00000d39: SWAP1
00000d3a: PUSH1 0x20
00000d3c: ADD
00000d3d: CALLDATALOAD
00000d3e: PUSH2 0xffff
00000d41: AND
00000d42: PUSH2 0x30f4
00000d45: JUMP
00000d46: JUMPDEST
00000d47: CALLVALUE
00000d48: DUP1
00000d49: ISZERO
00000d4a: PUSH2 0x0d52
00000d4d: JUMPI
00000d4e: PUSH1 0x00
00000d50: DUP1
00000d51: REVERT
00000d52: JUMPDEST
00000d53: POP
00000d54: PUSH2 0x03ed
00000d57: PUSH2 0x312f
00000d5a: JUMP
00000d5b: JUMPDEST
00000d5c: CALLVALUE
00000d5d: DUP1
00000d5e: ISZERO
00000d5f: PUSH2 0x0d67
00000d62: JUMPI
00000d63: PUSH1 0x00
00000d65: DUP1
00000d66: REVERT
00000d67: JUMPDEST
00000d68: POP
00000d69: PUSH2 0x0bfd
00000d6c: PUSH1 0x04
00000d6e: DUP1
00000d6f: CALLDATASIZE
00000d70: SUB
00000d71: PUSH1 0x20
00000d73: DUP2
00000d74: LT
00000d75: ISZERO
00000d76: PUSH2 0x0d7e
00000d79: JUMPI
00000d7a: PUSH1 0x00
00000d7c: DUP1
00000d7d: REVERT
00000d7e: JUMPDEST
00000d7f: POP
00000d80: CALLDATALOAD
00000d81: PUSH1 0x01
00000d83: PUSH1 0x01
00000d85: PUSH1 0xa0
00000d87: SHL
00000d88: SUB
00000d89: AND
00000d8a: PUSH2 0x3142
00000d8d: JUMP
00000d8e: JUMPDEST
00000d8f: CALLVALUE
00000d90: DUP1
00000d91: ISZERO
00000d92: PUSH2 0x0d9a
00000d95: JUMPI
00000d96: PUSH1 0x00
00000d98: DUP1
00000d99: REVERT
00000d9a: JUMPDEST
00000d9b: POP
00000d9c: PUSH2 0x041b
00000d9f: PUSH2 0x3158
00000da2: JUMP
00000da3: JUMPDEST
00000da4: PUSH1 0x00
00000da6: DUP1
00000da7: MLOAD
00000da8: PUSH1 0x20
00000daa: PUSH2 0x4172
00000dad: DUP4
00000dae: CODECOPY
00000daf: DUP2
00000db0: MLOAD
00000db1: SWAP2
00000db2: MSTORE
00000db3: SLOAD
00000db4: DUP1
00000db5: PUSH2 0x0df3
00000db8: JUMPI
00000db9: PUSH1 0x40
00000dbb: DUP1
00000dbc: MLOAD
00000dbd: PUSH3 0x461bcd
00000dc1: PUSH1 0xe5
00000dc3: SHL
00000dc4: DUP2
00000dc5: MSTORE
00000dc6: PUSH1 0x20
00000dc8: PUSH1 0x04
00000dca: DUP3
00000dcb: ADD
00000dcc: MSTORE
00000dcd: PUSH1 0x1f
00000dcf: PUSH1 0x24
00000dd1: DUP3
00000dd2: ADD
00000dd3: MSTORE
00000dd4: PUSH1 0x00
00000dd6: DUP1
00000dd7: MLOAD
00000dd8: PUSH1 0x20
00000dda: PUSH2 0x412c
00000ddd: DUP4
00000dde: CODECOPY
00000ddf: DUP2
00000de0: MLOAD
00000de1: SWAP2
00000de2: MSTORE
00000de3: PUSH1 0x44
00000de5: DUP3
00000de6: ADD
00000de7: MSTORE
00000de8: SWAP1
00000de9: MLOAD
00000dea: SWAP1
00000deb: DUP2
00000dec: SWAP1
00000ded: SUB
00000dee: PUSH1 0x64
00000df0: ADD
00000df1: SWAP1
00000df2: REVERT
00000df3: JUMPDEST
00000df4: PUSH1 0x00
00000df6: PUSH1 0x00
00000df8: DUP1
00000df9: MLOAD
00000dfa: PUSH1 0x20
00000dfc: PUSH2 0x4172
00000dff: DUP4
00000e00: CODECOPY
00000e01: DUP2
00000e02: MLOAD
00000e03: SWAP2
00000e04: MSTORE
00000e05: SSTORE
00000e06: PUSH2 0x0e0d
00000e09: PUSH2 0x315e
00000e0c: JUMP
00000e0d: JUMPDEST
00000e0e: PUSH4 0x0fffffff
00000e13: PUSH4 0xffffffff
00000e18: DUP5
00000e19: AND
00000e1a: GT
00000e1b: ISZERO
00000e1c: PUSH2 0x0e54
00000e1f: JUMPI
00000e20: PUSH1 0x40
00000e22: DUP1
00000e23: MLOAD
00000e24: PUSH3 0x461bcd
00000e28: PUSH1 0xe5
00000e2a: SHL
00000e2b: DUP2
00000e2c: MSTORE
00000e2d: PUSH1 0x20
00000e2f: PUSH1 0x04
00000e31: DUP3
00000e32: ADD
00000e33: MSTORE
00000e34: PUSH1 0x05
00000e36: PUSH1 0x24
00000e38: DUP3
00000e39: ADD
00000e3a: MSTORE
00000e3b: PUSH5 0x6665653131
00000e41: PUSH1 0xd8
00000e43: SHL
00000e44: PUSH1 0x44
00000e46: DUP3
00000e47: ADD
00000e48: MSTORE
00000e49: SWAP1
00000e4a: MLOAD
00000e4b: SWAP1
00000e4c: DUP2
00000e4d: SWAP1
00000e4e: SUB
00000e4f: PUSH1 0x64
00000e51: ADD
00000e52: SWAP1
00000e53: REVERT
00000e54: JUMPDEST
00000e55: PUSH1 0x00
00000e57: PUSH1 0x01
00000e59: PUSH1 0x01
00000e5b: PUSH1 0xa0
00000e5d: SHL
00000e5e: SUB
00000e5f: DUP4
00000e60: AND
00000e61: PUSH2 0x0e6c
00000e64: JUMPI
00000e65: POP
00000e66: PUSH1 0x00
00000e68: PUSH2 0x0f2a
00000e6b: JUMP
00000e6c: JUMPDEST
00000e6d: PUSH1 0x07
00000e6f: SLOAD
00000e70: PUSH1 0x40
00000e72: DUP1
00000e73: MLOAD
00000e74: PUSH4 0x75698bb1
00000e79: PUSH1 0xe1
00000e7b: SHL
00000e7c: DUP2
00000e7d: MSTORE
00000e7e: PUSH1 0x01
00000e80: PUSH1 0x01
00000e82: PUSH1 0xa0
00000e84: SHL
00000e85: SUB
00000e86: DUP7
00000e87: DUP2
00000e88: AND
00000e89: PUSH1 0x04
00000e8b: DUP4
00000e8c: ADD
00000e8d: MSTORE
00000e8e: SWAP2
00000e8f: MLOAD
00000e90: SWAP2
00000e91: SWAP1
00000e92: SWAP3
00000e93: AND
00000e94: SWAP2
00000e95: PUSH4 0xead31762
00000e9a: SWAP2
00000e9b: PUSH1 0x24
00000e9d: DUP1
00000e9e: DUP4
00000e9f: ADD
00000ea0: SWAP3
00000ea1: PUSH1 0x20
00000ea3: SWAP3
00000ea4: SWAP2
00000ea5: SWAP1
00000ea6: DUP3
00000ea7: SWAP1
00000ea8: SUB
00000ea9: ADD
00000eaa: DUP2
00000eab: DUP7
00000eac: DUP1
00000ead: EXTCODESIZE
00000eae: ISZERO
00000eaf: DUP1
00000eb0: ISZERO
00000eb1: PUSH2 0x0eb9
00000eb4: JUMPI
00000eb5: PUSH1 0x00
00000eb7: DUP1
00000eb8: REVERT
00000eb9: JUMPDEST
00000eba: POP
00000ebb: GAS
00000ebc: STATICCALL
00000ebd: ISZERO
00000ebe: DUP1
00000ebf: ISZERO
00000ec0: PUSH2 0x0ecd
00000ec3: JUMPI
00000ec4: RETURNDATASIZE
00000ec5: PUSH1 0x00
00000ec7: DUP1
00000ec8: RETURNDATACOPY
00000ec9: RETURNDATASIZE
00000eca: PUSH1 0x00
00000ecc: REVERT
00000ecd: JUMPDEST
00000ece: POP
00000ecf: POP
00000ed0: POP
00000ed1: POP
00000ed2: PUSH1 0x40
00000ed4: MLOAD
00000ed5: RETURNDATASIZE
00000ed6: PUSH1 0x20
00000ed8: DUP2
00000ed9: LT
00000eda: ISZERO
00000edb: PUSH2 0x0ee3
00000ede: JUMPI
00000edf: PUSH1 0x00
00000ee1: DUP1
00000ee2: REVERT
00000ee3: JUMPDEST
00000ee4: POP
00000ee5: MLOAD
00000ee6: SWAP1
00000ee7: POP
00000ee8: PUSH2 0x3fff
00000eeb: PUSH2 0xffff
00000eee: DUP3
00000eef: AND
00000ef0: GT
00000ef1: ISZERO
00000ef2: PUSH2 0x0f2a
00000ef5: JUMPI
00000ef6: PUSH1 0x40
00000ef8: DUP1
00000ef9: MLOAD
00000efa: PUSH3 0x461bcd
00000efe: PUSH1 0xe5
00000f00: SHL
00000f01: DUP2
00000f02: MSTORE
00000f03: PUSH1 0x20
00000f05: PUSH1 0x04
00000f07: DUP3
00000f08: ADD
00000f09: MSTORE
00000f0a: PUSH1 0x05
00000f0c: PUSH1 0x24
00000f0e: DUP3
00000f0f: ADD
00000f10: MSTORE
00000f11: PUSH5 0x3332b29899
00000f17: PUSH1 0xd9
00000f19: SHL
00000f1a: PUSH1 0x44
00000f1c: DUP3
00000f1d: ADD
00000f1e: MSTORE
00000f1f: SWAP1
00000f20: MLOAD
00000f21: SWAP1
00000f22: DUP2
00000f23: SWAP1
00000f24: SUB
00000f25: PUSH1 0x64
00000f27: ADD
00000f28: SWAP1
00000f29: REVERT
00000f2a: JUMPDEST
00000f2b: PUSH2 0x0f32
00000f2e: PUSH2 0x3ffb
00000f31: JUMP
00000f32: JUMPDEST
00000f33: PUSH1 0x40
00000f35: MLOAD
00000f36: DUP1
00000f37: PUSH1 0x80
00000f39: ADD
00000f3a: PUSH1 0x40
00000f3c: MSTORE
00000f3d: DUP1
00000f3e: DUP7
00000f3f: PUSH4 0xffffffff
00000f44: AND
00000f45: DUP2
00000f46: MSTORE
00000f47: PUSH1 0x20
00000f49: ADD
00000f4a: CALLER
00000f4b: PUSH1 0x01
00000f4d: PUSH1 0x01
00000f4f: PUSH1 0xa0
00000f51: SHL
00000f52: SUB
00000f53: AND
00000f54: DUP2
00000f55: MSTORE
00000f56: PUSH1 0x20
00000f58: ADD
00000f59: DUP4
00000f5a: PUSH2 0xffff
00000f5d: AND
00000f5e: DUP2
00000f5f: MSTORE
00000f60: PUSH1 0x20
00000f62: ADD
00000f63: PUSH1 0x00
00000f65: PUSH1 0x01
00000f67: PUSH1 0x01
00000f69: PUSH1 0x80
00000f6b: SHL
00000f6c: SUB
00000f6d: AND
00000f6e: DUP2
00000f6f: MSTORE
00000f70: POP
00000f71: SWAP1
00000f72: POP
00000f73: PUSH1 0x60
00000f75: PUSH2 0x0f7d
00000f78: DUP3
00000f79: PUSH2 0x319e
00000f7c: JUMP
00000f7d: JUMPDEST
00000f7e: SWAP1
00000f7f: POP
00000f80: PUSH2 0x0f9a
00000f83: PUSH1 0x06
00000f85: DUP3
00000f86: PUSH1 0x40
00000f88: MLOAD
00000f89: DUP1
00000f8a: PUSH1 0x20
00000f8c: ADD
00000f8d: PUSH1 0x40
00000f8f: MSTORE
00000f90: DUP1
00000f91: PUSH1 0x00
00000f93: DUP2
00000f94: MSTORE
00000f95: POP
00000f96: PUSH2 0x3233
00000f99: JUMP
00000f9a: JUMPDEST
00000f9b: PUSH1 0x00
00000f9d: PUSH2 0x0fa6
00000fa0: CALLER
00000fa1: DUP6
00000fa2: PUSH2 0x345e
00000fa5: JUMP
00000fa6: JUMPDEST
00000fa7: PUSH1 0x01
00000fa9: PUSH1 0x01
00000fab: PUSH1 0x50
00000fad: SHL
00000fae: SUB
00000faf: NOT
00000fb0: AND
00000fb1: PUSH1 0x00
00000fb3: SWAP1
00000fb4: DUP2
00000fb5: MSTORE
00000fb6: PUSH1 0x09
00000fb8: PUSH1 0x20
00000fba: MSTORE
00000fbb: PUSH1 0x40
00000fbd: SWAP1
00000fbe: KECCAK256
00000fbf: DUP1
00000fc0: SLOAD
00000fc1: PUSH1 0xff
00000fc3: PUSH1 0x80
00000fc5: SHL
00000fc6: NOT
00000fc7: AND
00000fc8: PUSH1 0xff
00000fca: PUSH1 0x80
00000fcc: SHL
00000fcd: OR
00000fce: SWAP1
00000fcf: SSTORE
00000fd0: POP
00000fd1: POP
00000fd2: PUSH1 0x01
00000fd4: PUSH1 0x00
00000fd6: DUP1
00000fd7: MLOAD
00000fd8: PUSH1 0x20
00000fda: PUSH2 0x4172
00000fdd: DUP4
00000fde: CODECOPY
00000fdf: DUP2
00000fe0: MLOAD
00000fe1: SWAP2
00000fe2: MSTORE
00000fe3: SSTORE
00000fe4: POP
00000fe5: POP
00000fe6: POP
00000fe7: POP
00000fe8: POP
00000fe9: JUMP
00000fea: JUMPDEST
00000feb: PUSH1 0x01
00000fed: PUSH1 0x20
00000fef: MSTORE
00000ff0: PUSH1 0x00
00000ff2: SWAP1
00000ff3: DUP2
00000ff4: MSTORE
00000ff5: PUSH1 0x40
00000ff7: SWAP1
00000ff8: KECCAK256
00000ff9: SLOAD
00000ffa: PUSH1 0x01
00000ffc: PUSH1 0x01
00000ffe: PUSH1 0xa0
00001000: SHL
00001001: SUB
00001002: AND
00001003: DUP2
00001004: JUMP
00001005: JUMPDEST
00001006: PUSH1 0x0b
00001008: SLOAD
00001009: PUSH1 0x01
0000100b: PUSH1 0x60
0000100d: SHL
0000100e: SWAP1
0000100f: DIV
00001010: PUSH4 0xffffffff
00001015: AND
00001016: DUP2
00001017: JUMP
00001018: JUMPDEST
00001019: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
0000103a: DUP2
0000103b: JUMP
0000103c: JUMPDEST
0000103d: POP
0000103e: POP
0000103f: JUMP
00001040: JUMPDEST
00001041: PUSH1 0x0f
00001043: SLOAD
00001044: PUSH1 0xff
00001046: AND
00001047: DUP2
00001048: JUMP
00001049: JUMPDEST
0000104a: PUSH3 0x0a8c00
0000104e: JUMPDEST
0000104f: SWAP1
00001050: JUMP
00001051: JUMPDEST
00001052: PUSH1 0x0d
00001054: PUSH1 0x20
00001056: SWAP1
00001057: DUP2
00001058: MSTORE
00001059: PUSH1 0x00
0000105b: SWAP3
0000105c: DUP4
0000105d: MSTORE
0000105e: PUSH1 0x40
00001060: DUP1
00001061: DUP5
00001062: KECCAK256
00001063: SWAP1
00001064: SWAP2
00001065: MSTORE
00001066: SWAP1
00001067: DUP3
00001068: MSTORE
00001069: SWAP1
0000106a: KECCAK256
0000106b: SLOAD
0000106c: PUSH1 0xff
0000106e: AND
0000106f: DUP2
00001070: JUMP
00001071: JUMPDEST
00001072: PUSH1 0x0b
00001074: SLOAD
00001075: PUSH1 0x01
00001077: PUSH1 0x40
00001079: SHL
0000107a: SWAP1
0000107b: DIV
0000107c: PUSH4 0xffffffff
00001081: AND
00001082: DUP2
00001083: JUMP
00001084: JUMPDEST
00001085: PUSH1 0x00
00001087: DUP1
00001088: MLOAD
00001089: PUSH1 0x20
0000108b: PUSH2 0x4172
0000108e: DUP4
0000108f: CODECOPY
00001090: DUP2
00001091: MLOAD
00001092: SWAP2
00001093: MSTORE
00001094: SLOAD
00001095: DUP1
00001096: PUSH2 0x10d4
00001099: JUMPI
0000109a: PUSH1 0x40
0000109c: DUP1
0000109d: MLOAD
0000109e: PUSH3 0x461bcd
000010a2: PUSH1 0xe5
000010a4: SHL
000010a5: DUP2
000010a6: MSTORE
000010a7: PUSH1 0x20
000010a9: PUSH1 0x04
000010ab: DUP3
000010ac: ADD
000010ad: MSTORE
000010ae: PUSH1 0x1f
000010b0: PUSH1 0x24
000010b2: DUP3
000010b3: ADD
000010b4: MSTORE
000010b5: PUSH1 0x00
000010b7: DUP1
000010b8: MLOAD
000010b9: PUSH1 0x20
000010bb: PUSH2 0x412c
000010be: DUP4
000010bf: CODECOPY
000010c0: DUP2
000010c1: MLOAD
000010c2: SWAP2
000010c3: MSTORE
000010c4: PUSH1 0x44
000010c6: DUP3
000010c7: ADD
000010c8: MSTORE
000010c9: SWAP1
000010ca: MLOAD
000010cb: SWAP1
000010cc: DUP2
000010cd: SWAP1
000010ce: SUB
000010cf: PUSH1 0x64
000010d1: ADD
000010d2: SWAP1
000010d3: REVERT
000010d4: JUMPDEST
000010d5: PUSH1 0x00
000010d7: PUSH1 0x00
000010d9: DUP1
000010da: MLOAD
000010db: PUSH1 0x20
000010dd: PUSH2 0x4172
000010e0: DUP4
000010e1: CODECOPY
000010e2: DUP2
000010e3: MLOAD
000010e4: SWAP2
000010e5: MSTORE
000010e6: SSTORE
000010e7: PUSH2 0x10ee
000010ea: PUSH2 0x315e
000010ed: JUMP
000010ee: JUMPDEST
000010ef: PUSH2 0x1102
000010f2: PUSH1 0x00
000010f4: PUSH2 0x10fc
000010f7: CALLVALUE
000010f8: PUSH2 0x347b
000010fb: JUMP
000010fc: JUMPDEST
000010fd: DUP5
000010fe: PUSH2 0x34c3
00001101: JUMP
00001102: JUMPDEST
00001103: PUSH1 0x01
00001105: PUSH1 0x00
00001107: DUP1
00001108: MLOAD
00001109: PUSH1 0x20
0000110b: PUSH2 0x4172
0000110e: DUP4
0000110f: CODECOPY
00001110: DUP2
00001111: MLOAD
00001112: SWAP2
00001113: MSTORE
00001114: SSTORE
00001115: POP
00001116: POP
00001117: JUMP
00001118: JUMPDEST
00001119: PUSH1 0x00
0000111b: DUP1
0000111c: MLOAD
0000111d: PUSH1 0x20
0000111f: PUSH2 0x4172
00001122: DUP4
00001123: CODECOPY
00001124: DUP2
00001125: MLOAD
00001126: SWAP2
00001127: MSTORE
00001128: SLOAD
00001129: DUP1
0000112a: PUSH2 0x1168
0000112d: JUMPI
0000112e: PUSH1 0x40
00001130: DUP1
00001131: MLOAD
00001132: PUSH3 0x461bcd
00001136: PUSH1 0xe5
00001138: SHL
00001139: DUP2
0000113a: MSTORE
0000113b: PUSH1 0x20
0000113d: PUSH1 0x04
0000113f: DUP3
00001140: ADD
00001141: MSTORE
00001142: PUSH1 0x1f
00001144: PUSH1 0x24
00001146: DUP3
00001147: ADD
00001148: MSTORE
00001149: PUSH1 0x00
0000114b: DUP1
0000114c: MLOAD
0000114d: PUSH1 0x20
0000114f: PUSH2 0x412c
00001152: DUP4
00001153: CODECOPY
00001154: DUP2
00001155: MLOAD
00001156: SWAP2
00001157: MSTORE
00001158: PUSH1 0x44
0000115a: DUP3
0000115b: ADD
0000115c: MSTORE
0000115d: SWAP1
0000115e: MLOAD
0000115f: SWAP1
00001160: DUP2
00001161: SWAP1
00001162: SUB
00001163: PUSH1 0x64
00001165: ADD
00001166: SWAP1
00001167: REVERT
00001168: JUMPDEST
00001169: PUSH1 0x00
0000116b: PUSH1 0x00
0000116d: DUP1
0000116e: MLOAD
0000116f: PUSH1 0x20
00001171: PUSH2 0x4172
00001174: DUP4
00001175: CODECOPY
00001176: DUP2
00001177: MLOAD
00001178: SWAP2
00001179: MSTORE
0000117a: SSTORE
0000117b: PUSH1 0x0f
0000117d: SLOAD
0000117e: PUSH1 0xff
00001180: AND
00001181: PUSH2 0x11b9
00001184: JUMPI
00001185: PUSH1 0x40
00001187: DUP1
00001188: MLOAD
00001189: PUSH3 0x461bcd
0000118d: PUSH1 0xe5
0000118f: SHL
00001190: DUP2
00001191: MSTORE
00001192: PUSH1 0x20
00001194: PUSH1 0x04
00001196: DUP3
00001197: ADD
00001198: MSTORE
00001199: PUSH1 0x05
0000119b: PUSH1 0x24
0000119d: DUP3
0000119e: ADD
0000119f: MSTORE
000011a0: PUSH5 0x636f653031
000011a6: PUSH1 0xd8
000011a8: SHL
000011a9: PUSH1 0x44
000011ab: DUP3
000011ac: ADD
000011ad: MSTORE
000011ae: SWAP1
000011af: MLOAD
000011b0: SWAP1
000011b1: DUP2
000011b2: SWAP1
000011b3: SUB
000011b4: PUSH1 0x64
000011b6: ADD
000011b7: SWAP1
000011b8: REVERT
000011b9: JUMPDEST
000011ba: PUSH1 0x12
000011bc: SLOAD
000011bd: PUSH1 0x00
000011bf: SWAP1
000011c0: PUSH2 0x11d9
000011c3: SWAP1
000011c4: PUSH1 0x01
000011c6: PUSH1 0x40
000011c8: SHL
000011c9: SWAP1
000011ca: DIV
000011cb: PUSH1 0x01
000011cd: PUSH1 0x01
000011cf: PUSH1 0x40
000011d1: SHL
000011d2: SUB
000011d3: AND
000011d4: DUP5
000011d5: PUSH2 0x358a
000011d8: JUMP
000011d9: JUMPDEST
000011da: SWAP1
000011db: POP
000011dc: PUSH1 0x00
000011de: DUP2
000011df: PUSH1 0x01
000011e1: PUSH1 0x01
000011e3: PUSH1 0x40
000011e5: SHL
000011e6: SUB
000011e7: AND
000011e8: GT
000011e9: PUSH2 0x1221
000011ec: JUMPI
000011ed: PUSH1 0x40
000011ef: DUP1
000011f0: MLOAD
000011f1: PUSH3 0x461bcd
000011f5: PUSH1 0xe5
000011f7: SHL
000011f8: DUP2
000011f9: MSTORE
000011fa: PUSH1 0x20
000011fc: PUSH1 0x04
000011fe: DUP3
000011ff: ADD
00001200: MSTORE
00001201: PUSH1 0x05
00001203: PUSH1 0x24
00001205: DUP3
00001206: ADD
00001207: MSTORE
00001208: PUSH5 0x31b7b29819
0000120e: PUSH1 0xd9
00001210: SHL
00001211: PUSH1 0x44
00001213: DUP3
00001214: ADD
00001215: MSTORE
00001216: SWAP1
00001217: MLOAD
00001218: SWAP1
00001219: DUP2
0000121a: SWAP1
0000121b: SUB
0000121c: PUSH1 0x64
0000121e: ADD
0000121f: SWAP1
00001220: REVERT
00001221: JUMPDEST
00001222: PUSH1 0x12
00001224: SLOAD
00001225: PUSH1 0x01
00001227: PUSH1 0x01
00001229: PUSH1 0x40
0000122b: SHL
0000122c: SUB
0000122d: AND
0000122e: JUMPDEST
0000122f: PUSH1 0x12
00001231: SLOAD
00001232: PUSH1 0x01
00001234: PUSH1 0x01
00001236: PUSH1 0x40
00001238: SHL
00001239: SUB
0000123a: SWAP1
0000123b: DUP2
0000123c: AND
0000123d: DUP4
0000123e: ADD
0000123f: DUP2
00001240: AND
00001241: SWAP1
00001242: DUP3
00001243: AND
00001244: LT
00001245: ISZERO
00001246: PUSH2 0x13e5
00001249: JUMPI
0000124a: PUSH1 0x01
0000124c: PUSH1 0x01
0000124e: PUSH1 0x01
00001250: PUSH1 0x40
00001252: SHL
00001253: SUB
00001254: DUP3
00001255: AND
00001256: PUSH1 0x00
00001258: SWAP1
00001259: DUP2
0000125a: MSTORE
0000125b: PUSH1 0x11
0000125d: PUSH1 0x20
0000125f: MSTORE
00001260: PUSH1 0x40
00001262: SWAP1
00001263: KECCAK256
00001264: SLOAD
00001265: PUSH1 0xff
00001267: AND
00001268: PUSH1 0x0b
0000126a: DUP2
0000126b: GT
0000126c: ISZERO
0000126d: PUSH2 0x1272
00001270: JUMPI
00001271: INVALID
00001272: JUMPDEST
00001273: EQ
00001274: ISZERO
00001275: PUSH2 0x13a5
00001278: JUMPI
00001279: PUSH2 0x1280
0000127c: PUSH2 0x3ffb
0000127f: JUMP
00001280: JUMPDEST
00001281: PUSH2 0x1349
00001284: PUSH1 0x11
00001286: PUSH1 0x00
00001288: DUP5
00001289: PUSH1 0x01
0000128b: PUSH1 0x01
0000128d: PUSH1 0x40
0000128f: SHL
00001290: SUB
00001291: AND
00001292: PUSH1 0x01
00001294: PUSH1 0x01
00001296: PUSH1 0x40
00001298: SHL
00001299: SUB
0000129a: AND
0000129b: DUP2
0000129c: MSTORE
0000129d: PUSH1 0x20
0000129f: ADD
000012a0: SWAP1
000012a1: DUP2
000012a2: MSTORE
000012a3: PUSH1 0x20
000012a5: ADD
000012a6: PUSH1 0x00
000012a8: KECCAK256
000012a9: PUSH1 0x01
000012ab: ADD
000012ac: DUP1
000012ad: SLOAD
000012ae: PUSH1 0x01
000012b0: DUP2
000012b1: PUSH1 0x01
000012b3: AND
000012b4: ISZERO
000012b5: PUSH2 0x0100
000012b8: MUL
000012b9: SUB
000012ba: AND
000012bb: PUSH1 0x02
000012bd: SWAP1
000012be: DIV
000012bf: DUP1
000012c0: PUSH1 0x1f
000012c2: ADD
000012c3: PUSH1 0x20
000012c5: DUP1
000012c6: SWAP2
000012c7: DIV
000012c8: MUL
000012c9: PUSH1 0x20
000012cb: ADD
000012cc: PUSH1 0x40
000012ce: MLOAD
000012cf: SWAP1
000012d0: DUP2
000012d1: ADD
000012d2: PUSH1 0x40
000012d4: MSTORE
000012d5: DUP1
000012d6: SWAP3
000012d7: SWAP2
000012d8: SWAP1
000012d9: DUP2
000012da: DUP2
000012db: MSTORE
000012dc: PUSH1 0x20
000012de: ADD
000012df: DUP3
000012e0: DUP1
000012e1: SLOAD
000012e2: PUSH1 0x01
000012e4: DUP2
000012e5: PUSH1 0x01
000012e7: AND
000012e8: ISZERO
000012e9: PUSH2 0x0100
000012ec: MUL
000012ed: SUB
000012ee: AND
000012ef: PUSH1 0x02
000012f1: SWAP1
000012f2: DIV
000012f3: DUP1
000012f4: ISZERO
000012f5: PUSH2 0x133f
000012f8: JUMPI
000012f9: DUP1
000012fa: PUSH1 0x1f
000012fc: LT
000012fd: PUSH2 0x1314
00001300: JUMPI
00001301: PUSH2 0x0100
00001304: DUP1
00001305: DUP4
00001306: SLOAD
00001307: DIV
00001308: MUL
00001309: DUP4
0000130a: MSTORE
0000130b: SWAP2
0000130c: PUSH1 0x20
0000130e: ADD
0000130f: SWAP2
00001310: PUSH2 0x133f
00001313: JUMP
00001314: JUMPDEST
00001315: DUP3
00001316: ADD
00001317: SWAP2
00001318: SWAP1
00001319: PUSH1 0x00
0000131b: MSTORE
0000131c: PUSH1 0x20
0000131e: PUSH1 0x00
00001320: KECCAK256
00001321: SWAP1
00001322: JUMPDEST
00001323: DUP2
00001324: SLOAD
00001325: DUP2
00001326: MSTORE
00001327: SWAP1
00001328: PUSH1 0x01
0000132a: ADD
0000132b: SWAP1
0000132c: PUSH1 0x20
0000132e: ADD
0000132f: DUP1
00001330: DUP4
00001331: GT
00001332: PUSH2 0x1322
00001335: JUMPI
00001336: DUP3
00001337: SWAP1
00001338: SUB
00001339: PUSH1 0x1f
0000133b: AND
0000133c: DUP3
0000133d: ADD
0000133e: SWAP2
0000133f: JUMPDEST
00001340: POP
00001341: POP
00001342: POP
00001343: POP
00001344: POP
00001345: PUSH2 0x35b4
00001348: JUMP
00001349: JUMPDEST
0000134a: SWAP1
0000134b: POP
0000134c: PUSH1 0x00
0000134e: PUSH2 0x135f
00001351: DUP3
00001352: PUSH1 0x60
00001354: ADD
00001355: MLOAD
00001356: DUP4
00001357: PUSH1 0x20
00001359: ADD
0000135a: MLOAD
0000135b: PUSH2 0x345e
0000135e: JUMP
0000135f: JUMPDEST
00001360: PUSH1 0x40
00001362: SWAP3
00001363: DUP4
00001364: ADD
00001365: MLOAD
00001366: PUSH1 0x01
00001368: PUSH1 0x01
0000136a: PUSH1 0x50
0000136c: SHL
0000136d: SUB
0000136e: NOT
0000136f: SWAP2
00001370: SWAP1
00001371: SWAP2
00001372: AND
00001373: PUSH1 0x00
00001375: SWAP1
00001376: DUP2
00001377: MSTORE
00001378: PUSH1 0x09
0000137a: PUSH1 0x20
0000137c: MSTORE
0000137d: SWAP3
0000137e: SWAP1
0000137f: SWAP3
00001380: KECCAK256
00001381: DUP1
00001382: SLOAD
00001383: PUSH1 0x01
00001385: PUSH1 0x01
00001387: PUSH1 0x80
00001389: SHL
0000138a: SUB
0000138b: NOT
0000138c: DUP2
0000138d: AND
0000138e: PUSH1 0x01
00001390: PUSH1 0x01
00001392: PUSH1 0x80
00001394: SHL
00001395: SUB
00001396: SWAP2
00001397: DUP3
00001398: AND
00001399: SWAP1
0000139a: SWAP5
0000139b: ADD
0000139c: AND
0000139d: SWAP3
0000139e: SWAP1
0000139f: SWAP3
000013a0: OR
000013a1: SWAP1
000013a2: SWAP2
000013a3: SSTORE
000013a4: POP
000013a5: JUMPDEST
000013a6: PUSH1 0x01
000013a8: PUSH1 0x01
000013aa: PUSH1 0x40
000013ac: SHL
000013ad: SUB
000013ae: DUP2
000013af: AND
000013b0: PUSH1 0x00
000013b2: SWAP1
000013b3: DUP2
000013b4: MSTORE
000013b5: PUSH1 0x11
000013b7: PUSH1 0x20
000013b9: MSTORE
000013ba: PUSH1 0x40
000013bc: DUP2
000013bd: KECCAK256
000013be: DUP1
000013bf: SLOAD
000013c0: PUSH1 0xff
000013c2: NOT
000013c3: AND
000013c4: DUP2
000013c5: SSTORE
000013c6: SWAP1
000013c7: PUSH2 0x13d3
000013ca: PUSH1 0x01
000013cc: DUP4
000013cd: ADD
000013ce: DUP3
000013cf: PUSH2 0x4022
000013d2: JUMP
000013d3: JUMPDEST
000013d4: POP
000013d5: PUSH1 0x00
000013d7: PUSH1 0x02
000013d9: SWAP2
000013da: SWAP1
000013db: SWAP2
000013dc: ADD
000013dd: SSTORE
000013de: PUSH1 0x01
000013e0: ADD
000013e1: PUSH2 0x122e
000013e4: JUMP
000013e5: JUMPDEST
000013e6: POP
000013e7: PUSH1 0x12
000013e9: DUP1
000013ea: SLOAD
000013eb: PUSH8 0xffffffffffffffff
000013f4: PUSH1 0x40
000013f6: SHL
000013f7: NOT
000013f8: PUSH8 0xffffffffffffffff
00001401: NOT
00001402: DUP3
00001403: AND
00001404: PUSH1 0x01
00001406: PUSH1 0x01
00001408: PUSH1 0x40
0000140a: SHL
0000140b: SUB
0000140c: SWAP3
0000140d: DUP4
0000140e: AND
0000140f: DUP6
00001410: ADD
00001411: DUP4
00001412: AND
00001413: OR
00001414: SWAP1
00001415: DUP2
00001416: AND
00001417: PUSH1 0x01
00001419: PUSH1 0x40
0000141b: SHL
0000141c: SWAP2
0000141d: DUP3
0000141e: SWAP1
0000141f: DIV
00001420: DUP4
00001421: AND
00001422: SWAP5
00001423: SWAP1
00001424: SWAP5
00001425: SUB
00001426: SWAP1
00001427: SWAP2
00001428: AND
00001429: MUL
0000142a: SWAP2
0000142b: SWAP1
0000142c: SWAP2
0000142d: OR
0000142e: SWAP1
0000142f: SSTORE
00001430: POP
00001431: POP
00001432: PUSH1 0x01
00001434: PUSH1 0x00
00001436: DUP1
00001437: MLOAD
00001438: PUSH1 0x20
0000143a: PUSH2 0x4172
0000143d: DUP4
0000143e: CODECOPY
0000143f: DUP2
00001440: MLOAD
00001441: SWAP2
00001442: MSTORE
00001443: SSTORE
00001444: JUMP
00001445: JUMPDEST
00001446: PUSH1 0x07
00001448: SLOAD
00001449: PUSH1 0x40
0000144b: DUP1
0000144c: MLOAD
0000144d: PUSH4 0x3d7e13b5
00001452: PUSH1 0xe2
00001454: SHL
00001455: DUP2
00001456: MSTORE
00001457: CALLER
00001458: PUSH1 0x04
0000145a: DUP3
0000145b: ADD
0000145c: MSTORE
0000145d: SWAP1
0000145e: MLOAD
0000145f: PUSH1 0x01
00001461: PUSH1 0x01
00001463: PUSH1 0xa0
00001465: SHL
00001466: SUB
00001467: SWAP1
00001468: SWAP3
00001469: AND
0000146a: SWAP2
0000146b: PUSH4 0xf5f84ed4
00001470: SWAP2
00001471: PUSH1 0x24
00001473: DUP1
00001474: DUP3
00001475: ADD
00001476: SWAP3
00001477: PUSH1 0x00
00001479: SWAP3
0000147a: SWAP1
0000147b: SWAP2
0000147c: SWAP1
0000147d: DUP3
0000147e: SWAP1
0000147f: SUB
00001480: ADD
00001481: DUP2
00001482: DUP7
00001483: DUP1
00001484: EXTCODESIZE
00001485: ISZERO
00001486: DUP1
00001487: ISZERO
00001488: PUSH2 0x1490
0000148b: JUMPI
0000148c: PUSH1 0x00
0000148e: DUP1
0000148f: REVERT
00001490: JUMPDEST
00001491: POP
00001492: GAS
00001493: STATICCALL
00001494: ISZERO
00001495: DUP1
00001496: ISZERO
00001497: PUSH2 0x14a4
0000149a: JUMPI
0000149b: RETURNDATASIZE
0000149c: PUSH1 0x00
0000149e: DUP1
0000149f: RETURNDATACOPY
000014a0: RETURNDATASIZE
000014a1: PUSH1 0x00
000014a3: REVERT
000014a4: JUMPDEST
000014a5: POP
000014a6: POP
000014a7: POP
000014a8: PUSH1 0x16
000014aa: SWAP2
000014ab: SWAP1
000014ac: SWAP2
000014ad: SSTORE
000014ae: POP
000014af: JUMP
000014b0: JUMPDEST
000014b1: PUSH1 0x12
000014b3: SLOAD
000014b4: PUSH1 0x01
000014b6: PUSH1 0x80
000014b8: SHL
000014b9: SWAP1
000014ba: DIV
000014bb: PUSH1 0x01
000014bd: PUSH1 0x01
000014bf: PUSH1 0x40
000014c1: SHL
000014c2: SUB
000014c3: AND
000014c4: DUP2
000014c5: JUMP
000014c6: JUMPDEST
000014c7: JUMP
000014c8: JUMPDEST
000014c9: PUSH1 0x0b
000014cb: SLOAD
000014cc: PUSH1 0x01
000014ce: PUSH1 0x20
000014d0: SHL
000014d1: SWAP1
000014d2: DIV
000014d3: PUSH4 0xffffffff
000014d8: AND
000014d9: DUP2
000014da: JUMP
000014db: JUMPDEST
000014dc: PUSH1 0x09
000014de: PUSH1 0x20
000014e0: MSTORE
000014e1: PUSH1 0x00
000014e3: SWAP1
000014e4: DUP2
000014e5: MSTORE
000014e6: PUSH1 0x40
000014e8: SWAP1
000014e9: KECCAK256
000014ea: SLOAD
000014eb: PUSH1 0x01
000014ed: PUSH1 0x01
000014ef: PUSH1 0x80
000014f1: SHL
000014f2: SUB
000014f3: DUP2
000014f4: AND
000014f5: SWAP1
000014f6: PUSH1 0x01
000014f8: PUSH1 0x80
000014fa: SHL
000014fb: SWAP1
000014fc: DIV
000014fd: PUSH1 0xff
000014ff: AND
00001500: DUP3
00001501: JUMP
00001502: JUMPDEST
00001503: PUSH1 0x07
00001505: SLOAD
00001506: PUSH1 0x01
00001508: PUSH1 0x01
0000150a: PUSH1 0xa0
0000150c: SHL
0000150d: SUB
0000150e: AND
0000150f: ISZERO
00001510: PUSH2 0x1548
00001513: JUMPI
00001514: PUSH1 0x40
00001516: DUP1
00001517: MLOAD
00001518: PUSH3 0x461bcd
0000151c: PUSH1 0xe5
0000151e: SHL
0000151f: DUP2
00001520: MSTORE
00001521: PUSH1 0x20
00001523: PUSH1 0x04
00001525: DUP3
00001526: ADD
00001527: MSTORE
00001528: PUSH1 0x05
0000152a: PUSH1 0x24
0000152c: DUP3
0000152d: ADD
0000152e: MSTORE
0000152f: PUSH5 0x0696e69743
00001535: PUSH1 0xdc
00001537: SHL
00001538: PUSH1 0x44
0000153a: DUP3
0000153b: ADD
0000153c: MSTORE
0000153d: SWAP1
0000153e: MLOAD
0000153f: SWAP1
00001540: DUP2
00001541: SWAP1
00001542: SUB
00001543: PUSH1 0x64
00001545: ADD
00001546: SWAP1
00001547: REVERT
00001548: JUMPDEST
00001549: PUSH2 0x1550
0000154c: PUSH2 0x365e
0000154f: JUMP
00001550: JUMPDEST
00001551: PUSH1 0x00
00001553: DUP1
00001554: PUSH1 0x00
00001556: DUP1
00001557: DUP6
00001558: DUP6
00001559: PUSH1 0x80
0000155b: DUP2
0000155c: LT
0000155d: ISZERO
0000155e: PUSH2 0x1566
00001561: JUMPI
00001562: PUSH1 0x00
00001564: DUP1
00001565: REVERT
00001566: JUMPDEST
00001567: POP
00001568: PUSH1 0x05
0000156a: DUP1
0000156b: SLOAD
0000156c: PUSH1 0x01
0000156e: PUSH1 0x01
00001570: PUSH1 0xa0
00001572: SHL
00001573: SUB
00001574: PUSH1 0x20
00001576: DUP5
00001577: ADD
00001578: CALLDATALOAD
00001579: DUP2
0000157a: AND
0000157b: PUSH1 0x01
0000157d: PUSH1 0x01
0000157f: PUSH1 0xa0
00001581: SHL
00001582: SUB
00001583: NOT
00001584: SWAP3
00001585: DUP4
00001586: AND
00001587: OR
00001588: SWAP1
00001589: SWAP3
0000158a: SSTORE
0000158b: PUSH1 0x06
0000158d: DUP1
0000158e: SLOAD
0000158f: PUSH1 0x40
00001591: DUP6
00001592: ADD
00001593: CALLDATALOAD
00001594: DUP5
00001595: AND
00001596: SWAP1
00001597: DUP4
00001598: AND
00001599: OR
0000159a: SWAP1
0000159b: SSTORE
0000159c: PUSH1 0x07
0000159e: DUP1
0000159f: SLOAD
000015a0: DUP5
000015a1: CALLDATALOAD
000015a2: DUP5
000015a3: AND
000015a4: SWAP1
000015a5: DUP4
000015a6: AND
000015a7: OR
000015a8: SWAP1
000015a9: SSTORE
000015aa: PUSH1 0x08
000015ac: DUP1
000015ad: SLOAD
000015ae: PUSH1 0x60
000015b0: SWAP1
000015b1: SWAP5
000015b2: ADD
000015b3: CALLDATALOAD
000015b4: SWAP1
000015b5: SWAP3
000015b6: AND
000015b7: SWAP3
000015b8: AND
000015b9: SWAP2
000015ba: SWAP1
000015bb: SWAP2
000015bc: OR
000015bd: SWAP1
000015be: SSTORE
000015bf: POP
000015c0: POP
000015c1: PUSH1 0x15
000015c3: DUP1
000015c4: SLOAD
000015c5: PUSH1 0x01
000015c7: PUSH1 0x55
000015c9: SHL
000015ca: PUSH1 0x01
000015cc: PUSH1 0x01
000015ce: PUSH1 0x80
000015d0: SHL
000015d1: SUB
000015d2: NOT
000015d3: SWAP1
000015d4: SWAP2
000015d5: AND
000015d6: OR
000015d7: SWAP1
000015d8: SSTORE
000015d9: POP
000015da: POP
000015db: PUSH3 0x055730
000015df: PUSH1 0x16
000015e1: SSTORE
000015e2: POP
000015e3: POP
000015e4: JUMP
000015e5: JUMPDEST
000015e6: PUSH1 0x0c
000015e8: PUSH1 0x20
000015ea: MSTORE
000015eb: PUSH1 0x00
000015ed: SWAP1
000015ee: DUP2
000015ef: MSTORE
000015f0: PUSH1 0x40
000015f2: SWAP1
000015f3: KECCAK256
000015f4: DUP1
000015f5: SLOAD
000015f6: PUSH1 0x01
000015f8: DUP3
000015f9: ADD
000015fa: SLOAD
000015fb: PUSH1 0x02
000015fd: DUP4
000015fe: ADD
000015ff: SLOAD
00001600: PUSH1 0x03
00001602: SWAP1
00001603: SWAP4
00001604: ADD
00001605: SLOAD
00001606: PUSH4 0xffffffff
0000160b: DUP1
0000160c: DUP5
0000160d: AND
0000160e: SWAP5
0000160f: PUSH1 0x01
00001611: PUSH1 0x01
00001613: PUSH1 0x40
00001615: SHL
00001616: SUB
00001617: PUSH1 0x01
00001619: PUSH1 0x20
0000161b: SHL
0000161c: DUP7
0000161d: DIV
0000161e: AND
0000161f: SWAP5
00001620: PUSH1 0x01
00001622: PUSH1 0x60
00001624: SHL
00001625: SWAP1
00001626: DIV
00001627: SWAP1
00001628: SWAP2
00001629: AND
0000162a: SWAP3
0000162b: SWAP2
0000162c: DUP7
0000162d: JUMP
0000162e: JUMPDEST
0000162f: PUSH1 0x12
00001631: SLOAD
00001632: PUSH1 0x01
00001634: PUSH1 0x01
00001636: PUSH1 0x40
00001638: SHL
00001639: SUB
0000163a: AND
0000163b: DUP2
0000163c: JUMP
0000163d: JUMPDEST
0000163e: PUSH1 0x00
00001640: DUP1
00001641: MLOAD
00001642: PUSH1 0x20
00001644: PUSH2 0x4172
00001647: DUP4
00001648: CODECOPY
00001649: DUP2
0000164a: MLOAD
0000164b: SWAP2
0000164c: MSTORE
0000164d: SLOAD
0000164e: DUP1
0000164f: PUSH2 0x168d
00001652: JUMPI
00001653: PUSH1 0x40
00001655: DUP1
00001656: MLOAD
00001657: PUSH3 0x461bcd
0000165b: PUSH1 0xe5
0000165d: SHL
0000165e: DUP2
0000165f: MSTORE
00001660: PUSH1 0x20
00001662: PUSH1 0x04
00001664: DUP3
00001665: ADD
00001666: MSTORE
00001667: PUSH1 0x1f
00001669: PUSH1 0x24
0000166b: DUP3
0000166c: ADD
0000166d: MSTORE
0000166e: PUSH1 0x00
00001670: DUP1
00001671: MLOAD
00001672: PUSH1 0x20
00001674: PUSH2 0x412c
00001677: DUP4
00001678: CODECOPY
00001679: DUP2
0000167a: MLOAD
0000167b: SWAP2
0000167c: MSTORE
0000167d: PUSH1 0x44
0000167f: DUP3
00001680: ADD
00001681: MSTORE
00001682: SWAP1
00001683: MLOAD
00001684: SWAP1
00001685: DUP2
00001686: SWAP1
00001687: SUB
00001688: PUSH1 0x64
0000168a: ADD
0000168b: SWAP1
0000168c: REVERT
0000168d: JUMPDEST
0000168e: PUSH1 0x00
00001690: PUSH1 0x00
00001692: DUP1
00001693: MLOAD
00001694: PUSH1 0x20
00001696: PUSH2 0x4172
00001699: DUP4
0000169a: CODECOPY
0000169b: DUP2
0000169c: MLOAD
0000169d: SWAP2
0000169e: MSTORE
0000169f: SSTORE
000016a0: PUSH1 0x00
000016a2: PUSH2 0x16bd
000016a5: DUP4
000016a6: PUSH1 0x0b
000016a8: PUSH1 0x04
000016aa: SWAP1
000016ab: SLOAD
000016ac: SWAP1
000016ad: PUSH2 0x0100
000016b0: EXP
000016b1: SWAP1
000016b2: DIV
000016b3: PUSH4 0xffffffff
000016b8: AND
000016b9: PUSH2 0x3672
000016bc: JUMP
000016bd: JUMPDEST
000016be: PUSH1 0x0b
000016c0: DUP1
000016c1: SLOAD
000016c2: PUSH1 0x01
000016c4: PUSH1 0x20
000016c6: SHL
000016c7: DUP1
000016c8: DUP3
000016c9: DIV
000016ca: PUSH4 0xffffffff
000016cf: SWAP1
000016d0: DUP2
000016d1: AND
000016d2: DUP6
000016d3: SWAP1
000016d4: SUB
000016d5: DUP2
000016d6: AND
000016d7: SWAP1
000016d8: SWAP2
000016d9: MUL
000016da: PUSH8 0xffffffff00000000
000016e3: NOT
000016e4: DUP4
000016e5: AND
000016e6: OR
000016e7: DUP1
000016e8: DUP3
000016e9: AND
000016ea: DUP6
000016eb: ADD
000016ec: DUP3
000016ed: AND
000016ee: PUSH4 0xffffffff
000016f3: NOT
000016f4: SWAP1
000016f5: SWAP2
000016f6: AND
000016f7: OR
000016f8: SWAP1
000016f9: SWAP3
000016fa: SSTORE
000016fb: SWAP2
000016fc: SWAP3
000016fd: POP
000016fe: AND
000016ff: DUP1
00001700: JUMPDEST
00001701: DUP3
00001702: DUP3
00001703: ADD
00001704: PUSH4 0xffffffff
00001709: AND
0000170a: DUP2
0000170b: PUSH4 0xffffffff
00001710: AND
00001711: LT
00001712: ISZERO
00001713: PUSH2 0x1a29
00001716: JUMPI
00001717: PUSH4 0xffffffff
0000171c: DUP2
0000171d: AND
0000171e: PUSH1 0x00
00001720: SWAP1
00001721: DUP2
00001722: MSTORE
00001723: PUSH1 0x0a
00001725: PUSH1 0x20
00001727: MSTORE
00001728: PUSH1 0x40
0000172a: DUP2
0000172b: KECCAK256
0000172c: DUP1
0000172d: SLOAD
0000172e: PUSH1 0x01
00001730: PUSH1 0x01
00001732: PUSH1 0xb0
00001734: SHL
00001735: SUB
00001736: NOT
00001737: DUP2
00001738: AND
00001739: SWAP1
0000173a: SWAP2
0000173b: SSTORE
0000173c: PUSH2 0xffff
0000173f: PUSH1 0x01
00001741: PUSH1 0xa0
00001743: SHL
00001744: DUP3
00001745: DIV
00001746: AND
00001747: SWAP2
00001748: PUSH1 0x01
0000174a: PUSH1 0x01
0000174c: PUSH1 0xa0
0000174e: SHL
0000174f: SUB
00001750: SWAP1
00001751: SWAP2
00001752: AND
00001753: SWAP1
00001754: PUSH2 0x175d
00001757: DUP3
00001758: DUP5
00001759: PUSH2 0x345e
0000175c: JUMP
0000175d: JUMPDEST
0000175e: PUSH1 0x01
00001760: PUSH1 0x01
00001762: PUSH1 0x50
00001764: SHL
00001765: SUB
00001766: NOT
00001767: DUP2
00001768: AND
00001769: PUSH1 0x00
0000176b: SWAP1
0000176c: DUP2
0000176d: MSTORE
0000176e: PUSH1 0x09
00001770: PUSH1 0x20
00001772: MSTORE
00001773: PUSH1 0x40
00001775: SWAP1
00001776: KECCAK256
00001777: SLOAD
00001778: SWAP1
00001779: SWAP2
0000177a: POP
0000177b: PUSH1 0x01
0000177d: PUSH1 0x01
0000177f: PUSH1 0x80
00001781: SHL
00001782: SUB
00001783: AND
00001784: DUP1
00001785: ISZERO
00001786: PUSH2 0x1a1a
00001789: JUMPI
0000178a: PUSH1 0x01
0000178c: PUSH1 0x01
0000178e: PUSH1 0x50
00001790: SHL
00001791: SUB
00001792: NOT
00001793: DUP3
00001794: AND
00001795: PUSH1 0x00
00001797: SWAP1
00001798: DUP2
00001799: MSTORE
0000179a: PUSH1 0x09
0000179c: PUSH1 0x20
0000179e: MSTORE
0000179f: PUSH1 0x40
000017a1: DUP2
000017a2: KECCAK256
000017a3: DUP1
000017a4: SLOAD
000017a5: PUSH1 0x01
000017a7: PUSH1 0x01
000017a9: PUSH1 0x80
000017ab: SHL
000017ac: SUB
000017ad: DUP1
000017ae: DUP3
000017af: AND
000017b0: DUP6
000017b1: SWAP1
000017b2: SUB
000017b3: AND
000017b4: PUSH1 0x01
000017b6: PUSH1 0x01
000017b8: PUSH1 0x80
000017ba: SHL
000017bb: SUB
000017bc: NOT
000017bd: SWAP1
000017be: SWAP2
000017bf: AND
000017c0: OR
000017c1: SWAP1
000017c2: SSTORE
000017c3: PUSH2 0xffff
000017c6: DUP6
000017c7: AND
000017c8: PUSH2 0x17e7
000017cb: JUMPI
000017cc: DUP4
000017cd: PUSH2 0x17df
000017d0: DUP2
000017d1: PUSH1 0x01
000017d3: PUSH1 0x01
000017d5: PUSH1 0x80
000017d7: SHL
000017d8: SUB
000017d9: DUP6
000017da: AND
000017db: PUSH2 0x368d
000017de: JUMP
000017df: JUMPDEST
000017e0: SWAP2
000017e1: POP
000017e2: POP
000017e3: PUSH2 0x19da
000017e6: JUMP
000017e7: JUMPDEST
000017e8: PUSH1 0x00
000017ea: PUSH2 0x4000
000017ed: PUSH2 0xffff
000017f0: DUP8
000017f1: AND
000017f2: LT
000017f3: ISZERO
000017f4: PUSH2 0x1879
000017f7: JUMPI
000017f8: PUSH1 0x07
000017fa: SLOAD
000017fb: PUSH1 0x40
000017fd: DUP1
000017fe: MLOAD
000017ff: PUSH4 0x10603dad
00001804: PUSH1 0xe0
00001806: SHL
00001807: DUP2
00001808: MSTORE
00001809: PUSH2 0xffff
0000180c: DUP10
0000180d: AND
0000180e: PUSH1 0x04
00001810: DUP3
00001811: ADD
00001812: MSTORE
00001813: SWAP1
00001814: MLOAD
00001815: PUSH1 0x01
00001817: PUSH1 0x01
00001819: PUSH1 0xa0
0000181b: SHL
0000181c: SUB
0000181d: SWAP1
0000181e: SWAP3
0000181f: AND
00001820: SWAP2
00001821: PUSH4 0x10603dad
00001826: SWAP2
00001827: PUSH1 0x24
00001829: DUP1
0000182a: DUP3
0000182b: ADD
0000182c: SWAP3
0000182d: PUSH1 0x20
0000182f: SWAP3
00001830: SWAP1
00001831: SWAP2
00001832: SWAP1
00001833: DUP3
00001834: SWAP1
00001835: SUB
00001836: ADD
00001837: DUP2
00001838: DUP7
00001839: DUP1
0000183a: EXTCODESIZE
0000183b: ISZERO
0000183c: DUP1
0000183d: ISZERO
0000183e: PUSH2 0x1846
00001841: JUMPI
00001842: PUSH1 0x00
00001844: DUP1
00001845: REVERT
00001846: JUMPDEST
00001847: POP
00001848: GAS
00001849: STATICCALL
0000184a: ISZERO
0000184b: DUP1
0000184c: ISZERO
0000184d: PUSH2 0x185a
00001850: JUMPI
00001851: RETURNDATASIZE
00001852: PUSH1 0x00
00001854: DUP1
00001855: RETURNDATACOPY
00001856: RETURNDATASIZE
00001857: PUSH1 0x00
00001859: REVERT
0000185a: JUMPDEST
0000185b: POP
0000185c: POP
0000185d: POP
0000185e: POP
0000185f: PUSH1 0x40
00001861: MLOAD
00001862: RETURNDATASIZE
00001863: PUSH1 0x20
00001865: DUP2
00001866: LT
00001867: ISZERO
00001868: PUSH2 0x1870
0000186b: JUMPI
0000186c: PUSH1 0x00
0000186e: DUP1
0000186f: REVERT
00001870: JUMPDEST
00001871: POP
00001872: MLOAD
00001873: SWAP1
00001874: POP
00001875: PUSH2 0x1898
00001878: JUMP
00001879: JUMPDEST
0000187a: POP
0000187b: PUSH2 0xffff
0000187e: DUP6
0000187f: AND
00001880: PUSH1 0x00
00001882: SWAP1
00001883: DUP2
00001884: MSTORE
00001885: PUSH1 0x01
00001887: PUSH1 0x20
00001889: MSTORE
0000188a: PUSH1 0x40
0000188c: SWAP1
0000188d: KECCAK256
0000188e: SLOAD
0000188f: PUSH1 0x01
00001891: PUSH1 0x01
00001893: PUSH1 0xa0
00001895: SHL
00001896: SUB
00001897: AND
00001898: JUMPDEST
00001899: PUSH1 0x01
0000189b: PUSH1 0x01
0000189d: PUSH1 0xa0
0000189f: SHL
000018a0: SUB
000018a1: DUP2
000018a2: AND
000018a3: PUSH2 0x18dc
000018a6: JUMPI
000018a7: PUSH1 0x40
000018a9: DUP1
000018aa: MLOAD
000018ab: PUSH3 0x461bcd
000018af: PUSH1 0xe5
000018b1: SHL
000018b2: DUP2
000018b3: MSTORE
000018b4: PUSH1 0x20
000018b6: PUSH1 0x04
000018b8: DUP1
000018b9: DUP4
000018ba: ADD
000018bb: SWAP2
000018bc: SWAP1
000018bd: SWAP2
000018be: MSTORE
000018bf: PUSH1 0x24
000018c1: DUP3
000018c2: ADD
000018c3: MSTORE
000018c4: PUSH4 0x06377743
000018c9: PUSH1 0xe4
000018cb: SHL
000018cc: PUSH1 0x44
000018ce: DUP3
000018cf: ADD
000018d0: MSTORE
000018d1: SWAP1
000018d2: MLOAD
000018d3: SWAP1
000018d4: DUP2
000018d5: SWAP1
000018d6: SUB
000018d7: PUSH1 0x64
000018d9: ADD
000018da: SWAP1
000018db: REVERT
000018dc: JUMPDEST
000018dd: PUSH1 0x16
000018df: SLOAD
000018e0: PUSH1 0x40
000018e2: DUP1
000018e3: MLOAD
000018e4: PUSH1 0x01
000018e6: PUSH1 0x01
000018e8: PUSH1 0xa0
000018ea: SHL
000018eb: SUB
000018ec: DUP5
000018ed: DUP2
000018ee: AND
000018ef: PUSH1 0x24
000018f1: DUP4
000018f2: ADD
000018f3: MSTORE
000018f4: DUP9
000018f5: AND
000018f6: PUSH1 0x44
000018f8: DUP3
000018f9: ADD
000018fa: MSTORE
000018fb: PUSH1 0x01
000018fd: PUSH1 0x01
000018ff: PUSH1 0x80
00001901: SHL
00001902: SUB
00001903: DUP7
00001904: AND
00001905: PUSH1 0x64
00001907: DUP3
00001908: ADD
00001909: DUP2
0000190a: SWAP1
0000190b: MSTORE
0000190c: PUSH1 0x84
0000190e: DUP1
0000190f: DUP4
00001910: ADD
00001911: SWAP2
00001912: SWAP1
00001913: SWAP2
00001914: MSTORE
00001915: DUP3
00001916: MLOAD
00001917: DUP1
00001918: DUP4
00001919: SUB
0000191a: SWAP1
0000191b: SWAP2
0000191c: ADD
0000191d: DUP2
0000191e: MSTORE
0000191f: PUSH1 0xa4
00001921: SWAP1
00001922: SWAP2
00001923: ADD
00001924: DUP3
00001925: MSTORE
00001926: PUSH1 0x20
00001928: DUP2
00001929: ADD
0000192a: DUP1
0000192b: MLOAD
0000192c: PUSH1 0x01
0000192e: PUSH1 0x01
00001930: PUSH1 0xe0
00001932: SHL
00001933: SUB
00001934: AND
00001935: PUSH4 0x9a83400d
0000193a: PUSH1 0xe0
0000193c: SHL
0000193d: OR
0000193e: DUP2
0000193f: MSTORE
00001940: SWAP2
00001941: MLOAD
00001942: DUP2
00001943: MLOAD
00001944: ADDRESS
00001945: SWAP5
00001946: SWAP4
00001947: DUP3
00001948: SWAP2
00001949: DUP1
0000194a: DUP4
0000194b: DUP4
0000194c: JUMPDEST
0000194d: PUSH1 0x20
0000194f: DUP4
00001950: LT
00001951: PUSH2 0x196b
00001954: JUMPI
00001955: DUP1
00001956: MLOAD
00001957: DUP3
00001958: MSTORE
00001959: PUSH1 0x1f
0000195b: NOT
0000195c: SWAP1
0000195d: SWAP3
0000195e: ADD
0000195f: SWAP2
00001960: PUSH1 0x20
00001962: SWAP2
00001963: DUP3
00001964: ADD
00001965: SWAP2
00001966: ADD
00001967: PUSH2 0x194c
0000196a: JUMP
0000196b: JUMPDEST
0000196c: PUSH1 0x01
0000196e: DUP4
0000196f: PUSH1 0x20
00001971: SUB
00001972: PUSH2 0x0100
00001975: EXP
00001976: SUB
00001977: DUP1
00001978: NOT
00001979: DUP3
0000197a: MLOAD
0000197b: AND
0000197c: DUP2
0000197d: DUP5
0000197e: MLOAD
0000197f: AND
00001980: DUP1
00001981: DUP3
00001982: OR
00001983: DUP6
00001984: MSTORE
00001985: POP
00001986: POP
00001987: POP
00001988: POP
00001989: POP
0000198a: POP
0000198b: SWAP1
0000198c: POP
0000198d: ADD
0000198e: SWAP2
0000198f: POP
00001990: POP
00001991: PUSH1 0x00
00001993: PUSH1 0x40
00001995: MLOAD
00001996: DUP1
00001997: DUP4
00001998: SUB
00001999: DUP2
0000199a: PUSH1 0x00
0000199c: DUP8
0000199d: DUP8
0000199e: CALL
0000199f: SWAP3
000019a0: POP
000019a1: POP
000019a2: POP
000019a3: RETURNDATASIZE
000019a4: DUP1
000019a5: PUSH1 0x00
000019a7: DUP2
000019a8: EQ
000019a9: PUSH2 0x19ce
000019ac: JUMPI
000019ad: PUSH1 0x40
000019af: MLOAD
000019b0: SWAP2
000019b1: POP
000019b2: PUSH1 0x1f
000019b4: NOT
000019b5: PUSH1 0x3f
000019b7: RETURNDATASIZE
000019b8: ADD
000019b9: AND
000019ba: DUP3
000019bb: ADD
000019bc: PUSH1 0x40
000019be: MSTORE
000019bf: RETURNDATASIZE
000019c0: DUP3
000019c1: MSTORE
000019c2: RETURNDATASIZE
000019c3: PUSH1 0x00
000019c5: PUSH1 0x20
000019c7: DUP5
000019c8: ADD
000019c9: RETURNDATACOPY
000019ca: PUSH2 0x19d3
000019cd: JUMP
000019ce: JUMPDEST
000019cf: PUSH1 0x60
000019d1: SWAP2
000019d2: POP
000019d3: JUMPDEST
000019d4: POP
000019d5: SWAP1
000019d6: SWAP3
000019d7: POP
000019d8: POP
000019d9: POP
000019da: JUMPDEST
000019db: DUP1
000019dc: PUSH2 0x1a18
000019df: JUMPI
000019e0: PUSH1 0x01
000019e2: PUSH1 0x01
000019e4: PUSH1 0x50
000019e6: SHL
000019e7: SUB
000019e8: NOT
000019e9: DUP4
000019ea: AND
000019eb: PUSH1 0x00
000019ed: SWAP1
000019ee: DUP2
000019ef: MSTORE
000019f0: PUSH1 0x09
000019f2: PUSH1 0x20
000019f4: MSTORE
000019f5: PUSH1 0x40
000019f7: SWAP1
000019f8: KECCAK256
000019f9: DUP1
000019fa: SLOAD
000019fb: PUSH1 0x01
000019fd: PUSH1 0x01
000019ff: PUSH1 0x80
00001a01: SHL
00001a02: SUB
00001a03: DUP1
00001a04: DUP3
00001a05: AND
00001a06: DUP6
00001a07: ADD
00001a08: AND
00001a09: PUSH1 0x01
00001a0b: PUSH1 0x01
00001a0d: PUSH1 0x80
00001a0f: SHL
00001a10: SUB
00001a11: NOT
00001a12: SWAP1
00001a13: SWAP2
00001a14: AND
00001a15: OR
00001a16: SWAP1
00001a17: SSTORE
00001a18: JUMPDEST
00001a19: POP
00001a1a: JUMPDEST
00001a1b: POP
00001a1c: POP
00001a1d: POP
00001a1e: POP
00001a1f: DUP1
00001a20: PUSH1 0x01
00001a22: ADD
00001a23: SWAP1
00001a24: POP
00001a25: PUSH2 0x1700
00001a28: JUMP
00001a29: JUMPDEST
00001a2a: POP
00001a2b: PUSH4 0xffffffff
00001a30: DUP3
00001a31: AND
00001a32: ISZERO
00001a33: PUSH2 0x1a7b
00001a36: JUMPI
00001a37: PUSH1 0x40
00001a39: DUP1
00001a3a: MLOAD
00001a3b: PUSH4 0xffffffff
00001a40: DUP1
00001a41: DUP5
00001a42: AND
00001a43: DUP3
00001a44: MSTORE
00001a45: DUP5
00001a46: DUP5
00001a47: ADD
00001a48: AND
00001a49: PUSH1 0x20
00001a4b: DUP3
00001a4c: ADD
00001a4d: MSTORE
00001a4e: DUP2
00001a4f: MLOAD
00001a50: PUSH32 0x9b5478c99b5ca41beec4f6f6084126d6f9e26382d017b4bb67c37c9e8453a313
00001a71: SWAP3
00001a72: SWAP2
00001a73: DUP2
00001a74: SWAP1
00001a75: SUB
00001a76: SWAP1
00001a77: SWAP2
00001a78: ADD
00001a79: SWAP1
00001a7a: LOG1
00001a7b: JUMPDEST
00001a7c: POP
00001a7d: POP
00001a7e: PUSH1 0x01
00001a80: PUSH1 0x00
00001a82: DUP1
00001a83: MLOAD
00001a84: PUSH1 0x20
00001a86: PUSH2 0x4172
00001a89: DUP4
00001a8a: CODECOPY
00001a8b: DUP2
00001a8c: MLOAD
00001a8d: SWAP2
00001a8e: MSTORE
00001a8f: SSTORE
00001a90: POP
00001a91: POP
00001a92: JUMP
00001a93: JUMPDEST
00001a94: PUSH1 0x07
00001a96: SLOAD
00001a97: PUSH1 0x40
00001a99: DUP1
00001a9a: MLOAD
00001a9b: PUSH4 0x3d7e13b5
00001aa0: PUSH1 0xe2
00001aa2: SHL
00001aa3: DUP2
00001aa4: MSTORE
00001aa5: CALLER
00001aa6: PUSH1 0x04
00001aa8: DUP3
00001aa9: ADD
00001aaa: MSTORE
00001aab: SWAP1
00001aac: MLOAD
00001aad: PUSH1 0x01
00001aaf: PUSH1 0x01
00001ab1: PUSH1 0xa0
00001ab3: SHL
00001ab4: SUB
00001ab5: SWAP1
00001ab6: SWAP3
00001ab7: AND
00001ab8: SWAP2
00001ab9: PUSH4 0xf5f84ed4
00001abe: SWAP2
00001abf: PUSH1 0x24
00001ac1: DUP1
00001ac2: DUP3
00001ac3: ADD
00001ac4: SWAP3
00001ac5: PUSH1 0x00
00001ac7: SWAP3
00001ac8: SWAP1
00001ac9: SWAP2
00001aca: SWAP1
00001acb: DUP3
00001acc: SWAP1
00001acd: SUB
00001ace: ADD
00001acf: DUP2
00001ad0: DUP7
00001ad1: DUP1
00001ad2: EXTCODESIZE
00001ad3: ISZERO
00001ad4: DUP1
00001ad5: ISZERO
00001ad6: PUSH2 0x1ade
00001ad9: JUMPI
00001ada: PUSH1 0x00
00001adc: DUP1
00001add: REVERT
00001ade: JUMPDEST
00001adf: POP
00001ae0: GAS
00001ae1: STATICCALL
00001ae2: ISZERO
00001ae3: DUP1
00001ae4: ISZERO
00001ae5: PUSH2 0x1af2
00001ae8: JUMPI
00001ae9: RETURNDATASIZE
00001aea: PUSH1 0x00
00001aec: DUP1
00001aed: RETURNDATACOPY
00001aee: RETURNDATASIZE
00001aef: PUSH1 0x00
00001af1: REVERT
00001af2: JUMPDEST
00001af3: POP
00001af4: POP
00001af5: PUSH1 0x15
00001af7: DUP1
00001af8: SLOAD
00001af9: PUSH1 0x01
00001afb: PUSH1 0x01
00001afd: PUSH1 0x80
00001aff: SHL
00001b00: SUB
00001b01: NOT
00001b02: AND
00001b03: PUSH1 0x01
00001b05: PUSH1 0x01
00001b07: PUSH1 0x80
00001b09: SHL
00001b0a: SUB
00001b0b: SWAP5
00001b0c: SWAP1
00001b0d: SWAP5
00001b0e: AND
00001b0f: SWAP4
00001b10: SWAP1
00001b11: SWAP4
00001b12: OR
00001b13: SWAP1
00001b14: SWAP3
00001b15: SSTORE
00001b16: POP
00001b17: POP
00001b18: JUMP
00001b19: JUMPDEST
00001b1a: PUSH1 0x03
00001b1c: DUP1
00001b1d: SLOAD
00001b1e: PUSH1 0xff
00001b20: NOT
00001b21: AND
00001b22: PUSH1 0x01
00001b24: OR
00001b25: SWAP1
00001b26: SSTORE
00001b27: TIMESTAMP
00001b28: PUSH1 0x04
00001b2a: SSTORE
00001b2b: JUMP
00001b2c: JUMPDEST
00001b2d: PUSH1 0x11
00001b2f: PUSH1 0x20
00001b31: SWAP1
00001b32: DUP2
00001b33: MSTORE
00001b34: PUSH1 0x00
00001b36: SWAP2
00001b37: DUP3
00001b38: MSTORE
00001b39: PUSH1 0x40
00001b3b: SWAP2
00001b3c: DUP3
00001b3d: SWAP1
00001b3e: KECCAK256
00001b3f: DUP1
00001b40: SLOAD
00001b41: PUSH1 0x01
00001b43: DUP1
00001b44: DUP4
00001b45: ADD
00001b46: DUP1
00001b47: SLOAD
00001b48: DUP7
00001b49: MLOAD
00001b4a: PUSH1 0x02
00001b4c: PUSH2 0x0100
00001b4f: SWAP5
00001b50: DUP4
00001b51: AND
00001b52: ISZERO
00001b53: SWAP5
00001b54: SWAP1
00001b55: SWAP5
00001b56: MUL
00001b57: PUSH1 0x00
00001b59: NOT
00001b5a: ADD
00001b5b: SWAP1
00001b5c: SWAP2
00001b5d: AND
00001b5e: SWAP3
00001b5f: SWAP1
00001b60: SWAP3
00001b61: DIV
00001b62: PUSH1 0x1f
00001b64: DUP2
00001b65: ADD
00001b66: DUP7
00001b67: SWAP1
00001b68: DIV
00001b69: DUP7
00001b6a: MUL
00001b6b: DUP4
00001b6c: ADD
00001b6d: DUP7
00001b6e: ADD
00001b6f: SWAP1
00001b70: SWAP7
00001b71: MSTORE
00001b72: DUP6
00001b73: DUP3
00001b74: MSTORE
00001b75: PUSH1 0xff
00001b77: SWAP1
00001b78: SWAP3
00001b79: AND
00001b7a: SWAP5
00001b7b: SWAP3
00001b7c: SWAP4
00001b7d: SWAP1
00001b7e: SWAP3
00001b7f: SWAP1
00001b80: DUP4
00001b81: ADD
00001b82: DUP3
00001b83: DUP3
00001b84: DUP1
00001b85: ISZERO
00001b86: PUSH2 0x1bd0
00001b89: JUMPI
00001b8a: DUP1
00001b8b: PUSH1 0x1f
00001b8d: LT
00001b8e: PUSH2 0x1ba5
00001b91: JUMPI
00001b92: PUSH2 0x0100
00001b95: DUP1
00001b96: DUP4
00001b97: SLOAD
00001b98: DIV
00001b99: MUL
00001b9a: DUP4
00001b9b: MSTORE
00001b9c: SWAP2
00001b9d: PUSH1 0x20
00001b9f: ADD
00001ba0: SWAP2
00001ba1: PUSH2 0x1bd0
00001ba4: JUMP
00001ba5: JUMPDEST
00001ba6: DUP3
00001ba7: ADD
00001ba8: SWAP2
00001ba9: SWAP1
00001baa: PUSH1 0x00
00001bac: MSTORE
00001bad: PUSH1 0x20
00001baf: PUSH1 0x00
00001bb1: KECCAK256
00001bb2: SWAP1
00001bb3: JUMPDEST
00001bb4: DUP2
00001bb5: SLOAD
00001bb6: DUP2
00001bb7: MSTORE
00001bb8: SWAP1
00001bb9: PUSH1 0x01
00001bbb: ADD
00001bbc: SWAP1
00001bbd: PUSH1 0x20
00001bbf: ADD
00001bc0: DUP1
00001bc1: DUP4
00001bc2: GT
00001bc3: PUSH2 0x1bb3
00001bc6: JUMPI
00001bc7: DUP3
00001bc8: SWAP1
00001bc9: SUB
00001bca: PUSH1 0x1f
00001bcc: AND
00001bcd: DUP3
00001bce: ADD
00001bcf: SWAP2
00001bd0: JUMPDEST
00001bd1: POP
00001bd2: POP
00001bd3: POP
00001bd4: POP
00001bd5: POP
00001bd6: SWAP1
00001bd7: DUP1
00001bd8: PUSH1 0x02
00001bda: ADD
00001bdb: SLOAD
00001bdc: SWAP1
00001bdd: POP
00001bde: DUP4
00001bdf: JUMP
00001be0: JUMPDEST
00001be1: PUSH1 0x03
00001be3: DUP1
00001be4: SLOAD
00001be5: PUSH1 0xff
00001be7: NOT
00001be8: AND
00001be9: SWAP1
00001bea: SSTORE
00001beb: PUSH1 0x00
00001bed: PUSH1 0x04
00001bef: SSTORE
00001bf0: JUMP
00001bf1: JUMPDEST
00001bf2: PUSH1 0x0f
00001bf4: SLOAD
00001bf5: PUSH1 0xff
00001bf7: AND
00001bf8: ISZERO
00001bf9: SWAP1
00001bfa: JUMP
00001bfb: JUMPDEST
00001bfc: PUSH1 0x16
00001bfe: SLOAD
00001bff: DUP2
00001c00: JUMP
00001c01: JUMPDEST
00001c02: PUSH1 0x10
00001c04: PUSH1 0x20
00001c06: SWAP1
00001c07: DUP2
00001c08: MSTORE
00001c09: PUSH1 0x00
00001c0b: SWAP3
00001c0c: DUP4
00001c0d: MSTORE
00001c0e: PUSH1 0x40
00001c10: DUP1
00001c11: DUP5
00001c12: KECCAK256
00001c13: SWAP1
00001c14: SWAP2
00001c15: MSTORE
00001c16: SWAP1
00001c17: DUP3
00001c18: MSTORE
00001c19: SWAP1
00001c1a: KECCAK256
00001c1b: SLOAD
00001c1c: DUP2
00001c1d: JUMP
00001c1e: JUMPDEST
00001c1f: PUSH2 0x1c26
00001c22: PUSH2 0x315e
00001c25: JUMP
00001c26: JUMPDEST
00001c27: PUSH1 0x07
00001c29: SLOAD
00001c2a: PUSH1 0x40
00001c2c: DUP1
00001c2d: MLOAD
00001c2e: PUSH4 0x0c883eb5
00001c33: PUSH1 0xe4
00001c35: SHL
00001c36: DUP2
00001c37: MSTORE
00001c38: CALLER
00001c39: PUSH1 0x04
00001c3b: DUP3
00001c3c: ADD
00001c3d: MSTORE
00001c3e: SWAP1
00001c3f: MLOAD
00001c40: PUSH1 0x01
00001c42: PUSH1 0x01
00001c44: PUSH1 0xa0
00001c46: SHL
00001c47: SUB
00001c48: SWAP1
00001c49: SWAP3
00001c4a: AND
00001c4b: SWAP2
00001c4c: PUSH4 0xc883eb50
00001c51: SWAP2
00001c52: PUSH1 0x24
00001c54: DUP1
00001c55: DUP3
00001c56: ADD
00001c57: SWAP3
00001c58: PUSH1 0x00
00001c5a: SWAP3
00001c5b: SWAP1
00001c5c: SWAP2
00001c5d: SWAP1
00001c5e: DUP3
00001c5f: SWAP1
00001c60: SUB
00001c61: ADD
00001c62: DUP2
00001c63: DUP7
00001c64: DUP1
00001c65: EXTCODESIZE
00001c66: ISZERO
00001c67: DUP1
00001c68: ISZERO
00001c69: PUSH2 0x1c71
00001c6c: JUMPI
00001c6d: PUSH1 0x00
00001c6f: DUP1
00001c70: REVERT
00001c71: JUMPDEST
00001c72: POP
00001c73: GAS
00001c74: STATICCALL
00001c75: ISZERO
00001c76: DUP1
00001c77: ISZERO
00001c78: PUSH2 0x1c85
00001c7b: JUMPI
00001c7c: RETURNDATASIZE
00001c7d: PUSH1 0x00
00001c7f: DUP1
00001c80: RETURNDATACOPY
00001c81: RETURNDATASIZE
00001c82: PUSH1 0x00
00001c84: REVERT
00001c85: JUMPDEST
00001c86: POP
00001c87: POP
00001c88: PUSH1 0x07
00001c8a: SLOAD
00001c8b: PUSH1 0x40
00001c8d: DUP1
00001c8e: MLOAD
00001c8f: PUSH4 0x75698bb1
00001c94: PUSH1 0xe1
00001c96: SHL
00001c97: DUP2
00001c98: MSTORE
00001c99: PUSH1 0x01
00001c9b: PUSH1 0x01
00001c9d: PUSH1 0xa0
00001c9f: SHL
00001ca0: SUB
00001ca1: DUP7
00001ca2: DUP2
00001ca3: AND
00001ca4: PUSH1 0x04
00001ca6: DUP4
00001ca7: ADD
00001ca8: MSTORE
00001ca9: SWAP2
00001caa: MLOAD
00001cab: PUSH1 0x00
00001cad: SWAP6
00001cae: POP
00001caf: SWAP2
00001cb0: SWAP1
00001cb1: SWAP3
00001cb2: AND
00001cb3: SWAP3
00001cb4: POP
00001cb5: PUSH4 0xead31762
00001cba: SWAP2
00001cbb: PUSH1 0x24
00001cbd: DUP1
00001cbe: DUP3
00001cbf: ADD
00001cc0: SWAP3
00001cc1: PUSH1 0x20
00001cc3: SWAP3
00001cc4: SWAP1
00001cc5: SWAP2
00001cc6: SWAP1
00001cc7: DUP3
00001cc8: SWAP1
00001cc9: SUB
00001cca: ADD
00001ccb: DUP2
00001ccc: DUP7
00001ccd: DUP1
00001cce: EXTCODESIZE
00001ccf: ISZERO
00001cd0: DUP1
00001cd1: ISZERO
00001cd2: PUSH2 0x1cda
00001cd5: JUMPI
00001cd6: PUSH1 0x00
00001cd8: DUP1
00001cd9: REVERT
00001cda: JUMPDEST
00001cdb: POP
00001cdc: GAS
00001cdd: STATICCALL
00001cde: ISZERO
00001cdf: DUP1
00001ce0: ISZERO
00001ce1: PUSH2 0x1cee
00001ce4: JUMPI
00001ce5: RETURNDATASIZE
00001ce6: PUSH1 0x00
00001ce8: DUP1
00001ce9: RETURNDATACOPY
00001cea: RETURNDATASIZE
00001ceb: PUSH1 0x00
00001ced: REVERT
00001cee: JUMPDEST
00001cef: POP
00001cf0: POP
00001cf1: POP
00001cf2: POP
00001cf3: PUSH1 0x40
00001cf5: MLOAD
00001cf6: RETURNDATASIZE
00001cf7: PUSH1 0x20
00001cf9: DUP2
00001cfa: LT
00001cfb: ISZERO
00001cfc: PUSH2 0x1d04
00001cff: JUMPI
00001d00: PUSH1 0x00
00001d02: DUP1
00001d03: REVERT
00001d04: JUMPDEST
00001d05: POP
00001d06: MLOAD
00001d07: PUSH1 0x08
00001d09: SLOAD
00001d0a: PUSH1 0x40
00001d0c: DUP1
00001d0d: MLOAD
00001d0e: PUSH4 0x64e329cb
00001d13: PUSH1 0xe1
00001d15: SHL
00001d16: DUP2
00001d17: MSTORE
00001d18: PUSH1 0x00
00001d1a: PUSH1 0x04
00001d1c: DUP3
00001d1d: ADD
00001d1e: DUP2
00001d1f: SWAP1
00001d20: MSTORE
00001d21: PUSH1 0x01
00001d23: PUSH1 0x01
00001d25: PUSH1 0xa0
00001d27: SHL
00001d28: SUB
00001d29: DUP8
00001d2a: DUP2
00001d2b: AND
00001d2c: PUSH1 0x24
00001d2e: DUP5
00001d2f: ADD
00001d30: MSTORE
00001d31: SWAP3
00001d32: MLOAD
00001d33: SWAP5
00001d34: SWAP6
00001d35: POP
00001d36: SWAP4
00001d37: SWAP2
00001d38: SWAP1
00001d39: SWAP3
00001d3a: AND
00001d3b: SWAP2
00001d3c: PUSH4 0xc9c65396
00001d41: SWAP2
00001d42: PUSH1 0x44
00001d44: DUP1
00001d45: DUP4
00001d46: ADD
00001d47: SWAP3
00001d48: PUSH1 0x20
00001d4a: SWAP3
00001d4b: SWAP2
00001d4c: SWAP1
00001d4d: DUP3
00001d4e: SWAP1
00001d4f: SUB
00001d50: ADD
00001d51: DUP2
00001d52: DUP8
00001d53: DUP8
00001d54: DUP1
00001d55: EXTCODESIZE
00001d56: ISZERO
00001d57: DUP1
00001d58: ISZERO
00001d59: PUSH2 0x1d61
00001d5c: JUMPI
00001d5d: PUSH1 0x00
00001d5f: DUP1
00001d60: REVERT
00001d61: JUMPDEST
00001d62: POP
00001d63: GAS
00001d64: CALL
00001d65: ISZERO
00001d66: DUP1
00001d67: ISZERO
00001d68: PUSH2 0x1d75
00001d6b: JUMPI
00001d6c: RETURNDATASIZE
00001d6d: PUSH1 0x00
00001d6f: DUP1
00001d70: RETURNDATACOPY
00001d71: RETURNDATASIZE
00001d72: PUSH1 0x00
00001d74: REVERT
00001d75: JUMPDEST
00001d76: POP
00001d77: POP
00001d78: POP
00001d79: POP
00001d7a: PUSH1 0x40
00001d7c: MLOAD
00001d7d: RETURNDATASIZE
00001d7e: PUSH1 0x20
00001d80: DUP2
00001d81: LT
00001d82: ISZERO
00001d83: PUSH2 0x1d8b
00001d86: JUMPI
00001d87: PUSH1 0x00
00001d89: DUP1
00001d8a: REVERT
00001d8b: JUMPDEST
00001d8c: POP
00001d8d: MLOAD
00001d8e: SWAP1
00001d8f: POP
00001d90: PUSH1 0x01
00001d92: PUSH1 0x01
00001d94: PUSH1 0xa0
00001d96: SHL
00001d97: SUB
00001d98: DUP2
00001d99: AND
00001d9a: PUSH2 0x1ddc
00001d9d: JUMPI
00001d9e: PUSH1 0x40
00001da0: DUP1
00001da1: MLOAD
00001da2: PUSH3 0x461bcd
00001da6: PUSH1 0xe5
00001da8: SHL
00001da9: DUP2
00001daa: MSTORE
00001dab: PUSH1 0x20
00001dad: PUSH1 0x04
00001daf: DUP3
00001db0: ADD
00001db1: MSTORE
00001db2: PUSH1 0x0f
00001db4: PUSH1 0x24
00001db6: DUP3
00001db7: ADD
00001db8: MSTORE
00001db9: PUSH15 0x1c185a5c881a5cc81a5b9d985b1a59
00001dc9: PUSH1 0x8a
00001dcb: SHL
00001dcc: PUSH1 0x44
00001dce: DUP3
00001dcf: ADD
00001dd0: MSTORE
00001dd1: SWAP1
00001dd2: MLOAD
00001dd3: SWAP1
00001dd4: DUP2
00001dd5: SWAP1
00001dd6: SUB
00001dd7: PUSH1 0x64
00001dd9: ADD
00001dda: SWAP1
00001ddb: REVERT
00001ddc: JUMPDEST
00001ddd: PUSH2 0x1de5
00001de0: DUP2
00001de1: PUSH2 0x36f2
00001de4: JUMP
00001de5: JUMPDEST
00001de6: PUSH2 0x1dfc
00001de9: PUSH1 0x00
00001deb: DUP1
00001dec: DUP5
00001ded: DUP7
00001dee: PUSH2 0x1df6
00001df1: DUP7
00001df2: PUSH2 0x2e36
00001df5: JUMP
00001df6: JUMPDEST
00001df7: DUP7
00001df8: PUSH2 0x3822
00001dfb: JUMP
00001dfc: JUMPDEST
00001dfd: POP
00001dfe: POP
00001dff: POP
00001e00: JUMP
00001e01: JUMPDEST
00001e02: PUSH1 0x15
00001e04: SLOAD
00001e05: PUSH1 0x01
00001e07: PUSH1 0x01
00001e09: PUSH1 0x80
00001e0b: SHL
00001e0c: SUB
00001e0d: AND
00001e0e: DUP2
00001e0f: JUMP
00001e10: JUMPDEST
00001e11: PUSH1 0x03
00001e13: SLOAD
00001e14: PUSH1 0xff
00001e16: AND
00001e17: DUP2
00001e18: JUMP
00001e19: JUMPDEST
00001e1a: PUSH1 0x00
00001e1c: CALLER
00001e1d: ADDRESS
00001e1e: EQ
00001e1f: PUSH2 0x1e57
00001e22: JUMPI
00001e23: PUSH1 0x40
00001e25: DUP1
00001e26: MLOAD
00001e27: PUSH3 0x461bcd
00001e2b: PUSH1 0xe5
00001e2d: SHL
00001e2e: DUP2
00001e2f: MSTORE
00001e30: PUSH1 0x20
00001e32: PUSH1 0x04
00001e34: DUP3
00001e35: ADD
00001e36: MSTORE
00001e37: PUSH1 0x05
00001e39: PUSH1 0x24
00001e3b: DUP3
00001e3c: ADD
00001e3d: MSTORE
00001e3e: PUSH5 0x0777467313
00001e44: PUSH1 0xdc
00001e46: SHL
00001e47: PUSH1 0x44
00001e49: DUP3
00001e4a: ADD
00001e4b: MSTORE
00001e4c: SWAP1
00001e4d: MLOAD
00001e4e: SWAP1
00001e4f: DUP2
00001e50: SWAP1
00001e51: SUB
00001e52: PUSH1 0x64
00001e54: ADD
00001e55: SWAP1
00001e56: REVERT
00001e57: JUMPDEST
00001e58: PUSH1 0x01
00001e5a: PUSH1 0x01
00001e5c: PUSH1 0xa0
00001e5e: SHL
00001e5f: SUB
00001e60: DUP6
00001e61: AND
00001e62: PUSH1 0x00
00001e64: DUP2
00001e65: DUP2
00001e66: MSTORE
00001e67: PUSH1 0x02
00001e69: PUSH1 0x20
00001e6b: SWAP1
00001e6c: DUP2
00001e6d: MSTORE
00001e6e: PUSH1 0x40
00001e70: DUP1
00001e71: DUP4
00001e72: KECCAK256
00001e73: SLOAD
00001e74: DUP2
00001e75: MLOAD
00001e76: PUSH4 0x70a08231
00001e7b: PUSH1 0xe0
00001e7d: SHL
00001e7e: DUP2
00001e7f: MSTORE
00001e80: ADDRESS
00001e81: PUSH1 0x04
00001e83: DUP3
00001e84: ADD
00001e85: MSTORE
00001e86: SWAP2
00001e87: MLOAD
00001e88: PUSH2 0xffff
00001e8b: SWAP1
00001e8c: SWAP2
00001e8d: AND
00001e8e: SWAP5
00001e8f: SWAP3
00001e90: PUSH4 0x70a08231
00001e95: SWAP3
00001e96: PUSH1 0x24
00001e98: DUP1
00001e99: DUP3
00001e9a: ADD
00001e9b: SWAP4
00001e9c: SWAP2
00001e9d: DUP3
00001e9e: SWAP1
00001e9f: SUB
00001ea0: ADD
00001ea1: DUP2
00001ea2: DUP7
00001ea3: DUP1
00001ea4: EXTCODESIZE
00001ea5: ISZERO
00001ea6: DUP1
00001ea7: ISZERO
00001ea8: PUSH2 0x1eb0
00001eab: JUMPI
00001eac: PUSH1 0x00
00001eae: DUP1
00001eaf: REVERT
00001eb0: JUMPDEST
00001eb1: POP
00001eb2: GAS
00001eb3: STATICCALL
00001eb4: ISZERO
00001eb5: DUP1
00001eb6: ISZERO
00001eb7: PUSH2 0x1ec4
00001eba: JUMPI
00001ebb: RETURNDATASIZE
00001ebc: PUSH1 0x00
00001ebe: DUP1
00001ebf: RETURNDATACOPY
00001ec0: RETURNDATASIZE
00001ec1: PUSH1 0x00
00001ec3: REVERT
00001ec4: JUMPDEST
00001ec5: POP
00001ec6: POP
00001ec7: POP
00001ec8: POP
00001ec9: PUSH1 0x40
00001ecb: MLOAD
00001ecc: RETURNDATASIZE
00001ecd: PUSH1 0x20
00001ecf: DUP2
00001ed0: LT
00001ed1: ISZERO
00001ed2: PUSH2 0x1eda
00001ed5: JUMPI
00001ed6: PUSH1 0x00
00001ed8: DUP1
00001ed9: REVERT
00001eda: JUMPDEST
00001edb: POP
00001edc: MLOAD
00001edd: SWAP1
00001ede: POP
00001edf: PUSH2 0xffff
00001ee2: DUP3
00001ee3: AND
00001ee4: ISZERO
00001ee5: PUSH2 0x1f74
00001ee8: JUMPI
00001ee9: PUSH2 0x1ef1
00001eec: DUP8
00001eed: PUSH2 0x2e36
00001ef0: JUMP
00001ef1: JUMPDEST
00001ef2: POP
00001ef3: PUSH1 0x08
00001ef5: SLOAD
00001ef6: PUSH1 0x40
00001ef8: DUP1
00001ef9: MLOAD
00001efa: PUSH4 0x6361ddf3
00001eff: PUSH1 0xe1
00001f01: SHL
00001f02: DUP2
00001f03: MSTORE
00001f04: PUSH1 0x01
00001f06: PUSH1 0x01
00001f08: PUSH1 0xa0
00001f0a: SHL
00001f0b: SUB
00001f0c: DUP11
00001f0d: DUP2
00001f0e: AND
00001f0f: PUSH1 0x04
00001f11: DUP4
00001f12: ADD
00001f13: MSTORE
00001f14: DUP10
00001f15: DUP2
00001f16: AND
00001f17: PUSH1 0x24
00001f19: DUP4
00001f1a: ADD
00001f1b: MSTORE
00001f1c: PUSH1 0x01
00001f1e: PUSH1 0x01
00001f20: PUSH1 0x80
00001f22: SHL
00001f23: SUB
00001f24: DUP10
00001f25: AND
00001f26: PUSH1 0x44
00001f28: DUP4
00001f29: ADD
00001f2a: MSTORE
00001f2b: SWAP2
00001f2c: MLOAD
00001f2d: SWAP2
00001f2e: SWAP1
00001f2f: SWAP3
00001f30: AND
00001f31: SWAP2
00001f32: PUSH4 0xc6c3bbe6
00001f37: SWAP2
00001f38: PUSH1 0x64
00001f3a: DUP1
00001f3b: DUP4
00001f3c: ADD
00001f3d: SWAP3
00001f3e: PUSH1 0x00
00001f40: SWAP3
00001f41: SWAP2
00001f42: SWAP1
00001f43: DUP3
00001f44: SWAP1
00001f45: SUB
00001f46: ADD
00001f47: DUP2
00001f48: DUP4
00001f49: DUP8
00001f4a: DUP1
00001f4b: EXTCODESIZE
00001f4c: ISZERO
00001f4d: DUP1
00001f4e: ISZERO
00001f4f: PUSH2 0x1f57
00001f52: JUMPI
00001f53: PUSH1 0x00
00001f55: DUP1
00001f56: REVERT
00001f57: JUMPDEST
00001f58: POP
00001f59: GAS
00001f5a: CALL
00001f5b: ISZERO
00001f5c: DUP1
00001f5d: ISZERO
00001f5e: PUSH2 0x1f6b
00001f61: JUMPI
00001f62: RETURNDATASIZE
00001f63: PUSH1 0x00
00001f65: DUP1
00001f66: RETURNDATACOPY
00001f67: RETURNDATASIZE
00001f68: PUSH1 0x00
00001f6a: REVERT
00001f6b: JUMPDEST
00001f6c: POP
00001f6d: POP
00001f6e: POP
00001f6f: POP
00001f70: PUSH2 0x1fc1
00001f73: JUMP
00001f74: JUMPDEST
00001f75: PUSH2 0x1f88
00001f78: DUP8
00001f79: DUP8
00001f7a: DUP8
00001f7b: PUSH1 0x01
00001f7d: PUSH1 0x01
00001f7f: PUSH1 0x80
00001f81: SHL
00001f82: SUB
00001f83: AND
00001f84: PUSH2 0x3913
00001f87: JUMP
00001f88: JUMPDEST
00001f89: PUSH2 0x1fc1
00001f8c: JUMPI
00001f8d: PUSH1 0x40
00001f8f: DUP1
00001f90: MLOAD
00001f91: PUSH3 0x461bcd
00001f95: PUSH1 0xe5
00001f97: SHL
00001f98: DUP2
00001f99: MSTORE
00001f9a: PUSH1 0x20
00001f9c: PUSH1 0x04
00001f9e: DUP3
00001f9f: ADD
00001fa0: MSTORE
00001fa1: PUSH1 0x05
00001fa3: PUSH1 0x24
00001fa5: DUP3
00001fa6: ADD
00001fa7: MSTORE
00001fa8: PUSH5 0x7774673131
00001fae: PUSH1 0xd8
00001fb0: SHL
00001fb1: PUSH1 0x44
00001fb3: DUP3
00001fb4: ADD
00001fb5: MSTORE
00001fb6: SWAP1
00001fb7: MLOAD
00001fb8: SWAP1
00001fb9: DUP2
00001fba: SWAP1
00001fbb: SUB
00001fbc: PUSH1 0x64
00001fbe: ADD
00001fbf: SWAP1
00001fc0: REVERT
00001fc1: JUMPDEST
00001fc2: PUSH1 0x40
00001fc4: DUP1
00001fc5: MLOAD
00001fc6: PUSH4 0x70a08231
00001fcb: PUSH1 0xe0
00001fcd: SHL
00001fce: DUP2
00001fcf: MSTORE
00001fd0: ADDRESS
00001fd1: PUSH1 0x04
00001fd3: DUP3
00001fd4: ADD
00001fd5: MSTORE
00001fd6: SWAP1
00001fd7: MLOAD
00001fd8: PUSH1 0x00
00001fda: SWAP2
00001fdb: PUSH1 0x01
00001fdd: PUSH1 0x01
00001fdf: PUSH1 0xa0
00001fe1: SHL
00001fe2: SUB
00001fe3: DUP11
00001fe4: AND
00001fe5: SWAP2
00001fe6: PUSH4 0x70a08231
00001feb: SWAP2
00001fec: PUSH1 0x24
00001fee: DUP1
00001fef: DUP3
00001ff0: ADD
00001ff1: SWAP3
00001ff2: PUSH1 0x20
00001ff4: SWAP3
00001ff5: SWAP1
00001ff6: SWAP2
00001ff7: SWAP1
00001ff8: DUP3
00001ff9: SWAP1
00001ffa: SUB
00001ffb: ADD
00001ffc: DUP2
00001ffd: DUP7
00001ffe: DUP1
00001fff: EXTCODESIZE
00002000: ISZERO
00002001: DUP1
00002002: ISZERO
00002003: PUSH2 0x200b
00002006: JUMPI
00002007: PUSH1 0x00
00002009: DUP1
0000200a: REVERT
0000200b: JUMPDEST
0000200c: POP
0000200d: GAS
0000200e: STATICCALL
0000200f: ISZERO
00002010: DUP1
00002011: ISZERO
00002012: PUSH2 0x201f
00002015: JUMPI
00002016: RETURNDATASIZE
00002017: PUSH1 0x00
00002019: DUP1
0000201a: RETURNDATACOPY
0000201b: RETURNDATASIZE
0000201c: PUSH1 0x00
0000201e: REVERT
0000201f: JUMPDEST
00002020: POP
00002021: POP
00002022: POP
00002023: POP
00002024: PUSH1 0x40
00002026: MLOAD
00002027: RETURNDATASIZE
00002028: PUSH1 0x20
0000202a: DUP2
0000202b: LT
0000202c: ISZERO
0000202d: PUSH2 0x2035
00002030: JUMPI
00002031: PUSH1 0x00
00002033: DUP1
00002034: REVERT
00002035: JUMPDEST
00002036: POP
00002037: MLOAD
00002038: SWAP1
00002039: POP
0000203a: PUSH1 0x00
0000203c: PUSH2 0x204b
0000203f: DUP4
00002040: DUP4
00002041: PUSH4 0xffffffff
00002046: PUSH2 0x3a3a
00002049: AND
0000204a: JUMP
0000204b: JUMPDEST
0000204c: SWAP1
0000204d: POP
0000204e: DUP6
0000204f: PUSH1 0x01
00002051: PUSH1 0x01
00002053: PUSH1 0x80
00002055: SHL
00002056: SUB
00002057: AND
00002058: DUP2
00002059: GT
0000205a: ISZERO
0000205b: PUSH2 0x2093
0000205e: JUMPI
0000205f: PUSH1 0x40
00002061: DUP1
00002062: MLOAD
00002063: PUSH3 0x461bcd
00002067: PUSH1 0xe5
00002069: SHL
0000206a: DUP2
0000206b: MSTORE
0000206c: PUSH1 0x20
0000206e: PUSH1 0x04
00002070: DUP3
00002071: ADD
00002072: MSTORE
00002073: PUSH1 0x05
00002075: PUSH1 0x24
00002077: DUP3
00002078: ADD
00002079: MSTORE
0000207a: PUSH5 0x3bba339899
00002080: PUSH1 0xd9
00002082: SHL
00002083: PUSH1 0x44
00002085: DUP3
00002086: ADD
00002087: MSTORE
00002088: SWAP1
00002089: MLOAD
0000208a: SWAP1
0000208b: DUP2
0000208c: SWAP1
0000208d: SUB
0000208e: PUSH1 0x64
00002090: ADD
00002091: SWAP1
00002092: REVERT
00002093: JUMPDEST
00002094: PUSH2 0x209c
00002097: DUP2
00002098: PUSH2 0x347b
0000209b: JUMP
0000209c: JUMPDEST
0000209d: SWAP10
0000209e: SWAP9
0000209f: POP
000020a0: POP
000020a1: POP
000020a2: POP
000020a3: POP
000020a4: POP
000020a5: POP
000020a6: POP
000020a7: POP
000020a8: JUMP
000020a9: JUMPDEST
000020aa: PUSH1 0x0a
000020ac: PUSH1 0x20
000020ae: MSTORE
000020af: PUSH1 0x00
000020b1: SWAP1
000020b2: DUP2
000020b3: MSTORE
000020b4: PUSH1 0x40
000020b6: SWAP1
000020b7: KECCAK256
000020b8: SLOAD
000020b9: PUSH1 0x01
000020bb: PUSH1 0x01
000020bd: PUSH1 0xa0
000020bf: SHL
000020c0: SUB
000020c1: DUP2
000020c2: AND
000020c3: SWAP1
000020c4: PUSH1 0x01
000020c6: PUSH1 0xa0
000020c8: SHL
000020c9: SWAP1
000020ca: DIV
000020cb: PUSH2 0xffff
000020ce: AND
000020cf: DUP3
000020d0: JUMP
000020d1: JUMPDEST
000020d2: PUSH1 0x00
000020d4: DUP1
000020d5: MLOAD
000020d6: PUSH1 0x20
000020d8: PUSH2 0x4172
000020db: DUP4
000020dc: CODECOPY
000020dd: DUP2
000020de: MLOAD
000020df: SWAP2
000020e0: MSTORE
000020e1: SLOAD
000020e2: DUP1
000020e3: PUSH2 0x2121
000020e6: JUMPI
000020e7: PUSH1 0x40
000020e9: DUP1
000020ea: MLOAD
000020eb: PUSH3 0x461bcd
000020ef: PUSH1 0xe5
000020f1: SHL
000020f2: DUP2
000020f3: MSTORE
000020f4: PUSH1 0x20
000020f6: PUSH1 0x04
000020f8: DUP3
000020f9: ADD
000020fa: MSTORE
000020fb: PUSH1 0x1f
000020fd: PUSH1 0x24
000020ff: DUP3
00002100: ADD
00002101: MSTORE
00002102: PUSH1 0x00
00002104: DUP1
00002105: MLOAD
00002106: PUSH1 0x20
00002108: PUSH2 0x412c
0000210b: DUP4
0000210c: CODECOPY
0000210d: DUP2
0000210e: MLOAD
0000210f: SWAP2
00002110: MSTORE
00002111: PUSH1 0x44
00002113: DUP3
00002114: ADD
00002115: MSTORE
00002116: SWAP1
00002117: MLOAD
00002118: SWAP1
00002119: DUP2
0000211a: SWAP1
0000211b: SUB
0000211c: PUSH1 0x64
0000211e: ADD
0000211f: SWAP1
00002120: REVERT
00002121: JUMPDEST
00002122: PUSH1 0x00
00002124: PUSH1 0x00
00002126: DUP1
00002127: MLOAD
00002128: PUSH1 0x20
0000212a: PUSH2 0x4172
0000212d: DUP4
0000212e: CODECOPY
0000212f: DUP2
00002130: MLOAD
00002131: SWAP2
00002132: MSTORE
00002133: SSTORE
00002134: PUSH1 0x01
00002136: PUSH1 0x01
00002138: PUSH1 0xa0
0000213a: SHL
0000213b: SUB
0000213c: DUP3
0000213d: AND
0000213e: PUSH2 0x2176
00002141: JUMPI
00002142: PUSH1 0x40
00002144: DUP1
00002145: MLOAD
00002146: PUSH3 0x461bcd
0000214a: PUSH1 0xe5
0000214c: SHL
0000214d: DUP2
0000214e: MSTORE
0000214f: PUSH1 0x20
00002151: PUSH1 0x04
00002153: DUP3
00002154: ADD
00002155: MSTORE
00002156: PUSH1 0x05
00002158: PUSH1 0x24
0000215a: DUP3
0000215b: ADD
0000215c: MSTORE
0000215d: PUSH5 0x6970613131
00002163: PUSH1 0xd8
00002165: SHL
00002166: PUSH1 0x44
00002168: DUP3
00002169: ADD
0000216a: MSTORE
0000216b: SWAP1
0000216c: MLOAD
0000216d: SWAP1
0000216e: DUP2
0000216f: SWAP1
00002170: SUB
00002171: PUSH1 0x64
00002173: ADD
00002174: SWAP1
00002175: REVERT
00002176: JUMPDEST
00002177: PUSH2 0x2182
0000217a: PUSH1 0x00
0000217c: DUP5
0000217d: DUP5
0000217e: PUSH2 0x3a7c
00002181: JUMP
00002182: JUMPDEST
00002183: PUSH1 0x40
00002185: MLOAD
00002186: PUSH1 0x00
00002188: SWAP1
00002189: PUSH1 0x01
0000218b: PUSH1 0x01
0000218d: PUSH1 0xa0
0000218f: SHL
00002190: SUB
00002191: DUP5
00002192: AND
00002193: SWAP1
00002194: DUP6
00002195: SWAP1
00002196: DUP4
00002197: DUP2
00002198: DUP2
00002199: DUP2
0000219a: DUP6
0000219b: DUP8
0000219c: GAS
0000219d: CALL
0000219e: SWAP3
0000219f: POP
000021a0: POP
000021a1: POP
000021a2: RETURNDATASIZE
000021a3: DUP1
000021a4: PUSH1 0x00
000021a6: DUP2
000021a7: EQ
000021a8: PUSH2 0x21cd
000021ab: JUMPI
000021ac: PUSH1 0x40
000021ae: MLOAD
000021af: SWAP2
000021b0: POP
000021b1: PUSH1 0x1f
000021b3: NOT
000021b4: PUSH1 0x3f
000021b6: RETURNDATASIZE
000021b7: ADD
000021b8: AND
000021b9: DUP3
000021ba: ADD
000021bb: PUSH1 0x40
000021bd: MSTORE
000021be: RETURNDATASIZE
000021bf: DUP3
000021c0: MSTORE
000021c1: RETURNDATASIZE
000021c2: PUSH1 0x00
000021c4: PUSH1 0x20
000021c6: DUP5
000021c7: ADD
000021c8: RETURNDATACOPY
000021c9: PUSH2 0x21d2
000021cc: JUMP
000021cd: JUMPDEST
000021ce: PUSH1 0x60
000021d0: SWAP2
000021d1: POP
000021d2: JUMPDEST
000021d3: POP
000021d4: POP
000021d5: SWAP1
000021d6: POP
000021d7: DUP1
000021d8: PUSH2 0x2210
000021db: JUMPI
000021dc: PUSH1 0x40
000021de: DUP1
000021df: MLOAD
000021e0: PUSH3 0x461bcd
000021e4: PUSH1 0xe5
000021e6: SHL
000021e7: DUP2
000021e8: MSTORE
000021e9: PUSH1 0x20
000021eb: PUSH1 0x04
000021ed: DUP3
000021ee: ADD
000021ef: MSTORE
000021f0: PUSH1 0x05
000021f2: PUSH1 0x24
000021f4: DUP3
000021f5: ADD
000021f6: MSTORE
000021f7: PUSH5 0x333bb29899
000021fd: PUSH1 0xd9
000021ff: SHL
00002200: PUSH1 0x44
00002202: DUP3
00002203: ADD
00002204: MSTORE
00002205: SWAP1
00002206: MLOAD
00002207: SWAP1
00002208: DUP2
00002209: SWAP1
0000220a: SUB
0000220b: PUSH1 0x64
0000220d: ADD
0000220e: SWAP1
0000220f: REVERT
00002210: JUMPDEST
00002211: POP
00002212: PUSH1 0x01
00002214: PUSH1 0x00
00002216: DUP1
00002217: MLOAD
00002218: PUSH1 0x20
0000221a: PUSH2 0x4172
0000221d: DUP4
0000221e: CODECOPY
0000221f: DUP2
00002220: MLOAD
00002221: SWAP2
00002222: MSTORE
00002223: SSTORE
00002224: POP
00002225: POP
00002226: POP
00002227: JUMP
00002228: JUMPDEST
00002229: PUSH1 0x13
0000222b: SLOAD
0000222c: PUSH1 0x01
0000222e: PUSH1 0x01
00002230: PUSH1 0xa0
00002232: SHL
00002233: SUB
00002234: AND
00002235: DUP2
00002236: JUMP
00002237: JUMPDEST
00002238: PUSH1 0x0e
0000223a: PUSH1 0x20
0000223c: SWAP1
0000223d: DUP2
0000223e: MSTORE
0000223f: PUSH1 0x00
00002241: SWAP3
00002242: DUP4
00002243: MSTORE
00002244: PUSH1 0x40
00002246: DUP1
00002247: DUP5
00002248: KECCAK256
00002249: SWAP1
0000224a: SWAP2
0000224b: MSTORE
0000224c: SWAP1
0000224d: DUP3
0000224e: MSTORE
0000224f: SWAP1
00002250: KECCAK256
00002251: SLOAD
00002252: PUSH1 0xff
00002254: AND
00002255: DUP2
00002256: JUMP
00002257: JUMPDEST
00002258: PUSH1 0x13
0000225a: SLOAD
0000225b: PUSH1 0x01
0000225d: PUSH1 0x01
0000225f: PUSH1 0xa0
00002261: SHL
00002262: SUB
00002263: AND
00002264: ISZERO
00002265: PUSH2 0x229d
00002268: JUMPI
00002269: PUSH1 0x40
0000226b: DUP1
0000226c: MLOAD
0000226d: PUSH3 0x461bcd
00002271: PUSH1 0xe5
00002273: SHL
00002274: DUP2
00002275: MSTORE
00002276: PUSH1 0x20
00002278: PUSH1 0x04
0000227a: DUP3
0000227b: ADD
0000227c: MSTORE
0000227d: PUSH1 0x05
0000227f: PUSH1 0x24
00002281: DUP3
00002282: ADD
00002283: MSTORE
00002284: PUSH5 0x7372616131
0000228a: PUSH1 0xd8
0000228c: SHL
0000228d: PUSH1 0x44
0000228f: DUP3
00002290: ADD
00002291: MSTORE
00002292: SWAP1
00002293: MLOAD
00002294: SWAP1
00002295: DUP2
00002296: SWAP1
00002297: SUB
00002298: PUSH1 0x64
0000229a: ADD
0000229b: SWAP1
0000229c: REVERT
0000229d: JUMPDEST
0000229e: PUSH1 0x14
000022a0: SLOAD
000022a1: PUSH1 0x01
000022a3: PUSH1 0x01
000022a5: PUSH1 0xa0
000022a7: SHL
000022a8: SUB
000022a9: AND
000022aa: ISZERO
000022ab: PUSH2 0x22e3
000022ae: JUMPI
000022af: PUSH1 0x40
000022b1: DUP1
000022b2: MLOAD
000022b3: PUSH3 0x461bcd
000022b7: PUSH1 0xe5
000022b9: SHL
000022ba: DUP2
000022bb: MSTORE
000022bc: PUSH1 0x20
000022be: PUSH1 0x04
000022c0: DUP3
000022c1: ADD
000022c2: MSTORE
000022c3: PUSH1 0x05
000022c5: PUSH1 0x24
000022c7: DUP3
000022c8: ADD
000022c9: MSTORE
000022ca: PUSH5 0x39b930b099
000022d0: PUSH1 0xd9
000022d2: SHL
000022d3: PUSH1 0x44
000022d5: DUP3
000022d6: ADD
000022d7: MSTORE
000022d8: SWAP1
000022d9: MLOAD
000022da: SWAP1
000022db: DUP2
000022dc: SWAP1
000022dd: SUB
000022de: PUSH1 0x64
000022e0: ADD
000022e1: SWAP1
000022e2: REVERT
000022e3: JUMPDEST
000022e4: PUSH1 0x00
000022e6: DUP1
000022e7: MSTORE
000022e8: PUSH1 0x0c
000022ea: PUSH1 0x20
000022ec: MSTORE
000022ed: PUSH32 0x13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116eb
0000230e: SWAP3
0000230f: SWAP1
00002310: SWAP3
00002311: SSTORE
00002312: PUSH1 0x13
00002314: DUP1
00002315: SLOAD
00002316: PUSH1 0x01
00002318: PUSH1 0x01
0000231a: PUSH1 0xa0
0000231c: SHL
0000231d: SUB
0000231e: SWAP3
0000231f: DUP4
00002320: AND
00002321: PUSH1 0x01
00002323: PUSH1 0x01
00002325: PUSH1 0xa0
00002327: SHL
00002328: SUB
00002329: NOT
0000232a: SWAP2
0000232b: DUP3
0000232c: AND
0000232d: OR
0000232e: SWAP1
0000232f: SWAP2
00002330: SSTORE
00002331: PUSH1 0x14
00002333: DUP1
00002334: SLOAD
00002335: SWAP3
00002336: SWAP1
00002337: SWAP4
00002338: AND
00002339: SWAP2
0000233a: AND
0000233b: OR
0000233c: SWAP1
0000233d: SSTORE
0000233e: JUMP
0000233f: JUMPDEST
00002340: PUSH1 0x00
00002342: DUP1
00002343: MLOAD
00002344: PUSH1 0x20
00002346: PUSH2 0x4172
00002349: DUP4
0000234a: CODECOPY
0000234b: DUP2
0000234c: MLOAD
0000234d: SWAP2
0000234e: MSTORE
0000234f: SLOAD
00002350: DUP1
00002351: PUSH2 0x238f
00002354: JUMPI
00002355: PUSH1 0x40
00002357: DUP1
00002358: MLOAD
00002359: PUSH3 0x461bcd
0000235d: PUSH1 0xe5
0000235f: SHL
00002360: DUP2
00002361: MSTORE
00002362: PUSH1 0x20
00002364: PUSH1 0x04
00002366: DUP3
00002367: ADD
00002368: MSTORE
00002369: PUSH1 0x1f
0000236b: PUSH1 0x24
0000236d: DUP3
0000236e: ADD
0000236f: MSTORE
00002370: PUSH1 0x00
00002372: DUP1
00002373: MLOAD
00002374: PUSH1 0x20
00002376: PUSH2 0x412c
00002379: DUP4
0000237a: CODECOPY
0000237b: DUP2
0000237c: MLOAD
0000237d: SWAP2
0000237e: MSTORE
0000237f: PUSH1 0x44
00002381: DUP3
00002382: ADD
00002383: MSTORE
00002384: SWAP1
00002385: MLOAD
00002386: SWAP1
00002387: DUP2
00002388: SWAP1
00002389: SUB
0000238a: PUSH1 0x64
0000238c: ADD
0000238d: SWAP1
0000238e: REVERT
0000238f: JUMPDEST
00002390: PUSH1 0x00
00002392: PUSH1 0x00
00002394: DUP1
00002395: MLOAD
00002396: PUSH1 0x20
00002398: PUSH2 0x4172
0000239b: DUP4
0000239c: CODECOPY
0000239d: DUP2
0000239e: MLOAD
0000239f: SWAP2
000023a0: MSTORE
000023a1: SSTORE
000023a2: PUSH2 0x23ad
000023a5: PUSH1 0x00
000023a7: DUP4
000023a8: CALLER
000023a9: PUSH2 0x3a7c
000023ac: JUMP
000023ad: JUMPDEST
000023ae: PUSH1 0x40
000023b0: MLOAD
000023b1: PUSH1 0x00
000023b3: SWAP1
000023b4: CALLER
000023b5: SWAP1
000023b6: DUP5
000023b7: SWAP1
000023b8: DUP4
000023b9: DUP2
000023ba: DUP2
000023bb: DUP2
000023bc: DUP6
000023bd: DUP8
000023be: GAS
000023bf: CALL
000023c0: SWAP3
000023c1: POP
000023c2: POP
000023c3: POP
000023c4: RETURNDATASIZE
000023c5: DUP1
000023c6: PUSH1 0x00
000023c8: DUP2
000023c9: EQ
000023ca: PUSH2 0x23ef
000023cd: JUMPI
000023ce: PUSH1 0x40
000023d0: MLOAD
000023d1: SWAP2
000023d2: POP
000023d3: PUSH1 0x1f
000023d5: NOT
000023d6: PUSH1 0x3f
000023d8: RETURNDATASIZE
000023d9: ADD
000023da: AND
000023db: DUP3
000023dc: ADD
000023dd: PUSH1 0x40
000023df: MSTORE
000023e0: RETURNDATASIZE
000023e1: DUP3
000023e2: MSTORE
000023e3: RETURNDATASIZE
000023e4: PUSH1 0x00
000023e6: PUSH1 0x20
000023e8: DUP5
000023e9: ADD
000023ea: RETURNDATACOPY
000023eb: PUSH2 0x23f4
000023ee: JUMP
000023ef: JUMPDEST
000023f0: PUSH1 0x60
000023f2: SWAP2
000023f3: POP
000023f4: JUMPDEST
000023f5: POP
000023f6: POP
000023f7: SWAP1
000023f8: POP
000023f9: DUP1
000023fa: PUSH2 0x2432
000023fd: JUMPI
000023fe: PUSH1 0x40
00002400: DUP1
00002401: MLOAD
00002402: PUSH3 0x461bcd
00002406: PUSH1 0xe5
00002408: SHL
00002409: DUP2
0000240a: MSTORE
0000240b: PUSH1 0x20
0000240d: PUSH1 0x04
0000240f: DUP3
00002410: ADD
00002411: MSTORE
00002412: PUSH1 0x05
00002414: PUSH1 0x24
00002416: DUP3
00002417: ADD
00002418: MSTORE
00002419: PUSH5 0x6677653131
0000241f: PUSH1 0xd8
00002421: SHL
00002422: PUSH1 0x44
00002424: DUP3
00002425: ADD
00002426: MSTORE
00002427: SWAP1
00002428: MLOAD
00002429: SWAP1
0000242a: DUP2
0000242b: SWAP1
0000242c: SUB
0000242d: PUSH1 0x64
0000242f: ADD
00002430: SWAP1
00002431: REVERT
00002432: JUMPDEST
00002433: POP
00002434: PUSH1 0x01
00002436: PUSH1 0x00
00002438: DUP1
00002439: MLOAD
0000243a: PUSH1 0x20
0000243c: PUSH2 0x4172
0000243f: DUP4
00002440: CODECOPY
00002441: DUP2
00002442: MLOAD
00002443: SWAP2
00002444: MSTORE
00002445: SSTORE
00002446: POP
00002447: POP
00002448: JUMP
00002449: JUMPDEST
0000244a: PUSH1 0x12
0000244c: SLOAD
0000244d: PUSH1 0x01
0000244f: PUSH1 0x40
00002451: SHL
00002452: SWAP1
00002453: DIV
00002454: PUSH1 0x01
00002456: PUSH1 0x01
00002458: PUSH1 0x40
0000245a: SHL
0000245b: SUB
0000245c: AND
0000245d: DUP2
0000245e: JUMP
0000245f: JUMPDEST
00002460: PUSH1 0x00
00002462: DUP1
00002463: MLOAD
00002464: PUSH1 0x20
00002466: PUSH2 0x4172
00002469: DUP4
0000246a: CODECOPY
0000246b: DUP2
0000246c: MLOAD
0000246d: SWAP2
0000246e: MSTORE
0000246f: SLOAD
00002470: DUP1
00002471: PUSH2 0x24af
00002474: JUMPI
00002475: PUSH1 0x40
00002477: DUP1
00002478: MLOAD
00002479: PUSH3 0x461bcd
0000247d: PUSH1 0xe5
0000247f: SHL
00002480: DUP2
00002481: MSTORE
00002482: PUSH1 0x20
00002484: PUSH1 0x04
00002486: DUP3
00002487: ADD
00002488: MSTORE
00002489: PUSH1 0x1f
0000248b: PUSH1 0x24
0000248d: DUP3
0000248e: ADD
0000248f: MSTORE
00002490: PUSH1 0x00
00002492: DUP1
00002493: MLOAD
00002494: PUSH1 0x20
00002496: PUSH2 0x412c
00002499: DUP4
0000249a: CODECOPY
0000249b: DUP2
0000249c: MLOAD
0000249d: SWAP2
0000249e: MSTORE
0000249f: PUSH1 0x44
000024a1: DUP3
000024a2: ADD
000024a3: MSTORE
000024a4: SWAP1
000024a5: MLOAD
000024a6: SWAP1
000024a7: DUP2
000024a8: SWAP1
000024a9: SUB
000024aa: PUSH1 0x64
000024ac: ADD
000024ad: SWAP1
000024ae: REVERT
000024af: JUMPDEST
000024b0: PUSH1 0x00
000024b2: PUSH1 0x00
000024b4: DUP1
000024b5: MLOAD
000024b6: PUSH1 0x20
000024b8: PUSH2 0x4172
000024bb: DUP4
000024bc: CODECOPY
000024bd: DUP2
000024be: MLOAD
000024bf: SWAP2
000024c0: MSTORE
000024c1: DUP2
000024c2: SWAP1
000024c3: SSTORE
000024c4: PUSH1 0x01
000024c6: PUSH1 0x01
000024c8: PUSH1 0xa0
000024ca: SHL
000024cb: SUB
000024cc: DUP5
000024cd: AND
000024ce: DUP2
000024cf: MSTORE
000024d0: PUSH1 0x02
000024d2: PUSH1 0x20
000024d4: MSTORE
000024d5: PUSH1 0x40
000024d7: DUP2
000024d8: KECCAK256
000024d9: SLOAD
000024da: PUSH2 0xffff
000024dd: AND
000024de: SWAP1
000024df: DUP2
000024e0: PUSH2 0x2563
000024e3: JUMPI
000024e4: PUSH1 0x07
000024e6: SLOAD
000024e7: PUSH1 0x40
000024e9: DUP1
000024ea: MLOAD
000024eb: PUSH4 0x75698bb1
000024f0: PUSH1 0xe1
000024f2: SHL
000024f3: DUP2
000024f4: MSTORE
000024f5: PUSH1 0x01
000024f7: PUSH1 0x01
000024f9: PUSH1 0xa0
000024fb: SHL
000024fc: SUB
000024fd: DUP9
000024fe: DUP2
000024ff: AND
00002500: PUSH1 0x04
00002502: DUP4
00002503: ADD
00002504: MSTORE
00002505: SWAP2
00002506: MLOAD
00002507: SWAP2
00002508: SWAP1
00002509: SWAP3
0000250a: AND
0000250b: SWAP2
0000250c: PUSH4 0xead31762
00002511: SWAP2
00002512: PUSH1 0x24
00002514: DUP1
00002515: DUP4
00002516: ADD
00002517: SWAP3
00002518: PUSH1 0x20
0000251a: SWAP3
0000251b: SWAP2
0000251c: SWAP1
0000251d: DUP3
0000251e: SWAP1
0000251f: SUB
00002520: ADD
00002521: DUP2
00002522: DUP7
00002523: DUP1
00002524: EXTCODESIZE
00002525: ISZERO
00002526: DUP1
00002527: ISZERO
00002528: PUSH2 0x2530
0000252b: JUMPI
0000252c: PUSH1 0x00
0000252e: DUP1
0000252f: REVERT
00002530: JUMPDEST
00002531: POP
00002532: GAS
00002533: STATICCALL
00002534: ISZERO
00002535: DUP1
00002536: ISZERO
00002537: PUSH2 0x2544
0000253a: JUMPI
0000253b: RETURNDATASIZE
0000253c: PUSH1 0x00
0000253e: DUP1
0000253f: RETURNDATACOPY
00002540: RETURNDATASIZE
00002541: PUSH1 0x00
00002543: REVERT
00002544: JUMPDEST
00002545: POP
00002546: POP
00002547: POP
00002548: POP
00002549: PUSH1 0x40
0000254b: MLOAD
0000254c: RETURNDATASIZE
0000254d: PUSH1 0x20
0000254f: DUP2
00002550: LT
00002551: ISZERO
00002552: PUSH2 0x255a
00002555: JUMPI
00002556: PUSH1 0x00
00002558: DUP1
00002559: REVERT
0000255a: JUMPDEST
0000255b: POP
0000255c: MLOAD
0000255d: SWAP1
0000255e: POP
0000255f: PUSH2 0x256f
00002562: JUMP
00002563: JUMPDEST
00002564: PUSH2 0x256c
00002567: DUP6
00002568: PUSH2 0x2e36
0000256b: JUMP
0000256c: JUMPDEST
0000256d: SWAP1
0000256e: POP
0000256f: JUMPDEST
00002570: PUSH1 0x00
00002572: PUSH2 0x257b
00002575: CALLER
00002576: DUP4
00002577: PUSH2 0x345e
0000257a: JUMP
0000257b: JUMPDEST
0000257c: PUSH1 0x01
0000257e: PUSH1 0x01
00002580: PUSH1 0x50
00002582: SHL
00002583: SUB
00002584: NOT
00002585: DUP2
00002586: AND
00002587: PUSH1 0x00
00002589: SWAP1
0000258a: DUP2
0000258b: MSTORE
0000258c: PUSH1 0x09
0000258e: PUSH1 0x20
00002590: SWAP1
00002591: DUP2
00002592: MSTORE
00002593: PUSH1 0x40
00002595: DUP1
00002596: DUP4
00002597: KECCAK256
00002598: SLOAD
00002599: DUP2
0000259a: MLOAD
0000259b: PUSH4 0x9a83400d
000025a0: PUSH1 0xe0
000025a2: SHL
000025a3: DUP2
000025a4: MSTORE
000025a5: PUSH1 0x01
000025a7: PUSH1 0x01
000025a9: PUSH1 0xa0
000025ab: SHL
000025ac: SUB
000025ad: DUP13
000025ae: AND
000025af: PUSH1 0x04
000025b1: DUP3
000025b2: ADD
000025b3: MSTORE
000025b4: CALLER
000025b5: PUSH1 0x24
000025b7: DUP3
000025b8: ADD
000025b9: MSTORE
000025ba: PUSH1 0x01
000025bc: PUSH1 0x01
000025be: PUSH1 0x80
000025c0: SHL
000025c1: SUB
000025c2: DUP12
000025c3: DUP2
000025c4: AND
000025c5: PUSH1 0x44
000025c7: DUP4
000025c8: ADD
000025c9: MSTORE
000025ca: SWAP1
000025cb: SWAP2
000025cc: AND
000025cd: PUSH1 0x64
000025cf: DUP3
000025d0: ADD
000025d1: DUP2
000025d2: SWAP1
000025d3: MSTORE
000025d4: SWAP2
000025d5: MLOAD
000025d6: SWAP5
000025d7: SWAP6
000025d8: POP
000025d9: SWAP1
000025da: SWAP4
000025db: ADDRESS
000025dc: SWAP3
000025dd: PUSH4 0x9a83400d
000025e2: SWAP3
000025e3: PUSH1 0x84
000025e5: DUP1
000025e6: DUP3
000025e7: ADD
000025e8: SWAP4
000025e9: SWAP2
000025ea: DUP3
000025eb: SWAP1
000025ec: SUB
000025ed: ADD
000025ee: DUP2
000025ef: DUP8
000025f0: DUP8
000025f1: DUP1
000025f2: EXTCODESIZE
000025f3: ISZERO
000025f4: DUP1
000025f5: ISZERO
000025f6: PUSH2 0x25fe
000025f9: JUMPI
000025fa: PUSH1 0x00
000025fc: DUP1
000025fd: REVERT
000025fe: JUMPDEST
000025ff: POP
00002600: GAS
00002601: CALL
00002602: ISZERO
00002603: DUP1
00002604: ISZERO
00002605: PUSH2 0x2612
00002608: JUMPI
00002609: RETURNDATASIZE
0000260a: PUSH1 0x00
0000260c: DUP1
0000260d: RETURNDATACOPY
0000260e: RETURNDATASIZE
0000260f: PUSH1 0x00
00002611: REVERT
00002612: JUMPDEST
00002613: POP
00002614: POP
00002615: POP
00002616: POP
00002617: PUSH1 0x40
00002619: MLOAD
0000261a: RETURNDATASIZE
0000261b: PUSH1 0x20
0000261d: DUP2
0000261e: LT
0000261f: ISZERO
00002620: PUSH2 0x2628
00002623: JUMPI
00002624: PUSH1 0x00
00002626: DUP1
00002627: REVERT
00002628: JUMPDEST
00002629: POP
0000262a: MLOAD
0000262b: SWAP1
0000262c: POP
0000262d: PUSH2 0x2637
00002630: DUP5
00002631: DUP3
00002632: CALLER
00002633: PUSH2 0x3a7c
00002636: JUMP
00002637: JUMPDEST
00002638: POP
00002639: POP
0000263a: POP
0000263b: POP
0000263c: POP
0000263d: PUSH1 0x01
0000263f: PUSH1 0x00
00002641: DUP1
00002642: MLOAD
00002643: PUSH1 0x20
00002645: PUSH2 0x4172
00002648: DUP4
00002649: CODECOPY
0000264a: DUP2
0000264b: MLOAD
0000264c: SWAP2
0000264d: MSTORE
0000264e: SSTORE
0000264f: POP
00002650: POP
00002651: POP
00002652: JUMP
00002653: JUMPDEST
00002654: PUSH2 0x265b
00002657: PUSH2 0x315e
0000265a: JUMP
0000265b: JUMPDEST
0000265c: PUSH1 0x07
0000265e: SLOAD
0000265f: PUSH1 0x40
00002661: DUP1
00002662: MLOAD
00002663: PUSH4 0x0c883eb5
00002668: PUSH1 0xe4
0000266a: SHL
0000266b: DUP2
0000266c: MSTORE
0000266d: CALLER
0000266e: PUSH1 0x04
00002670: DUP3
00002671: ADD
00002672: MSTORE
00002673: SWAP1
00002674: MLOAD
00002675: PUSH1 0x01
00002677: PUSH1 0x01
00002679: PUSH1 0xa0
0000267b: SHL
0000267c: SUB
0000267d: SWAP1
0000267e: SWAP3
0000267f: AND
00002680: SWAP2
00002681: PUSH4 0xc883eb50
00002686: SWAP2
00002687: PUSH1 0x24
00002689: DUP1
0000268a: DUP3
0000268b: ADD
0000268c: SWAP3
0000268d: PUSH1 0x00
0000268f: SWAP3
00002690: SWAP1
00002691: SWAP2
00002692: SWAP1
00002693: DUP3
00002694: SWAP1
00002695: SUB
00002696: ADD
00002697: DUP2
00002698: DUP7
00002699: DUP1
0000269a: EXTCODESIZE
0000269b: ISZERO
0000269c: DUP1
0000269d: ISZERO
0000269e: PUSH2 0x26a6
000026a1: JUMPI
000026a2: PUSH1 0x00
000026a4: DUP1
000026a5: REVERT
000026a6: JUMPDEST
000026a7: POP
000026a8: GAS
000026a9: STATICCALL
000026aa: ISZERO
000026ab: DUP1
000026ac: ISZERO
000026ad: PUSH2 0x26ba
000026b0: JUMPI
000026b1: RETURNDATASIZE
000026b2: PUSH1 0x00
000026b4: DUP1
000026b5: RETURNDATACOPY
000026b6: RETURNDATASIZE
000026b7: PUSH1 0x00
000026b9: REVERT
000026ba: JUMPDEST
000026bb: POP
000026bc: POP
000026bd: PUSH1 0x07
000026bf: SLOAD
000026c0: PUSH1 0x40
000026c2: DUP1
000026c3: MLOAD
000026c4: PUSH4 0x75698bb1
000026c9: PUSH1 0xe1
000026cb: SHL
000026cc: DUP2
000026cd: MSTORE
000026ce: PUSH1 0x01
000026d0: PUSH1 0x01
000026d2: PUSH1 0xa0
000026d4: SHL
000026d5: SUB
000026d6: DUP8
000026d7: DUP2
000026d8: AND
000026d9: PUSH1 0x04
000026db: DUP4
000026dc: ADD
000026dd: MSTORE
000026de: SWAP2
000026df: MLOAD
000026e0: PUSH1 0x00
000026e2: SWAP6
000026e3: POP
000026e4: SWAP2
000026e5: SWAP1
000026e6: SWAP3
000026e7: AND
000026e8: SWAP3
000026e9: POP
000026ea: PUSH4 0xead31762
000026ef: SWAP2
000026f0: PUSH1 0x24
000026f2: DUP1
000026f3: DUP3
000026f4: ADD
000026f5: SWAP3
000026f6: PUSH1 0x20
000026f8: SWAP3
000026f9: SWAP1
000026fa: SWAP2
000026fb: SWAP1
000026fc: DUP3
000026fd: SWAP1
000026fe: SUB
000026ff: ADD
00002700: DUP2
00002701: DUP7
00002702: DUP1
00002703: EXTCODESIZE
00002704: ISZERO
00002705: DUP1
00002706: ISZERO
00002707: PUSH2 0x270f
0000270a: JUMPI
0000270b: PUSH1 0x00
0000270d: DUP1
0000270e: REVERT
0000270f: JUMPDEST
00002710: POP
00002711: GAS
00002712: STATICCALL
00002713: ISZERO
00002714: DUP1
00002715: ISZERO
00002716: PUSH2 0x2723
00002719: JUMPI
0000271a: RETURNDATASIZE
0000271b: PUSH1 0x00
0000271d: DUP1
0000271e: RETURNDATACOPY
0000271f: RETURNDATASIZE
00002720: PUSH1 0x00
00002722: REVERT
00002723: JUMPDEST
00002724: POP
00002725: POP
00002726: POP
00002727: POP
00002728: PUSH1 0x40
0000272a: MLOAD
0000272b: RETURNDATASIZE
0000272c: PUSH1 0x20
0000272e: DUP2
0000272f: LT
00002730: ISZERO
00002731: PUSH2 0x2739
00002734: JUMPI
00002735: PUSH1 0x00
00002737: DUP1
00002738: REVERT
00002739: JUMPDEST
0000273a: POP
0000273b: MLOAD
0000273c: PUSH1 0x07
0000273e: SLOAD
0000273f: PUSH1 0x40
00002741: DUP1
00002742: MLOAD
00002743: PUSH4 0x75698bb1
00002748: PUSH1 0xe1
0000274a: SHL
0000274b: DUP2
0000274c: MSTORE
0000274d: PUSH1 0x01
0000274f: PUSH1 0x01
00002751: PUSH1 0xa0
00002753: SHL
00002754: SUB
00002755: DUP7
00002756: DUP2
00002757: AND
00002758: PUSH1 0x04
0000275a: DUP4
0000275b: ADD
0000275c: MSTORE
0000275d: SWAP2
0000275e: MLOAD
0000275f: SWAP4
00002760: SWAP5
00002761: POP
00002762: PUSH1 0x00
00002764: SWAP4
00002765: SWAP2
00002766: SWAP1
00002767: SWAP3
00002768: AND
00002769: SWAP2
0000276a: PUSH4 0xead31762
0000276f: SWAP2
00002770: PUSH1 0x24
00002772: DUP1
00002773: DUP4
00002774: ADD
00002775: SWAP3
00002776: PUSH1 0x20
00002778: SWAP3
00002779: SWAP2
0000277a: SWAP1
0000277b: DUP3
0000277c: SWAP1
0000277d: SUB
0000277e: ADD
0000277f: DUP2
00002780: DUP7
00002781: DUP1
00002782: EXTCODESIZE
00002783: ISZERO
00002784: DUP1
00002785: ISZERO
00002786: PUSH2 0x278e
00002789: JUMPI
0000278a: PUSH1 0x00
0000278c: DUP1
0000278d: REVERT
0000278e: JUMPDEST
0000278f: POP
00002790: GAS
00002791: STATICCALL
00002792: ISZERO
00002793: DUP1
00002794: ISZERO
00002795: PUSH2 0x27a2
00002798: JUMPI
00002799: RETURNDATASIZE
0000279a: PUSH1 0x00
0000279c: DUP1
0000279d: RETURNDATACOPY
0000279e: RETURNDATASIZE
0000279f: PUSH1 0x00
000027a1: REVERT
000027a2: JUMPDEST
000027a3: POP
000027a4: POP
000027a5: POP
000027a6: POP
000027a7: PUSH1 0x40
000027a9: MLOAD
000027aa: RETURNDATASIZE
000027ab: PUSH1 0x20
000027ad: DUP2
000027ae: LT
000027af: ISZERO
000027b0: PUSH2 0x27b8
000027b3: JUMPI
000027b4: PUSH1 0x00
000027b6: DUP1
000027b7: REVERT
000027b8: JUMPDEST
000027b9: POP
000027ba: MLOAD
000027bb: SWAP1
000027bc: POP
000027bd: PUSH1 0x1f
000027bf: PUSH2 0xffff
000027c2: DUP4
000027c3: AND
000027c4: GT
000027c5: ISZERO
000027c6: PUSH2 0x2816
000027c9: JUMPI
000027ca: PUSH1 0x40
000027cc: DUP1
000027cd: MLOAD
000027ce: PUSH3 0x461bcd
000027d2: PUSH1 0xe5
000027d4: SHL
000027d5: DUP2
000027d6: MSTORE
000027d7: PUSH1 0x20
000027d9: PUSH1 0x04
000027db: DUP3
000027dc: ADD
000027dd: MSTORE
000027de: PUSH1 0x1a
000027e0: PUSH1 0x24
000027e2: DUP3
000027e3: ADD
000027e4: MSTORE
000027e5: PUSH32 0x746f6b656e412073686f756c642062652066656520746f6b656e000000000000
00002806: PUSH1 0x44
00002808: DUP3
00002809: ADD
0000280a: MSTORE
0000280b: SWAP1
0000280c: MLOAD
0000280d: SWAP1
0000280e: DUP2
0000280f: SWAP1
00002810: SUB
00002811: PUSH1 0x64
00002813: ADD
00002814: SWAP1
00002815: REVERT
00002816: JUMPDEST
00002817: PUSH1 0x08
00002819: SLOAD
0000281a: PUSH1 0x40
0000281c: DUP1
0000281d: MLOAD
0000281e: PUSH4 0x64e329cb
00002823: PUSH1 0xe1
00002825: SHL
00002826: DUP2
00002827: MSTORE
00002828: PUSH1 0x01
0000282a: PUSH1 0x01
0000282c: PUSH1 0xa0
0000282e: SHL
0000282f: SUB
00002830: DUP8
00002831: DUP2
00002832: AND
00002833: PUSH1 0x04
00002835: DUP4
00002836: ADD
00002837: MSTORE
00002838: DUP7
00002839: DUP2
0000283a: AND
0000283b: PUSH1 0x24
0000283d: DUP4
0000283e: ADD
0000283f: MSTORE
00002840: SWAP2
00002841: MLOAD
00002842: PUSH1 0x00
00002844: SWAP4
00002845: SWAP3
00002846: SWAP1
00002847: SWAP3
00002848: AND
00002849: SWAP2
0000284a: PUSH4 0xc9c65396
0000284f: SWAP2
00002850: PUSH1 0x44
00002852: DUP1
00002853: DUP3
00002854: ADD
00002855: SWAP3
00002856: PUSH1 0x20
00002858: SWAP3
00002859: SWAP1
0000285a: SWAP2
0000285b: SWAP1
0000285c: DUP3
0000285d: SWAP1
0000285e: SUB
0000285f: ADD
00002860: DUP2
00002861: DUP8
00002862: DUP8
00002863: DUP1
00002864: EXTCODESIZE
00002865: ISZERO
00002866: DUP1
00002867: ISZERO
00002868: PUSH2 0x2870
0000286b: JUMPI
0000286c: PUSH1 0x00
0000286e: DUP1
0000286f: REVERT
00002870: JUMPDEST
00002871: POP
00002872: GAS
00002873: CALL
00002874: ISZERO
00002875: DUP1
00002876: ISZERO
00002877: PUSH2 0x2884
0000287a: JUMPI
0000287b: RETURNDATASIZE
0000287c: PUSH1 0x00
0000287e: DUP1
0000287f: RETURNDATACOPY
00002880: RETURNDATASIZE
00002881: PUSH1 0x00
00002883: REVERT
00002884: JUMPDEST
00002885: POP
00002886: POP
00002887: POP
00002888: POP
00002889: PUSH1 0x40
0000288b: MLOAD
0000288c: RETURNDATASIZE
0000288d: PUSH1 0x20
0000288f: DUP2
00002890: LT
00002891: ISZERO
00002892: PUSH2 0x289a
00002895: JUMPI
00002896: PUSH1 0x00
00002898: DUP1
00002899: REVERT
0000289a: JUMPDEST
0000289b: POP
0000289c: MLOAD
0000289d: SWAP1
0000289e: POP
0000289f: PUSH1 0x01
000028a1: PUSH1 0x01
000028a3: PUSH1 0xa0
000028a5: SHL
000028a6: SUB
000028a7: DUP2
000028a8: AND
000028a9: PUSH2 0x28eb
000028ac: JUMPI
000028ad: PUSH1 0x40
000028af: DUP1
000028b0: MLOAD
000028b1: PUSH3 0x461bcd
000028b5: PUSH1 0xe5
000028b7: SHL
000028b8: DUP2
000028b9: MSTORE
000028ba: PUSH1 0x20
000028bc: PUSH1 0x04
000028be: DUP3
000028bf: ADD
000028c0: MSTORE
000028c1: PUSH1 0x0f
000028c3: PUSH1 0x24
000028c5: DUP3
000028c6: ADD
000028c7: MSTORE
000028c8: PUSH15 0x1c185a5c881a5cc81a5b9d985b1a59
000028d8: PUSH1 0x8a
000028da: SHL
000028db: PUSH1 0x44
000028dd: DUP3
000028de: ADD
000028df: MSTORE
000028e0: SWAP1
000028e1: MLOAD
000028e2: SWAP1
000028e3: DUP2
000028e4: SWAP1
000028e5: SUB
000028e6: PUSH1 0x64
000028e8: ADD
000028e9: SWAP1
000028ea: REVERT
000028eb: JUMPDEST
000028ec: PUSH2 0x28f4
000028ef: DUP2
000028f0: PUSH2 0x36f2
000028f3: JUMP
000028f4: JUMPDEST
000028f5: PUSH2 0x2904
000028f8: DUP4
000028f9: DUP7
000028fa: DUP5
000028fb: DUP8
000028fc: PUSH2 0x1df6
000028ff: DUP7
00002900: PUSH2 0x2e36
00002903: JUMP
00002904: JUMPDEST
00002905: POP
00002906: POP
00002907: POP
00002908: POP
00002909: POP
0000290a: JUMP
0000290b: JUMPDEST
0000290c: PUSH1 0x00
0000290e: SLOAD
0000290f: PUSH2 0xffff
00002912: AND
00002913: DUP2
00002914: JUMP
00002915: JUMPDEST
00002916: PUSH1 0x0b
00002918: SLOAD
00002919: PUSH4 0xffffffff
0000291e: AND
0000291f: DUP2
00002920: JUMP
00002921: JUMPDEST
00002922: PUSH1 0x00
00002924: DUP1
00002925: MLOAD
00002926: PUSH1 0x20
00002928: PUSH2 0x4172
0000292b: DUP4
0000292c: CODECOPY
0000292d: DUP2
0000292e: MLOAD
0000292f: SWAP2
00002930: MSTORE
00002931: SLOAD
00002932: DUP1
00002933: PUSH2 0x2971
00002936: JUMPI
00002937: PUSH1 0x40
00002939: DUP1
0000293a: MLOAD
0000293b: PUSH3 0x461bcd
0000293f: PUSH1 0xe5
00002941: SHL
00002942: DUP2
00002943: MSTORE
00002944: PUSH1 0x20
00002946: PUSH1 0x04
00002948: DUP3
00002949: ADD
0000294a: MSTORE
0000294b: PUSH1 0x1f
0000294d: PUSH1 0x24
0000294f: DUP3
00002950: ADD
00002951: MSTORE
00002952: PUSH1 0x00
00002954: DUP1
00002955: MLOAD
00002956: PUSH1 0x20
00002958: PUSH2 0x412c
0000295b: DUP4
0000295c: CODECOPY
0000295d: DUP2
0000295e: MLOAD
0000295f: SWAP2
00002960: MSTORE
00002961: PUSH1 0x44
00002963: DUP3
00002964: ADD
00002965: MSTORE
00002966: SWAP1
00002967: MLOAD
00002968: SWAP1
00002969: DUP2
0000296a: SWAP1
0000296b: SUB
0000296c: PUSH1 0x64
0000296e: ADD
0000296f: SWAP1
00002970: REVERT
00002971: JUMPDEST
00002972: PUSH1 0x00
00002974: PUSH1 0x00
00002976: DUP1
00002977: MLOAD
00002978: PUSH1 0x20
0000297a: PUSH2 0x4172
0000297d: DUP4
0000297e: CODECOPY
0000297f: DUP2
00002980: MLOAD
00002981: SWAP2
00002982: MSTORE
00002983: SSTORE
00002984: PUSH2 0x298b
00002987: PUSH2 0x315e
0000298a: JUMP
0000298b: JUMPDEST
0000298c: PUSH1 0x01
0000298e: PUSH1 0x01
00002990: PUSH1 0xa0
00002992: SHL
00002993: SUB
00002994: DUP5
00002995: AND
00002996: PUSH1 0x00
00002998: SWAP1
00002999: DUP2
0000299a: MSTORE
0000299b: PUSH1 0x02
0000299d: PUSH1 0x20
0000299f: MSTORE
000029a0: PUSH1 0x40
000029a2: DUP2
000029a3: KECCAK256
000029a4: SLOAD
000029a5: PUSH2 0xffff
000029a8: AND
000029a9: SWAP1
000029aa: DUP2
000029ab: PUSH2 0x2a2e
000029ae: JUMPI
000029af: PUSH1 0x07
000029b1: SLOAD
000029b2: PUSH1 0x40
000029b4: DUP1
000029b5: MLOAD
000029b6: PUSH4 0x75698bb1
000029bb: PUSH1 0xe1
000029bd: SHL
000029be: DUP2
000029bf: MSTORE
000029c0: PUSH1 0x01
000029c2: PUSH1 0x01
000029c4: PUSH1 0xa0
000029c6: SHL
000029c7: SUB
000029c8: DUP10
000029c9: DUP2
000029ca: AND
000029cb: PUSH1 0x04
000029cd: DUP4
000029ce: ADD
000029cf: MSTORE
000029d0: SWAP2
000029d1: MLOAD
000029d2: SWAP2
000029d3: SWAP1
000029d4: SWAP3
000029d5: AND
000029d6: SWAP2
000029d7: PUSH4 0xead31762
000029dc: SWAP2
000029dd: PUSH1 0x24
000029df: DUP1
000029e0: DUP4
000029e1: ADD
000029e2: SWAP3
000029e3: PUSH1 0x20
000029e5: SWAP3
000029e6: SWAP2
000029e7: SWAP1
000029e8: DUP3
000029e9: SWAP1
000029ea: SUB
000029eb: ADD
000029ec: DUP2
000029ed: DUP7
000029ee: DUP1
000029ef: EXTCODESIZE
000029f0: ISZERO
000029f1: DUP1
000029f2: ISZERO
000029f3: PUSH2 0x29fb
000029f6: JUMPI
000029f7: PUSH1 0x00
000029f9: DUP1
000029fa: REVERT
000029fb: JUMPDEST
000029fc: POP
000029fd: GAS
000029fe: STATICCALL
000029ff: ISZERO
00002a00: DUP1
00002a01: ISZERO
00002a02: PUSH2 0x2a0f
00002a05: JUMPI
00002a06: RETURNDATASIZE
00002a07: PUSH1 0x00
00002a09: DUP1
00002a0a: RETURNDATACOPY
00002a0b: RETURNDATASIZE
00002a0c: PUSH1 0x00
00002a0e: REVERT
00002a0f: JUMPDEST
00002a10: POP
00002a11: POP
00002a12: POP
00002a13: POP
00002a14: PUSH1 0x40
00002a16: MLOAD
00002a17: RETURNDATASIZE
00002a18: PUSH1 0x20
00002a1a: DUP2
00002a1b: LT
00002a1c: ISZERO
00002a1d: PUSH2 0x2a25
00002a20: JUMPI
00002a21: PUSH1 0x00
00002a23: DUP1
00002a24: REVERT
00002a25: JUMPDEST
00002a26: POP
00002a27: MLOAD
00002a28: SWAP1
00002a29: POP
00002a2a: PUSH2 0x2a3a
00002a2d: JUMP
00002a2e: JUMPDEST
00002a2f: PUSH2 0x2a37
00002a32: DUP7
00002a33: PUSH2 0x2e36
00002a36: JUMP
00002a37: JUMPDEST
00002a38: SWAP2
00002a39: POP
00002a3a: JUMPDEST
00002a3b: PUSH1 0x00
00002a3d: DUP1
00002a3e: DUP1
00002a3f: PUSH2 0xffff
00002a42: DUP6
00002a43: AND
00002a44: ISZERO
00002a45: PUSH2 0x2c56
00002a48: JUMPI
00002a49: PUSH1 0x40
00002a4b: DUP1
00002a4c: MLOAD
00002a4d: PUSH4 0x70a08231
00002a52: PUSH1 0xe0
00002a54: SHL
00002a55: DUP2
00002a56: MSTORE
00002a57: CALLER
00002a58: PUSH1 0x04
00002a5a: DUP3
00002a5b: ADD
00002a5c: MSTORE
00002a5d: SWAP1
00002a5e: MLOAD
00002a5f: PUSH1 0x01
00002a61: PUSH1 0x01
00002a63: PUSH1 0xa0
00002a65: SHL
00002a66: SUB
00002a67: DUP12
00002a68: AND
00002a69: SWAP2
00002a6a: PUSH4 0x70a08231
00002a6f: SWAP2
00002a70: PUSH1 0x24
00002a72: DUP1
00002a73: DUP4
00002a74: ADD
00002a75: SWAP3
00002a76: PUSH1 0x20
00002a78: SWAP3
00002a79: SWAP2
00002a7a: SWAP1
00002a7b: DUP3
00002a7c: SWAP1
00002a7d: SUB
00002a7e: ADD
00002a7f: DUP2
00002a80: DUP7
00002a81: DUP1
00002a82: EXTCODESIZE
00002a83: ISZERO
00002a84: DUP1
00002a85: ISZERO
00002a86: PUSH2 0x2a8e
00002a89: JUMPI
00002a8a: PUSH1 0x00
00002a8c: DUP1
00002a8d: REVERT
00002a8e: JUMPDEST
00002a8f: POP
00002a90: GAS
00002a91: STATICCALL
00002a92: ISZERO
00002a93: DUP1
00002a94: ISZERO
00002a95: PUSH2 0x2aa2
00002a98: JUMPI
00002a99: RETURNDATASIZE
00002a9a: PUSH1 0x00
00002a9c: DUP1
00002a9d: RETURNDATACOPY
00002a9e: RETURNDATASIZE
00002a9f: PUSH1 0x00
00002aa1: REVERT
00002aa2: JUMPDEST
00002aa3: POP
00002aa4: POP
00002aa5: POP
00002aa6: POP
00002aa7: PUSH1 0x40
00002aa9: MLOAD
00002aaa: RETURNDATASIZE
00002aab: PUSH1 0x20
00002aad: DUP2
00002aae: LT
00002aaf: ISZERO
00002ab0: PUSH2 0x2ab8
00002ab3: JUMPI
00002ab4: PUSH1 0x00
00002ab6: DUP1
00002ab7: REVERT
00002ab8: JUMPDEST
00002ab9: POP
00002aba: MLOAD
00002abb: PUSH1 0x08
00002abd: SLOAD
00002abe: SWAP1
00002abf: SWAP4
00002ac0: POP
00002ac1: PUSH1 0x01
00002ac3: PUSH1 0x01
00002ac5: PUSH1 0xa0
00002ac7: SHL
00002ac8: SUB
00002ac9: AND
00002aca: PUSH4 0xf6b911bc
00002acf: DUP11
00002ad0: CALLER
00002ad1: PUSH2 0x2ae2
00002ad4: PUSH1 0x01
00002ad6: PUSH1 0x01
00002ad8: PUSH1 0x68
00002ada: SHL
00002adb: SUB
00002adc: DUP14
00002add: AND
00002ade: PUSH2 0x347b
00002ae1: JUMP
00002ae2: JUMPDEST
00002ae3: PUSH1 0x40
00002ae5: MLOAD
00002ae6: DUP5
00002ae7: PUSH4 0xffffffff
00002aec: AND
00002aed: PUSH1 0xe0
00002aef: SHL
00002af0: DUP2
00002af1: MSTORE
00002af2: PUSH1 0x04
00002af4: ADD
00002af5: DUP1
00002af6: DUP5
00002af7: PUSH1 0x01
00002af9: PUSH1 0x01
00002afb: PUSH1 0xa0
00002afd: SHL
00002afe: SUB
00002aff: AND
00002b00: PUSH1 0x01
00002b02: PUSH1 0x01
00002b04: PUSH1 0xa0
00002b06: SHL
00002b07: SUB
00002b08: AND
00002b09: DUP2
00002b0a: MSTORE
00002b0b: PUSH1 0x20
00002b0d: ADD
00002b0e: DUP4
00002b0f: PUSH1 0x01
00002b11: PUSH1 0x01
00002b13: PUSH1 0xa0
00002b15: SHL
00002b16: SUB
00002b17: AND
00002b18: PUSH1 0x01
00002b1a: PUSH1 0x01
00002b1c: PUSH1 0xa0
00002b1e: SHL
00002b1f: SUB
00002b20: AND
00002b21: DUP2
00002b22: MSTORE
00002b23: PUSH1 0x20
00002b25: ADD
00002b26: DUP3
00002b27: PUSH1 0x01
00002b29: PUSH1 0x01
00002b2b: PUSH1 0x80
00002b2d: SHL
00002b2e: SUB
00002b2f: AND
00002b30: DUP2
00002b31: MSTORE
00002b32: PUSH1 0x20
00002b34: ADD
00002b35: SWAP4
00002b36: POP
00002b37: POP
00002b38: POP
00002b39: POP
00002b3a: PUSH1 0x00
00002b3c: PUSH1 0x40
00002b3e: MLOAD
00002b3f: DUP1
00002b40: DUP4
00002b41: SUB
00002b42: DUP2
00002b43: PUSH1 0x00
00002b45: DUP8
00002b46: DUP1
00002b47: EXTCODESIZE
00002b48: ISZERO
00002b49: DUP1
00002b4a: ISZERO
00002b4b: PUSH2 0x2b53
00002b4e: JUMPI
00002b4f: PUSH1 0x00
00002b51: DUP1
00002b52: REVERT
00002b53: JUMPDEST
00002b54: POP
00002b55: GAS
00002b56: CALL
00002b57: ISZERO
00002b58: DUP1
00002b59: ISZERO
00002b5a: PUSH2 0x2b67
00002b5d: JUMPI
00002b5e: RETURNDATASIZE
00002b5f: PUSH1 0x00
00002b61: DUP1
00002b62: RETURNDATACOPY
00002b63: RETURNDATASIZE
00002b64: PUSH1 0x00
00002b66: REVERT
00002b67: JUMPDEST
00002b68: POP
00002b69: POP
00002b6a: PUSH1 0x40
00002b6c: DUP1
00002b6d: MLOAD
00002b6e: PUSH4 0x70a08231
00002b73: PUSH1 0xe0
00002b75: SHL
00002b76: DUP2
00002b77: MSTORE
00002b78: CALLER
00002b79: PUSH1 0x04
00002b7b: DUP3
00002b7c: ADD
00002b7d: MSTORE
00002b7e: SWAP1
00002b7f: MLOAD
00002b80: PUSH1 0x01
00002b82: PUSH1 0x01
00002b84: PUSH1 0xa0
00002b86: SHL
00002b87: SUB
00002b88: DUP14
00002b89: AND
00002b8a: SWAP4
00002b8b: POP
00002b8c: PUSH4 0x70a08231
00002b91: SWAP3
00002b92: POP
00002b93: PUSH1 0x24
00002b95: DUP1
00002b96: DUP4
00002b97: ADD
00002b98: SWAP3
00002b99: PUSH1 0x20
00002b9b: SWAP3
00002b9c: SWAP2
00002b9d: SWAP1
00002b9e: DUP3
00002b9f: SWAP1
00002ba0: SUB
00002ba1: ADD
00002ba2: DUP2
00002ba3: DUP7
00002ba4: DUP1
00002ba5: EXTCODESIZE
00002ba6: ISZERO
00002ba7: DUP1
00002ba8: ISZERO
00002ba9: PUSH2 0x2bb1
00002bac: JUMPI
00002bad: PUSH1 0x00
00002baf: DUP1
00002bb0: REVERT
00002bb1: JUMPDEST
00002bb2: POP
00002bb3: GAS
00002bb4: STATICCALL
00002bb5: ISZERO
00002bb6: DUP1
00002bb7: ISZERO
00002bb8: PUSH2 0x2bc5
00002bbb: JUMPI
00002bbc: RETURNDATASIZE
00002bbd: PUSH1 0x00
00002bbf: DUP1
00002bc0: RETURNDATACOPY
00002bc1: RETURNDATASIZE
00002bc2: PUSH1 0x00
00002bc4: REVERT
00002bc5: JUMPDEST
00002bc6: POP
00002bc7: POP
00002bc8: POP
00002bc9: POP
00002bca: PUSH1 0x40
00002bcc: MLOAD
00002bcd: RETURNDATASIZE
00002bce: PUSH1 0x20
00002bd0: DUP2
00002bd1: LT
00002bd2: ISZERO
00002bd3: PUSH2 0x2bdb
00002bd6: JUMPI
00002bd7: PUSH1 0x00
00002bd9: DUP1
00002bda: REVERT
00002bdb: JUMPDEST
00002bdc: POP
00002bdd: MLOAD
00002bde: SWAP2
00002bdf: POP
00002be0: PUSH2 0x2bf7
00002be3: PUSH2 0x2bf2
00002be6: DUP5
00002be7: DUP5
00002be8: PUSH4 0xffffffff
00002bed: PUSH2 0x3a3a
00002bf0: AND
00002bf1: JUMP
00002bf2: JUMPDEST
00002bf3: PUSH2 0x347b
00002bf6: JUMP
00002bf7: JUMPDEST
00002bf8: PUSH1 0x15
00002bfa: SLOAD
00002bfb: SWAP1
00002bfc: SWAP2
00002bfd: POP
00002bfe: PUSH1 0x01
00002c00: PUSH1 0x01
00002c02: PUSH1 0x80
00002c04: SHL
00002c05: SUB
00002c06: SWAP1
00002c07: DUP2
00002c08: AND
00002c09: SWAP1
00002c0a: DUP3
00002c0b: AND
00002c0c: GT
00002c0d: ISZERO
00002c0e: PUSH2 0x2c46
00002c11: JUMPI
00002c12: PUSH1 0x40
00002c14: DUP1
00002c15: MLOAD
00002c16: PUSH3 0x461bcd
00002c1a: PUSH1 0xe5
00002c1c: SHL
00002c1d: DUP2
00002c1e: MSTORE
00002c1f: PUSH1 0x20
00002c21: PUSH1 0x04
00002c23: DUP3
00002c24: ADD
00002c25: MSTORE
00002c26: PUSH1 0x05
00002c28: PUSH1 0x24
00002c2a: DUP3
00002c2b: ADD
00002c2c: MSTORE
00002c2d: PUSH5 0x6664303131
00002c33: PUSH1 0xd8
00002c35: SHL
00002c36: PUSH1 0x44
00002c38: DUP3
00002c39: ADD
00002c3a: MSTORE
00002c3b: SWAP1
00002c3c: MLOAD
00002c3d: SWAP1
00002c3e: DUP2
00002c3f: SWAP1
00002c40: SUB
00002c41: PUSH1 0x64
00002c43: ADD
00002c44: SWAP1
00002c45: REVERT
00002c46: JUMPDEST
00002c47: PUSH2 0x2c51
00002c4a: DUP6
00002c4b: DUP3
00002c4c: DUP10
00002c4d: PUSH2 0x34c3
00002c50: JUMP
00002c51: JUMPDEST
00002c52: PUSH2 0x2e0a
00002c55: JUMP
00002c56: JUMPDEST
00002c57: PUSH1 0x40
00002c59: DUP1
00002c5a: MLOAD
00002c5b: PUSH4 0x70a08231
00002c60: PUSH1 0xe0
00002c62: SHL
00002c63: DUP2
00002c64: MSTORE
00002c65: ADDRESS
00002c66: PUSH1 0x04
00002c68: DUP3
00002c69: ADD
00002c6a: MSTORE
00002c6b: SWAP1
00002c6c: MLOAD
00002c6d: PUSH1 0x01
00002c6f: PUSH1 0x01
00002c71: PUSH1 0xa0
00002c73: SHL
00002c74: SUB
00002c75: DUP12
00002c76: AND
00002c77: SWAP2
00002c78: PUSH4 0x70a08231
00002c7d: SWAP2
00002c7e: PUSH1 0x24
00002c80: DUP1
00002c81: DUP4
00002c82: ADD
00002c83: SWAP3
00002c84: PUSH1 0x20
00002c86: SWAP3
00002c87: SWAP2
00002c88: SWAP1
00002c89: DUP3
00002c8a: SWAP1
00002c8b: SUB
00002c8c: ADD
00002c8d: DUP2
00002c8e: DUP7
00002c8f: DUP1
00002c90: EXTCODESIZE
00002c91: ISZERO
00002c92: DUP1
00002c93: ISZERO
00002c94: PUSH2 0x2c9c
00002c97: JUMPI
00002c98: PUSH1 0x00
00002c9a: DUP1
00002c9b: REVERT
00002c9c: JUMPDEST
00002c9d: POP
00002c9e: GAS
00002c9f: STATICCALL
00002ca0: ISZERO
00002ca1: DUP1
00002ca2: ISZERO
00002ca3: PUSH2 0x2cb0
00002ca6: JUMPI
00002ca7: RETURNDATASIZE
00002ca8: PUSH1 0x00
00002caa: DUP1
00002cab: RETURNDATACOPY
00002cac: RETURNDATASIZE
00002cad: PUSH1 0x00
00002caf: REVERT
00002cb0: JUMPDEST
00002cb1: POP
00002cb2: POP
00002cb3: POP
00002cb4: POP
00002cb5: PUSH1 0x40
00002cb7: MLOAD
00002cb8: RETURNDATASIZE
00002cb9: PUSH1 0x20
00002cbb: DUP2
00002cbc: LT
00002cbd: ISZERO
00002cbe: PUSH2 0x2cc6
00002cc1: JUMPI
00002cc2: PUSH1 0x00
00002cc4: DUP1
00002cc5: REVERT
00002cc6: JUMPDEST
00002cc7: POP
00002cc8: MLOAD
00002cc9: SWAP3
00002cca: POP
00002ccb: PUSH2 0x2cf0
00002cce: DUP10
00002ccf: CALLER
00002cd0: ADDRESS
00002cd1: PUSH2 0x2ce2
00002cd4: PUSH1 0x01
00002cd6: PUSH1 0x01
00002cd8: PUSH1 0x68
00002cda: SHL
00002cdb: SUB
00002cdc: DUP14
00002cdd: AND
00002cde: PUSH2 0x347b
00002ce1: JUMP
00002ce2: JUMPDEST
00002ce3: PUSH1 0x01
00002ce5: PUSH1 0x01
00002ce7: PUSH1 0x80
00002ce9: SHL
00002cea: SUB
00002ceb: AND
00002cec: PUSH2 0x3b3f
00002cef: JUMP
00002cf0: JUMPDEST
00002cf1: PUSH2 0x2d29
00002cf4: JUMPI
00002cf5: PUSH1 0x40
00002cf7: DUP1
00002cf8: MLOAD
00002cf9: PUSH3 0x461bcd
00002cfd: PUSH1 0xe5
00002cff: SHL
00002d00: DUP2
00002d01: MSTORE
00002d02: PUSH1 0x20
00002d04: PUSH1 0x04
00002d06: DUP3
00002d07: ADD
00002d08: MSTORE
00002d09: PUSH1 0x05
00002d0b: PUSH1 0x24
00002d0d: DUP3
00002d0e: ADD
00002d0f: MSTORE
00002d10: PUSH5 0x3332181899
00002d16: PUSH1 0xd9
00002d18: SHL
00002d19: PUSH1 0x44
00002d1b: DUP3
00002d1c: ADD
00002d1d: MSTORE
00002d1e: SWAP1
00002d1f: MLOAD
00002d20: SWAP1
00002d21: DUP2
00002d22: SWAP1
00002d23: SUB
00002d24: PUSH1 0x64
00002d26: ADD
00002d27: SWAP1
00002d28: REVERT
00002d29: JUMPDEST
00002d2a: PUSH1 0x40
00002d2c: DUP1
00002d2d: MLOAD
00002d2e: PUSH4 0x70a08231
00002d33: PUSH1 0xe0
00002d35: SHL
00002d36: DUP2
00002d37: MSTORE
00002d38: ADDRESS
00002d39: PUSH1 0x04
00002d3b: DUP3
00002d3c: ADD
00002d3d: MSTORE
00002d3e: SWAP1
00002d3f: MLOAD
00002d40: PUSH1 0x01
00002d42: PUSH1 0x01
00002d44: PUSH1 0xa0
00002d46: SHL
00002d47: SUB
00002d48: DUP12
00002d49: AND
00002d4a: SWAP2
00002d4b: PUSH4 0x70a08231
00002d50: SWAP2
00002d51: PUSH1 0x24
00002d53: DUP1
00002d54: DUP4
00002d55: ADD
00002d56: SWAP3
00002d57: PUSH1 0x20
00002d59: SWAP3
00002d5a: SWAP2
00002d5b: SWAP1
00002d5c: DUP3
00002d5d: SWAP1
00002d5e: SUB
00002d5f: ADD
00002d60: DUP2
00002d61: DUP7
00002d62: DUP1
00002d63: EXTCODESIZE
00002d64: ISZERO
00002d65: DUP1
00002d66: ISZERO
00002d67: PUSH2 0x2d6f
00002d6a: JUMPI
00002d6b: PUSH1 0x00
00002d6d: DUP1
00002d6e: REVERT
00002d6f: JUMPDEST
00002d70: POP
00002d71: GAS
00002d72: STATICCALL
00002d73: ISZERO
00002d74: DUP1
00002d75: ISZERO
00002d76: PUSH2 0x2d83
00002d79: JUMPI
00002d7a: RETURNDATASIZE
00002d7b: PUSH1 0x00
00002d7d: DUP1
00002d7e: RETURNDATACOPY
00002d7f: RETURNDATASIZE
00002d80: PUSH1 0x00
00002d82: REVERT
00002d83: JUMPDEST
00002d84: POP
00002d85: POP
00002d86: POP
00002d87: POP
00002d88: PUSH1 0x40
00002d8a: MLOAD
00002d8b: RETURNDATASIZE
00002d8c: PUSH1 0x20
00002d8e: DUP2
00002d8f: LT
00002d90: ISZERO
00002d91: PUSH2 0x2d99
00002d94: JUMPI
00002d95: PUSH1 0x00
00002d97: DUP1
00002d98: REVERT
00002d99: JUMPDEST
00002d9a: POP
00002d9b: MLOAD
00002d9c: SWAP2
00002d9d: POP
00002d9e: PUSH2 0x2db0
00002da1: PUSH2 0x2bf2
00002da4: DUP4
00002da5: DUP6
00002da6: PUSH4 0xffffffff
00002dab: PUSH2 0x3a3a
00002dae: AND
00002daf: JUMP
00002db0: JUMPDEST
00002db1: PUSH1 0x15
00002db3: SLOAD
00002db4: SWAP1
00002db5: SWAP2
00002db6: POP
00002db7: PUSH1 0x01
00002db9: PUSH1 0x01
00002dbb: PUSH1 0x80
00002dbd: SHL
00002dbe: SUB
00002dbf: SWAP1
00002dc0: DUP2
00002dc1: AND
00002dc2: SWAP1
00002dc3: DUP3
00002dc4: AND
00002dc5: GT
00002dc6: ISZERO
00002dc7: PUSH2 0x2dff
00002dca: JUMPI
00002dcb: PUSH1 0x40
00002dcd: DUP1
00002dce: MLOAD
00002dcf: PUSH3 0x461bcd
00002dd3: PUSH1 0xe5
00002dd5: SHL
00002dd6: DUP2
00002dd7: MSTORE
00002dd8: PUSH1 0x20
00002dda: PUSH1 0x04
00002ddc: DUP3
00002ddd: ADD
00002dde: MSTORE
00002ddf: PUSH1 0x05
00002de1: PUSH1 0x24
00002de3: DUP3
00002de4: ADD
00002de5: MSTORE
00002de6: PUSH5 0x6664303133
00002dec: PUSH1 0xd8
00002dee: SHL
00002def: PUSH1 0x44
00002df1: DUP3
00002df2: ADD
00002df3: MSTORE
00002df4: SWAP1
00002df5: MLOAD
00002df6: SWAP1
00002df7: DUP2
00002df8: SWAP1
00002df9: SUB
00002dfa: PUSH1 0x64
00002dfc: ADD
00002dfd: SWAP1
00002dfe: REVERT
00002dff: JUMPDEST
00002e00: PUSH2 0x2e0a
00002e03: DUP5
00002e04: DUP3
00002e05: DUP10
00002e06: PUSH2 0x34c3
00002e09: JUMP
00002e0a: JUMPDEST
00002e0b: POP
00002e0c: POP
00002e0d: POP
00002e0e: POP
00002e0f: POP
00002e10: PUSH1 0x01
00002e12: PUSH1 0x00
00002e14: DUP1
00002e15: MLOAD
00002e16: PUSH1 0x20
00002e18: PUSH2 0x4172
00002e1b: DUP4
00002e1c: CODECOPY
00002e1d: DUP2
00002e1e: MLOAD
00002e1f: SWAP2
00002e20: MSTORE
00002e21: SSTORE
00002e22: POP
00002e23: POP
00002e24: POP
00002e25: POP
00002e26: JUMP
00002e27: JUMPDEST
00002e28: PUSH1 0x14
00002e2a: SLOAD
00002e2b: PUSH1 0x01
00002e2d: PUSH1 0x01
00002e2f: PUSH1 0xa0
00002e31: SHL
00002e32: SUB
00002e33: AND
00002e34: DUP2
00002e35: JUMP
00002e36: JUMPDEST
00002e37: PUSH1 0x01
00002e39: PUSH1 0x01
00002e3b: PUSH1 0xa0
00002e3d: SHL
00002e3e: SUB
00002e3f: DUP2
00002e40: AND
00002e41: PUSH1 0x00
00002e43: SWAP1
00002e44: DUP2
00002e45: MSTORE
00002e46: PUSH1 0x02
00002e48: PUSH1 0x20
00002e4a: MSTORE
00002e4b: PUSH1 0x40
00002e4d: DUP2
00002e4e: KECCAK256
00002e4f: SLOAD
00002e50: PUSH2 0xffff
00002e53: AND
00002e54: DUP1
00002e55: PUSH2 0x2e8e
00002e58: JUMPI
00002e59: PUSH1 0x40
00002e5b: DUP1
00002e5c: MLOAD
00002e5d: PUSH3 0x461bcd
00002e61: PUSH1 0xe5
00002e63: SHL
00002e64: DUP2
00002e65: MSTORE
00002e66: PUSH1 0x20
00002e68: PUSH1 0x04
00002e6a: DUP1
00002e6b: DUP4
00002e6c: ADD
00002e6d: SWAP2
00002e6e: SWAP1
00002e6f: SWAP2
00002e70: MSTORE
00002e71: PUSH1 0x24
00002e73: DUP3
00002e74: ADD
00002e75: MSTORE
00002e76: PUSH4 0x706d7333
00002e7b: PUSH1 0xe0
00002e7d: SHL
00002e7e: PUSH1 0x44
00002e80: DUP3
00002e81: ADD
00002e82: MSTORE
00002e83: SWAP1
00002e84: MLOAD
00002e85: SWAP1
00002e86: DUP2
00002e87: SWAP1
00002e88: SUB
00002e89: PUSH1 0x64
00002e8b: ADD
00002e8c: SWAP1
00002e8d: REVERT
00002e8e: JUMPDEST
00002e8f: PUSH2 0xffff
00002e92: DUP2
00002e93: DUP2
00002e94: AND
00002e95: GT
00002e96: ISZERO
00002e97: PUSH2 0x2ed0
00002e9a: JUMPI
00002e9b: PUSH1 0x40
00002e9d: DUP1
00002e9e: MLOAD
00002e9f: PUSH3 0x461bcd
00002ea3: PUSH1 0xe5
00002ea5: SHL
00002ea6: DUP2
00002ea7: MSTORE
00002ea8: PUSH1 0x20
00002eaa: PUSH1 0x04
00002eac: DUP1
00002ead: DUP4
00002eae: ADD
00002eaf: SWAP2
00002eb0: SWAP1
00002eb1: SWAP2
00002eb2: MSTORE
00002eb3: PUSH1 0x24
00002eb5: DUP3
00002eb6: ADD
00002eb7: MSTORE
00002eb8: PUSH4 0x1c1b5ccd
00002ebd: PUSH1 0xe2
00002ebf: SHL
00002ec0: PUSH1 0x44
00002ec2: DUP3
00002ec3: ADD
00002ec4: MSTORE
00002ec5: SWAP1
00002ec6: MLOAD
00002ec7: SWAP1
00002ec8: DUP2
00002ec9: SWAP1
00002eca: SUB
00002ecb: PUSH1 0x64
00002ecd: ADD
00002ece: SWAP1
00002ecf: REVERT
00002ed0: JUMPDEST
00002ed1: SWAP3
00002ed2: SWAP2
00002ed3: POP
00002ed4: POP
00002ed5: JUMP
00002ed6: JUMPDEST
00002ed7: PUSH1 0x00
00002ed9: DUP1
00002eda: MLOAD
00002edb: PUSH1 0x20
00002edd: PUSH2 0x4172
00002ee0: DUP4
00002ee1: CODECOPY
00002ee2: DUP2
00002ee3: MLOAD
00002ee4: SWAP2
00002ee5: MSTORE
00002ee6: SLOAD
00002ee7: DUP1
00002ee8: PUSH2 0x2f26
00002eeb: JUMPI
00002eec: PUSH1 0x40
00002eee: DUP1
00002eef: MLOAD
00002ef0: PUSH3 0x461bcd
00002ef4: PUSH1 0xe5
00002ef6: SHL
00002ef7: DUP2
00002ef8: MSTORE
00002ef9: PUSH1 0x20
00002efb: PUSH1 0x04
00002efd: DUP3
00002efe: ADD
00002eff: MSTORE
00002f00: PUSH1 0x1f
00002f02: PUSH1 0x24
00002f04: DUP3
00002f05: ADD
00002f06: MSTORE
00002f07: PUSH1 0x00
00002f09: DUP1
00002f0a: MLOAD
00002f0b: PUSH1 0x20
00002f0d: PUSH2 0x412c
00002f10: DUP4
00002f11: CODECOPY
00002f12: DUP2
00002f13: MLOAD
00002f14: SWAP2
00002f15: MSTORE
00002f16: PUSH1 0x44
00002f18: DUP3
00002f19: ADD
00002f1a: MSTORE
00002f1b: SWAP1
00002f1c: MLOAD
00002f1d: SWAP1
00002f1e: DUP2
00002f1f: SWAP1
00002f20: SUB
00002f21: PUSH1 0x64
00002f23: ADD
00002f24: SWAP1
00002f25: REVERT
00002f26: JUMPDEST
00002f27: PUSH1 0x00
00002f29: PUSH1 0x00
00002f2b: DUP1
00002f2c: MLOAD
00002f2d: PUSH1 0x20
00002f2f: PUSH2 0x4172
00002f32: DUP4
00002f33: CODECOPY
00002f34: DUP2
00002f35: MLOAD
00002f36: SWAP2
00002f37: MSTORE
00002f38: SSTORE
00002f39: PUSH1 0x01
00002f3b: PUSH1 0x01
00002f3d: PUSH1 0xa0
00002f3f: SHL
00002f40: SUB
00002f41: DUP3
00002f42: AND
00002f43: PUSH2 0x2f7b
00002f46: JUMPI
00002f47: PUSH1 0x40
00002f49: DUP1
00002f4a: MLOAD
00002f4b: PUSH3 0x461bcd
00002f4f: PUSH1 0xe5
00002f51: SHL
00002f52: DUP2
00002f53: MSTORE
00002f54: PUSH1 0x20
00002f56: PUSH1 0x04
00002f58: DUP3
00002f59: ADD
00002f5a: MSTORE
00002f5b: PUSH1 0x05
00002f5d: PUSH1 0x24
00002f5f: DUP3
00002f60: ADD
00002f61: MSTORE
00002f62: PUSH5 0x34b8309899
00002f68: PUSH1 0xd9
00002f6a: SHL
00002f6b: PUSH1 0x44
00002f6d: DUP3
00002f6e: ADD
00002f6f: MSTORE
00002f70: SWAP1
00002f71: MLOAD
00002f72: SWAP1
00002f73: DUP2
00002f74: SWAP1
00002f75: SUB
00002f76: PUSH1 0x64
00002f78: ADD
00002f79: SWAP1
00002f7a: REVERT
00002f7b: JUMPDEST
00002f7c: PUSH1 0x01
00002f7e: PUSH1 0x01
00002f80: PUSH1 0xa0
00002f82: SHL
00002f83: SUB
00002f84: DUP5
00002f85: AND
00002f86: PUSH1 0x00
00002f88: SWAP1
00002f89: DUP2
00002f8a: MSTORE
00002f8b: PUSH1 0x02
00002f8d: PUSH1 0x20
00002f8f: MSTORE
00002f90: PUSH1 0x40
00002f92: DUP2
00002f93: KECCAK256
00002f94: SLOAD
00002f95: PUSH2 0xffff
00002f98: AND
00002f99: SWAP1
00002f9a: DUP2
00002f9b: PUSH2 0x301e
00002f9e: JUMPI
00002f9f: PUSH1 0x07
00002fa1: SLOAD
00002fa2: PUSH1 0x40
00002fa4: DUP1
00002fa5: MLOAD
00002fa6: PUSH4 0x75698bb1
00002fab: PUSH1 0xe1
00002fad: SHL
00002fae: DUP2
00002faf: MSTORE
00002fb0: PUSH1 0x01
00002fb2: PUSH1 0x01
00002fb4: PUSH1 0xa0
00002fb6: SHL
00002fb7: SUB
00002fb8: DUP10
00002fb9: DUP2
00002fba: AND
00002fbb: PUSH1 0x04
00002fbd: DUP4
00002fbe: ADD
00002fbf: MSTORE
00002fc0: SWAP2
00002fc1: MLOAD
00002fc2: SWAP2
00002fc3: SWAP1
00002fc4: SWAP3
00002fc5: AND
00002fc6: SWAP2
00002fc7: PUSH4 0xead31762
00002fcc: SWAP2
00002fcd: PUSH1 0x24
00002fcf: DUP1
00002fd0: DUP4
00002fd1: ADD
00002fd2: SWAP3
00002fd3: PUSH1 0x20
00002fd5: SWAP3
00002fd6: SWAP2
00002fd7: SWAP1
00002fd8: DUP3
00002fd9: SWAP1
00002fda: SUB
00002fdb: ADD
00002fdc: DUP2
00002fdd: DUP7
00002fde: DUP1
00002fdf: EXTCODESIZE
00002fe0: ISZERO
00002fe1: DUP1
00002fe2: ISZERO
00002fe3: PUSH2 0x2feb
00002fe6: JUMPI
00002fe7: PUSH1 0x00
00002fe9: DUP1
00002fea: REVERT
00002feb: JUMPDEST
00002fec: POP
00002fed: GAS
00002fee: STATICCALL
00002fef: ISZERO
00002ff0: DUP1
00002ff1: ISZERO
00002ff2: PUSH2 0x2fff
00002ff5: JUMPI
00002ff6: RETURNDATASIZE
00002ff7: PUSH1 0x00
00002ff9: DUP1
00002ffa: RETURNDATACOPY
00002ffb: RETURNDATASIZE
00002ffc: PUSH1 0x00
00002ffe: REVERT
00002fff: JUMPDEST
00003000: POP
00003001: POP
00003002: POP
00003003: POP
00003004: PUSH1 0x40
00003006: MLOAD
00003007: RETURNDATASIZE
00003008: PUSH1 0x20
0000300a: DUP2
0000300b: LT
0000300c: ISZERO
0000300d: PUSH2 0x3015
00003010: JUMPI
00003011: PUSH1 0x00
00003013: DUP1
00003014: REVERT
00003015: JUMPDEST
00003016: POP
00003017: MLOAD
00003018: SWAP1
00003019: POP
0000301a: PUSH2 0x302a
0000301d: JUMP
0000301e: JUMPDEST
0000301f: PUSH2 0x3027
00003022: DUP7
00003023: PUSH2 0x2e36
00003026: JUMP
00003027: JUMPDEST
00003028: SWAP1
00003029: POP
0000302a: JUMPDEST
0000302b: PUSH1 0x00
0000302d: PUSH2 0x3036
00003030: DUP6
00003031: DUP4
00003032: PUSH2 0x345e
00003035: JUMP
00003036: JUMPDEST
00003037: PUSH1 0x01
00003039: PUSH1 0x01
0000303b: PUSH1 0x50
0000303d: SHL
0000303e: SUB
0000303f: NOT
00003040: DUP2
00003041: AND
00003042: PUSH1 0x00
00003044: SWAP1
00003045: DUP2
00003046: MSTORE
00003047: PUSH1 0x09
00003049: PUSH1 0x20
0000304b: SWAP1
0000304c: DUP2
0000304d: MSTORE
0000304e: PUSH1 0x40
00003050: DUP1
00003051: DUP4
00003052: KECCAK256
00003053: SLOAD
00003054: DUP2
00003055: MLOAD
00003056: PUSH4 0x9a83400d
0000305b: PUSH1 0xe0
0000305d: SHL
0000305e: DUP2
0000305f: MSTORE
00003060: PUSH1 0x01
00003062: PUSH1 0x01
00003064: PUSH1 0xa0
00003066: SHL
00003067: SUB
00003068: DUP14
00003069: DUP2
0000306a: AND
0000306b: PUSH1 0x04
0000306d: DUP4
0000306e: ADD
0000306f: MSTORE
00003070: DUP12
00003071: AND
00003072: PUSH1 0x24
00003074: DUP3
00003075: ADD
00003076: MSTORE
00003077: PUSH1 0x01
00003079: PUSH1 0x01
0000307b: PUSH1 0x80
0000307d: SHL
0000307e: SUB
0000307f: DUP13
00003080: DUP2
00003081: AND
00003082: PUSH1 0x44
00003084: DUP4
00003085: ADD
00003086: MSTORE
00003087: SWAP1
00003088: SWAP2
00003089: AND
0000308a: PUSH1 0x64
0000308c: DUP3
0000308d: ADD
0000308e: DUP2
0000308f: SWAP1
00003090: MSTORE
00003091: SWAP2
00003092: MLOAD
00003093: SWAP5
00003094: SWAP6
00003095: POP
00003096: SWAP1
00003097: SWAP4
00003098: ADDRESS
00003099: SWAP3
0000309a: PUSH4 0x9a83400d
0000309f: SWAP3
000030a0: PUSH1 0x84
000030a2: DUP1
000030a3: DUP3
000030a4: ADD
000030a5: SWAP4
000030a6: SWAP2
000030a7: DUP3
000030a8: SWAP1
000030a9: SUB
000030aa: ADD
000030ab: DUP2
000030ac: DUP8
000030ad: DUP8
000030ae: DUP1
000030af: EXTCODESIZE
000030b0: ISZERO
000030b1: DUP1
000030b2: ISZERO
000030b3: PUSH2 0x30bb
000030b6: JUMPI
000030b7: PUSH1 0x00
000030b9: DUP1
000030ba: REVERT
000030bb: JUMPDEST
000030bc: POP
000030bd: GAS
000030be: CALL
000030bf: ISZERO
000030c0: DUP1
000030c1: ISZERO
000030c2: PUSH2 0x30cf
000030c5: JUMPI
000030c6: RETURNDATASIZE
000030c7: PUSH1 0x00
000030c9: DUP1
000030ca: RETURNDATACOPY
000030cb: RETURNDATASIZE
000030cc: PUSH1 0x00
000030ce: REVERT
000030cf: JUMPDEST
000030d0: POP
000030d1: POP
000030d2: POP
000030d3: POP
000030d4: PUSH1 0x40
000030d6: MLOAD
000030d7: RETURNDATASIZE
000030d8: PUSH1 0x20
000030da: DUP2
000030db: LT
000030dc: ISZERO
000030dd: PUSH2 0x30e5
000030e0: JUMPI
000030e1: PUSH1 0x00
000030e3: DUP1
000030e4: REVERT
000030e5: JUMPDEST
000030e6: POP
000030e7: MLOAD
000030e8: SWAP1
000030e9: POP
000030ea: PUSH2 0x2e0a
000030ed: DUP5
000030ee: DUP3
000030ef: DUP10
000030f0: PUSH2 0x3a7c
000030f3: JUMP
000030f4: JUMPDEST
000030f5: PUSH1 0x00
000030f7: PUSH1 0x09
000030f9: PUSH1 0x00
000030fb: PUSH2 0x3104
000030fe: DUP6
000030ff: DUP6
00003100: PUSH2 0x345e
00003103: JUMP
00003104: JUMPDEST
00003105: PUSH1 0x01
00003107: PUSH1 0x01
00003109: PUSH1 0x50
0000310b: SHL
0000310c: SUB
0000310d: NOT
0000310e: AND
0000310f: DUP2
00003110: MSTORE
00003111: PUSH1 0x20
00003113: DUP2
00003114: ADD
00003115: SWAP2
00003116: SWAP1
00003117: SWAP2
00003118: MSTORE
00003119: PUSH1 0x40
0000311b: ADD
0000311c: PUSH1 0x00
0000311e: KECCAK256
0000311f: SLOAD
00003120: PUSH1 0x01
00003122: PUSH1 0x01
00003124: PUSH1 0x80
00003126: SHL
00003127: SUB
00003128: AND
00003129: SWAP4
0000312a: SWAP3
0000312b: POP
0000312c: POP
0000312d: POP
0000312e: JUMP
0000312f: JUMPDEST
00003130: PUSH1 0x0b
00003132: SLOAD
00003133: PUSH1 0x01
00003135: PUSH1 0x80
00003137: SHL
00003138: SWAP1
00003139: DIV
0000313a: PUSH4 0xffffffff
0000313f: AND
00003140: DUP2
00003141: JUMP
00003142: JUMPDEST
00003143: PUSH1 0x02
00003145: PUSH1 0x20
00003147: MSTORE
00003148: PUSH1 0x00
0000314a: SWAP1
0000314b: DUP2
0000314c: MSTORE
0000314d: PUSH1 0x40
0000314f: SWAP1
00003150: KECCAK256
00003151: SLOAD
00003152: PUSH2 0xffff
00003155: AND
00003156: DUP2
00003157: JUMP
00003158: JUMPDEST
00003159: PUSH1 0x04
0000315b: SLOAD
0000315c: DUP2
0000315d: JUMP
0000315e: JUMPDEST
0000315f: PUSH1 0x0f
00003161: SLOAD
00003162: PUSH1 0xff
00003164: AND
00003165: ISZERO
00003166: PUSH2 0x14c6
00003169: JUMPI
0000316a: PUSH1 0x40
0000316c: DUP1
0000316d: MLOAD
0000316e: PUSH3 0x461bcd
00003172: PUSH1 0xe5
00003174: SHL
00003175: DUP2
00003176: MSTORE
00003177: PUSH1 0x20
00003179: PUSH1 0x04
0000317b: DUP3
0000317c: ADD
0000317d: MSTORE
0000317e: PUSH1 0x05
00003180: PUSH1 0x24
00003182: DUP3
00003183: ADD
00003184: MSTORE
00003185: PUSH5 0x6672653131
0000318b: PUSH1 0xd8
0000318d: SHL
0000318e: PUSH1 0x44
00003190: DUP3
00003191: ADD
00003192: MSTORE
00003193: SWAP1
00003194: MLOAD
00003195: SWAP1
00003196: DUP2
00003197: SWAP1
00003198: SUB
00003199: PUSH1 0x64
0000319b: ADD
0000319c: SWAP1
0000319d: REVERT
0000319e: JUMPDEST
0000319f: PUSH1 0x60
000031a1: DUP2
000031a2: PUSH1 0x00
000031a4: ADD
000031a5: MLOAD
000031a6: DUP3
000031a7: PUSH1 0x20
000031a9: ADD
000031aa: MLOAD
000031ab: DUP4
000031ac: PUSH1 0x40
000031ae: ADD
000031af: MLOAD
000031b0: DUP5
000031b1: PUSH1 0x60
000031b3: ADD
000031b4: MLOAD
000031b5: PUSH1 0x40
000031b7: MLOAD
000031b8: PUSH1 0x20
000031ba: ADD
000031bb: DUP1
000031bc: DUP6
000031bd: PUSH4 0xffffffff
000031c2: AND
000031c3: PUSH4 0xffffffff
000031c8: AND
000031c9: PUSH1 0xe0
000031cb: SHL
000031cc: DUP2
000031cd: MSTORE
000031ce: PUSH1 0x04
000031d0: ADD
000031d1: DUP5
000031d2: PUSH1 0x01
000031d4: PUSH1 0x01
000031d6: PUSH1 0xa0
000031d8: SHL
000031d9: SUB
000031da: AND
000031db: PUSH1 0x01
000031dd: PUSH1 0x01
000031df: PUSH1 0xa0
000031e1: SHL
000031e2: SUB
000031e3: AND
000031e4: PUSH1 0x60
000031e6: SHL
000031e7: DUP2
000031e8: MSTORE
000031e9: PUSH1 0x14
000031eb: ADD
000031ec: DUP4
000031ed: PUSH2 0xffff
000031f0: AND
000031f1: PUSH2 0xffff
000031f4: AND
000031f5: PUSH1 0xf0
000031f7: SHL
000031f8: DUP2
000031f9: MSTORE
000031fa: PUSH1 0x02
000031fc: ADD
000031fd: DUP3
000031fe: PUSH1 0x01
00003200: PUSH1 0x01
00003202: PUSH1 0x80
00003204: SHL
00003205: SUB
00003206: AND
00003207: PUSH1 0x01
00003209: PUSH1 0x01
0000320b: PUSH1 0x80
0000320d: SHL
0000320e: SUB
0000320f: AND
00003210: PUSH1 0x80
00003212: SHL
00003213: DUP2
00003214: MSTORE
00003215: PUSH1 0x10
00003217: ADD
00003218: SWAP5
00003219: POP
0000321a: POP
0000321b: POP
0000321c: POP
0000321d: POP
0000321e: PUSH1 0x40
00003220: MLOAD
00003221: PUSH1 0x20
00003223: DUP2
00003224: DUP4
00003225: SUB
00003226: SUB
00003227: DUP2
00003228: MSTORE
00003229: SWAP1
0000322a: PUSH1 0x40
0000322c: MSTORE
0000322d: SWAP1
0000322e: POP
0000322f: SWAP2
00003230: SWAP1
00003231: POP
00003232: JUMP
00003233: JUMPDEST
00003234: PUSH1 0x12
00003236: SLOAD
00003237: PUSH1 0x40
00003239: DUP1
0000323a: MLOAD
0000323b: PUSH1 0x60
0000323d: DUP2
0000323e: ADD
0000323f: SWAP1
00003240: SWAP2
00003241: MSTORE
00003242: NUMBER
00003243: PUSH2 0x4380
00003246: ADD
00003247: SWAP2
00003248: PUSH1 0x01
0000324a: PUSH1 0x01
0000324c: PUSH1 0x40
0000324e: SHL
0000324f: SUB
00003250: DUP1
00003251: DUP3
00003252: AND
00003253: PUSH1 0x01
00003255: PUSH1 0x40
00003257: SHL
00003258: SWAP1
00003259: SWAP3
0000325a: DIV
0000325b: AND
0000325c: ADD
0000325d: SWAP1
0000325e: DUP1
0000325f: DUP7
00003260: PUSH1 0x0b
00003262: DUP2
00003263: GT
00003264: ISZERO
00003265: PUSH2 0x326a
00003268: JUMPI
00003269: INVALID
0000326a: JUMPDEST
0000326b: DUP2
0000326c: MSTORE
0000326d: PUSH1 0x20
0000326f: DUP1
00003270: DUP3
00003271: ADD
00003272: DUP8
00003273: SWAP1
00003274: MSTORE
00003275: PUSH1 0x40
00003277: SWAP2
00003278: DUP3
00003279: ADD
0000327a: DUP6
0000327b: SWAP1
0000327c: MSTORE
0000327d: PUSH1 0x01
0000327f: PUSH1 0x01
00003281: PUSH1 0x40
00003283: SHL
00003284: SUB
00003285: DUP5
00003286: AND
00003287: PUSH1 0x00
00003289: SWAP1
0000328a: DUP2
0000328b: MSTORE
0000328c: PUSH1 0x11
0000328e: SWAP1
0000328f: SWAP2
00003290: MSTORE
00003291: KECCAK256
00003292: DUP2
00003293: MLOAD
00003294: DUP2
00003295: SLOAD
00003296: DUP3
00003297: SWAP1
00003298: PUSH1 0xff
0000329a: NOT
0000329b: AND
0000329c: PUSH1 0x01
0000329e: DUP4
0000329f: PUSH1 0x0b
000032a1: DUP2
000032a2: GT
000032a3: ISZERO
000032a4: PUSH2 0x32a9
000032a7: JUMPI
000032a8: INVALID
000032a9: JUMPDEST
000032aa: MUL
000032ab: OR
000032ac: SWAP1
000032ad: SSTORE
000032ae: POP
000032af: PUSH1 0x20
000032b1: DUP3
000032b2: DUP2
000032b3: ADD
000032b4: MLOAD
000032b5: DUP1
000032b6: MLOAD
000032b7: PUSH2 0x32c6
000032ba: SWAP3
000032bb: PUSH1 0x01
000032bd: DUP6
000032be: ADD
000032bf: SWAP3
000032c0: ADD
000032c1: SWAP1
000032c2: PUSH2 0x4069
000032c5: JUMP
000032c6: JUMPDEST
000032c7: POP
000032c8: PUSH1 0x40
000032ca: DUP3
000032cb: ADD
000032cc: MLOAD
000032cd: DUP2
000032ce: PUSH1 0x02
000032d0: ADD
000032d1: SSTORE
000032d2: SWAP1
000032d3: POP
000032d4: POP
000032d5: PUSH32 0x61a320c641d3946236359022627bfeb930f7a628b0d863a325a1d4983f2e4238
000032f6: CALLER
000032f7: DUP3
000032f8: DUP8
000032f9: DUP8
000032fa: DUP8
000032fb: DUP8
000032fc: PUSH1 0x40
000032fe: MLOAD
000032ff: DUP1
00003300: DUP8
00003301: PUSH1 0x01
00003303: PUSH1 0x01
00003305: PUSH1 0xa0
00003307: SHL
00003308: SUB
00003309: AND
0000330a: PUSH1 0x01
0000330c: PUSH1 0x01
0000330e: PUSH1 0xa0
00003310: SHL
00003311: SUB
00003312: AND
00003313: DUP2
00003314: MSTORE
00003315: PUSH1 0x20
00003317: ADD
00003318: DUP7
00003319: PUSH1 0x01
0000331b: PUSH1 0x01
0000331d: PUSH1 0x40
0000331f: SHL
00003320: SUB
00003321: AND
00003322: PUSH1 0x01
00003324: PUSH1 0x01
00003326: PUSH1 0x40
00003328: SHL
00003329: SUB
0000332a: AND
0000332b: DUP2
0000332c: MSTORE
0000332d: PUSH1 0x20
0000332f: ADD
00003330: DUP6
00003331: PUSH1 0x0b
00003333: DUP2
00003334: GT
00003335: ISZERO
00003336: PUSH2 0x333b
00003339: JUMPI
0000333a: INVALID
0000333b: JUMPDEST
0000333c: PUSH1 0xff
0000333e: AND
0000333f: DUP2
00003340: MSTORE
00003341: PUSH1 0x20
00003343: ADD
00003344: DUP1
00003345: PUSH1 0x20
00003347: ADD
00003348: DUP1
00003349: PUSH1 0x20
0000334b: ADD
0000334c: DUP5
0000334d: DUP2
0000334e: MSTORE
0000334f: PUSH1 0x20
00003351: ADD
00003352: DUP4
00003353: DUP2
00003354: SUB
00003355: DUP4
00003356: MSTORE
00003357: DUP7
00003358: DUP2
00003359: DUP2
0000335a: MLOAD
0000335b: DUP2
0000335c: MSTORE
0000335d: PUSH1 0x20
0000335f: ADD
00003360: SWAP2
00003361: POP
00003362: DUP1
00003363: MLOAD
00003364: SWAP1
00003365: PUSH1 0x20
00003367: ADD
00003368: SWAP1
00003369: DUP1
0000336a: DUP4
0000336b: DUP4
0000336c: PUSH1 0x00
0000336e: JUMPDEST
0000336f: DUP4
00003370: DUP2
00003371: LT
00003372: ISZERO
00003373: PUSH2 0x3386
00003376: JUMPI
00003377: DUP2
00003378: DUP2
00003379: ADD
0000337a: MLOAD
0000337b: DUP4
0000337c: DUP3
0000337d: ADD
0000337e: MSTORE
0000337f: PUSH1 0x20
00003381: ADD
00003382: PUSH2 0x336e
00003385: JUMP
00003386: JUMPDEST
00003387: POP
00003388: POP
00003389: POP
0000338a: POP
0000338b: SWAP1
0000338c: POP
0000338d: SWAP1
0000338e: DUP2
0000338f: ADD
00003390: SWAP1
00003391: PUSH1 0x1f
00003393: AND
00003394: DUP1
00003395: ISZERO
00003396: PUSH2 0x33b3
00003399: JUMPI
0000339a: DUP1
0000339b: DUP3
0000339c: SUB
0000339d: DUP1
0000339e: MLOAD
0000339f: PUSH1 0x01
000033a1: DUP4
000033a2: PUSH1 0x20
000033a4: SUB
000033a5: PUSH2 0x0100
000033a8: EXP
000033a9: SUB
000033aa: NOT
000033ab: AND
000033ac: DUP2
000033ad: MSTORE
000033ae: PUSH1 0x20
000033b0: ADD
000033b1: SWAP2
000033b2: POP
000033b3: JUMPDEST
000033b4: POP
000033b5: DUP4
000033b6: DUP2
000033b7: SUB
000033b8: DUP3
000033b9: MSTORE
000033ba: DUP6
000033bb: MLOAD
000033bc: DUP2
000033bd: MSTORE
000033be: DUP6
000033bf: MLOAD
000033c0: PUSH1 0x20
000033c2: SWAP2
000033c3: DUP3
000033c4: ADD
000033c5: SWAP2
000033c6: DUP8
000033c7: ADD
000033c8: SWAP1
000033c9: DUP1
000033ca: DUP4
000033cb: DUP4
000033cc: PUSH1 0x00
000033ce: JUMPDEST
000033cf: DUP4
000033d0: DUP2
000033d1: LT
000033d2: ISZERO
000033d3: PUSH2 0x33e6
000033d6: JUMPI
000033d7: DUP2
000033d8: DUP2
000033d9: ADD
000033da: MLOAD
000033db: DUP4
000033dc: DUP3
000033dd: ADD
000033de: MSTORE
000033df: PUSH1 0x20
000033e1: ADD
000033e2: PUSH2 0x33ce
000033e5: JUMP
000033e6: JUMPDEST
000033e7: POP
000033e8: POP
000033e9: POP
000033ea: POP
000033eb: SWAP1
000033ec: POP
000033ed: SWAP1
000033ee: DUP2
000033ef: ADD
000033f0: SWAP1
000033f1: PUSH1 0x1f
000033f3: AND
000033f4: DUP1
000033f5: ISZERO
000033f6: PUSH2 0x3413
000033f9: JUMPI
000033fa: DUP1
000033fb: DUP3
000033fc: SUB
000033fd: DUP1
000033fe: MLOAD
000033ff: PUSH1 0x01
00003401: DUP4
00003402: PUSH1 0x20
00003404: SUB
00003405: PUSH2 0x0100
00003408: EXP
00003409: SUB
0000340a: NOT
0000340b: AND
0000340c: DUP2
0000340d: MSTORE
0000340e: PUSH1 0x20
00003410: ADD
00003411: SWAP2
00003412: POP
00003413: JUMPDEST
00003414: POP
00003415: SWAP9
00003416: POP
00003417: POP
00003418: POP
00003419: POP
0000341a: POP
0000341b: POP
0000341c: POP
0000341d: POP
0000341e: POP
0000341f: PUSH1 0x40
00003421: MLOAD
00003422: DUP1
00003423: SWAP2
00003424: SUB
00003425: SWAP1
00003426: LOG1
00003427: POP
00003428: POP
00003429: PUSH1 0x12
0000342b: DUP1
0000342c: SLOAD
0000342d: PUSH1 0x01
0000342f: PUSH1 0x01
00003431: PUSH1 0x01
00003433: PUSH1 0x40
00003435: SHL
00003436: SUB
00003437: PUSH1 0x01
00003439: PUSH1 0x40
0000343b: SHL
0000343c: DUP1
0000343d: DUP5
0000343e: DIV
0000343f: DUP3
00003440: AND
00003441: SWAP3
00003442: SWAP1
00003443: SWAP3
00003444: ADD
00003445: AND
00003446: MUL
00003447: PUSH8 0xffffffffffffffff
00003450: PUSH1 0x40
00003452: SHL
00003453: NOT
00003454: SWAP1
00003455: SWAP2
00003456: AND
00003457: OR
00003458: SWAP1
00003459: SSTORE
0000345a: POP
0000345b: POP
0000345c: POP
0000345d: JUMP
0000345e: JUMPDEST
0000345f: PUSH1 0xa0
00003461: SHL
00003462: PUSH2 0xffff
00003465: PUSH1 0xa0
00003467: SHL
00003468: AND
00003469: PUSH1 0x01
0000346b: PUSH1 0x01
0000346d: PUSH1 0xa0
0000346f: SHL
00003470: SUB
00003471: SWAP2
00003472: SWAP1
00003473: SWAP2
00003474: AND
00003475: OR
00003476: PUSH1 0x50
00003478: SHL
00003479: SWAP1
0000347a: JUMP
0000347b: JUMPDEST
0000347c: PUSH1 0x00
0000347e: PUSH1 0x01
00003480: PUSH1 0x80
00003482: SHL
00003483: DUP3
00003484: LT
00003485: PUSH2 0x34bf
00003488: JUMPI
00003489: PUSH1 0x40
0000348b: MLOAD
0000348c: PUSH3 0x461bcd
00003490: PUSH1 0xe5
00003492: SHL
00003493: DUP2
00003494: MSTORE
00003495: PUSH1 0x04
00003497: ADD
00003498: DUP1
00003499: DUP1
0000349a: PUSH1 0x20
0000349c: ADD
0000349d: DUP3
0000349e: DUP2
0000349f: SUB
000034a0: DUP3
000034a1: MSTORE
000034a2: PUSH1 0x27
000034a4: DUP2
000034a5: MSTORE
000034a6: PUSH1 0x20
000034a8: ADD
000034a9: DUP1
000034aa: PUSH2 0x4192
000034ad: PUSH1 0x27
000034af: SWAP2
000034b0: CODECOPY
000034b1: PUSH1 0x40
000034b3: ADD
000034b4: SWAP2
000034b5: POP
000034b6: POP
000034b7: PUSH1 0x40
000034b9: MLOAD
000034ba: DUP1
000034bb: SWAP2
000034bc: SUB
000034bd: SWAP1
000034be: REVERT
000034bf: JUMPDEST
000034c0: POP
000034c1: SWAP1
000034c2: JUMP
000034c3: JUMPDEST
000034c4: PUSH2 0x34cb
000034c7: PUSH2 0x3ffb
000034ca: JUMP
000034cb: JUMPDEST
000034cc: PUSH1 0x40
000034ce: MLOAD
000034cf: DUP1
000034d0: PUSH1 0x80
000034d2: ADD
000034d3: PUSH1 0x40
000034d5: MSTORE
000034d6: DUP1
000034d7: PUSH1 0x00
000034d9: PUSH4 0xffffffff
000034de: AND
000034df: DUP2
000034e0: MSTORE
000034e1: PUSH1 0x20
000034e3: ADD
000034e4: DUP6
000034e5: PUSH2 0xffff
000034e8: AND
000034e9: DUP2
000034ea: MSTORE
000034eb: PUSH1 0x20
000034ed: ADD
000034ee: DUP5
000034ef: PUSH1 0x01
000034f1: PUSH1 0x01
000034f3: PUSH1 0x80
000034f5: SHL
000034f6: SUB
000034f7: AND
000034f8: DUP2
000034f9: MSTORE
000034fa: PUSH1 0x20
000034fc: ADD
000034fd: DUP4
000034fe: PUSH1 0x01
00003500: PUSH1 0x01
00003502: PUSH1 0xa0
00003504: SHL
00003505: SUB
00003506: AND
00003507: DUP2
00003508: MSTORE
00003509: POP
0000350a: SWAP1
0000350b: POP
0000350c: PUSH1 0x60
0000350e: PUSH2 0x3516
00003511: DUP3
00003512: PUSH2 0x3c6f
00003515: JUMP
00003516: JUMPDEST
00003517: SWAP1
00003518: POP
00003519: PUSH2 0x3533
0000351c: PUSH1 0x01
0000351e: DUP3
0000351f: PUSH1 0x40
00003521: MLOAD
00003522: DUP1
00003523: PUSH1 0x20
00003525: ADD
00003526: PUSH1 0x40
00003528: MSTORE
00003529: DUP1
0000352a: PUSH1 0x00
0000352c: DUP2
0000352d: MSTORE
0000352e: POP
0000352f: PUSH2 0x3233
00003532: JUMP
00003533: JUMPDEST
00003534: PUSH1 0x40
00003536: DUP1
00003537: MLOAD
00003538: PUSH1 0x01
0000353a: PUSH1 0x01
0000353c: PUSH1 0x80
0000353e: SHL
0000353f: SUB
00003540: DUP7
00003541: AND
00003542: DUP2
00003543: MSTORE
00003544: SWAP1
00003545: MLOAD
00003546: PUSH1 0x01
00003548: PUSH1 0x01
0000354a: PUSH1 0xa0
0000354c: SHL
0000354d: SUB
0000354e: DUP6
0000354f: AND
00003550: SWAP2
00003551: PUSH2 0xffff
00003554: DUP9
00003555: AND
00003556: SWAP2
00003557: CALLER
00003558: SWAP2
00003559: PUSH32 0xb6866b029f3aa29cd9e2bff8159a8ccaa4389f7a087c710968e0b200c0c73b08
0000357a: SWAP2
0000357b: SWAP1
0000357c: DUP2
0000357d: SWAP1
0000357e: SUB
0000357f: PUSH1 0x20
00003581: ADD
00003582: SWAP1
00003583: LOG4
00003584: POP
00003585: POP
00003586: POP
00003587: POP
00003588: POP
00003589: JUMP
0000358a: JUMPDEST
0000358b: PUSH1 0x00
0000358d: DUP2
0000358e: PUSH1 0x01
00003590: PUSH1 0x01
00003592: PUSH1 0x40
00003594: SHL
00003595: SUB
00003596: AND
00003597: DUP4
00003598: PUSH1 0x01
0000359a: PUSH1 0x01
0000359c: PUSH1 0x40
0000359e: SHL
0000359f: SUB
000035a0: AND
000035a1: LT
000035a2: PUSH2 0x35ab
000035a5: JUMPI
000035a6: DUP2
000035a7: PUSH2 0x35ad
000035aa: JUMP
000035ab: JUMPDEST
000035ac: DUP3
000035ad: JUMPDEST
000035ae: SWAP4
000035af: SWAP3
000035b0: POP
000035b1: POP
000035b2: POP
000035b3: JUMP
000035b4: JUMPDEST
000035b5: PUSH2 0x35bc
000035b8: PUSH2 0x3ffb
000035bb: JUMP
000035bc: JUMPDEST
000035bd: PUSH1 0x00
000035bf: PUSH2 0x35c8
000035c2: DUP4
000035c3: DUP3
000035c4: PUSH2 0x3cd9
000035c7: JUMP
000035c8: JUMPDEST
000035c9: PUSH4 0xffffffff
000035ce: AND
000035cf: DUP4
000035d0: MSTORE
000035d1: SWAP1
000035d2: POP
000035d3: PUSH2 0x35dc
000035d6: DUP4
000035d7: DUP3
000035d8: PUSH2 0x3cf2
000035db: JUMP
000035dc: JUMPDEST
000035dd: PUSH2 0xffff
000035e0: AND
000035e1: PUSH1 0x20
000035e3: DUP5
000035e4: ADD
000035e5: MSTORE
000035e6: SWAP1
000035e7: POP
000035e8: PUSH2 0x35f1
000035eb: DUP4
000035ec: DUP3
000035ed: PUSH2 0x3d02
000035f0: JUMP
000035f1: JUMPDEST
000035f2: PUSH1 0x01
000035f4: PUSH1 0x01
000035f6: PUSH1 0x80
000035f8: SHL
000035f9: SUB
000035fa: AND
000035fb: PUSH1 0x40
000035fd: DUP5
000035fe: ADD
000035ff: MSTORE
00003600: SWAP1
00003601: POP
00003602: PUSH2 0x360b
00003605: DUP4
00003606: DUP3
00003607: PUSH2 0x3d12
0000360a: JUMP
0000360b: JUMPDEST
0000360c: PUSH1 0x01
0000360e: PUSH1 0x01
00003610: PUSH1 0xa0
00003612: SHL
00003613: SUB
00003614: AND
00003615: PUSH1 0x60
00003617: DUP5
00003618: ADD
00003619: MSTORE
0000361a: SWAP1
0000361b: POP
0000361c: PUSH1 0x2a
0000361e: DUP2
0000361f: EQ
00003620: PUSH2 0x3658
00003623: JUMPI
00003624: PUSH1 0x40
00003626: DUP1
00003627: MLOAD
00003628: PUSH3 0x461bcd
0000362c: PUSH1 0xe5
0000362e: SHL
0000362f: DUP2
00003630: MSTORE
00003631: PUSH1 0x20
00003633: PUSH1 0x04
00003635: DUP3
00003636: ADD
00003637: MSTORE
00003638: PUSH1 0x05
0000363a: PUSH1 0x24
0000363c: DUP3
0000363d: ADD
0000363e: MSTORE
0000363f: PUSH5 0x0726470313
00003645: PUSH1 0xdc
00003647: SHL
00003648: PUSH1 0x44
0000364a: DUP3
0000364b: ADD
0000364c: MSTORE
0000364d: SWAP1
0000364e: MLOAD
0000364f: SWAP1
00003650: DUP2
00003651: SWAP1
00003652: SUB
00003653: PUSH1 0x64
00003655: ADD
00003656: SWAP1
00003657: REVERT
00003658: JUMPDEST
00003659: POP
0000365a: SWAP2
0000365b: SWAP1
0000365c: POP
0000365d: JUMP
0000365e: JUMPDEST
0000365f: PUSH1 0x01
00003661: PUSH1 0x00
00003663: DUP1
00003664: MLOAD
00003665: PUSH1 0x20
00003667: PUSH2 0x4172
0000366a: DUP4
0000366b: CODECOPY
0000366c: DUP2
0000366d: MLOAD
0000366e: SWAP2
0000366f: MSTORE
00003670: SSTORE
00003671: JUMP
00003672: JUMPDEST
00003673: PUSH1 0x00
00003675: DUP2
00003676: PUSH4 0xffffffff
0000367b: AND
0000367c: DUP4
0000367d: PUSH4 0xffffffff
00003682: AND
00003683: LT
00003684: PUSH2 0x35ab
00003687: JUMPI
00003688: DUP2
00003689: PUSH2 0x35ad
0000368c: JUMP
0000368d: JUMPDEST
0000368e: PUSH1 0x40
00003690: MLOAD
00003691: PUSH1 0x00
00003693: SWAP1
00003694: PUSH2 0x2710
00003697: SWAP1
00003698: DUP3
00003699: SWAP1
0000369a: PUSH1 0x01
0000369c: PUSH1 0x01
0000369e: PUSH1 0xa0
000036a0: SHL
000036a1: SUB
000036a2: DUP7
000036a3: AND
000036a4: SWAP1
000036a5: DUP4
000036a6: SWAP1
000036a7: DUP7
000036a8: SWAP1
000036a9: DUP5
000036aa: DUP2
000036ab: DUP2
000036ac: DUP2
000036ad: DUP6
000036ae: DUP9
000036af: DUP9
000036b0: CALL
000036b1: SWAP4
000036b2: POP
000036b3: POP
000036b4: POP
000036b5: POP
000036b6: RETURNDATASIZE
000036b7: DUP1
000036b8: PUSH1 0x00
000036ba: DUP2
000036bb: EQ
000036bc: PUSH2 0x36e1
000036bf: JUMPI
000036c0: PUSH1 0x40
000036c2: MLOAD
000036c3: SWAP2
000036c4: POP
000036c5: PUSH1 0x1f
000036c7: NOT
000036c8: PUSH1 0x3f
000036ca: RETURNDATASIZE
000036cb: ADD
000036cc: AND
000036cd: DUP3
000036ce: ADD
000036cf: PUSH1 0x40
000036d1: MSTORE
000036d2: RETURNDATASIZE
000036d3: DUP3
000036d4: MSTORE
000036d5: RETURNDATASIZE
000036d6: PUSH1 0x00
000036d8: PUSH1 0x20
000036da: DUP5
000036db: ADD
000036dc: RETURNDATACOPY
000036dd: PUSH2 0x36e6
000036e0: JUMP
000036e1: JUMPDEST
000036e2: PUSH1 0x60
000036e4: SWAP2
000036e5: POP
000036e6: JUMPDEST
000036e7: POP
000036e8: SWAP1
000036e9: SWAP7
000036ea: SWAP6
000036eb: POP
000036ec: POP
000036ed: POP
000036ee: POP
000036ef: POP
000036f0: POP
000036f1: JUMP
000036f2: JUMPDEST
000036f3: PUSH1 0x01
000036f5: PUSH1 0x01
000036f7: PUSH1 0xa0
000036f9: SHL
000036fa: SUB
000036fb: DUP2
000036fc: AND
000036fd: PUSH1 0x00
000036ff: SWAP1
00003700: DUP2
00003701: MSTORE
00003702: PUSH1 0x02
00003704: PUSH1 0x20
00003706: MSTORE
00003707: PUSH1 0x40
00003709: SWAP1
0000370a: KECCAK256
0000370b: SLOAD
0000370c: PUSH2 0xffff
0000370f: AND
00003710: ISZERO
00003711: PUSH2 0x374a
00003714: JUMPI
00003715: PUSH1 0x40
00003717: DUP1
00003718: MLOAD
00003719: PUSH3 0x461bcd
0000371d: PUSH1 0xe5
0000371f: SHL
00003720: DUP2
00003721: MSTORE
00003722: PUSH1 0x20
00003724: PUSH1 0x04
00003726: DUP1
00003727: DUP4
00003728: ADD
00003729: SWAP2
0000372a: SWAP1
0000372b: SWAP2
0000372c: MSTORE
0000372d: PUSH1 0x24
0000372f: DUP3
00003730: ADD
00003731: MSTORE
00003732: PUSH4 0x70616e31
00003737: PUSH1 0xe0
00003739: SHL
0000373a: PUSH1 0x44
0000373c: DUP3
0000373d: ADD
0000373e: MSTORE
0000373f: SWAP1
00003740: MLOAD
00003741: SWAP1
00003742: DUP2
00003743: SWAP1
00003744: SUB
00003745: PUSH1 0x64
00003747: ADD
00003748: SWAP1
00003749: REVERT
0000374a: JUMPDEST
0000374b: PUSH1 0x00
0000374d: SLOAD
0000374e: PUSH2 0xc000
00003751: PUSH2 0xffff
00003754: SWAP1
00003755: SWAP2
00003756: AND
00003757: LT
00003758: PUSH2 0x3791
0000375b: JUMPI
0000375c: PUSH1 0x40
0000375e: DUP1
0000375f: MLOAD
00003760: PUSH3 0x461bcd
00003764: PUSH1 0xe5
00003766: SHL
00003767: DUP2
00003768: MSTORE
00003769: PUSH1 0x20
0000376b: PUSH1 0x04
0000376d: DUP1
0000376e: DUP4
0000376f: ADD
00003770: SWAP2
00003771: SWAP1
00003772: SWAP2
00003773: MSTORE
00003774: PUSH1 0x24
00003776: DUP3
00003777: ADD
00003778: MSTORE
00003779: PUSH4 0x3830b719
0000377e: PUSH1 0xe1
00003780: SHL
00003781: PUSH1 0x44
00003783: DUP3
00003784: ADD
00003785: MSTORE
00003786: SWAP1
00003787: MLOAD
00003788: SWAP1
00003789: DUP2
0000378a: SWAP1
0000378b: SUB
0000378c: PUSH1 0x64
0000378e: ADD
0000378f: SWAP1
00003790: REVERT
00003791: JUMPDEST
00003792: PUSH1 0x00
00003794: DUP1
00003795: SLOAD
00003796: PUSH2 0xffff
00003799: DUP1
0000379a: DUP3
0000379b: AND
0000379c: PUSH1 0x01
0000379e: DUP2
0000379f: DUP2
000037a0: ADD
000037a1: DUP4
000037a2: AND
000037a3: PUSH2 0xffff
000037a6: NOT
000037a7: SWAP5
000037a8: DUP6
000037a9: AND
000037aa: OR
000037ab: DUP6
000037ac: SSTORE
000037ad: PUSH2 0x4000
000037b0: SWAP1
000037b1: SWAP2
000037b2: ADD
000037b3: SWAP2
000037b4: DUP3
000037b5: AND
000037b6: DUP1
000037b7: DUP6
000037b8: MSTORE
000037b9: PUSH1 0x20
000037bb: SWAP2
000037bc: DUP3
000037bd: MSTORE
000037be: PUSH1 0x40
000037c0: DUP1
000037c1: DUP7
000037c2: KECCAK256
000037c3: DUP1
000037c4: SLOAD
000037c5: PUSH1 0x01
000037c7: PUSH1 0x01
000037c9: PUSH1 0xa0
000037cb: SHL
000037cc: SUB
000037cd: DUP10
000037ce: AND
000037cf: PUSH1 0x01
000037d1: PUSH1 0x01
000037d3: PUSH1 0xa0
000037d5: SHL
000037d6: SUB
000037d7: NOT
000037d8: SWAP1
000037d9: SWAP2
000037da: AND
000037db: DUP2
000037dc: OR
000037dd: SWAP1
000037de: SWAP2
000037df: SSTORE
000037e0: DUP1
000037e1: DUP8
000037e2: MSTORE
000037e3: PUSH1 0x02
000037e5: SWAP1
000037e6: SWAP4
000037e7: MSTORE
000037e8: DUP1
000037e9: DUP7
000037ea: KECCAK256
000037eb: DUP1
000037ec: SLOAD
000037ed: SWAP1
000037ee: SWAP6
000037ef: AND
000037f0: DUP3
000037f1: OR
000037f2: SWAP1
000037f3: SWAP5
000037f4: SSTORE
000037f5: SWAP3
000037f6: MLOAD
000037f7: SWAP2
000037f8: SWAP4
000037f9: SWAP1
000037fa: SWAP2
000037fb: PUSH32 0xfe74dea79bde70d1990ddb655bac45735b14f495ddc508cfab80b7729aa9d668
0000381c: SWAP2
0000381d: SWAP1
0000381e: LOG3
0000381f: POP
00003820: POP
00003821: JUMP
00003822: JUMPDEST
00003823: PUSH2 0x382a
00003826: PUSH2 0x40e3
00003829: JUMP
0000382a: JUMPDEST
0000382b: PUSH1 0x40
0000382d: MLOAD
0000382e: DUP1
0000382f: PUSH1 0xa0
00003831: ADD
00003832: PUSH1 0x40
00003834: MSTORE
00003835: DUP1
00003836: PUSH1 0x00
00003838: PUSH4 0xffffffff
0000383d: AND
0000383e: DUP2
0000383f: MSTORE
00003840: PUSH1 0x20
00003842: ADD
00003843: DUP9
00003844: PUSH2 0xffff
00003847: AND
00003848: DUP2
00003849: MSTORE
0000384a: PUSH1 0x20
0000384c: ADD
0000384d: DUP7
0000384e: PUSH2 0xffff
00003851: AND
00003852: DUP2
00003853: MSTORE
00003854: PUSH1 0x20
00003856: ADD
00003857: DUP5
00003858: PUSH2 0xffff
0000385b: AND
0000385c: DUP2
0000385d: MSTORE
0000385e: PUSH1 0x20
00003860: ADD
00003861: DUP4
00003862: PUSH1 0x01
00003864: PUSH1 0x01
00003866: PUSH1 0xa0
00003868: SHL
00003869: SUB
0000386a: AND
0000386b: DUP2
0000386c: MSTORE
0000386d: POP
0000386e: SWAP1
0000386f: POP
00003870: PUSH1 0x60
00003872: PUSH2 0x387a
00003875: DUP3
00003876: PUSH2 0x3d22
00003879: JUMP
0000387a: JUMPDEST
0000387b: PUSH1 0x40
0000387d: DUP1
0000387e: MLOAD
0000387f: PUSH1 0x01
00003881: PUSH1 0x01
00003883: PUSH1 0x60
00003885: SHL
00003886: SUB
00003887: NOT
00003888: PUSH1 0x60
0000388a: DUP12
0000388b: DUP2
0000388c: SHL
0000388d: DUP3
0000388e: AND
0000388f: PUSH1 0x20
00003891: DUP5
00003892: ADD
00003893: MSTORE
00003894: DUP10
00003895: SWAP1
00003896: SHL
00003897: AND
00003898: PUSH1 0x34
0000389a: DUP3
0000389b: ADD
0000389c: MSTORE
0000389d: DUP2
0000389e: MLOAD
0000389f: PUSH1 0x28
000038a1: DUP2
000038a2: DUP4
000038a3: SUB
000038a4: ADD
000038a5: DUP2
000038a6: MSTORE
000038a7: PUSH1 0x48
000038a9: SWAP1
000038aa: SWAP2
000038ab: ADD
000038ac: SWAP1
000038ad: SWAP2
000038ae: MSTORE
000038af: SWAP1
000038b0: SWAP2
000038b1: POP
000038b2: PUSH2 0x38bd
000038b5: PUSH1 0x08
000038b7: DUP4
000038b8: DUP4
000038b9: PUSH2 0x3233
000038bc: JUMP
000038bd: JUMPDEST
000038be: PUSH1 0x40
000038c0: DUP1
000038c1: MLOAD
000038c2: PUSH1 0x01
000038c4: PUSH1 0x01
000038c6: PUSH1 0xa0
000038c8: SHL
000038c9: SUB
000038ca: DUP7
000038cb: AND
000038cc: DUP2
000038cd: MSTORE
000038ce: SWAP1
000038cf: MLOAD
000038d0: PUSH2 0xffff
000038d3: DUP1
000038d4: DUP9
000038d5: AND
000038d6: SWAP3
000038d7: DUP11
000038d8: DUP3
000038d9: AND
000038da: SWAP3
000038db: SWAP2
000038dc: DUP14
000038dd: AND
000038de: SWAP2
000038df: PUSH32 0x2c87b60b0d81063e9b0ba8089ea00f8b35b25ff04a89aa904d257b675d610b99
00003900: SWAP2
00003901: DUP2
00003902: SWAP1
00003903: SUB
00003904: PUSH1 0x20
00003906: ADD
00003907: SWAP1
00003908: LOG4
00003909: POP
0000390a: POP
0000390b: POP
0000390c: POP
0000390d: POP
0000390e: POP
0000390f: POP
00003910: POP
00003911: POP
00003912: JUMP
00003913: JUMPDEST
00003914: PUSH1 0x40
00003916: DUP1
00003917: MLOAD
00003918: PUSH1 0x01
0000391a: PUSH1 0x01
0000391c: PUSH1 0xa0
0000391e: SHL
0000391f: SUB
00003920: DUP5
00003921: DUP2
00003922: AND
00003923: PUSH1 0x24
00003925: DUP4
00003926: ADD
00003927: MSTORE
00003928: PUSH1 0x44
0000392a: DUP1
0000392b: DUP4
0000392c: ADD
0000392d: DUP6
0000392e: SWAP1
0000392f: MSTORE
00003930: DUP4
00003931: MLOAD
00003932: DUP1
00003933: DUP5
00003934: SUB
00003935: SWAP1
00003936: SWAP2
00003937: ADD
00003938: DUP2
00003939: MSTORE
0000393a: PUSH1 0x64
0000393c: SWAP1
0000393d: SWAP3
0000393e: ADD
0000393f: DUP4
00003940: MSTORE
00003941: PUSH1 0x20
00003943: DUP3
00003944: ADD
00003945: DUP1
00003946: MLOAD
00003947: PUSH1 0x01
00003949: PUSH1 0x01
0000394b: PUSH1 0xe0
0000394d: SHL
0000394e: SUB
0000394f: AND
00003950: PUSH4 0xa9059cbb
00003955: PUSH1 0xe0
00003957: SHL
00003958: OR
00003959: DUP2
0000395a: MSTORE
0000395b: SWAP3
0000395c: MLOAD
0000395d: DUP3
0000395e: MLOAD
0000395f: PUSH1 0x00
00003961: SWAP5
00003962: DUP6
00003963: SWAP5
00003964: PUSH1 0x60
00003966: SWAP5
00003967: DUP11
00003968: AND
00003969: SWAP4
0000396a: SWAP1
0000396b: SWAP3
0000396c: SWAP1
0000396d: SWAP2
0000396e: DUP3
0000396f: SWAP2
00003970: DUP1
00003971: DUP4
00003972: DUP4
00003973: JUMPDEST
00003974: PUSH1 0x20
00003976: DUP4
00003977: LT
00003978: PUSH2 0x3992
0000397b: JUMPI
0000397c: DUP1
0000397d: MLOAD
0000397e: DUP3
0000397f: MSTORE
00003980: PUSH1 0x1f
00003982: NOT
00003983: SWAP1
00003984: SWAP3
00003985: ADD
00003986: SWAP2
00003987: PUSH1 0x20
00003989: SWAP2
0000398a: DUP3
0000398b: ADD
0000398c: SWAP2
0000398d: ADD
0000398e: PUSH2 0x3973
00003991: JUMP
00003992: JUMPDEST
00003993: PUSH1 0x01
00003995: DUP4
00003996: PUSH1 0x20
00003998: SUB
00003999: PUSH2 0x0100
0000399c: EXP
0000399d: SUB
0000399e: DUP1
0000399f: NOT
000039a0: DUP3
000039a1: MLOAD
000039a2: AND
000039a3: DUP2
000039a4: DUP5
000039a5: MLOAD
000039a6: AND
000039a7: DUP1
000039a8: DUP3
000039a9: OR
000039aa: DUP6
000039ab: MSTORE
000039ac: POP
000039ad: POP
000039ae: POP
000039af: POP
000039b0: POP
000039b1: POP
000039b2: SWAP1
000039b3: POP
000039b4: ADD
000039b5: SWAP2
000039b6: POP
000039b7: POP
000039b8: PUSH1 0x00
000039ba: PUSH1 0x40
000039bc: MLOAD
000039bd: DUP1
000039be: DUP4
000039bf: SUB
000039c0: DUP2
000039c1: PUSH1 0x00
000039c3: DUP7
000039c4: GAS
000039c5: CALL
000039c6: SWAP2
000039c7: POP
000039c8: POP
000039c9: RETURNDATASIZE
000039ca: DUP1
000039cb: PUSH1 0x00
000039cd: DUP2
000039ce: EQ
000039cf: PUSH2 0x39f4
000039d2: JUMPI
000039d3: PUSH1 0x40
000039d5: MLOAD
000039d6: SWAP2
000039d7: POP
000039d8: PUSH1 0x1f
000039da: NOT
000039db: PUSH1 0x3f
000039dd: RETURNDATASIZE
000039de: ADD
000039df: AND
000039e0: DUP3
000039e1: ADD
000039e2: PUSH1 0x40
000039e4: MSTORE
000039e5: RETURNDATASIZE
000039e6: DUP3
000039e7: MSTORE
000039e8: RETURNDATASIZE
000039e9: PUSH1 0x00
000039eb: PUSH1 0x20
000039ed: DUP5
000039ee: ADD
000039ef: RETURNDATACOPY
000039f0: PUSH2 0x39f9
000039f3: JUMP
000039f4: JUMPDEST
000039f5: PUSH1 0x60
000039f7: SWAP2
000039f8: POP
000039f9: JUMPDEST
000039fa: POP
000039fb: SWAP2
000039fc: POP
000039fd: SWAP2
000039fe: POP
000039ff: PUSH1 0x00
00003a01: DUP2
00003a02: MLOAD
00003a03: PUSH1 0x00
00003a05: EQ
00003a06: DUP1
00003a07: PUSH2 0x3a23
00003a0a: JUMPI
00003a0b: POP
00003a0c: DUP2
00003a0d: DUP1
00003a0e: PUSH1 0x20
00003a10: ADD
00003a11: SWAP1
00003a12: MLOAD
00003a13: PUSH1 0x20
00003a15: DUP2
00003a16: LT
00003a17: ISZERO
00003a18: PUSH2 0x3a20
00003a1b: JUMPI
00003a1c: PUSH1 0x00
00003a1e: DUP1
00003a1f: REVERT
00003a20: JUMPDEST
00003a21: POP
00003a22: MLOAD
00003a23: JUMPDEST
00003a24: SWAP1
00003a25: POP
00003a26: DUP3
00003a27: DUP1
00003a28: ISZERO
00003a29: PUSH2 0x3a2f
00003a2c: JUMPI
00003a2d: POP
00003a2e: DUP1
00003a2f: JUMPDEST
00003a30: SWAP8
00003a31: SWAP7
00003a32: POP
00003a33: POP
00003a34: POP
00003a35: POP
00003a36: POP
00003a37: POP
00003a38: POP
00003a39: JUMP
00003a3a: JUMPDEST
00003a3b: PUSH1 0x00
00003a3d: PUSH2 0x35ad
00003a40: DUP4
00003a41: DUP4
00003a42: PUSH1 0x40
00003a44: MLOAD
00003a45: DUP1
00003a46: PUSH1 0x40
00003a48: ADD
00003a49: PUSH1 0x40
00003a4b: MSTORE
00003a4c: DUP1
00003a4d: PUSH1 0x1e
00003a4f: DUP2
00003a50: MSTORE
00003a51: PUSH1 0x20
00003a53: ADD
00003a54: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
00003a75: DUP2
00003a76: MSTORE
00003a77: POP
00003a78: PUSH2 0x3d96
00003a7b: JUMP
00003a7c: JUMPDEST
00003a7d: PUSH1 0x00
00003a7f: PUSH2 0x3a88
00003a82: DUP3
00003a83: DUP6
00003a84: PUSH2 0x345e
00003a87: JUMP
00003a88: JUMPDEST
00003a89: PUSH1 0x01
00003a8b: PUSH1 0x01
00003a8d: PUSH1 0x50
00003a8f: SHL
00003a90: SUB
00003a91: NOT
00003a92: DUP2
00003a93: AND
00003a94: PUSH1 0x00
00003a96: SWAP1
00003a97: DUP2
00003a98: MSTORE
00003a99: PUSH1 0x09
00003a9b: PUSH1 0x20
00003a9d: MSTORE
00003a9e: PUSH1 0x40
00003aa0: SWAP1
00003aa1: KECCAK256
00003aa2: SLOAD
00003aa3: SWAP1
00003aa4: SWAP2
00003aa5: POP
00003aa6: PUSH1 0x01
00003aa8: PUSH1 0x01
00003aaa: PUSH1 0x80
00003aac: SHL
00003aad: SUB
00003aae: AND
00003aaf: PUSH2 0x3abe
00003ab2: DUP2
00003ab3: DUP6
00003ab4: PUSH4 0xffffffff
00003ab9: PUSH2 0x3e2d
00003abc: AND
00003abd: JUMP
00003abe: JUMPDEST
00003abf: PUSH1 0x01
00003ac1: PUSH1 0x01
00003ac3: PUSH1 0x50
00003ac5: SHL
00003ac6: SUB
00003ac7: NOT
00003ac8: DUP4
00003ac9: AND
00003aca: PUSH1 0x00
00003acc: SWAP1
00003acd: DUP2
00003ace: MSTORE
00003acf: PUSH1 0x09
00003ad1: PUSH1 0x20
00003ad3: SWAP1
00003ad4: DUP2
00003ad5: MSTORE
00003ad6: PUSH1 0x40
00003ad8: SWAP2
00003ad9: DUP3
00003ada: SWAP1
00003adb: KECCAK256
00003adc: DUP1
00003add: SLOAD
00003ade: PUSH1 0x01
00003ae0: PUSH1 0x01
00003ae2: PUSH1 0x80
00003ae4: SHL
00003ae5: SUB
00003ae6: NOT
00003ae7: AND
00003ae8: PUSH1 0x01
00003aea: PUSH1 0x01
00003aec: PUSH1 0x80
00003aee: SHL
00003aef: SUB
00003af0: SWAP5
00003af1: DUP6
00003af2: AND
00003af3: OR
00003af4: SWAP1
00003af5: SSTORE
00003af6: DUP2
00003af7: MLOAD
00003af8: SWAP3
00003af9: DUP8
00003afa: AND
00003afb: DUP4
00003afc: MSTORE
00003afd: SWAP1
00003afe: MLOAD
00003aff: PUSH2 0xffff
00003b02: DUP9
00003b03: AND
00003b04: SWAP3
00003b05: PUSH1 0x01
00003b07: PUSH1 0x01
00003b09: PUSH1 0xa0
00003b0b: SHL
00003b0c: SUB
00003b0d: DUP8
00003b0e: AND
00003b0f: SWAP3
00003b10: PUSH32 0x3ac065a1e69cd78fa12ba7269660a2894da2ec7f1ff1135ed5ca04de4b4e389e
00003b31: SWAP3
00003b32: SWAP2
00003b33: DUP3
00003b34: SWAP1
00003b35: SUB
00003b36: ADD
00003b37: SWAP1
00003b38: LOG3
00003b39: POP
00003b3a: POP
00003b3b: POP
00003b3c: POP
00003b3d: POP
00003b3e: JUMP
00003b3f: JUMPDEST
00003b40: PUSH1 0x40
00003b42: DUP1
00003b43: MLOAD
00003b44: PUSH1 0x01
00003b46: PUSH1 0x01
00003b48: PUSH1 0xa0
00003b4a: SHL
00003b4b: SUB
00003b4c: DUP6
00003b4d: DUP2
00003b4e: AND
00003b4f: PUSH1 0x24
00003b51: DUP4
00003b52: ADD
00003b53: MSTORE
00003b54: DUP5
00003b55: DUP2
00003b56: AND
00003b57: PUSH1 0x44
00003b59: DUP4
00003b5a: ADD
00003b5b: MSTORE
00003b5c: PUSH1 0x64
00003b5e: DUP1
00003b5f: DUP4
00003b60: ADD
00003b61: DUP6
00003b62: SWAP1
00003b63: MSTORE
00003b64: DUP4
00003b65: MLOAD
00003b66: DUP1
00003b67: DUP5
00003b68: SUB
00003b69: SWAP1
00003b6a: SWAP2
00003b6b: ADD
00003b6c: DUP2
00003b6d: MSTORE
00003b6e: PUSH1 0x84
00003b70: SWAP1
00003b71: SWAP3
00003b72: ADD
00003b73: DUP4
00003b74: MSTORE
00003b75: PUSH1 0x20
00003b77: DUP3
00003b78: ADD
00003b79: DUP1
00003b7a: MLOAD
00003b7b: PUSH1 0x01
00003b7d: PUSH1 0x01
00003b7f: PUSH1 0xe0
00003b81: SHL
00003b82: SUB
00003b83: AND
00003b84: PUSH4 0x23b872dd
00003b89: PUSH1 0xe0
00003b8b: SHL
00003b8c: OR
00003b8d: DUP2
00003b8e: MSTORE
00003b8f: SWAP3
00003b90: MLOAD
00003b91: DUP3
00003b92: MLOAD
00003b93: PUSH1 0x00
00003b95: SWAP5
00003b96: DUP6
00003b97: SWAP5
00003b98: PUSH1 0x60
00003b9a: SWAP5
00003b9b: DUP12
00003b9c: AND
00003b9d: SWAP4
00003b9e: SWAP1
00003b9f: SWAP3
00003ba0: SWAP1
00003ba1: SWAP2
00003ba2: DUP3
00003ba3: SWAP2
00003ba4: DUP1
00003ba5: DUP4
00003ba6: DUP4
00003ba7: JUMPDEST
00003ba8: PUSH1 0x20
00003baa: DUP4
00003bab: LT
00003bac: PUSH2 0x3bc6
00003baf: JUMPI
00003bb0: DUP1
00003bb1: MLOAD
00003bb2: DUP3
00003bb3: MSTORE
00003bb4: PUSH1 0x1f
00003bb6: NOT
00003bb7: SWAP1
00003bb8: SWAP3
00003bb9: ADD
00003bba: SWAP2
00003bbb: PUSH1 0x20
00003bbd: SWAP2
00003bbe: DUP3
00003bbf: ADD
00003bc0: SWAP2
00003bc1: ADD
00003bc2: PUSH2 0x3ba7
00003bc5: JUMP
00003bc6: JUMPDEST
00003bc7: PUSH1 0x01
00003bc9: DUP4
00003bca: PUSH1 0x20
00003bcc: SUB
00003bcd: PUSH2 0x0100
00003bd0: EXP
00003bd1: SUB
00003bd2: DUP1
00003bd3: NOT
00003bd4: DUP3
00003bd5: MLOAD
00003bd6: AND
00003bd7: DUP2
00003bd8: DUP5
00003bd9: MLOAD
00003bda: AND
00003bdb: DUP1
00003bdc: DUP3
00003bdd: OR
00003bde: DUP6
00003bdf: MSTORE
00003be0: POP
00003be1: POP
00003be2: POP
00003be3: POP
00003be4: POP
00003be5: POP
00003be6: SWAP1
00003be7: POP
00003be8: ADD
00003be9: SWAP2
00003bea: POP
00003beb: POP
00003bec: PUSH1 0x00
00003bee: PUSH1 0x40
00003bf0: MLOAD
00003bf1: DUP1
00003bf2: DUP4
00003bf3: SUB
00003bf4: DUP2
00003bf5: PUSH1 0x00
00003bf7: DUP7
00003bf8: GAS
00003bf9: CALL
00003bfa: SWAP2
00003bfb: POP
00003bfc: POP
00003bfd: RETURNDATASIZE
00003bfe: DUP1
00003bff: PUSH1 0x00
00003c01: DUP2
00003c02: EQ
00003c03: PUSH2 0x3c28
00003c06: JUMPI
00003c07: PUSH1 0x40
00003c09: MLOAD
00003c0a: SWAP2
00003c0b: POP
00003c0c: PUSH1 0x1f
00003c0e: NOT
00003c0f: PUSH1 0x3f
00003c11: RETURNDATASIZE
00003c12: ADD
00003c13: AND
00003c14: DUP3
00003c15: ADD
00003c16: PUSH1 0x40
00003c18: MSTORE
00003c19: RETURNDATASIZE
00003c1a: DUP3
00003c1b: MSTORE
00003c1c: RETURNDATASIZE
00003c1d: PUSH1 0x00
00003c1f: PUSH1 0x20
00003c21: DUP5
00003c22: ADD
00003c23: RETURNDATACOPY
00003c24: PUSH2 0x3c2d
00003c27: JUMP
00003c28: JUMPDEST
00003c29: PUSH1 0x60
00003c2b: SWAP2
00003c2c: POP
00003c2d: JUMPDEST
00003c2e: POP
00003c2f: SWAP2
00003c30: POP
00003c31: SWAP2
00003c32: POP
00003c33: PUSH1 0x00
00003c35: DUP2
00003c36: MLOAD
00003c37: PUSH1 0x00
00003c39: EQ
00003c3a: DUP1
00003c3b: PUSH2 0x3c57
00003c3e: JUMPI
00003c3f: POP
00003c40: DUP2
00003c41: DUP1
00003c42: PUSH1 0x20
00003c44: ADD
00003c45: SWAP1
00003c46: MLOAD
00003c47: PUSH1 0x20
00003c49: DUP2
00003c4a: LT
00003c4b: ISZERO
00003c4c: PUSH2 0x3c54
00003c4f: JUMPI
00003c50: PUSH1 0x00
00003c52: DUP1
00003c53: REVERT
00003c54: JUMPDEST
00003c55: POP
00003c56: MLOAD
00003c57: JUMPDEST
00003c58: SWAP1
00003c59: POP
00003c5a: DUP3
00003c5b: DUP1
00003c5c: ISZERO
00003c5d: PUSH2 0x3c63
00003c60: JUMPI
00003c61: POP
00003c62: DUP1
00003c63: JUMPDEST
00003c64: SWAP9
00003c65: SWAP8
00003c66: POP
00003c67: POP
00003c68: POP
00003c69: POP
00003c6a: POP
00003c6b: POP
00003c6c: POP
00003c6d: POP
00003c6e: JUMP
00003c6f: JUMPDEST
00003c70: PUSH1 0x20
00003c72: DUP2
00003c73: DUP2
00003c74: ADD
00003c75: MLOAD
00003c76: PUSH1 0x40
00003c78: DUP1
00003c79: DUP5
00003c7a: ADD
00003c7b: MLOAD
00003c7c: PUSH1 0x60
00003c7e: SWAP5
00003c7f: DUP6
00003c80: ADD
00003c81: MLOAD
00003c82: DUP3
00003c83: MLOAD
00003c84: PUSH1 0x00
00003c86: SWAP6
00003c87: DUP2
00003c88: ADD
00003c89: SWAP6
00003c8a: SWAP1
00003c8b: SWAP6
00003c8c: MSTORE
00003c8d: PUSH1 0xf0
00003c8f: SWAP4
00003c90: SWAP1
00003c91: SWAP4
00003c92: SHL
00003c93: PUSH1 0x01
00003c95: PUSH1 0x01
00003c97: PUSH1 0xf0
00003c99: SHL
00003c9a: SUB
00003c9b: NOT
00003c9c: AND
00003c9d: PUSH1 0x24
00003c9f: DUP6
00003ca0: ADD
00003ca1: MSTORE
00003ca2: PUSH1 0x80
00003ca4: SHL
00003ca5: PUSH1 0x01
00003ca7: PUSH1 0x01
00003ca9: PUSH1 0x80
00003cab: SHL
00003cac: SUB
00003cad: NOT
00003cae: AND
00003caf: PUSH1 0x26
00003cb1: DUP5
00003cb2: ADD
00003cb3: MSTORE
00003cb4: SWAP3
00003cb5: SHL
00003cb6: PUSH1 0x01
00003cb8: PUSH1 0x01
00003cba: PUSH1 0x60
00003cbc: SHL
00003cbd: SUB
00003cbe: NOT
00003cbf: AND
00003cc0: PUSH1 0x36
00003cc2: DUP3
00003cc3: ADD
00003cc4: MSTORE
00003cc5: DUP2
00003cc6: MLOAD
00003cc7: DUP1
00003cc8: DUP3
00003cc9: SUB
00003cca: PUSH1 0x2a
00003ccc: ADD
00003ccd: DUP2
00003cce: MSTORE
00003ccf: PUSH1 0x4a
00003cd1: SWAP1
00003cd2: SWAP2
00003cd3: ADD
00003cd4: SWAP1
00003cd5: SWAP2
00003cd6: MSTORE
00003cd7: SWAP1
00003cd8: JUMP
00003cd9: JUMPDEST
00003cda: PUSH1 0x04
00003cdc: DUP2
00003cdd: ADD
00003cde: PUSH1 0x00
00003ce0: PUSH2 0x3ce9
00003ce3: DUP5
00003ce4: DUP5
00003ce5: PUSH2 0x3e6f
00003ce8: JUMP
00003ce9: JUMPDEST
00003cea: SWAP1
00003ceb: POP
00003cec: SWAP3
00003ced: POP
00003cee: SWAP3
00003cef: SWAP1
00003cf0: POP
00003cf1: JUMP
00003cf2: JUMPDEST
00003cf3: PUSH1 0x02
00003cf5: DUP2
00003cf6: ADD
00003cf7: PUSH1 0x00
00003cf9: PUSH2 0x3ce9
00003cfc: DUP5
00003cfd: DUP5
00003cfe: PUSH2 0x3ec1
00003d01: JUMP
00003d02: JUMPDEST
00003d03: PUSH1 0x10
00003d05: DUP2
00003d06: ADD
00003d07: PUSH1 0x00
00003d09: PUSH2 0x3ce9
00003d0c: DUP5
00003d0d: DUP5
00003d0e: PUSH2 0x3f08
00003d11: JUMP
00003d12: JUMPDEST
00003d13: PUSH1 0x14
00003d15: DUP2
00003d16: ADD
00003d17: PUSH1 0x00
00003d19: PUSH2 0x3ce9
00003d1c: DUP5
00003d1d: DUP5
00003d1e: PUSH2 0x3f4f
00003d21: JUMP
00003d22: JUMPDEST
00003d23: PUSH1 0x20
00003d25: DUP2
00003d26: DUP2
00003d27: ADD
00003d28: MLOAD
00003d29: PUSH1 0x40
00003d2b: DUP1
00003d2c: DUP5
00003d2d: ADD
00003d2e: MLOAD
00003d2f: PUSH1 0x60
00003d31: DUP1
00003d32: DUP7
00003d33: ADD
00003d34: MLOAD
00003d35: PUSH1 0x80
00003d37: SWAP1
00003d38: SWAP7
00003d39: ADD
00003d3a: MLOAD
00003d3b: DUP4
00003d3c: MLOAD
00003d3d: PUSH1 0x00
00003d3f: SWAP7
00003d40: DUP2
00003d41: ADD
00003d42: SWAP7
00003d43: SWAP1
00003d44: SWAP7
00003d45: MSTORE
00003d46: PUSH1 0xf0
00003d48: SWAP5
00003d49: DUP6
00003d4a: SHL
00003d4b: PUSH1 0x01
00003d4d: PUSH1 0x01
00003d4f: PUSH1 0xf0
00003d51: SHL
00003d52: SUB
00003d53: NOT
00003d54: SWAP1
00003d55: DUP2
00003d56: AND
00003d57: PUSH1 0x24
00003d59: DUP9
00003d5a: ADD
00003d5b: MSTORE
00003d5c: SWAP3
00003d5d: DUP6
00003d5e: SHL
00003d5f: DUP4
00003d60: AND
00003d61: PUSH1 0x26
00003d63: DUP8
00003d64: ADD
00003d65: MSTORE
00003d66: SWAP6
00003d67: SWAP1
00003d68: SWAP4
00003d69: SHL
00003d6a: AND
00003d6b: PUSH1 0x28
00003d6d: DUP5
00003d6e: ADD
00003d6f: MSTORE
00003d70: SWAP3
00003d71: SWAP1
00003d72: SHL
00003d73: PUSH1 0x01
00003d75: PUSH1 0x01
00003d77: PUSH1 0x60
00003d79: SHL
00003d7a: SUB
00003d7b: NOT
00003d7c: AND
00003d7d: PUSH1 0x2a
00003d7f: DUP3
00003d80: ADD
00003d81: MSTORE
00003d82: DUP2
00003d83: MLOAD
00003d84: DUP1
00003d85: DUP3
00003d86: SUB
00003d87: PUSH1 0x1e
00003d89: ADD
00003d8a: DUP2
00003d8b: MSTORE
00003d8c: PUSH1 0x3e
00003d8e: SWAP1
00003d8f: SWAP2
00003d90: ADD
00003d91: SWAP1
00003d92: SWAP2
00003d93: MSTORE
00003d94: SWAP1
00003d95: JUMP
00003d96: JUMPDEST
00003d97: PUSH1 0x00
00003d99: DUP2
00003d9a: DUP5
00003d9b: DUP5
00003d9c: GT
00003d9d: ISZERO
00003d9e: PUSH2 0x3e25
00003da1: JUMPI
00003da2: PUSH1 0x40
00003da4: MLOAD
00003da5: PUSH3 0x461bcd
00003da9: PUSH1 0xe5
00003dab: SHL
00003dac: DUP2
00003dad: MSTORE
00003dae: PUSH1 0x04
00003db0: ADD
00003db1: DUP1
00003db2: DUP1
00003db3: PUSH1 0x20
00003db5: ADD
00003db6: DUP3
00003db7: DUP2
00003db8: SUB
00003db9: DUP3
00003dba: MSTORE
00003dbb: DUP4
00003dbc: DUP2
00003dbd: DUP2
00003dbe: MLOAD
00003dbf: DUP2
00003dc0: MSTORE
00003dc1: PUSH1 0x20
00003dc3: ADD
00003dc4: SWAP2
00003dc5: POP
00003dc6: DUP1
00003dc7: MLOAD
00003dc8: SWAP1
00003dc9: PUSH1 0x20
00003dcb: ADD
00003dcc: SWAP1
00003dcd: DUP1
00003dce: DUP4
00003dcf: DUP4
00003dd0: PUSH1 0x00
00003dd2: JUMPDEST
00003dd3: DUP4
00003dd4: DUP2
00003dd5: LT
00003dd6: ISZERO
00003dd7: PUSH2 0x3dea
00003dda: JUMPI
00003ddb: DUP2
00003ddc: DUP2
00003ddd: ADD
00003dde: MLOAD
00003ddf: DUP4
00003de0: DUP3
00003de1: ADD
00003de2: MSTORE
00003de3: PUSH1 0x20
00003de5: ADD
00003de6: PUSH2 0x3dd2
00003de9: JUMP
00003dea: JUMPDEST
00003deb: POP
00003dec: POP
00003ded: POP
00003dee: POP
00003def: SWAP1
00003df0: POP
00003df1: SWAP1
00003df2: DUP2
00003df3: ADD
00003df4: SWAP1
00003df5: PUSH1 0x1f
00003df7: AND
00003df8: DUP1
00003df9: ISZERO
00003dfa: PUSH2 0x3e17
00003dfd: JUMPI
00003dfe: DUP1
00003dff: DUP3
00003e00: SUB
00003e01: DUP1
00003e02: MLOAD
00003e03: PUSH1 0x01
00003e05: DUP4
00003e06: PUSH1 0x20
00003e08: SUB
00003e09: PUSH2 0x0100
00003e0c: EXP
00003e0d: SUB
00003e0e: NOT
00003e0f: AND
00003e10: DUP2
00003e11: MSTORE
00003e12: PUSH1 0x20
00003e14: ADD
00003e15: SWAP2
00003e16: POP
00003e17: JUMPDEST
00003e18: POP
00003e19: SWAP3
00003e1a: POP
00003e1b: POP
00003e1c: POP
00003e1d: PUSH1 0x40
00003e1f: MLOAD
00003e20: DUP1
00003e21: SWAP2
00003e22: SUB
00003e23: SWAP1
00003e24: REVERT
00003e25: JUMPDEST
00003e26: POP
00003e27: POP
00003e28: POP
00003e29: SWAP1
00003e2a: SUB
00003e2b: SWAP1
00003e2c: JUMP
00003e2d: JUMPDEST
00003e2e: PUSH1 0x00
00003e30: PUSH2 0x35ad
00003e33: DUP4
00003e34: DUP4
00003e35: PUSH1 0x40
00003e37: MLOAD
00003e38: DUP1
00003e39: PUSH1 0x40
00003e3b: ADD
00003e3c: PUSH1 0x40
00003e3e: MSTORE
00003e3f: DUP1
00003e40: PUSH1 0x1e
00003e42: DUP2
00003e43: MSTORE
00003e44: PUSH1 0x20
00003e46: ADD
00003e47: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
00003e68: DUP2
00003e69: MSTORE
00003e6a: POP
00003e6b: PUSH2 0x3f96
00003e6e: JUMP
00003e6f: JUMPDEST
00003e70: PUSH1 0x00
00003e72: DUP1
00003e73: DUP3
00003e74: PUSH1 0x04
00003e76: ADD
00003e77: SWAP1
00003e78: POP
00003e79: DUP1
00003e7a: DUP5
00003e7b: MLOAD
00003e7c: LT
00003e7d: ISZERO
00003e7e: PUSH2 0x3eb6
00003e81: JUMPI
00003e82: PUSH1 0x40
00003e84: DUP1
00003e85: MLOAD
00003e86: PUSH3 0x461bcd
00003e8a: PUSH1 0xe5
00003e8c: SHL
00003e8d: DUP2
00003e8e: MSTORE
00003e8f: PUSH1 0x20
00003e91: PUSH1 0x04
00003e93: DUP3
00003e94: ADD
00003e95: MSTORE
00003e96: PUSH1 0x05
00003e98: PUSH1 0x24
00003e9a: DUP3
00003e9b: ADD
00003e9c: MSTORE
00003e9d: PUSH5 0x189d1d4c0d
00003ea3: PUSH1 0xda
00003ea5: SHL
00003ea6: PUSH1 0x44
00003ea8: DUP3
00003ea9: ADD
00003eaa: MSTORE
00003eab: SWAP1
00003eac: MLOAD
00003ead: SWAP1
00003eae: DUP2
00003eaf: SWAP1
00003eb0: SUB
00003eb1: PUSH1 0x64
00003eb3: ADD
00003eb4: SWAP1
00003eb5: REVERT
00003eb6: JUMPDEST
00003eb7: SWAP3
00003eb8: SWAP1
00003eb9: SWAP3
00003eba: ADD
00003ebb: MLOAD
00003ebc: SWAP3
00003ebd: SWAP2
00003ebe: POP
00003ebf: POP
00003ec0: JUMP
00003ec1: JUMPDEST
00003ec2: PUSH1 0x00
00003ec4: DUP1
00003ec5: DUP3
00003ec6: PUSH1 0x02
00003ec8: ADD
00003ec9: SWAP1
00003eca: POP
00003ecb: DUP1
00003ecc: DUP5
00003ecd: MLOAD
00003ece: LT
00003ecf: ISZERO
00003ed0: PUSH2 0x3eb6
00003ed3: JUMPI
00003ed4: PUSH1 0x40
00003ed6: DUP1
00003ed7: MLOAD
00003ed8: PUSH3 0x461bcd
00003edc: PUSH1 0xe5
00003ede: SHL
00003edf: DUP2
00003ee0: MSTORE
00003ee1: PUSH1 0x20
00003ee3: PUSH1 0x04
00003ee5: DUP3
00003ee6: ADD
00003ee7: MSTORE
00003ee8: PUSH1 0x05
00003eea: PUSH1 0x24
00003eec: DUP3
00003eed: ADD
00003eee: MSTORE
00003eef: PUSH5 0x313a3a9819
00003ef5: PUSH1 0xd9
00003ef7: SHL
00003ef8: PUSH1 0x44
00003efa: DUP3
00003efb: ADD
00003efc: MSTORE
00003efd: SWAP1
00003efe: MLOAD
00003eff: SWAP1
00003f00: DUP2
00003f01: SWAP1
00003f02: SUB
00003f03: PUSH1 0x64
00003f05: ADD
00003f06: SWAP1
00003f07: REVERT
00003f08: JUMPDEST
00003f09: PUSH1 0x00
00003f0b: DUP1
00003f0c: DUP3
00003f0d: PUSH1 0x10
00003f0f: ADD
00003f10: SWAP1
00003f11: POP
00003f12: DUP1
00003f13: DUP5
00003f14: MLOAD
00003f15: LT
00003f16: ISZERO
00003f17: PUSH2 0x3eb6
00003f1a: JUMPI
00003f1b: PUSH1 0x40
00003f1d: DUP1
00003f1e: MLOAD
00003f1f: PUSH3 0x461bcd
00003f23: PUSH1 0xe5
00003f25: SHL
00003f26: DUP2
00003f27: MSTORE
00003f28: PUSH1 0x20
00003f2a: PUSH1 0x04
00003f2c: DUP3
00003f2d: ADD
00003f2e: MSTORE
00003f2f: PUSH1 0x05
00003f31: PUSH1 0x24
00003f33: DUP3
00003f34: ADD
00003f35: MSTORE
00003f36: PUSH5 0x313a3a989b
00003f3c: PUSH1 0xd9
00003f3e: SHL
00003f3f: PUSH1 0x44
00003f41: DUP3
00003f42: ADD
00003f43: MSTORE
00003f44: SWAP1
00003f45: MLOAD
00003f46: SWAP1
00003f47: DUP2
00003f48: SWAP1
00003f49: SUB
00003f4a: PUSH1 0x64
00003f4c: ADD
00003f4d: SWAP1
00003f4e: REVERT
00003f4f: JUMPDEST
00003f50: PUSH1 0x00
00003f52: DUP1
00003f53: DUP3
00003f54: PUSH1 0x14
00003f56: ADD
00003f57: SWAP1
00003f58: POP
00003f59: DUP1
00003f5a: DUP5
00003f5b: MLOAD
00003f5c: LT
00003f5d: ISZERO
00003f5e: PUSH2 0x3eb6
00003f61: JUMPI
00003f62: PUSH1 0x40
00003f64: DUP1
00003f65: MLOAD
00003f66: PUSH3 0x461bcd
00003f6a: PUSH1 0xe5
00003f6c: SHL
00003f6d: DUP2
00003f6e: MSTORE
00003f6f: PUSH1 0x20
00003f71: PUSH1 0x04
00003f73: DUP3
00003f74: ADD
00003f75: MSTORE
00003f76: PUSH1 0x05
00003f78: PUSH1 0x24
00003f7a: DUP3
00003f7b: ADD
00003f7c: MSTORE
00003f7d: PUSH5 0x6274613131
00003f83: PUSH1 0xd8
00003f85: SHL
00003f86: PUSH1 0x44
00003f88: DUP3
00003f89: ADD
00003f8a: MSTORE
00003f8b: SWAP1
00003f8c: MLOAD
00003f8d: SWAP1
00003f8e: DUP2
00003f8f: SWAP1
00003f90: SUB
00003f91: PUSH1 0x64
00003f93: ADD
00003f94: SWAP1
00003f95: REVERT
00003f96: JUMPDEST
00003f97: PUSH1 0x00
00003f99: DUP4
00003f9a: PUSH1 0x01
00003f9c: PUSH1 0x01
00003f9e: PUSH1 0x80
00003fa0: SHL
00003fa1: SUB
00003fa2: AND
00003fa3: DUP4
00003fa4: PUSH1 0x01
00003fa6: PUSH1 0x01
00003fa8: PUSH1 0x80
00003faa: SHL
00003fab: SUB
00003fac: AND
00003fad: GT
00003fae: ISZERO
00003faf: DUP3
00003fb0: SWAP1
00003fb1: PUSH2 0x3e25
00003fb4: JUMPI
00003fb5: PUSH1 0x40
00003fb7: MLOAD
00003fb8: PUSH3 0x461bcd
00003fbc: PUSH1 0xe5
00003fbe: SHL
00003fbf: DUP2
00003fc0: MSTORE
00003fc1: PUSH1 0x20
00003fc3: PUSH1 0x04
00003fc5: DUP3
00003fc6: ADD
00003fc7: DUP2
00003fc8: DUP2
00003fc9: MSTORE
00003fca: DUP4
00003fcb: MLOAD
00003fcc: PUSH1 0x24
00003fce: DUP5
00003fcf: ADD
00003fd0: MSTORE
00003fd1: DUP4
00003fd2: MLOAD
00003fd3: SWAP1
00003fd4: SWAP3
00003fd5: DUP4
00003fd6: SWAP3
00003fd7: PUSH1 0x44
00003fd9: SWAP1
00003fda: SWAP2
00003fdb: ADD
00003fdc: SWAP2
00003fdd: SWAP1
00003fde: DUP6
00003fdf: ADD
00003fe0: SWAP1
00003fe1: DUP1
00003fe2: DUP4
00003fe3: DUP4
00003fe4: PUSH1 0x00
00003fe6: DUP4
00003fe7: ISZERO
00003fe8: PUSH2 0x3dea
00003feb: JUMPI
00003fec: DUP2
00003fed: DUP2
00003fee: ADD
00003fef: MLOAD
00003ff0: DUP4
00003ff1: DUP3
00003ff2: ADD
00003ff3: MSTORE
00003ff4: PUSH1 0x20
00003ff6: ADD
00003ff7: PUSH2 0x3dd2
00003ffa: JUMP
00003ffb: JUMPDEST
00003ffc: PUSH1 0x40
00003ffe: DUP1
00003fff: MLOAD
00004000: PUSH1 0x80
00004002: DUP2
00004003: ADD
00004004: DUP3
00004005: MSTORE
00004006: PUSH1 0x00
00004008: DUP1
00004009: DUP3
0000400a: MSTORE
0000400b: PUSH1 0x20
0000400d: DUP3
0000400e: ADD
0000400f: DUP2
00004010: SWAP1
00004011: MSTORE
00004012: SWAP2
00004013: DUP2
00004014: ADD
00004015: DUP3
00004016: SWAP1
00004017: MSTORE
00004018: PUSH1 0x60
0000401a: DUP2
0000401b: ADD
0000401c: SWAP2
0000401d: SWAP1
0000401e: SWAP2
0000401f: MSTORE
00004020: SWAP1
00004021: JUMP
00004022: JUMPDEST
00004023: POP
00004024: DUP1
00004025: SLOAD
00004026: PUSH1 0x01
00004028: DUP2
00004029: PUSH1 0x01
0000402b: AND
0000402c: ISZERO
0000402d: PUSH2 0x0100
00004030: MUL
00004031: SUB
00004032: AND
00004033: PUSH1 0x02
00004035: SWAP1
00004036: DIV
00004037: PUSH1 0x00
00004039: DUP3
0000403a: SSTORE
0000403b: DUP1
0000403c: PUSH1 0x1f
0000403e: LT
0000403f: PUSH2 0x4048
00004042: JUMPI
00004043: POP
00004044: PUSH2 0x4066
00004047: JUMP
00004048: JUMPDEST
00004049: PUSH1 0x1f
0000404b: ADD
0000404c: PUSH1 0x20
0000404e: SWAP1
0000404f: DIV
00004050: SWAP1
00004051: PUSH1 0x00
00004053: MSTORE
00004054: PUSH1 0x20
00004056: PUSH1 0x00
00004058: KECCAK256
00004059: SWAP1
0000405a: DUP2
0000405b: ADD
0000405c: SWAP1
0000405d: PUSH2 0x4066
00004060: SWAP2
00004061: SWAP1
00004062: PUSH2 0x4111
00004065: JUMP
00004066: JUMPDEST
00004067: POP
00004068: JUMP
00004069: JUMPDEST
0000406a: DUP3
0000406b: DUP1
0000406c: SLOAD
0000406d: PUSH1 0x01
0000406f: DUP2
00004070: PUSH1 0x01
00004072: AND
00004073: ISZERO
00004074: PUSH2 0x0100
00004077: MUL
00004078: SUB
00004079: AND
0000407a: PUSH1 0x02
0000407c: SWAP1
0000407d: DIV
0000407e: SWAP1
0000407f: PUSH1 0x00
00004081: MSTORE
00004082: PUSH1 0x20
00004084: PUSH1 0x00
00004086: KECCAK256
00004087: SWAP1
00004088: PUSH1 0x1f
0000408a: ADD
0000408b: PUSH1 0x20
0000408d: SWAP1
0000408e: DIV
0000408f: DUP2
00004090: ADD
00004091: SWAP3
00004092: DUP3
00004093: PUSH1 0x1f
00004095: LT
00004096: PUSH2 0x40aa
00004099: JUMPI
0000409a: DUP1
0000409b: MLOAD
0000409c: PUSH1 0xff
0000409e: NOT
0000409f: AND
000040a0: DUP4
000040a1: DUP1
000040a2: ADD
000040a3: OR
000040a4: DUP6
000040a5: SSTORE
000040a6: PUSH2 0x40d7
000040a9: JUMP
000040aa: JUMPDEST
000040ab: DUP3
000040ac: DUP1
000040ad: ADD
000040ae: PUSH1 0x01
000040b0: ADD
000040b1: DUP6
000040b2: SSTORE
000040b3: DUP3
000040b4: ISZERO
000040b5: PUSH2 0x40d7
000040b8: JUMPI
000040b9: SWAP2
000040ba: DUP3
000040bb: ADD
000040bc: JUMPDEST
000040bd: DUP3
000040be: DUP2
000040bf: GT
000040c0: ISZERO
000040c1: PUSH2 0x40d7
000040c4: JUMPI
000040c5: DUP3
000040c6: MLOAD
000040c7: DUP3
000040c8: SSTORE
000040c9: SWAP2
000040ca: PUSH1 0x20
000040cc: ADD
000040cd: SWAP2
000040ce: SWAP1
000040cf: PUSH1 0x01
000040d1: ADD
000040d2: SWAP1
000040d3: PUSH2 0x40bc
000040d6: JUMP
000040d7: JUMPDEST
000040d8: POP
000040d9: PUSH2 0x34bf
000040dc: SWAP3
000040dd: SWAP2
000040de: POP
000040df: PUSH2 0x4111
000040e2: JUMP
000040e3: JUMPDEST
000040e4: PUSH1 0x40
000040e6: DUP1
000040e7: MLOAD
000040e8: PUSH1 0xa0
000040ea: DUP2
000040eb: ADD
000040ec: DUP3
000040ed: MSTORE
000040ee: PUSH1 0x00
000040f0: DUP1
000040f1: DUP3
000040f2: MSTORE
000040f3: PUSH1 0x20
000040f5: DUP3
000040f6: ADD
000040f7: DUP2
000040f8: SWAP1
000040f9: MSTORE
000040fa: SWAP2
000040fb: DUP2
000040fc: ADD
000040fd: DUP3
000040fe: SWAP1
000040ff: MSTORE
00004100: PUSH1 0x60
00004102: DUP2
00004103: ADD
00004104: DUP3
00004105: SWAP1
00004106: MSTORE
00004107: PUSH1 0x80
00004109: DUP2
0000410a: ADD
0000410b: SWAP2
0000410c: SWAP1
0000410d: SWAP2
0000410e: MSTORE
0000410f: SWAP1
00004110: JUMP
00004111: JUMPDEST
00004112: PUSH2 0x104e
00004115: SWAP2
00004116: SWAP1
00004117: JUMPDEST
00004118: DUP1
00004119: DUP3
0000411a: GT
0000411b: ISZERO
0000411c: PUSH2 0x34bf
0000411f: JUMPI
00004120: PUSH1 0x00
00004122: DUP2
00004123: SSTORE
00004124: PUSH1 0x01
00004126: ADD
00004127: PUSH2 0x4117
0000412a: JUMP
0000412b: INVALID
0000412c: MSTORE
0000412d: PUSH6 0x656e7472616e
00004134: PUSH4 0x79477561
00004139: PUSH19 0x643a207265656e7472616e742063616c6c007a
0000414d: PUSH12 0x53796e63436f6d6d6974426c
0000415a: PUSH16 0x636b416464726573732073686f756c64
0000416b: KECCAK256
0000416c: PUSH3 0x652073
00004170: PUSH6 0x748e94fed442
00004177: CODECOPY
00004178: UNKNOWN(0xEB)
00004179: UNKNOWN(0x23)
0000417a: EQ
0000417b: UNKNOWN(0xAB)
0000417c: PUSH27 0x406345e6c5a8f0ccedf3b600de3d004e672c33abf4536166654361
00004198: PUSH20 0x743a2076616c756520646f65736e277420666974
000041ad: KECCAK256
000041ae: PUSH10 0x6e203132382062697473
000041b9: LOG2
000041ba: PUSH6 0x627a7a723158
000041c1: KECCAK256
000041c2: UNKNOWN(0xDA)
000041c3: UNKNOWN(0xC6)
000041c4: DUP10
000041c5: UNKNOWN(0x2E)
000041c6: MLOAD
000041c7: UNKNOWN(0xB5)
000041c8: DUP15
000041c9: DUP3
000041ca: AND
000041cb: UNKNOWN(0xE0)
000041cc: UNKNOWN(0xEF)
000041cd: INVALID
000041ce: SWAP9
000041cf: UNKNOWN(0xE7)
000041d0: ADDMOD
000041d1: SMOD
000041d2: UNKNOWN(0xE3)
000041d3: BASEFEE
000041d4: PUSH16 0x7f0c3b9b22d303e73ec647d0fa64736f
000041e5: PUSH13

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability codex Unprotected genesis/commit address initialization enables delegatecall takeover and fund drain 90 no
view
evidence_json
{
    "evidence": "`setGenesisRootAndAddresses` is external with no access control and only checks for zero addresses, allowing anyone to set `zkSyncCommitBlockAddress`/`zkSyncExitAddress`. The fallback then blindly delegatecalls to `zkSyncCommitBlockAddress`, enabling arbitrary code execution in ZkSync storage.",
    "locations": [
        "contracts/contracts/ZkSync.sol:169",
        "contracts/contracts/ZkSync.sol:173",
        "contracts/contracts/ZkSync.sol:175",
        "contracts/contracts/ZkSync.sol:176",
        "contracts/contracts/ZkSync.sol:513",
        "contracts/contracts/ZkSync.sol:515",
        "contracts/contracts/ZkSync.sol:519"
    ],
    "recommendation": "Restrict `setGenesisRootAndAddresses` to governance/owner and/or fold it into the authenticated initializer. Also consider making the fallback delegatecall target immutable after a trusted initialization step and verifying the caller for any admin-only setup.",
    "exploit_scenario": "1) On a fresh proxy deployment (constructor not run), `zkSyncCommitBlockAddress`/`zkSyncExitAddress` are zero. An attacker deploys a malicious facet with a `drain()` function that calls `IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)))` and/or sends `address(this).balance` to `msg.sender`.\n2) Attacker calls `setGenesisRootAndAddresses(...)` to set `_zkSyncCommitBlockAddress` to the malicious facet (and any `_zkSyncExitAddress`).\n3) Attacker calls the ZkSync proxy with calldata for `drain()`; fallback delegates to the malicious facet, executing in ZkSync context and transferring ETH/ERC20s to the attacker.\nProfit: up to 100% of ETH and ERC20 balances held by the ZkSync contract (all user deposits)."
}
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0x78e576d1923ea49d01d1d7ff37ddbda907b532d30d6211c517731ddfcda2eb80
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0x78e576d1923ea49d01d1d7ff37ddbda907b532d30d6211c517731ddfcda2eb80",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xfa6b53c3",
            "selector": "0xfa6b53c3",
            "calldata_variants": [
                "0xfa6b53c3",
                "0xfa6b53c30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfaf4d8cb",
            "selector": "0xfaf4d8cb",
            "calldata_variants": [
                "0xfaf4d8cb",
                "0xfaf4d8cb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc97a303",
            "selector": "0xfc97a303",
            "calldata_variants": [
                "0xfc97a303",
                "0xfc97a3030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffeec237",
            "selector": "0xffeec237",
            "calldata_variants": [
                "0xffeec237",
                "0xffeec2370000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe7f40cf6",
            "selector": "0xe7f40cf6",
            "calldata_variants": [
                "0xe7f40cf6",
                "0xe7f40cf60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe96aa205",
            "selector": "0xe96aa205",
            "calldata_variants": [
                "0xe96aa205",
                "0xe96aa2050000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3a4d4af",
            "selector": "0xf3a4d4af",
            "calldata_variants": [
                "0xf3a4d4af",
                "0xf3a4d4af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc57b22be",
            "selector": "0xc57b22be",
            "calldata_variants": [
                "0xc57b22be",
                "0xc57b22be0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 823,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 7710,
            "type": "msg_sender_eq_const",
            "value": 0
        }
    ],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x7abbffaa97ad8d4fad7c8a0564356e6d3a198495ca83fbc3b49b73612d078f56
call_targets: 0xf2c351f22b148a9ff583a0f81701471a74e7338e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x7abbffaa97ad8d4fad7c8a0564356e6d3a198495ca83fbc3b49b73612d078f56",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf2c351f22b148a9ff583a0f81701471a74e7338e"
    ],
    "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": "0xfa6b53c3",
            "selector": "0xfa6b53c3",
            "calldata_variants": [
                "0xfa6b53c3",
                "0xfa6b53c30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfaf4d8cb",
            "selector": "0xfaf4d8cb",
            "calldata_variants": [
                "0xfaf4d8cb",
                "0xfaf4d8cb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc97a303",
            "selector": "0xfc97a303",
            "calldata_variants": [
                "0xfc97a303",
                "0xfc97a3030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffeec237",
            "selector": "0xffeec237",
            "calldata_variants": [
                "0xffeec237",
                "0xffeec2370000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe7f40cf6",
            "selector": "0xe7f40cf6",
            "calldata_variants": [
                "0xe7f40cf6",
                "0xe7f40cf60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe96aa205",
            "selector": "0xe96aa205",
            "calldata_variants": [
                "0xe96aa205",
                "0xe96aa2050000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3a4d4af",
            "selector": "0xf3a4d4af",
            "calldata_variants": [
                "0xf3a4d4af",
                "0xf3a4d4af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc57b22be",
            "selector": "0xc57b22be",
            "calldata_variants": [
                "0xc57b22be",
                "0xc57b22be0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 6558,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7524,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8026,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 12,
    "guards_detected": [
        {
            "pc": 7710,
            "type": "msg_sender_eq_const",
            "value": 0
        }
    ],
    "untrusted_call_count": 12
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x7abbffaa97ad8d4fad7c8a0564356e6d3a198495ca83fbc3b49b73612d078f56
call_targets: 0xf2c351f22b148a9ff583a0f81701471a74e7338e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x7abbffaa97ad8d4fad7c8a0564356e6d3a198495ca83fbc3b49b73612d078f56",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf2c351f22b148a9ff583a0f81701471a74e7338e"
    ],
    "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": "0xfa6b53c3",
            "selector": "0xfa6b53c3",
            "calldata_variants": [
                "0xfa6b53c3",
                "0xfa6b53c30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfaf4d8cb",
            "selector": "0xfaf4d8cb",
            "calldata_variants": [
                "0xfaf4d8cb",
                "0xfaf4d8cb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc97a303",
            "selector": "0xfc97a303",
            "calldata_variants": [
                "0xfc97a303",
                "0xfc97a3030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffeec237",
            "selector": "0xffeec237",
            "calldata_variants": [
                "0xffeec237",
                "0xffeec2370000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe7f40cf6",
            "selector": "0xe7f40cf6",
            "calldata_variants": [
                "0xe7f40cf6",
                "0xe7f40cf60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe96aa205",
            "selector": "0xe96aa205",
            "calldata_variants": [
                "0xe96aa205",
                "0xe96aa2050000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3a4d4af",
            "selector": "0xf3a4d4af",
            "calldata_variants": [
                "0xf3a4d4af",
                "0xf3a4d4af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc57b22be",
            "selector": "0xc57b22be",
            "calldata_variants": [
                "0xc57b22be",
                "0xc57b22be0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 6558,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7524,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8026,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 12,
    "guards_detected": [
        {
            "pc": 7710,
            "type": "msg_sender_eq_const",
            "value": 0
        }
    ]
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
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": 30
}
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": 24
}