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

Analysis Run

48761642-a2bb-4ad0-8c2c-796509a9987b

complete
Chain ID
1
Address
Block Number
Created
Thu, Jan 1, 2026 4:35 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
executeTxWithPermits allows reentrant double-execution of the same transaction
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
31078 report.consolidate complete 1 / 1 3 months ago
76282 artifact.fetch complete 1 / 3 1 week ago
76283 tool.cast_disasm complete 1 / 3 1 week ago
76284 analysis.bundle complete 1 / 3 1 week ago
76285 capability.graph complete 1 / 3 1 week ago
76286 detector.run complete 1 / 3 1 week ago
76287 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
Found a reentrancy in permit-based execution that lets a malicious owner contract double-spend an approved transfer.
View stderr
[codex:767956] OpenAI Codex v0.77.0 (research preview)
[codex:767956] --------
[codex:767956] workdir: /tmp/codex-multi-qfphmk4w
[codex:767956] model: gpt-5.2-codex
[codex:767956] provider: openai
[codex:767956] approval: never
[codex:767956] sandbox: read-only
[codex:767956] reasoning effort: xhigh
[codex:767956] reasoning summaries: auto
[codex:767956] session id: 019b7a65-0a1b-7dc3-9011-7634195b3e2e
[codex:767956] --------
[codex:767956] user
[codex:767956] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:767956] 
[codex:767956] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:767956] 
[codex:767956] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:767956] - Gas inefficiency, code quality, naming, or best practices
[codex:767956] - Theoretical vulnerabilities without a clear extraction path
[codex:767956] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:767956] - Front-running unless it enables theft beyond MEV
[codex:767956] - DoS, griefing, or issues that don't result in attacker profit
[codex:767956] - Missing events, view function issues, or informational findings
[codex:767956] 
[codex:767956] HIGH-VALUE PATTERNS TO HUNT:
[codex:767956] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:767956] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:767956] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:767956] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:767956] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:767956] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:767956] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:767956] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:767956] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:767956] 
[codex:767956] For each finding, you MUST provide:
[codex:767956] 1. Exact file and line numbers of vulnerable code
[codex:767956] 2. Step-by-step exploit transaction sequence
[codex:767956] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:767956] 
[codex:767956] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:767956] 
[codex:767956] Output MUST be valid JSON matching the provided schema.
[codex:767956] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:767956] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:767956] mcp startup: no servers
[codex:767956] 
[codex:767956] thinking
[codex:767956] **Preparing to read AUDIT_BUNDLE.txt**
[codex:767956] exec
[codex:767956] /bin/bash -lc ls in /tmp/codex-multi-qfphmk4w succeeded in 5ms:
[codex:767956] AUDIT_BUNDLE.txt
[codex:767956] codex-output-schema.json
[codex:767956] contracts
[codex:767956] exec
[codex:767956] /bin/bash -lc 'rg --files' in /tmp/codex-multi-qfphmk4w succeeded in 11ms:
[codex:767956] codex-output-schema.json
[codex:767956] AUDIT_BUNDLE.txt
[codex:767956] contracts/Contract.sol
[codex:767956] exec
[codex:767956] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-qfphmk4w succeeded in 5ms:
[codex:767956] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:767956] 
[codex:767956] ================================================================================
[codex:767956] FILE: contracts/Contract.sol
[codex:767956] ================================================================================
[codex:767956] //SPDX-License-Identifier: lgplv3 OR MIT
[codex:767956] // File: @openzeppelin/contracts/proxy/Proxy.sol
[codex:767956] 
[codex:767956] // OpenZeppelin Contracts v4.4.1 (proxy/Proxy.sol)
[codex:767956] 
[codex:767956] pragma solidity ^0.8.0;
[codex:767956] 
[codex:767956] /**
[codex:767956]  * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
[codex:767956]  * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
[codex:767956]  * be specified by overriding the virtual {_implementation} function.
[codex:767956]  *
[codex:767956]  * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
[codex:767956]  * different contract through the {_delegate} function.
[codex:767956]  *
[codex:767956] 
[codex:767956] thinking
[codex:767956] **Examining full contract for exploits**
[codex:767956] exec
[codex:767956] /bin/bash -lc 'nl -ba contracts/Contract.sol' in /tmp/codex-multi-qfphmk4w succeeded in 7ms:
[codex:767956]      1	//SPDX-License-Identifier: lgplv3 OR MIT
[codex:767956]      2	// File: @openzeppelin/contracts/proxy/Proxy.sol
[codex:767956]      3	
[codex:767956]      4	// OpenZeppelin Contracts v4.4.1 (proxy/Proxy.sol)
[codex:767956]      5	
[codex:767956]      6	pragma solidity ^0.8.0;
[codex:767956]      7	
[codex:767956]      8	/**
[codex:767956]      9	 * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
[codex:767956]     10	 * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
[codex:767956]     11	 * be specified by overriding the virtual {_implementation} function.
[codex:767956]     12	 *
[codex:767956]     13	 * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
[codex:767956]     14	 * different contract through the {_delegate} function.
[codex:767956]     15	 *
[codex:767956]     16	 * The success and return data of the delegated call will be returned back to the caller of the proxy.
[codex:767956]     17	 */
[codex:767956]     18	abstract contract Proxy {
[codex:767956]     19	    /**
[codex:767956]     20	     * @dev Delegates the current call to `implementation`.
[codex:767956] 
[codex:767956] thinking
[codex:767956] **Locating MultiSigWallet contract**
[codex:767956] exec
[codex:767956] /bin/bash -lc 'rg -n "contract MultiSigWallet" -n contracts/Contract.sol' in /tmp/codex-multi-qfphmk4w succeeded in 9ms:
[codex:767956] 792:contract MultiSigWallet {
[codex:767956] 1211:contract MultiSigWalletWithPermit is MultiSigWallet {
[codex:767956] exec
[codex:767956] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '760,940p'" in /tmp/codex-multi-qfphmk4w succeeded in 6ms:
[codex:767956]    760	     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.
[codex:767956]    761	     */
[codex:767956]    762	    function _beforeFallback() internal virtual override {
[codex:767956]    763	        require(msg.sender != _getAdmin(), "TransparentUpgradeableProxy: admin cannot fallback to proxy target");
[codex:767956]    764	        super._beforeFallback();
[codex:767956]    765	    }
[codex:767956]    766	}
[codex:767956]    767	
[codex:767956]    768	// File: contracts/ERC721TokenReceiver.sol
[codex:767956]    769	
[codex:767956]    770	
[codex:767956]    771	pragma solidity ^0.8.0;
[codex:767956]    772	
[codex:767956]    773	contract ERC721TokenReceiver {
[codex:767956]    774	    function onERC721Received(
[codex:767956]    775	        address,
[codex:767956]    776	        address,
[codex:767956]    777	        uint256,
[codex:767956]    778	        bytes memory
[codex:767956]    779	    ) external pure returns (bytes4) {
[codex:767956] 
[codex:767956] 
[codex:767956] 
[codex:767956] 
[codex:767956] thinking
[codex:767956] **Analyzing multisig permit vulnerabilities**
[codex:767956] 
[codex:767956] This is a deep dive into the MultiSigWalletWithPermit contract, focusing on initialization risks with proxies and the permit-based execution flow. I'm checking for uninitalized wallets, front-running setup calls, signature replay or duplicate signature issues, reentrancy possibilities during transaction execution, and whether the proxy admin multisig might be vulnerable if deployed uninitialized. The conclusion so far is that the factory and constructor checks largely prevent unsafe uninitialized states, though classic uninitialized proxy wallet scenarios persist if deployed directly or outside factory. Signature logic seems solid against duplicates but lacks a deadline, so replays within the current nonce window remain possible.
[codex:767956] thinking
[codex:767956] **Identifying reentrancy risks in permit execution**
[codex:767956] 
[codex:767956] I'm examining subtle reentrancy issues in executeTxWithPermits due to executed flags being set only after external calls, allowing a malicious owner contract to reenter and execute transactions twice, potentially draining double funds. The scenario requires the attacker to control an owner contract as destination, enabling callbacks into the wallet during execution. This nuanced vulnerability hinges on multisig owners approving a transaction sending funds to such a contract and the lack of pre-call executed marking in permit-based execution.
[codex:767956] thinking
[codex:767956] **Clarifying owner contract reentrancy scenario**
[codex:767956] 
[codex:767956] I'm confirming that the reentrancy exploit requires the attacker to control an owner contract that can call executeTxWithPermits with itself as destination, leveraging signatures from other owners. This setup enables double execution by reentering executeTransaction during the external call, effectively doubling withdrawals when the wallet has sufficient balance. The nuanced chain of approvals and contract calls makes this a concrete profit path under certain multisig configurations.
[codex:767956] thinking
[codex:767956] ```json
[codex:767956] {
[codex:767956]   "no_findings": false,
[codex:767956]   "summary": "Reentrancy in executeTxWithPermits enables double execution of an approved transaction, allowing an owner contract to drain up to the wallet's balance by exploiting external calls before marking the transaction executed.",
[codex:767956]   "findings": [
[codex:767956]     {
[codex:767956]       "severity": "high",
[codex:767956]       "category": "reentrancy",
[codex:767956]       "title": "Double execution via reentrancy in executeTxWithPermits",
[codex:767956]       "exploit_scenario": "An attacker controlling an owner contract obtains required signatures from other owners for a transaction sending ETH to the attacker contract. The attacker contract calls executeTxWithPermits, which adds the transaction and then calls executeTransactionInner. During the external call to the attacker contract, it reenters executeTransaction to execute the same transaction again before the executed flag is set, resulting in sending twice the approved value. Repeating with value equal to half the wallet balance can drain the entire wallet.",
[codex:767956]       "recommendation": "Modify executeTxWithPermits or executeTransactionInner to set the transaction's executed flag before the external call, or implement a reentrancy guard to prevent double execution. Align this behavior with executeTransaction, which marks executed before calling external contracts.",
[codex:767956]       "evidence": "executeTxWithPermits adds transaction and calls executeTransactionInner; executeTransactionInner performs destination.call{value:value}(data) (contracts/Contract.sol:1382) before setting transactions[transactionId].executed = true (contracts/Contract.sol:1387). During this call, a malicious destination that is also an owner can reenter executeTransaction (contracts/Contract.sol:1025) and execute the transaction again.",
[codex:767956]       "locations": [
[codex:767956]         "contracts/Contract.sol:1323-1371",
[codex:767956]         "contracts/Contract.sol:1374-1388",
[codex:767956]         "contracts/Contract.sol:1025-1041"
[codex:767956]       ]
[codex:767956]     }
[codex:767956]   ]
[codex:767956] }
[codex:767956] ```
[codex:767956] exec
[codex:767956] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1018,1045p'" in /tmp/codex-multi-qfphmk4w succeeded in 6ms:
[codex:767956]   1018	    confirmed(transactionId, msg.sender)
[codex:767956]   1019	    notExecuted(transactionId)
[codex:767956]   1020	    {
[codex:767956]   1021	        confirmations[transactionId][msg.sender] = false;
[codex:767956]   1022	        emit  Revocation(msg.sender, transactionId);
[codex:767956]   1023	    }
[codex:767956]   1024	
[codex:767956]   1025	    /// @dev Allows anyone to execute a confirmed transaction.
[codex:767956]   1026	    /// @param transactionId Transaction ID.
[codex:767956]   1027	    function executeTransaction(uint transactionId)
[codex:767956]   1028	    public payable virtual 
[codex:767956]   1029	    ownerExists(msg.sender)
[codex:767956]   1030	    confirmed(transactionId, msg.sender)
[codex:767956]   1031	    notExecuted(transactionId)
[codex:767956]   1032	    {
[codex:767956]   1033	        if (isConfirmed(transactionId)) {
[codex:767956]   1034	            Transaction storage txn = transactions[transactionId];
[codex:767956]   1035	            txn.executed = true;
[codex:767956]   1036	            if (external_call(txn.destination, txn.value, txn.data.length, txn.data))
[codex:767956]   1037	                emit  Execution(transactionId);
[codex:767956] 
[codex:767956] thinking
[codex:767956] **Examining executeTransactionInner function**
[codex:767956] exec
[codex:767956] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1348,1395p'" in /tmp/codex-multi-qfphmk4w succeeded in 6ms:
[codex:767956]   1348	                        PERMIT_TYPEHASH,
[codex:767956]   1349	                        msg.sender,
[codex:767956]   1350	                        destination,
[codex:767956]   1351	                        value,
[codex:767956]   1352	                        keccak256(data),
[codex:767956]   1353	                        nonce
[codex:767956]   1354	                    )
[codex:767956]   1355	                )
[codex:767956]   1356	            )
[codex:767956]   1357	        );
[codex:767956]   1358	
[codex:767956]   1359	        for (uint8 i = 0; i < rs.length; ++i) {
[codex:767956]   1360	            address owner = ecrecover(digest, vs[i], rs[i], ss[i]);
[codex:767956]   1361	            require(owner != address(0), "MS03");
[codex:767956]   1362	            require(isOwner[owner], "MS04");
[codex:767956]   1363	
[codex:767956]   1364	            confirmations[newTransactionId][owner] = true;
[codex:767956]   1365	        }
[codex:767956]   1366	
[codex:767956]   1367	        if (isConfirmed(newTransactionId)) {
[codex:767956] 
[codex:767956] thinking
[codex:767956] **Preparing detailed security finding JSON**
[codex:767956] codex
[codex:767956] {"no_findings":false,"summary":"Found a reentrancy in permit-based execution that lets a malicious owner contract double-spend an approved transfer.","findings":[{"severity":"high","category":"reentrancy","title":"executeTxWithPermits allows reentrant double-execution of the same transaction","exploit_scenario":"1) Attacker controls an owner contract and obtains the required off-chain signatures for a transaction that sends X ETH to that contract (nonce = current transactionCount). 2) The owner contract calls executeTxWithPermits with destination = itself and the collected signatures. 3) executeTransactionInner makes the external call before marking the transaction executed; in the destination fallback, the attacker reenters and calls executeTransaction(transactionId) (the transactionId equals the nonce passed). 4) Because confirmations for the attacker contract are already set and executed is still false, executeTransaction succeeds and transfers X again. 5) Net payout is 2X in one tx; profit is the extra X. With X <= walletBalance/2 the attacker can drain up to the full wallet ETH balance (repeat for full drain).","recommendation":"Set transactions[transactionId].executed = true before the external call (and revert/reset on failure) or reuse executeTransaction’s checks-effects-interactions flow; additionally add a reentrancy guard around executeTxWithPermits/executeTransactionInner.","evidence":"executeTxWithPermits calls executeTransactionInner, which performs destination.call{value:value}(data) before setting executed (contracts/Contract.sol:1367-1387). During that external call, a destination that is also an owner and already confirmed can reenter executeTransaction (contracts/Contract.sol:1027-1037) while notExecuted still passes, causing a second transfer.","locations":["contracts/Contract.sol:1323","contracts/Contract.sol:1367","contracts/Contract.sol:1382","contracts/Contract.sol:1387","contracts/Contract.sol:1027"]}]}
[codex:767956] tokens used
[codex:767956] 45,097
[codex:767956] {"no_findings":false,"summary":"Found a reentrancy in permit-based execution that lets a malicious owner contract double-spend an approved transfer.","findings":[{"severity":"high","category":"reentrancy","title":"executeTxWithPermits allows reentrant double-execution of the same transaction","exploit_scenario":"1) Attacker controls an owner contract and obtains the required off-chain signatures for a transaction that sends X ETH to that contract (nonce = current transactionCount). 2) The owner contract calls executeTxWithPermits with destination = itself and the collected signatures. 3) executeTransactionInner makes the external call before marking the transaction executed; in the destination fallback, the attacker reenters and calls executeTransaction(transactionId) (the transactionId equals the nonce passed). 4) Because confirmations for the attacker contract are already set and executed is still false, executeTransaction succeeds and transfers X again. 5) Net payout is 2X in one tx; profit is the extra X. With X <= walletBalance/2 the attacker can drain up to the full wallet ETH balance (repeat for full drain).","recommendation":"Set transactions[transactionId].executed = true before the external call (and revert/reset on failure) or reuse executeTransaction’s checks-effects-interactions flow; additionally add a reentrancy guard around executeTxWithPermits/executeTransactionInner.","evidence":"executeTxWithPermits calls executeTransactionInner, which performs destination.call{value:value}(data) before setting executed (contracts/Contract.sol:1367-1387). During that external call, a destination that is also an owner and already confirmed can reenter executeTransaction (contracts/Contract.sol:1027-1037) while notExecuted still passes, causing a second transfer.","locations":["contracts/Contract.sol:1323","contracts/Contract.sol:1367","contracts/Contract.sol:1382","contracts/Contract.sol:1387","contracts/Contract.sol:1027"]}]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-01T16:35:14.740005+00:00",
        "returncode": 0
    },
    "summary": "Found a reentrancy in permit-based execution that lets a malicious owner contract double-spend an approved transfer.",
    "raw_final": {
        "summary": "Found a reentrancy in permit-based execution that lets a malicious owner contract double-spend an approved transfer.",
        "findings": [
            {
                "title": "executeTxWithPermits allows reentrant double-execution of the same transaction",
                "category": "reentrancy",
                "evidence": "executeTxWithPermits calls executeTransactionInner, which performs destination.call{value:value}(data) before setting executed (contracts/Contract.sol:1367-1387). During that external call, a destination that is also an owner and already confirmed can reenter executeTransaction (contracts/Contract.sol:1027-1037) while notExecuted still passes, causing a second transfer.",
                "severity": "high",
                "locations": [
                    "contracts/Contract.sol:1323",
                    "contracts/Contract.sol:1367",
                    "contracts/Contract.sol:1382",
                    "contracts/Contract.sol:1387",
                    "contracts/Contract.sol:1027"
                ],
                "recommendation": "Set transactions[transactionId].executed = true before the external call (and revert/reset on failure) or reuse executeTransaction\u2019s checks-effects-interactions flow; additionally add a reentrancy guard around executeTxWithPermits/executeTransactionInner.",
                "exploit_scenario": "1) Attacker controls an owner contract and obtains the required off-chain signatures for a transaction that sends X ETH to that contract (nonce = current transactionCount). 2) The owner contract calls executeTxWithPermits with destination = itself and the collected signatures. 3) executeTransactionInner makes the external call before marking the transaction executed; in the destination fallback, the attacker reenters and calls executeTransaction(transactionId) (the transactionId equals the nonce passed). 4) Because confirmations for the attacker contract are already set and executed is still false, executeTransaction succeeds and transfers X again. 5) Net payout is 2X in one tx; profit is the extra X. With X <= walletBalance/2 the attacker can drain up to the full wallet ETH balance (repeat for full drain)."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
4
EXT*/BALANCE
1
Total opcodes
7504
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x01e7
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x9ace38c2
00000019: GT
0000001a: PUSH2 0x0102
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xbc197c81
00000024: GT
00000025: PUSH2 0x0095
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xdc8452cd
0000002f: GT
00000030: PUSH2 0x0064
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xdc8452cd
0000003a: EQ
0000003b: PUSH2 0x0693
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xe20056e6
00000045: EQ
00000046: PUSH2 0x06a9
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xee22610b
00000050: EQ
00000051: PUSH2 0x06c9
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf23a6e61
0000005b: EQ
0000005c: PUSH2 0x06dc
0000005f: JUMPI
00000060: PUSH2 0x022b
00000063: JUMP
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0xbc197c81
0000006b: EQ
0000006c: PUSH2 0x061c
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xc01a8c84
00000076: EQ
00000077: PUSH2 0x064b
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xc6427474
00000081: EQ
00000082: PUSH2 0x065e
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xd74f8edd
0000008c: EQ
0000008d: PUSH2 0x067e
00000090: JUMPI
00000091: PUSH2 0x022b
00000094: JUMP
00000095: JUMPDEST
00000096: DUP1
00000097: PUSH4 0xb0a08a7e
0000009c: GT
0000009d: PUSH2 0x00d1
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xb0a08a7e
000000a7: EQ
000000a8: PUSH2 0x05a4
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xb5dc40c3
000000b2: EQ
000000b3: PUSH2 0x05c6
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xb77bf600
000000bd: EQ
000000be: PUSH2 0x05e6
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0xba51a6df
000000c8: EQ
000000c9: PUSH2 0x05fc
000000cc: JUMPI
000000cd: PUSH2 0x022b
000000d0: JUMP
000000d1: JUMPDEST
000000d2: DUP1
000000d3: PUSH4 0x9ace38c2
000000d8: EQ
000000d9: PUSH2 0x0505
000000dc: JUMPI
000000dd: DUP1
000000de: PUSH4 0xa0e67e2b
000000e3: EQ
000000e4: PUSH2 0x0535
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0xa43bee2b
000000ee: EQ
000000ef: PUSH2 0x0557
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0xa8abe69a
000000f9: EQ
000000fa: PUSH2 0x0577
000000fd: JUMPI
000000fe: PUSH2 0x022b
00000101: JUMP
00000102: JUMPDEST
00000103: DUP1
00000104: PUSH4 0x3644e515
00000109: GT
0000010a: PUSH2 0x017a
0000010d: JUMPI
0000010e: DUP1
0000010f: PUSH4 0x7065cb48
00000114: GT
00000115: PUSH2 0x0149
00000118: JUMPI
00000119: DUP1
0000011a: PUSH4 0x7065cb48
0000011f: EQ
00000120: PUSH2 0x0485
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x784547a7
0000012a: EQ
0000012b: PUSH2 0x04a5
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0x84eead63
00000135: EQ
00000136: PUSH2 0x04c5
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0x8b51d13f
00000140: EQ
00000141: PUSH2 0x04e5
00000144: JUMPI
00000145: PUSH2 0x022b
00000148: JUMP
00000149: JUMPDEST
0000014a: DUP1
0000014b: PUSH4 0x3644e515
00000150: EQ
00000151: PUSH2 0x041b
00000154: JUMPI
00000155: DUP1
00000156: PUSH4 0x54741525
0000015b: EQ
0000015c: PUSH2 0x0431
0000015f: JUMPI
00000160: DUP1
00000161: PUSH4 0x54e7796f
00000166: EQ
00000167: PUSH2 0x0451
0000016a: JUMPI
0000016b: DUP1
0000016c: PUSH4 0x54fd4d50
00000171: EQ
00000172: PUSH2 0x0471
00000175: JUMPI
00000176: PUSH2 0x022b
00000179: JUMP
0000017a: JUMPDEST
0000017b: DUP1
0000017c: PUSH4 0x20ea8d86
00000181: GT
00000182: PUSH2 0x01b6
00000185: JUMPI
00000186: DUP1
00000187: PUSH4 0x20ea8d86
0000018c: EQ
0000018d: PUSH2 0x034e
00000190: JUMPI
00000191: DUP1
00000192: PUSH4 0x2f54bf6e
00000197: EQ
00000198: PUSH2 0x036e
0000019b: JUMPI
0000019c: DUP1
0000019d: PUSH4 0x30adf81f
000001a2: EQ
000001a3: PUSH2 0x039e
000001a6: JUMPI
000001a7: DUP1
000001a8: PUSH4 0x3411c81c
000001ad: EQ
000001ae: PUSH2 0x03e0
000001b1: JUMPI
000001b2: PUSH2 0x022b
000001b5: JUMP
000001b6: JUMPDEST
000001b7: DUP1
000001b8: PUSH4 0x01ffc9a7
000001bd: EQ
000001be: PUSH2 0x0263
000001c1: JUMPI
000001c2: DUP1
000001c3: PUSH4 0x025e7c27
000001c8: EQ
000001c9: PUSH2 0x02b2
000001cc: JUMPI
000001cd: DUP1
000001ce: PUSH4 0x150b7a02
000001d3: EQ
000001d4: PUSH2 0x02ea
000001d7: JUMPI
000001d8: DUP1
000001d9: PUSH4 0x173825d9
000001de: EQ
000001df: PUSH2 0x032e
000001e2: JUMPI
000001e3: PUSH2 0x022b
000001e6: JUMP
000001e7: JUMPDEST
000001e8: CALLDATASIZE
000001e9: PUSH2 0x022b
000001ec: JUMPI
000001ed: CALLVALUE
000001ee: ISZERO
000001ef: PUSH2 0x0229
000001f2: JUMPI
000001f3: PUSH1 0x40
000001f5: MLOAD
000001f6: CALLVALUE
000001f7: DUP2
000001f8: MSTORE
000001f9: CALLER
000001fa: SWAP1
000001fb: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c
0000021c: SWAP1
0000021d: PUSH1 0x20
0000021f: ADD
00000220: JUMPDEST
00000221: PUSH1 0x40
00000223: MLOAD
00000224: DUP1
00000225: SWAP2
00000226: SUB
00000227: SWAP1
00000228: LOG2
00000229: JUMPDEST
0000022a: STOP
0000022b: JUMPDEST
0000022c: CALLVALUE
0000022d: ISZERO
0000022e: PUSH2 0x0229
00000231: JUMPI
00000232: PUSH1 0x40
00000234: MLOAD
00000235: CALLVALUE
00000236: DUP2
00000237: MSTORE
00000238: CALLER
00000239: SWAP1
0000023a: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c
0000025b: SWAP1
0000025c: PUSH1 0x20
0000025e: ADD
0000025f: PUSH2 0x0220
00000262: JUMP
00000263: JUMPDEST
00000264: CALLVALUE
00000265: DUP1
00000266: ISZERO
00000267: PUSH2 0x026f
0000026a: JUMPI
0000026b: PUSH1 0x00
0000026d: DUP1
0000026e: REVERT
0000026f: JUMPDEST
00000270: POP
00000271: PUSH2 0x029d
00000274: PUSH2 0x027e
00000277: CALLDATASIZE
00000278: PUSH1 0x04
0000027a: PUSH2 0x2792
0000027d: JUMP
0000027e: JUMPDEST
0000027f: PUSH1 0x01
00000281: PUSH1 0x01
00000283: PUSH1 0xe0
00000285: SHL
00000286: SUB
00000287: NOT
00000288: AND
00000289: PUSH1 0x00
0000028b: SWAP1
0000028c: DUP2
0000028d: MSTORE
0000028e: PUSH1 0x06
00000290: PUSH1 0x20
00000292: MSTORE
00000293: PUSH1 0x40
00000295: SWAP1
00000296: KECCAK256
00000297: SLOAD
00000298: PUSH1 0xff
0000029a: AND
0000029b: SWAP1
0000029c: JUMP
0000029d: JUMPDEST
0000029e: PUSH1 0x40
000002a0: MLOAD
000002a1: SWAP1
000002a2: ISZERO
000002a3: ISZERO
000002a4: DUP2
000002a5: MSTORE
000002a6: PUSH1 0x20
000002a8: ADD
000002a9: JUMPDEST
000002aa: PUSH1 0x40
000002ac: MLOAD
000002ad: DUP1
000002ae: SWAP2
000002af: SUB
000002b0: SWAP1
000002b1: RETURN
000002b2: JUMPDEST
000002b3: CALLVALUE
000002b4: DUP1
000002b5: ISZERO
000002b6: PUSH2 0x02be
000002b9: JUMPI
000002ba: PUSH1 0x00
000002bc: DUP1
000002bd: REVERT
000002be: JUMPDEST
000002bf: POP
000002c0: PUSH2 0x02d2
000002c3: PUSH2 0x02cd
000002c6: CALLDATASIZE
000002c7: PUSH1 0x04
000002c9: PUSH2 0x27c9
000002cc: JUMP
000002cd: JUMPDEST
000002ce: PUSH2 0x0709
000002d1: JUMP
000002d2: JUMPDEST
000002d3: PUSH1 0x40
000002d5: MLOAD
000002d6: PUSH1 0x01
000002d8: PUSH1 0x01
000002da: PUSH1 0xa0
000002dc: SHL
000002dd: SUB
000002de: SWAP1
000002df: SWAP2
000002e0: AND
000002e1: DUP2
000002e2: MSTORE
000002e3: PUSH1 0x20
000002e5: ADD
000002e6: PUSH2 0x02a9
000002e9: JUMP
000002ea: JUMPDEST
000002eb: CALLVALUE
000002ec: DUP1
000002ed: ISZERO
000002ee: PUSH2 0x02f6
000002f1: JUMPI
000002f2: PUSH1 0x00
000002f4: DUP1
000002f5: REVERT
000002f6: JUMPDEST
000002f7: POP
000002f8: PUSH2 0x0315
000002fb: PUSH2 0x0305
000002fe: CALLDATASIZE
000002ff: PUSH1 0x04
00000301: PUSH2 0x24ad
00000304: JUMP
00000305: JUMPDEST
00000306: PUSH4 0x0a85bd01
0000030b: PUSH1 0xe1
0000030d: SHL
0000030e: SWAP5
0000030f: SWAP4
00000310: POP
00000311: POP
00000312: POP
00000313: POP
00000314: JUMP
00000315: JUMPDEST
00000316: PUSH1 0x40
00000318: MLOAD
00000319: PUSH1 0x01
0000031b: PUSH1 0x01
0000031d: PUSH1 0xe0
0000031f: SHL
00000320: SUB
00000321: NOT
00000322: SWAP1
00000323: SWAP2
00000324: AND
00000325: DUP2
00000326: MSTORE
00000327: PUSH1 0x20
00000329: ADD
0000032a: PUSH2 0x02a9
0000032d: JUMP
0000032e: JUMPDEST
0000032f: CALLVALUE
00000330: DUP1
00000331: ISZERO
00000332: PUSH2 0x033a
00000335: JUMPI
00000336: PUSH1 0x00
00000338: DUP1
00000339: REVERT
0000033a: JUMPDEST
0000033b: POP
0000033c: PUSH2 0x0229
0000033f: PUSH2 0x0349
00000342: CALLDATASIZE
00000343: PUSH1 0x04
00000345: PUSH2 0x23a5
00000348: JUMP
00000349: JUMPDEST
0000034a: PUSH2 0x0733
0000034d: JUMP
0000034e: JUMPDEST
0000034f: CALLVALUE
00000350: DUP1
00000351: ISZERO
00000352: PUSH2 0x035a
00000355: JUMPI
00000356: PUSH1 0x00
00000358: DUP1
00000359: REVERT
0000035a: JUMPDEST
0000035b: POP
0000035c: PUSH2 0x0229
0000035f: PUSH2 0x0369
00000362: CALLDATASIZE
00000363: PUSH1 0x04
00000365: PUSH2 0x27c9
00000368: JUMP
00000369: JUMPDEST
0000036a: PUSH2 0x076b
0000036d: JUMP
0000036e: JUMPDEST
0000036f: CALLVALUE
00000370: DUP1
00000371: ISZERO
00000372: PUSH2 0x037a
00000375: JUMPI
00000376: PUSH1 0x00
00000378: DUP1
00000379: REVERT
0000037a: JUMPDEST
0000037b: POP
0000037c: PUSH2 0x029d
0000037f: PUSH2 0x0389
00000382: CALLDATASIZE
00000383: PUSH1 0x04
00000385: PUSH2 0x23a5
00000388: JUMP
00000389: JUMPDEST
0000038a: PUSH1 0x02
0000038c: PUSH1 0x20
0000038e: MSTORE
0000038f: PUSH1 0x00
00000391: SWAP1
00000392: DUP2
00000393: MSTORE
00000394: PUSH1 0x40
00000396: SWAP1
00000397: KECCAK256
00000398: SLOAD
00000399: PUSH1 0xff
0000039b: AND
0000039c: DUP2
0000039d: JUMP
0000039e: JUMPDEST
0000039f: CALLVALUE
000003a0: DUP1
000003a1: ISZERO
000003a2: PUSH2 0x03aa
000003a5: JUMPI
000003a6: PUSH1 0x00
000003a8: DUP1
000003a9: REVERT
000003aa: JUMPDEST
000003ab: POP
000003ac: PUSH2 0x03d2
000003af: PUSH32 0x8d14977a529be0cde9be2de41261d56c536e10c2bfb3f797a663ac4f3676d2fe
000003d0: DUP2
000003d1: JUMP
000003d2: JUMPDEST
000003d3: PUSH1 0x40
000003d5: MLOAD
000003d6: SWAP1
000003d7: DUP2
000003d8: MSTORE
000003d9: PUSH1 0x20
000003db: ADD
000003dc: PUSH2 0x02a9
000003df: JUMP
000003e0: JUMPDEST
000003e1: CALLVALUE
000003e2: DUP1
000003e3: ISZERO
000003e4: PUSH2 0x03ec
000003e7: JUMPI
000003e8: PUSH1 0x00
000003ea: DUP1
000003eb: REVERT
000003ec: JUMPDEST
000003ed: POP
000003ee: PUSH2 0x029d
000003f1: PUSH2 0x03fb
000003f4: CALLDATASIZE
000003f5: PUSH1 0x04
000003f7: PUSH2 0x27e2
000003fa: JUMP
000003fb: JUMPDEST
000003fc: PUSH1 0x01
000003fe: PUSH1 0x20
00000400: SWAP1
00000401: DUP2
00000402: MSTORE
00000403: PUSH1 0x00
00000405: SWAP3
00000406: DUP4
00000407: MSTORE
00000408: PUSH1 0x40
0000040a: DUP1
0000040b: DUP5
0000040c: KECCAK256
0000040d: SWAP1
0000040e: SWAP2
0000040f: MSTORE
00000410: SWAP1
00000411: DUP3
00000412: MSTORE
00000413: SWAP1
00000414: KECCAK256
00000415: SLOAD
00000416: PUSH1 0xff
00000418: AND
00000419: DUP2
0000041a: JUMP
0000041b: JUMPDEST
0000041c: CALLVALUE
0000041d: DUP1
0000041e: ISZERO
0000041f: PUSH2 0x0427
00000422: JUMPI
00000423: PUSH1 0x00
00000425: DUP1
00000426: REVERT
00000427: JUMPDEST
00000428: POP
00000429: PUSH2 0x03d2
0000042c: PUSH1 0x08
0000042e: SLOAD
0000042f: DUP2
00000430: JUMP
00000431: JUMPDEST
00000432: CALLVALUE
00000433: DUP1
00000434: ISZERO
00000435: PUSH2 0x043d
00000438: JUMPI
00000439: PUSH1 0x00
0000043b: DUP1
0000043c: REVERT
0000043d: JUMPDEST
0000043e: POP
0000043f: PUSH2 0x03d2
00000442: PUSH2 0x044c
00000445: CALLDATASIZE
00000446: PUSH1 0x04
00000448: PUSH2 0x2768
0000044b: JUMP
0000044c: JUMPDEST
0000044d: PUSH2 0x0821
00000450: JUMP
00000451: JUMPDEST
00000452: CALLVALUE
00000453: DUP1
00000454: ISZERO
00000455: PUSH2 0x045d
00000458: JUMPI
00000459: PUSH1 0x00
0000045b: DUP1
0000045c: REVERT
0000045d: JUMPDEST
0000045e: POP
0000045f: PUSH2 0x0229
00000462: PUSH2 0x046c
00000465: CALLDATASIZE
00000466: PUSH1 0x04
00000468: PUSH2 0x27ad
0000046b: JUMP
0000046c: JUMPDEST
0000046d: PUSH2 0x089e
00000470: JUMP
00000471: JUMPDEST
00000472: CALLVALUE
00000473: DUP1
00000474: ISZERO
00000475: PUSH2 0x047d
00000478: JUMPI
00000479: PUSH1 0x00
0000047b: DUP1
0000047c: REVERT
0000047d: JUMPDEST
0000047e: POP
0000047f: PUSH1 0x01
00000481: PUSH2 0x03d2
00000484: JUMP
00000485: JUMPDEST
00000486: CALLVALUE
00000487: DUP1
00000488: ISZERO
00000489: PUSH2 0x0491
0000048c: JUMPI
0000048d: PUSH1 0x00
0000048f: DUP1
00000490: REVERT
00000491: JUMPDEST
00000492: POP
00000493: PUSH2 0x0229
00000496: PUSH2 0x04a0
00000499: CALLDATASIZE
0000049a: PUSH1 0x04
0000049c: PUSH2 0x23a5
0000049f: JUMP
000004a0: JUMPDEST
000004a1: PUSH2 0x08d6
000004a4: JUMP
000004a5: JUMPDEST
000004a6: CALLVALUE
000004a7: DUP1
000004a8: ISZERO
000004a9: PUSH2 0x04b1
000004ac: JUMPI
000004ad: PUSH1 0x00
000004af: DUP1
000004b0: REVERT
000004b1: JUMPDEST
000004b2: POP
000004b3: PUSH2 0x029d
000004b6: PUSH2 0x04c0
000004b9: CALLDATASIZE
000004ba: PUSH1 0x04
000004bc: PUSH2 0x27c9
000004bf: JUMP
000004c0: JUMPDEST
000004c1: PUSH2 0x0902
000004c4: JUMP
000004c5: JUMPDEST
000004c6: CALLVALUE
000004c7: DUP1
000004c8: ISZERO
000004c9: PUSH2 0x04d1
000004cc: JUMPI
000004cd: PUSH1 0x00
000004cf: DUP1
000004d0: REVERT
000004d1: JUMPDEST
000004d2: POP
000004d3: PUSH2 0x0229
000004d6: PUSH2 0x04e0
000004d9: CALLDATASIZE
000004da: PUSH1 0x04
000004dc: PUSH2 0x26b1
000004df: JUMP
000004e0: JUMPDEST
000004e1: PUSH2 0x099f
000004e4: JUMP
000004e5: JUMPDEST
000004e6: CALLVALUE
000004e7: DUP1
000004e8: ISZERO
000004e9: PUSH2 0x04f1
000004ec: JUMPI
000004ed: PUSH1 0x00
000004ef: DUP1
000004f0: REVERT
000004f1: JUMPDEST
000004f2: POP
000004f3: PUSH2 0x03d2
000004f6: PUSH2 0x0500
000004f9: CALLDATASIZE
000004fa: PUSH1 0x04
000004fc: PUSH2 0x27c9
000004ff: JUMP
00000500: JUMPDEST
00000501: PUSH2 0x0af0
00000504: JUMP
00000505: JUMPDEST
00000506: CALLVALUE
00000507: DUP1
00000508: ISZERO
00000509: PUSH2 0x0511
0000050c: JUMPI
0000050d: PUSH1 0x00
0000050f: DUP1
00000510: REVERT
00000511: JUMPDEST
00000512: POP
00000513: PUSH2 0x0525
00000516: PUSH2 0x0520
00000519: CALLDATASIZE
0000051a: PUSH1 0x04
0000051c: PUSH2 0x27c9
0000051f: JUMP
00000520: JUMPDEST
00000521: PUSH2 0x0b76
00000524: JUMP
00000525: JUMPDEST
00000526: PUSH1 0x40
00000528: MLOAD
00000529: PUSH2 0x02a9
0000052c: SWAP5
0000052d: SWAP4
0000052e: SWAP3
0000052f: SWAP2
00000530: SWAP1
00000531: PUSH2 0x2867
00000534: JUMP
00000535: JUMPDEST
00000536: CALLVALUE
00000537: DUP1
00000538: ISZERO
00000539: PUSH2 0x0541
0000053c: JUMPI
0000053d: PUSH1 0x00
0000053f: DUP1
00000540: REVERT
00000541: JUMPDEST
00000542: POP
00000543: PUSH2 0x054a
00000546: PUSH2 0x0c34
00000549: JUMP
0000054a: JUMPDEST
0000054b: PUSH1 0x40
0000054d: MLOAD
0000054e: PUSH2 0x02a9
00000551: SWAP2
00000552: SWAP1
00000553: PUSH2 0x28b8
00000556: JUMP
00000557: JUMPDEST
00000558: CALLVALUE
00000559: DUP1
0000055a: ISZERO
0000055b: PUSH2 0x0563
0000055e: JUMPI
0000055f: PUSH1 0x00
00000561: DUP1
00000562: REVERT
00000563: JUMPDEST
00000564: POP
00000565: PUSH2 0x03d2
00000568: PUSH2 0x0572
0000056b: CALLDATASIZE
0000056c: PUSH1 0x04
0000056e: PUSH2 0x25e1
00000571: JUMP
00000572: JUMPDEST
00000573: PUSH2 0x0c96
00000576: JUMP
00000577: JUMPDEST
00000578: CALLVALUE
00000579: DUP1
0000057a: ISZERO
0000057b: PUSH2 0x0583
0000057e: JUMPI
0000057f: PUSH1 0x00
00000581: DUP1
00000582: REVERT
00000583: JUMPDEST
00000584: POP
00000585: PUSH2 0x0597
00000588: PUSH2 0x0592
0000058b: CALLDATASIZE
0000058c: PUSH1 0x04
0000058e: PUSH2 0x2805
00000591: JUMP
00000592: JUMPDEST
00000593: PUSH2 0x10e6
00000596: JUMP
00000597: JUMPDEST
00000598: PUSH1 0x40
0000059a: MLOAD
0000059b: PUSH2 0x02a9
0000059e: SWAP2
0000059f: SWAP1
000005a0: PUSH2 0x2936
000005a3: JUMP
000005a4: JUMPDEST
000005a5: CALLVALUE
000005a6: DUP1
000005a7: ISZERO
000005a8: PUSH2 0x05b0
000005ab: JUMPI
000005ac: PUSH1 0x00
000005ae: DUP1
000005af: REVERT
000005b0: JUMPDEST
000005b1: POP
000005b2: PUSH2 0x05b9
000005b5: PUSH2 0x127c
000005b8: JUMP
000005b9: JUMPDEST
000005ba: PUSH1 0x40
000005bc: MLOAD
000005bd: PUSH2 0x02a9
000005c0: SWAP2
000005c1: SWAP1
000005c2: PUSH2 0x2905
000005c5: JUMP
000005c6: JUMPDEST
000005c7: CALLVALUE
000005c8: DUP1
000005c9: ISZERO
000005ca: PUSH2 0x05d2
000005cd: JUMPI
000005ce: PUSH1 0x00
000005d0: DUP1
000005d1: REVERT
000005d2: JUMPDEST
000005d3: POP
000005d4: PUSH2 0x054a
000005d7: PUSH2 0x05e1
000005da: CALLDATASIZE
000005db: PUSH1 0x04
000005dd: PUSH2 0x27c9
000005e0: JUMP
000005e1: JUMPDEST
000005e2: PUSH2 0x12a9
000005e5: JUMP
000005e6: JUMPDEST
000005e7: CALLVALUE
000005e8: DUP1
000005e9: ISZERO
000005ea: PUSH2 0x05f2
000005ed: JUMPI
000005ee: PUSH1 0x00
000005f0: DUP1
000005f1: REVERT
000005f2: JUMPDEST
000005f3: POP
000005f4: PUSH2 0x03d2
000005f7: PUSH1 0x05
000005f9: SLOAD
000005fa: DUP2
000005fb: JUMP
000005fc: JUMPDEST
000005fd: CALLVALUE
000005fe: DUP1
000005ff: ISZERO
00000600: PUSH2 0x0608
00000603: JUMPI
00000604: PUSH1 0x00
00000606: DUP1
00000607: REVERT
00000608: JUMPDEST
00000609: POP
0000060a: PUSH2 0x0229
0000060d: PUSH2 0x0617
00000610: CALLDATASIZE
00000611: PUSH1 0x04
00000613: PUSH2 0x27c9
00000616: JUMP
00000617: JUMPDEST
00000618: PUSH2 0x147f
0000061b: JUMP
0000061c: JUMPDEST
0000061d: CALLVALUE
0000061e: DUP1
0000061f: ISZERO
00000620: PUSH2 0x0628
00000623: JUMPI
00000624: PUSH1 0x00
00000626: DUP1
00000627: REVERT
00000628: JUMPDEST
00000629: POP
0000062a: PUSH2 0x0315
0000062d: PUSH2 0x0637
00000630: CALLDATASIZE
00000631: PUSH1 0x04
00000633: PUSH2 0x23f3
00000636: JUMP
00000637: JUMPDEST
00000638: PUSH4 0xbc197c81
0000063d: PUSH1 0xe0
0000063f: SHL
00000640: SWAP9
00000641: SWAP8
00000642: POP
00000643: POP
00000644: POP
00000645: POP
00000646: POP
00000647: POP
00000648: POP
00000649: POP
0000064a: JUMP
0000064b: JUMPDEST
0000064c: PUSH2 0x0229
0000064f: PUSH2 0x0659
00000652: CALLDATASIZE
00000653: PUSH1 0x04
00000655: PUSH2 0x27c9
00000658: JUMP
00000659: JUMPDEST
0000065a: PUSH2 0x14ab
0000065d: JUMP
0000065e: JUMPDEST
0000065f: CALLVALUE
00000660: DUP1
00000661: ISZERO
00000662: PUSH2 0x066a
00000665: JUMPI
00000666: PUSH1 0x00
00000668: DUP1
00000669: REVERT
0000066a: JUMPDEST
0000066b: POP
0000066c: PUSH2 0x03d2
0000066f: PUSH2 0x0679
00000672: CALLDATASIZE
00000673: PUSH1 0x04
00000675: PUSH2 0x258b
00000678: JUMP
00000679: JUMPDEST
0000067a: PUSH2 0x1572
0000067d: JUMP
0000067e: JUMPDEST
0000067f: CALLVALUE
00000680: DUP1
00000681: ISZERO
00000682: PUSH2 0x068a
00000685: JUMPI
00000686: PUSH1 0x00
00000688: DUP1
00000689: REVERT
0000068a: JUMPDEST
0000068b: POP
0000068c: PUSH2 0x03d2
0000068f: PUSH1 0x32
00000691: DUP2
00000692: JUMP
00000693: JUMPDEST
00000694: CALLVALUE
00000695: DUP1
00000696: ISZERO
00000697: PUSH2 0x069f
0000069a: JUMPI
0000069b: PUSH1 0x00
0000069d: DUP1
0000069e: REVERT
0000069f: JUMPDEST
000006a0: POP
000006a1: PUSH2 0x03d2
000006a4: PUSH1 0x04
000006a6: SLOAD
000006a7: DUP2
000006a8: JUMP
000006a9: JUMPDEST
000006aa: CALLVALUE
000006ab: DUP1
000006ac: ISZERO
000006ad: PUSH2 0x06b5
000006b0: JUMPI
000006b1: PUSH1 0x00
000006b3: DUP1
000006b4: REVERT
000006b5: JUMPDEST
000006b6: POP
000006b7: PUSH2 0x0229
000006ba: PUSH2 0x06c4
000006bd: CALLDATASIZE
000006be: PUSH1 0x04
000006c0: PUSH2 0x23c0
000006c3: JUMP
000006c4: JUMPDEST
000006c5: PUSH2 0x1591
000006c8: JUMP
000006c9: JUMPDEST
000006ca: PUSH2 0x0229
000006cd: PUSH2 0x06d7
000006d0: CALLDATASIZE
000006d1: PUSH1 0x04
000006d3: PUSH2 0x27c9
000006d6: JUMP
000006d7: JUMPDEST
000006d8: PUSH2 0x15c2
000006db: JUMP
000006dc: JUMPDEST
000006dd: CALLVALUE
000006de: DUP1
000006df: ISZERO
000006e0: PUSH2 0x06e8
000006e3: JUMPI
000006e4: PUSH1 0x00
000006e6: DUP1
000006e7: REVERT
000006e8: JUMPDEST
000006e9: POP
000006ea: PUSH2 0x0315
000006ed: PUSH2 0x06f7
000006f0: CALLDATASIZE
000006f1: PUSH1 0x04
000006f3: PUSH2 0x2514
000006f6: JUMP
000006f7: JUMPDEST
000006f8: PUSH4 0xf23a6e61
000006fd: PUSH1 0xe0
000006ff: SHL
00000700: SWAP7
00000701: SWAP6
00000702: POP
00000703: POP
00000704: POP
00000705: POP
00000706: POP
00000707: POP
00000708: JUMP
00000709: JUMPDEST
0000070a: PUSH1 0x03
0000070c: DUP2
0000070d: DUP2
0000070e: SLOAD
0000070f: DUP2
00000710: LT
00000711: PUSH2 0x0719
00000714: JUMPI
00000715: PUSH1 0x00
00000717: DUP1
00000718: REVERT
00000719: JUMPDEST
0000071a: PUSH1 0x00
0000071c: SWAP2
0000071d: DUP3
0000071e: MSTORE
0000071f: PUSH1 0x20
00000721: SWAP1
00000722: SWAP2
00000723: KECCAK256
00000724: ADD
00000725: SLOAD
00000726: PUSH1 0x01
00000728: PUSH1 0x01
0000072a: PUSH1 0xa0
0000072c: SHL
0000072d: SUB
0000072e: AND
0000072f: SWAP1
00000730: POP
00000731: DUP2
00000732: JUMP
00000733: JUMPDEST
00000734: PUSH1 0x07
00000736: SLOAD
00000737: PUSH1 0xff
00000739: AND
0000073a: ISZERO
0000073b: PUSH2 0x075f
0000073e: JUMPI
0000073f: PUSH1 0x40
00000741: MLOAD
00000742: PUSH3 0x461bcd
00000746: PUSH1 0xe5
00000748: SHL
00000749: DUP2
0000074a: MSTORE
0000074b: PUSH1 0x04
0000074d: ADD
0000074e: PUSH2 0x0756
00000751: SWAP1
00000752: PUSH2 0x296e
00000755: JUMP
00000756: JUMPDEST
00000757: PUSH1 0x40
00000759: MLOAD
0000075a: DUP1
0000075b: SWAP2
0000075c: SUB
0000075d: SWAP1
0000075e: REVERT
0000075f: JUMPDEST
00000760: PUSH2 0x0768
00000763: DUP2
00000764: PUSH2 0x1785
00000767: JUMP
00000768: JUMPDEST
00000769: POP
0000076a: JUMP
0000076b: JUMPDEST
0000076c: CALLER
0000076d: PUSH1 0x00
0000076f: DUP2
00000770: DUP2
00000771: MSTORE
00000772: PUSH1 0x02
00000774: PUSH1 0x20
00000776: MSTORE
00000777: PUSH1 0x40
00000779: SWAP1
0000077a: KECCAK256
0000077b: SLOAD
0000077c: PUSH1 0xff
0000077e: AND
0000077f: PUSH2 0x0787
00000782: JUMPI
00000783: PUSH1 0x00
00000785: DUP1
00000786: REVERT
00000787: JUMPDEST
00000788: PUSH1 0x00
0000078a: DUP3
0000078b: DUP2
0000078c: MSTORE
0000078d: PUSH1 0x01
0000078f: PUSH1 0x20
00000791: SWAP1
00000792: DUP2
00000793: MSTORE
00000794: PUSH1 0x40
00000796: DUP1
00000797: DUP4
00000798: KECCAK256
00000799: CALLER
0000079a: DUP1
0000079b: DUP6
0000079c: MSTORE
0000079d: SWAP3
0000079e: MSTORE
0000079f: SWAP1
000007a0: SWAP2
000007a1: KECCAK256
000007a2: SLOAD
000007a3: DUP4
000007a4: SWAP2
000007a5: SWAP1
000007a6: PUSH1 0xff
000007a8: AND
000007a9: PUSH2 0x07b1
000007ac: JUMPI
000007ad: PUSH1 0x00
000007af: DUP1
000007b0: REVERT
000007b1: JUMPDEST
000007b2: PUSH1 0x00
000007b4: DUP5
000007b5: DUP2
000007b6: MSTORE
000007b7: PUSH1 0x20
000007b9: DUP2
000007ba: SWAP1
000007bb: MSTORE
000007bc: PUSH1 0x40
000007be: SWAP1
000007bf: KECCAK256
000007c0: PUSH1 0x03
000007c2: ADD
000007c3: SLOAD
000007c4: DUP5
000007c5: SWAP1
000007c6: PUSH1 0xff
000007c8: AND
000007c9: ISZERO
000007ca: PUSH2 0x07d2
000007cd: JUMPI
000007ce: PUSH1 0x00
000007d0: DUP1
000007d1: REVERT
000007d2: JUMPDEST
000007d3: PUSH1 0x00
000007d5: DUP6
000007d6: DUP2
000007d7: MSTORE
000007d8: PUSH1 0x01
000007da: PUSH1 0x20
000007dc: SWAP1
000007dd: DUP2
000007de: MSTORE
000007df: PUSH1 0x40
000007e1: DUP1
000007e2: DUP4
000007e3: KECCAK256
000007e4: CALLER
000007e5: DUP1
000007e6: DUP6
000007e7: MSTORE
000007e8: SWAP3
000007e9: MSTORE
000007ea: DUP1
000007eb: DUP4
000007ec: KECCAK256
000007ed: DUP1
000007ee: SLOAD
000007ef: PUSH1 0xff
000007f1: NOT
000007f2: AND
000007f3: SWAP1
000007f4: SSTORE
000007f5: MLOAD
000007f6: DUP8
000007f7: SWAP3
000007f8: PUSH32 0xf6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e9
00000819: SWAP2
0000081a: LOG3
0000081b: POP
0000081c: POP
0000081d: POP
0000081e: POP
0000081f: POP
00000820: JUMP
00000821: JUMPDEST
00000822: PUSH1 0x00
00000824: DUP1
00000825: JUMPDEST
00000826: PUSH1 0x05
00000828: SLOAD
00000829: DUP2
0000082a: LT
0000082b: ISZERO
0000082c: PUSH2 0x0897
0000082f: JUMPI
00000830: DUP4
00000831: DUP1
00000832: ISZERO
00000833: PUSH2 0x084e
00000836: JUMPI
00000837: POP
00000838: PUSH1 0x00
0000083a: DUP2
0000083b: DUP2
0000083c: MSTORE
0000083d: PUSH1 0x20
0000083f: DUP2
00000840: SWAP1
00000841: MSTORE
00000842: PUSH1 0x40
00000844: SWAP1
00000845: KECCAK256
00000846: PUSH1 0x03
00000848: ADD
00000849: SLOAD
0000084a: PUSH1 0xff
0000084c: AND
0000084d: ISZERO
0000084e: JUMPDEST
0000084f: DUP1
00000850: PUSH2 0x0872
00000853: JUMPI
00000854: POP
00000855: DUP3
00000856: DUP1
00000857: ISZERO
00000858: PUSH2 0x0872
0000085b: JUMPI
0000085c: POP
0000085d: PUSH1 0x00
0000085f: DUP2
00000860: DUP2
00000861: MSTORE
00000862: PUSH1 0x20
00000864: DUP2
00000865: SWAP1
00000866: MSTORE
00000867: PUSH1 0x40
00000869: SWAP1
0000086a: KECCAK256
0000086b: PUSH1 0x03
0000086d: ADD
0000086e: SLOAD
0000086f: PUSH1 0xff
00000871: AND
00000872: JUMPDEST
00000873: ISZERO
00000874: PUSH2 0x0885
00000877: JUMPI
00000878: PUSH2 0x0882
0000087b: PUSH1 0x01
0000087d: DUP4
0000087e: PUSH2 0x29df
00000881: JUMP
00000882: JUMPDEST
00000883: SWAP2
00000884: POP
00000885: JUMPDEST
00000886: DUP1
00000887: PUSH2 0x088f
0000088a: DUP2
0000088b: PUSH2 0x2a73
0000088e: JUMP
0000088f: JUMPDEST
00000890: SWAP2
00000891: POP
00000892: POP
00000893: PUSH2 0x0825
00000896: JUMP
00000897: JUMPDEST
00000898: POP
00000899: SWAP3
0000089a: SWAP2
0000089b: POP
0000089c: POP
0000089d: JUMP
0000089e: JUMPDEST
0000089f: CALLER
000008a0: ADDRESS
000008a1: EQ
000008a2: PUSH2 0x08aa
000008a5: JUMPI
000008a6: PUSH1 0x00
000008a8: DUP1
000008a9: REVERT
000008aa: JUMPDEST
000008ab: PUSH1 0x01
000008ad: PUSH1 0x01
000008af: PUSH1 0xe0
000008b1: SHL
000008b2: SUB
000008b3: NOT
000008b4: SWAP2
000008b5: SWAP1
000008b6: SWAP2
000008b7: AND
000008b8: PUSH1 0x00
000008ba: SWAP1
000008bb: DUP2
000008bc: MSTORE
000008bd: PUSH1 0x06
000008bf: PUSH1 0x20
000008c1: MSTORE
000008c2: PUSH1 0x40
000008c4: SWAP1
000008c5: KECCAK256
000008c6: DUP1
000008c7: SLOAD
000008c8: PUSH1 0xff
000008ca: NOT
000008cb: AND
000008cc: SWAP2
000008cd: ISZERO
000008ce: ISZERO
000008cf: SWAP2
000008d0: SWAP1
000008d1: SWAP2
000008d2: OR
000008d3: SWAP1
000008d4: SSTORE
000008d5: JUMP
000008d6: JUMPDEST
000008d7: PUSH1 0x07
000008d9: SLOAD
000008da: PUSH1 0xff
000008dc: AND
000008dd: ISZERO
000008de: PUSH2 0x08f9
000008e1: JUMPI
000008e2: PUSH1 0x40
000008e4: MLOAD
000008e5: PUSH3 0x461bcd
000008e9: PUSH1 0xe5
000008eb: SHL
000008ec: DUP2
000008ed: MSTORE
000008ee: PUSH1 0x04
000008f0: ADD
000008f1: PUSH2 0x0756
000008f4: SWAP1
000008f5: PUSH2 0x296e
000008f8: JUMP
000008f9: JUMPDEST
000008fa: PUSH2 0x0768
000008fd: DUP2
000008fe: PUSH2 0x1982
00000901: JUMP
00000902: JUMPDEST
00000903: PUSH1 0x00
00000905: DUP1
00000906: PUSH1 0x00
00000908: JUMPDEST
00000909: PUSH1 0x03
0000090b: SLOAD
0000090c: DUP2
0000090d: LT
0000090e: ISZERO
0000090f: PUSH2 0x0998
00000912: JUMPI
00000913: PUSH1 0x00
00000915: DUP5
00000916: DUP2
00000917: MSTORE
00000918: PUSH1 0x01
0000091a: PUSH1 0x20
0000091c: MSTORE
0000091d: PUSH1 0x40
0000091f: DUP2
00000920: KECCAK256
00000921: PUSH1 0x03
00000923: DUP1
00000924: SLOAD
00000925: SWAP2
00000926: SWAP3
00000927: SWAP2
00000928: DUP5
00000929: SWAP1
0000092a: DUP2
0000092b: LT
0000092c: PUSH2 0x0937
0000092f: JUMPI
00000930: PUSH2 0x0937
00000933: PUSH2 0x2ada
00000936: JUMP
00000937: JUMPDEST
00000938: PUSH1 0x00
0000093a: SWAP2
0000093b: DUP3
0000093c: MSTORE
0000093d: PUSH1 0x20
0000093f: DUP1
00000940: DUP4
00000941: KECCAK256
00000942: SWAP1
00000943: SWAP2
00000944: ADD
00000945: SLOAD
00000946: PUSH1 0x01
00000948: PUSH1 0x01
0000094a: PUSH1 0xa0
0000094c: SHL
0000094d: SUB
0000094e: AND
0000094f: DUP4
00000950: MSTORE
00000951: DUP3
00000952: ADD
00000953: SWAP3
00000954: SWAP1
00000955: SWAP3
00000956: MSTORE
00000957: PUSH1 0x40
00000959: ADD
0000095a: SWAP1
0000095b: KECCAK256
0000095c: SLOAD
0000095d: PUSH1 0xff
0000095f: AND
00000960: ISZERO
00000961: PUSH2 0x0972
00000964: JUMPI
00000965: PUSH2 0x096f
00000968: PUSH1 0x01
0000096a: DUP4
0000096b: PUSH2 0x29df
0000096e: JUMP
0000096f: JUMPDEST
00000970: SWAP2
00000971: POP
00000972: JUMPDEST
00000973: PUSH1 0x04
00000975: SLOAD
00000976: DUP3
00000977: EQ
00000978: ISZERO
00000979: PUSH2 0x0986
0000097c: JUMPI
0000097d: POP
0000097e: PUSH1 0x01
00000980: SWAP4
00000981: SWAP3
00000982: POP
00000983: POP
00000984: POP
00000985: JUMP
00000986: JUMPDEST
00000987: DUP1
00000988: PUSH2 0x0990
0000098b: DUP2
0000098c: PUSH2 0x2a73
0000098f: JUMP
00000990: JUMPDEST
00000991: SWAP2
00000992: POP
00000993: POP
00000994: PUSH2 0x0908
00000997: JUMP
00000998: JUMPDEST
00000999: POP
0000099a: POP
0000099b: SWAP2
0000099c: SWAP1
0000099d: POP
0000099e: JUMP
0000099f: JUMPDEST
000009a0: PUSH1 0x07
000009a2: SLOAD
000009a3: PUSH2 0x0100
000009a6: SWAP1
000009a7: DIV
000009a8: PUSH1 0xff
000009aa: AND
000009ab: ISZERO
000009ac: PUSH2 0x09e0
000009af: JUMPI
000009b0: PUSH1 0x40
000009b2: MLOAD
000009b3: PUSH3 0x461bcd
000009b7: PUSH1 0xe5
000009b9: SHL
000009ba: DUP2
000009bb: MSTORE
000009bc: PUSH1 0x04
000009be: ADD
000009bf: PUSH2 0x0756
000009c2: SWAP1
000009c3: PUSH1 0x20
000009c5: DUP1
000009c6: DUP3
000009c7: MSTORE
000009c8: PUSH1 0x04
000009ca: SWAP1
000009cb: DUP3
000009cc: ADD
000009cd: MSTORE
000009ce: PUSH4 0x26a99819
000009d3: PUSH1 0xe1
000009d5: SHL
000009d6: PUSH1 0x40
000009d8: DUP3
000009d9: ADD
000009da: MSTORE
000009db: PUSH1 0x60
000009dd: ADD
000009de: SWAP1
000009df: JUMP
000009e0: JUMPDEST
000009e1: PUSH1 0x07
000009e3: DUP1
000009e4: SLOAD
000009e5: PUSH2 0xff00
000009e8: NOT
000009e9: AND
000009ea: PUSH2 0x0100
000009ed: OR
000009ee: SWAP1
000009ef: SSTORE
000009f0: PUSH2 0x09f9
000009f3: DUP4
000009f4: DUP4
000009f5: PUSH2 0x1a9b
000009f8: JUMP
000009f9: JUMPDEST
000009fa: PUSH2 0x0aeb
000009fd: DUP2
000009fe: PUSH1 0x07
00000a00: DUP1
00000a01: SLOAD
00000a02: SWAP2
00000a03: ISZERO
00000a04: ISZERO
00000a05: PUSH1 0xff
00000a07: NOT
00000a08: SWAP3
00000a09: DUP4
00000a0a: AND
00000a0b: OR
00000a0c: SWAP1
00000a0d: SSTORE
00000a0e: PUSH4 0x01ffc9a7
00000a13: PUSH1 0xe0
00000a15: SHL
00000a16: PUSH1 0x00
00000a18: MSTORE
00000a19: PUSH1 0x06
00000a1b: PUSH1 0x20
00000a1d: SWAP1
00000a1e: DUP2
00000a1f: MSTORE
00000a20: PUSH32 0x477a984de5936bcb02475f64e0ea676103106ac0785c67bf7e9e846450b51ef6
00000a41: DUP1
00000a42: SLOAD
00000a43: SWAP1
00000a44: SWAP3
00000a45: AND
00000a46: PUSH1 0x01
00000a48: OR
00000a49: SWAP1
00000a4a: SWAP2
00000a4b: SSTORE
00000a4c: PUSH1 0x40
00000a4e: DUP1
00000a4f: MLOAD
00000a50: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
00000a71: DUP2
00000a72: DUP5
00000a73: ADD
00000a74: MSTORE
00000a75: PUSH32 0x911a814036e00323c4ca54d47b0a363338990ca044824eba7a28205763e6115a
00000a96: DUP2
00000a97: DUP4
00000a98: ADD
00000a99: MSTORE
00000a9a: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6
00000abb: PUSH1 0x60
00000abd: DUP3
00000abe: ADD
00000abf: MSTORE
00000ac0: CHAINID
00000ac1: PUSH1 0x80
00000ac3: DUP3
00000ac4: ADD
00000ac5: MSTORE
00000ac6: ADDRESS
00000ac7: PUSH1 0xa0
00000ac9: DUP1
00000aca: DUP4
00000acb: ADD
00000acc: SWAP2
00000acd: SWAP1
00000ace: SWAP2
00000acf: MSTORE
00000ad0: DUP3
00000ad1: MLOAD
00000ad2: DUP1
00000ad3: DUP4
00000ad4: SUB
00000ad5: SWAP1
00000ad6: SWAP2
00000ad7: ADD
00000ad8: DUP2
00000ad9: MSTORE
00000ada: PUSH1 0xc0
00000adc: SWAP1
00000add: SWAP2
00000ade: ADD
00000adf: SWAP1
00000ae0: SWAP2
00000ae1: MSTORE
00000ae2: DUP1
00000ae3: MLOAD
00000ae4: SWAP2
00000ae5: ADD
00000ae6: KECCAK256
00000ae7: PUSH1 0x08
00000ae9: SSTORE
00000aea: JUMP
00000aeb: JUMPDEST
00000aec: POP
00000aed: POP
00000aee: POP
00000aef: JUMP
00000af0: JUMPDEST
00000af1: PUSH1 0x00
00000af3: DUP1
00000af4: JUMPDEST
00000af5: PUSH1 0x03
00000af7: SLOAD
00000af8: DUP2
00000af9: LT
00000afa: ISZERO
00000afb: PUSH2 0x0b70
00000afe: JUMPI
00000aff: PUSH1 0x00
00000b01: DUP4
00000b02: DUP2
00000b03: MSTORE
00000b04: PUSH1 0x01
00000b06: PUSH1 0x20
00000b08: MSTORE
00000b09: PUSH1 0x40
00000b0b: DUP2
00000b0c: KECCAK256
00000b0d: PUSH1 0x03
00000b0f: DUP1
00000b10: SLOAD
00000b11: SWAP2
00000b12: SWAP3
00000b13: SWAP2
00000b14: DUP5
00000b15: SWAP1
00000b16: DUP2
00000b17: LT
00000b18: PUSH2 0x0b23
00000b1b: JUMPI
00000b1c: PUSH2 0x0b23
00000b1f: PUSH2 0x2ada
00000b22: JUMP
00000b23: JUMPDEST
00000b24: PUSH1 0x00
00000b26: SWAP2
00000b27: DUP3
00000b28: MSTORE
00000b29: PUSH1 0x20
00000b2b: DUP1
00000b2c: DUP4
00000b2d: KECCAK256
00000b2e: SWAP1
00000b2f: SWAP2
00000b30: ADD
00000b31: SLOAD
00000b32: PUSH1 0x01
00000b34: PUSH1 0x01
00000b36: PUSH1 0xa0
00000b38: SHL
00000b39: SUB
00000b3a: AND
00000b3b: DUP4
00000b3c: MSTORE
00000b3d: DUP3
00000b3e: ADD
00000b3f: SWAP3
00000b40: SWAP1
00000b41: SWAP3
00000b42: MSTORE
00000b43: PUSH1 0x40
00000b45: ADD
00000b46: SWAP1
00000b47: KECCAK256
00000b48: SLOAD
00000b49: PUSH1 0xff
00000b4b: AND
00000b4c: ISZERO
00000b4d: PUSH2 0x0b5e
00000b50: JUMPI
00000b51: PUSH2 0x0b5b
00000b54: PUSH1 0x01
00000b56: DUP4
00000b57: PUSH2 0x29df
00000b5a: JUMP
00000b5b: JUMPDEST
00000b5c: SWAP2
00000b5d: POP
00000b5e: JUMPDEST
00000b5f: DUP1
00000b60: PUSH2 0x0b68
00000b63: DUP2
00000b64: PUSH2 0x2a73
00000b67: JUMP
00000b68: JUMPDEST
00000b69: SWAP2
00000b6a: POP
00000b6b: POP
00000b6c: PUSH2 0x0af4
00000b6f: JUMP
00000b70: JUMPDEST
00000b71: POP
00000b72: SWAP2
00000b73: SWAP1
00000b74: POP
00000b75: JUMP
00000b76: JUMPDEST
00000b77: PUSH1 0x00
00000b79: PUSH1 0x20
00000b7b: DUP2
00000b7c: SWAP1
00000b7d: MSTORE
00000b7e: SWAP1
00000b7f: DUP2
00000b80: MSTORE
00000b81: PUSH1 0x40
00000b83: SWAP1
00000b84: KECCAK256
00000b85: DUP1
00000b86: SLOAD
00000b87: PUSH1 0x01
00000b89: DUP3
00000b8a: ADD
00000b8b: SLOAD
00000b8c: PUSH1 0x02
00000b8e: DUP4
00000b8f: ADD
00000b90: DUP1
00000b91: SLOAD
00000b92: PUSH1 0x01
00000b94: PUSH1 0x01
00000b96: PUSH1 0xa0
00000b98: SHL
00000b99: SUB
00000b9a: SWAP1
00000b9b: SWAP4
00000b9c: AND
00000b9d: SWAP4
00000b9e: SWAP2
00000b9f: SWAP3
00000ba0: PUSH2 0x0ba8
00000ba3: SWAP1
00000ba4: PUSH2 0x2a3e
00000ba7: JUMP
00000ba8: JUMPDEST
00000ba9: DUP1
00000baa: PUSH1 0x1f
00000bac: ADD
00000bad: PUSH1 0x20
00000baf: DUP1
00000bb0: SWAP2
00000bb1: DIV
00000bb2: MUL
00000bb3: PUSH1 0x20
00000bb5: ADD
00000bb6: PUSH1 0x40
00000bb8: MLOAD
00000bb9: SWAP1
00000bba: DUP2
00000bbb: ADD
00000bbc: PUSH1 0x40
00000bbe: MSTORE
00000bbf: DUP1
00000bc0: SWAP3
00000bc1: SWAP2
00000bc2: SWAP1
00000bc3: DUP2
00000bc4: DUP2
00000bc5: MSTORE
00000bc6: PUSH1 0x20
00000bc8: ADD
00000bc9: DUP3
00000bca: DUP1
00000bcb: SLOAD
00000bcc: PUSH2 0x0bd4
00000bcf: SWAP1
00000bd0: PUSH2 0x2a3e
00000bd3: JUMP
00000bd4: JUMPDEST
00000bd5: DUP1
00000bd6: ISZERO
00000bd7: PUSH2 0x0c21
00000bda: JUMPI
00000bdb: DUP1
00000bdc: PUSH1 0x1f
00000bde: LT
00000bdf: PUSH2 0x0bf6
00000be2: JUMPI
00000be3: PUSH2 0x0100
00000be6: DUP1
00000be7: DUP4
00000be8: SLOAD
00000be9: DIV
00000bea: MUL
00000beb: DUP4
00000bec: MSTORE
00000bed: SWAP2
00000bee: PUSH1 0x20
00000bf0: ADD
00000bf1: SWAP2
00000bf2: PUSH2 0x0c21
00000bf5: JUMP
00000bf6: JUMPDEST
00000bf7: DUP3
00000bf8: ADD
00000bf9: SWAP2
00000bfa: SWAP1
00000bfb: PUSH1 0x00
00000bfd: MSTORE
00000bfe: PUSH1 0x20
00000c00: PUSH1 0x00
00000c02: KECCAK256
00000c03: SWAP1
00000c04: JUMPDEST
00000c05: DUP2
00000c06: SLOAD
00000c07: DUP2
00000c08: MSTORE
00000c09: SWAP1
00000c0a: PUSH1 0x01
00000c0c: ADD
00000c0d: SWAP1
00000c0e: PUSH1 0x20
00000c10: ADD
00000c11: DUP1
00000c12: DUP4
00000c13: GT
00000c14: PUSH2 0x0c04
00000c17: JUMPI
00000c18: DUP3
00000c19: SWAP1
00000c1a: SUB
00000c1b: PUSH1 0x1f
00000c1d: AND
00000c1e: DUP3
00000c1f: ADD
00000c20: SWAP2
00000c21: JUMPDEST
00000c22: POP
00000c23: POP
00000c24: POP
00000c25: PUSH1 0x03
00000c27: SWAP1
00000c28: SWAP4
00000c29: ADD
00000c2a: SLOAD
00000c2b: SWAP2
00000c2c: SWAP3
00000c2d: POP
00000c2e: POP
00000c2f: PUSH1 0xff
00000c31: AND
00000c32: DUP5
00000c33: JUMP
00000c34: JUMPDEST
00000c35: PUSH1 0x60
00000c37: PUSH1 0x03
00000c39: DUP1
00000c3a: SLOAD
00000c3b: DUP1
00000c3c: PUSH1 0x20
00000c3e: MUL
00000c3f: PUSH1 0x20
00000c41: ADD
00000c42: PUSH1 0x40
00000c44: MLOAD
00000c45: SWAP1
00000c46: DUP2
00000c47: ADD
00000c48: PUSH1 0x40
00000c4a: MSTORE
00000c4b: DUP1
00000c4c: SWAP3
00000c4d: SWAP2
00000c4e: SWAP1
00000c4f: DUP2
00000c50: DUP2
00000c51: MSTORE
00000c52: PUSH1 0x20
00000c54: ADD
00000c55: DUP3
00000c56: DUP1
00000c57: SLOAD
00000c58: DUP1
00000c59: ISZERO
00000c5a: PUSH2 0x0c8c
00000c5d: JUMPI
00000c5e: PUSH1 0x20
00000c60: MUL
00000c61: DUP3
00000c62: ADD
00000c63: SWAP2
00000c64: SWAP1
00000c65: PUSH1 0x00
00000c67: MSTORE
00000c68: PUSH1 0x20
00000c6a: PUSH1 0x00
00000c6c: KECCAK256
00000c6d: SWAP1
00000c6e: JUMPDEST
00000c6f: DUP2
00000c70: SLOAD
00000c71: PUSH1 0x01
00000c73: PUSH1 0x01
00000c75: PUSH1 0xa0
00000c77: SHL
00000c78: SUB
00000c79: AND
00000c7a: DUP2
00000c7b: MSTORE
00000c7c: PUSH1 0x01
00000c7e: SWAP1
00000c7f: SWAP2
00000c80: ADD
00000c81: SWAP1
00000c82: PUSH1 0x20
00000c84: ADD
00000c85: DUP1
00000c86: DUP4
00000c87: GT
00000c88: PUSH2 0x0c6e
00000c8b: JUMPI
00000c8c: JUMPDEST
00000c8d: POP
00000c8e: POP
00000c8f: POP
00000c90: POP
00000c91: POP
00000c92: SWAP1
00000c93: POP
00000c94: SWAP1
00000c95: JUMP
00000c96: JUMPDEST
00000c97: CALLER
00000c98: PUSH1 0x00
00000c9a: SWAP1
00000c9b: DUP2
00000c9c: MSTORE
00000c9d: PUSH1 0x02
00000c9f: PUSH1 0x20
00000ca1: MSTORE
00000ca2: PUSH1 0x40
00000ca4: DUP2
00000ca5: KECCAK256
00000ca6: SLOAD
00000ca7: PUSH1 0xff
00000ca9: AND
00000caa: PUSH2 0x0cde
00000cad: JUMPI
00000cae: PUSH1 0x40
00000cb0: MLOAD
00000cb1: PUSH3 0x461bcd
00000cb5: PUSH1 0xe5
00000cb7: SHL
00000cb8: DUP2
00000cb9: MSTORE
00000cba: PUSH1 0x04
00000cbc: ADD
00000cbd: PUSH2 0x0756
00000cc0: SWAP1
00000cc1: PUSH1 0x20
00000cc3: DUP1
00000cc4: DUP3
00000cc5: MSTORE
00000cc6: PUSH1 0x04
00000cc8: SWAP1
00000cc9: DUP3
00000cca: ADD
00000ccb: MSTORE
00000ccc: PUSH4 0x04d53393
00000cd1: PUSH1 0xe4
00000cd3: SHL
00000cd4: PUSH1 0x40
00000cd6: DUP3
00000cd7: ADD
00000cd8: MSTORE
00000cd9: PUSH1 0x60
00000cdb: ADD
00000cdc: SWAP1
00000cdd: JUMP
00000cde: JUMPDEST
00000cdf: DUP3
00000ce0: MLOAD
00000ce1: DUP5
00000ce2: MLOAD
00000ce3: EQ
00000ce4: PUSH2 0x0d18
00000ce7: JUMPI
00000ce8: PUSH1 0x40
00000cea: MLOAD
00000ceb: PUSH3 0x461bcd
00000cef: PUSH1 0xe5
00000cf1: SHL
00000cf2: DUP2
00000cf3: MSTORE
00000cf4: PUSH1 0x04
00000cf6: ADD
00000cf7: PUSH2 0x0756
00000cfa: SWAP1
00000cfb: PUSH1 0x20
00000cfd: DUP1
00000cfe: DUP3
00000cff: MSTORE
00000d00: PUSH1 0x04
00000d02: SWAP1
00000d03: DUP3
00000d04: ADD
00000d05: MSTORE
00000d06: PUSH4 0x4d533931
00000d0b: PUSH1 0xe0
00000d0d: SHL
00000d0e: PUSH1 0x40
00000d10: DUP3
00000d11: ADD
00000d12: MSTORE
00000d13: PUSH1 0x60
00000d15: ADD
00000d16: SWAP1
00000d17: JUMP
00000d18: JUMPDEST
00000d19: DUP2
00000d1a: MLOAD
00000d1b: DUP5
00000d1c: MLOAD
00000d1d: EQ
00000d1e: PUSH2 0x0d52
00000d21: JUMPI
00000d22: PUSH1 0x40
00000d24: MLOAD
00000d25: PUSH3 0x461bcd
00000d29: PUSH1 0xe5
00000d2b: SHL
00000d2c: DUP2
00000d2d: MSTORE
00000d2e: PUSH1 0x04
00000d30: ADD
00000d31: PUSH2 0x0756
00000d34: SWAP1
00000d35: PUSH1 0x20
00000d37: DUP1
00000d38: DUP3
00000d39: MSTORE
00000d3a: PUSH1 0x04
00000d3c: SWAP1
00000d3d: DUP3
00000d3e: ADD
00000d3f: MSTORE
00000d40: PUSH4 0x26a99c99
00000d45: PUSH1 0xe1
00000d47: SHL
00000d48: PUSH1 0x40
00000d4a: DUP3
00000d4b: ADD
00000d4c: MSTORE
00000d4d: PUSH1 0x60
00000d4f: ADD
00000d50: SWAP1
00000d51: JUMP
00000d52: JUMPDEST
00000d53: PUSH1 0x05
00000d55: SLOAD
00000d56: DUP6
00000d57: EQ
00000d58: PUSH2 0x0d8c
00000d5b: JUMPI
00000d5c: PUSH1 0x40
00000d5e: MLOAD
00000d5f: PUSH3 0x461bcd
00000d63: PUSH1 0xe5
00000d65: SHL
00000d66: DUP2
00000d67: MSTORE
00000d68: PUSH1 0x04
00000d6a: ADD
00000d6b: PUSH2 0x0756
00000d6e: SWAP1
00000d6f: PUSH1 0x20
00000d71: DUP1
00000d72: DUP3
00000d73: MSTORE
00000d74: PUSH1 0x04
00000d76: SWAP1
00000d77: DUP3
00000d78: ADD
00000d79: MSTORE
00000d7a: PUSH4 0x4d533933
00000d7f: PUSH1 0xe0
00000d81: SHL
00000d82: PUSH1 0x40
00000d84: DUP3
00000d85: ADD
00000d86: MSTORE
00000d87: PUSH1 0x60
00000d89: ADD
00000d8a: SWAP1
00000d8b: JUMP
00000d8c: JUMPDEST
00000d8d: PUSH1 0x04
00000d8f: SLOAD
00000d90: DUP5
00000d91: MLOAD
00000d92: PUSH2 0x0d9c
00000d95: SWAP1
00000d96: PUSH1 0x01
00000d98: PUSH2 0x29df
00000d9b: JUMP
00000d9c: JUMPDEST
00000d9d: EQ
00000d9e: PUSH2 0x0dd2
00000da1: JUMPI
00000da2: PUSH1 0x40
00000da4: MLOAD
00000da5: PUSH3 0x461bcd
00000da9: PUSH1 0xe5
00000dab: SHL
00000dac: DUP2
00000dad: MSTORE
00000dae: PUSH1 0x04
00000db0: ADD
00000db1: PUSH2 0x0756
00000db4: SWAP1
00000db5: PUSH1 0x20
00000db7: DUP1
00000db8: DUP3
00000db9: MSTORE
00000dba: PUSH1 0x04
00000dbc: SWAP1
00000dbd: DUP3
00000dbe: ADD
00000dbf: MSTORE
00000dc0: PUSH4 0x1354ce4d
00000dc5: PUSH1 0xe2
00000dc7: SHL
00000dc8: PUSH1 0x40
00000dca: DUP3
00000dcb: ADD
00000dcc: MSTORE
00000dcd: PUSH1 0x60
00000dcf: ADD
00000dd0: SWAP1
00000dd1: JUMP
00000dd2: JUMPDEST
00000dd3: PUSH1 0x01
00000dd5: PUSH1 0x01
00000dd7: PUSH1 0xa0
00000dd9: SHL
00000dda: SUB
00000ddb: DUP9
00000ddc: AND
00000ddd: PUSH2 0x0e11
00000de0: JUMPI
00000de1: PUSH1 0x40
00000de3: MLOAD
00000de4: PUSH3 0x461bcd
00000de8: PUSH1 0xe5
00000dea: SHL
00000deb: DUP2
00000dec: MSTORE
00000ded: PUSH1 0x04
00000def: ADD
00000df0: PUSH2 0x0756
00000df3: SWAP1
00000df4: PUSH1 0x20
00000df6: DUP1
00000df7: DUP3
00000df8: MSTORE
00000df9: PUSH1 0x04
00000dfb: SWAP1
00000dfc: DUP3
00000dfd: ADD
00000dfe: MSTORE
00000dff: PUSH4 0x4d533935
00000e04: PUSH1 0xe0
00000e06: SHL
00000e07: PUSH1 0x40
00000e09: DUP3
00000e0a: ADD
00000e0b: MSTORE
00000e0c: PUSH1 0x60
00000e0e: ADD
00000e0f: SWAP1
00000e10: JUMP
00000e11: JUMPDEST
00000e12: PUSH2 0x0e1c
00000e15: DUP9
00000e16: DUP9
00000e17: DUP9
00000e18: PUSH2 0x1c0b
00000e1b: JUMP
00000e1c: JUMPDEST
00000e1d: PUSH1 0x00
00000e1f: DUP2
00000e20: DUP2
00000e21: MSTORE
00000e22: PUSH1 0x01
00000e24: PUSH1 0x20
00000e26: DUP2
00000e27: DUP2
00000e28: MSTORE
00000e29: PUSH1 0x40
00000e2b: DUP1
00000e2c: DUP5
00000e2d: KECCAK256
00000e2e: CALLER
00000e2f: DUP1
00000e30: DUP7
00000e31: MSTORE
00000e32: SWAP1
00000e33: DUP4
00000e34: MSTORE
00000e35: DUP2
00000e36: DUP6
00000e37: KECCAK256
00000e38: DUP1
00000e39: SLOAD
00000e3a: PUSH1 0xff
00000e3c: NOT
00000e3d: AND
00000e3e: SWAP1
00000e3f: SWAP5
00000e40: OR
00000e41: SWAP1
00000e42: SWAP4
00000e43: SSTORE
00000e44: PUSH1 0x08
00000e46: SLOAD
00000e47: DUP12
00000e48: MLOAD
00000e49: DUP13
00000e4a: DUP5
00000e4b: ADD
00000e4c: KECCAK256
00000e4d: DUP3
00000e4e: MLOAD
00000e4f: PUSH32 0x8d14977a529be0cde9be2de41261d56c536e10c2bfb3f797a663ac4f3676d2fe
00000e70: DUP2
00000e71: DUP7
00000e72: ADD
00000e73: MSTORE
00000e74: DUP1
00000e75: DUP5
00000e76: ADD
00000e77: SWAP6
00000e78: SWAP1
00000e79: SWAP6
00000e7a: MSTORE
00000e7b: PUSH1 0x01
00000e7d: PUSH1 0x01
00000e7f: PUSH1 0xa0
00000e81: SHL
00000e82: SUB
00000e83: DUP16
00000e84: AND
00000e85: PUSH1 0x60
00000e87: DUP7
00000e88: ADD
00000e89: MSTORE
00000e8a: PUSH1 0x80
00000e8c: DUP6
00000e8d: ADD
00000e8e: DUP15
00000e8f: SWAP1
00000e90: MSTORE
00000e91: PUSH1 0xa0
00000e93: DUP6
00000e94: ADD
00000e95: MSTORE
00000e96: PUSH1 0xc0
00000e98: DUP1
00000e99: DUP6
00000e9a: ADD
00000e9b: DUP13
00000e9c: SWAP1
00000e9d: MSTORE
00000e9e: DUP3
00000e9f: MLOAD
00000ea0: DUP1
00000ea1: DUP7
00000ea2: SUB
00000ea3: SWAP1
00000ea4: SWAP2
00000ea5: ADD
00000ea6: DUP2
00000ea7: MSTORE
00000ea8: PUSH1 0xe0
00000eaa: DUP6
00000eab: ADD
00000eac: DUP4
00000ead: MSTORE
00000eae: DUP1
00000eaf: MLOAD
00000eb0: SWAP1
00000eb1: DUP5
00000eb2: ADD
00000eb3: KECCAK256
00000eb4: PUSH2 0x1901
00000eb7: PUSH1 0xf0
00000eb9: SHL
00000eba: PUSH2 0x0100
00000ebd: DUP7
00000ebe: ADD
00000ebf: MSTORE
00000ec0: PUSH2 0x0102
00000ec3: DUP6
00000ec4: ADD
00000ec5: SWAP2
00000ec6: SWAP1
00000ec7: SWAP2
00000ec8: MSTORE
00000ec9: PUSH2 0x0122
00000ecc: DUP1
00000ecd: DUP6
00000ece: ADD
00000ecf: SWAP2
00000ed0: SWAP1
00000ed1: SWAP2
00000ed2: MSTORE
00000ed3: DUP2
00000ed4: MLOAD
00000ed5: DUP1
00000ed6: DUP6
00000ed7: SUB
00000ed8: SWAP1
00000ed9: SWAP2
00000eda: ADD
00000edb: DUP2
00000edc: MSTORE
00000edd: PUSH2 0x0142
00000ee0: SWAP1
00000ee1: SWAP4
00000ee2: ADD
00000ee3: SWAP1
00000ee4: MSTORE
00000ee5: DUP2
00000ee6: MLOAD
00000ee7: SWAP2
00000ee8: ADD
00000ee9: KECCAK256
00000eea: SWAP2
00000eeb: SWAP3
00000eec: POP
00000eed: JUMPDEST
00000eee: DUP6
00000eef: MLOAD
00000ef0: DUP2
00000ef1: PUSH1 0xff
00000ef3: AND
00000ef4: LT
00000ef5: ISZERO
00000ef6: PUSH2 0x1089
00000ef9: JUMPI
00000efa: PUSH1 0x00
00000efc: PUSH1 0x01
00000efe: DUP4
00000eff: DUP7
00000f00: DUP5
00000f01: PUSH1 0xff
00000f03: AND
00000f04: DUP2
00000f05: MLOAD
00000f06: DUP2
00000f07: LT
00000f08: PUSH2 0x0f13
00000f0b: JUMPI
00000f0c: PUSH2 0x0f13
00000f0f: PUSH2 0x2ada
00000f12: JUMP
00000f13: JUMPDEST
00000f14: PUSH1 0x20
00000f16: MUL
00000f17: PUSH1 0x20
00000f19: ADD
00000f1a: ADD
00000f1b: MLOAD
00000f1c: DUP10
00000f1d: DUP6
00000f1e: PUSH1 0xff
00000f20: AND
00000f21: DUP2
00000f22: MLOAD
00000f23: DUP2
00000f24: LT
00000f25: PUSH2 0x0f30
00000f28: JUMPI
00000f29: PUSH2 0x0f30
00000f2c: PUSH2 0x2ada
00000f2f: JUMP
00000f30: JUMPDEST
00000f31: PUSH1 0x20
00000f33: MUL
00000f34: PUSH1 0x20
00000f36: ADD
00000f37: ADD
00000f38: MLOAD
00000f39: DUP10
00000f3a: DUP7
00000f3b: PUSH1 0xff
00000f3d: AND
00000f3e: DUP2
00000f3f: MLOAD
00000f40: DUP2
00000f41: LT
00000f42: PUSH2 0x0f4d
00000f45: JUMPI
00000f46: PUSH2 0x0f4d
00000f49: PUSH2 0x2ada
00000f4c: JUMP
00000f4d: JUMPDEST
00000f4e: PUSH1 0x20
00000f50: MUL
00000f51: PUSH1 0x20
00000f53: ADD
00000f54: ADD
00000f55: MLOAD
00000f56: PUSH1 0x40
00000f58: MLOAD
00000f59: PUSH1 0x00
00000f5b: DUP2
00000f5c: MSTORE
00000f5d: PUSH1 0x20
00000f5f: ADD
00000f60: PUSH1 0x40
00000f62: MSTORE
00000f63: PUSH1 0x40
00000f65: MLOAD
00000f66: PUSH2 0x0f8b
00000f69: SWAP5
00000f6a: SWAP4
00000f6b: SWAP3
00000f6c: SWAP2
00000f6d: SWAP1
00000f6e: SWAP4
00000f6f: DUP5
00000f70: MSTORE
00000f71: PUSH1 0xff
00000f73: SWAP3
00000f74: SWAP1
00000f75: SWAP3
00000f76: AND
00000f77: PUSH1 0x20
00000f79: DUP5
00000f7a: ADD
00000f7b: MSTORE
00000f7c: PUSH1 0x40
00000f7e: DUP4
00000f7f: ADD
00000f80: MSTORE
00000f81: PUSH1 0x60
00000f83: DUP3
00000f84: ADD
00000f85: MSTORE
00000f86: PUSH1 0x80
00000f88: ADD
00000f89: SWAP1
00000f8a: JUMP
00000f8b: JUMPDEST
00000f8c: PUSH1 0x20
00000f8e: PUSH1 0x40
00000f90: MLOAD
00000f91: PUSH1 0x20
00000f93: DUP2
00000f94: SUB
00000f95: SWAP1
00000f96: DUP1
00000f97: DUP5
00000f98: SUB
00000f99: SWAP1
00000f9a: DUP6
00000f9b: GAS
00000f9c: STATICCALL
00000f9d: ISZERO
00000f9e: DUP1
00000f9f: ISZERO
00000fa0: PUSH2 0x0fad
00000fa3: JUMPI
00000fa4: RETURNDATASIZE
00000fa5: PUSH1 0x00
00000fa7: DUP1
00000fa8: RETURNDATACOPY
00000fa9: RETURNDATASIZE
00000faa: PUSH1 0x00
00000fac: REVERT
00000fad: JUMPDEST
00000fae: POP
00000faf: POP
00000fb0: PUSH1 0x40
00000fb2: MLOAD
00000fb3: PUSH1 0x1f
00000fb5: NOT
00000fb6: ADD
00000fb7: MLOAD
00000fb8: SWAP2
00000fb9: POP
00000fba: POP
00000fbb: PUSH1 0x01
00000fbd: PUSH1 0x01
00000fbf: PUSH1 0xa0
00000fc1: SHL
00000fc2: SUB
00000fc3: DUP2
00000fc4: AND
00000fc5: PUSH2 0x0ff9
00000fc8: JUMPI
00000fc9: PUSH1 0x40
00000fcb: MLOAD
00000fcc: PUSH3 0x461bcd
00000fd0: PUSH1 0xe5
00000fd2: SHL
00000fd3: DUP2
00000fd4: MSTORE
00000fd5: PUSH1 0x04
00000fd7: ADD
00000fd8: PUSH2 0x0756
00000fdb: SWAP1
00000fdc: PUSH1 0x20
00000fde: DUP1
00000fdf: DUP3
00000fe0: MSTORE
00000fe1: PUSH1 0x04
00000fe3: SWAP1
00000fe4: DUP3
00000fe5: ADD
00000fe6: MSTORE
00000fe7: PUSH4 0x4d533033
00000fec: PUSH1 0xe0
00000fee: SHL
00000fef: PUSH1 0x40
00000ff1: DUP3
00000ff2: ADD
00000ff3: MSTORE
00000ff4: PUSH1 0x60
00000ff6: ADD
00000ff7: SWAP1
00000ff8: JUMP
00000ff9: JUMPDEST
00000ffa: PUSH1 0x01
00000ffc: PUSH1 0x01
00000ffe: PUSH1 0xa0
00001000: SHL
00001001: SUB
00001002: DUP2
00001003: AND
00001004: PUSH1 0x00
00001006: SWAP1
00001007: DUP2
00001008: MSTORE
00001009: PUSH1 0x02
0000100b: PUSH1 0x20
0000100d: MSTORE
0000100e: PUSH1 0x40
00001010: SWAP1
00001011: KECCAK256
00001012: SLOAD
00001013: PUSH1 0xff
00001015: AND
00001016: PUSH2 0x104a
00001019: JUMPI
0000101a: PUSH1 0x40
0000101c: MLOAD
0000101d: PUSH3 0x461bcd
00001021: PUSH1 0xe5
00001023: SHL
00001024: DUP2
00001025: MSTORE
00001026: PUSH1 0x04
00001028: ADD
00001029: PUSH2 0x0756
0000102c: SWAP1
0000102d: PUSH1 0x20
0000102f: DUP1
00001030: DUP3
00001031: MSTORE
00001032: PUSH1 0x04
00001034: SWAP1
00001035: DUP3
00001036: ADD
00001037: MSTORE
00001038: PUSH4 0x1354cc0d
0000103d: PUSH1 0xe2
0000103f: SHL
00001040: PUSH1 0x40
00001042: DUP3
00001043: ADD
00001044: MSTORE
00001045: PUSH1 0x60
00001047: ADD
00001048: SWAP1
00001049: JUMP
0000104a: JUMPDEST
0000104b: PUSH1 0x00
0000104d: DUP5
0000104e: DUP2
0000104f: MSTORE
00001050: PUSH1 0x01
00001052: PUSH1 0x20
00001054: DUP2
00001055: DUP2
00001056: MSTORE
00001057: PUSH1 0x40
00001059: DUP1
0000105a: DUP5
0000105b: KECCAK256
0000105c: PUSH1 0x01
0000105e: PUSH1 0x01
00001060: PUSH1 0xa0
00001062: SHL
00001063: SUB
00001064: SWAP1
00001065: SWAP6
00001066: AND
00001067: DUP5
00001068: MSTORE
00001069: SWAP4
0000106a: SWAP1
0000106b: MSTORE
0000106c: SWAP2
0000106d: SWAP1
0000106e: KECCAK256
0000106f: DUP1
00001070: SLOAD
00001071: PUSH1 0xff
00001073: NOT
00001074: AND
00001075: SWAP1
00001076: SWAP2
00001077: OR
00001078: SWAP1
00001079: SSTORE
0000107a: PUSH2 0x1082
0000107d: DUP2
0000107e: PUSH2 0x2a8e
00001081: JUMP
00001082: JUMPDEST
00001083: SWAP1
00001084: POP
00001085: PUSH2 0x0eed
00001088: JUMP
00001089: JUMPDEST
0000108a: POP
0000108b: PUSH2 0x1093
0000108e: DUP3
0000108f: PUSH2 0x0902
00001092: JUMP
00001093: JUMPDEST
00001094: ISZERO
00001095: PUSH2 0x10a9
00001098: JUMPI
00001099: PUSH2 0x10a4
0000109c: DUP10
0000109d: DUP10
0000109e: DUP10
0000109f: DUP6
000010a0: PUSH2 0x1cfe
000010a3: JUMP
000010a4: JUMPDEST
000010a5: PUSH2 0x10da
000010a8: JUMP
000010a9: JUMPDEST
000010aa: PUSH1 0x40
000010ac: MLOAD
000010ad: PUSH3 0x461bcd
000010b1: PUSH1 0xe5
000010b3: SHL
000010b4: DUP2
000010b5: MSTORE
000010b6: PUSH1 0x04
000010b8: ADD
000010b9: PUSH2 0x0756
000010bc: SWAP1
000010bd: PUSH1 0x20
000010bf: DUP1
000010c0: DUP3
000010c1: MSTORE
000010c2: PUSH1 0x04
000010c4: SWAP1
000010c5: DUP3
000010c6: ADD
000010c7: MSTORE
000010c8: PUSH4 0x26a9981b
000010cd: PUSH1 0xe1
000010cf: SHL
000010d0: PUSH1 0x40
000010d2: DUP3
000010d3: ADD
000010d4: MSTORE
000010d5: PUSH1 0x60
000010d7: ADD
000010d8: SWAP1
000010d9: JUMP
000010da: JUMPDEST
000010db: POP
000010dc: SWAP8
000010dd: SWAP7
000010de: POP
000010df: POP
000010e0: POP
000010e1: POP
000010e2: POP
000010e3: POP
000010e4: POP
000010e5: JUMP
000010e6: JUMPDEST
000010e7: PUSH1 0x60
000010e9: PUSH1 0x00
000010eb: PUSH1 0x05
000010ed: SLOAD
000010ee: PUSH1 0x01
000010f0: PUSH1 0x01
000010f2: PUSH1 0x40
000010f4: SHL
000010f5: SUB
000010f6: DUP2
000010f7: GT
000010f8: ISZERO
000010f9: PUSH2 0x1104
000010fc: JUMPI
000010fd: PUSH2 0x1104
00001100: PUSH2 0x2af0
00001103: JUMP
00001104: JUMPDEST
00001105: PUSH1 0x40
00001107: MLOAD
00001108: SWAP1
00001109: DUP1
0000110a: DUP3
0000110b: MSTORE
0000110c: DUP1
0000110d: PUSH1 0x20
0000110f: MUL
00001110: PUSH1 0x20
00001112: ADD
00001113: DUP3
00001114: ADD
00001115: PUSH1 0x40
00001117: MSTORE
00001118: DUP1
00001119: ISZERO
0000111a: PUSH2 0x112d
0000111d: JUMPI
0000111e: DUP2
0000111f: PUSH1 0x20
00001121: ADD
00001122: PUSH1 0x20
00001124: DUP3
00001125: MUL
00001126: DUP1
00001127: CALLDATASIZE
00001128: DUP4
00001129: CALLDATACOPY
0000112a: ADD
0000112b: SWAP1
0000112c: POP
0000112d: JUMPDEST
0000112e: POP
0000112f: SWAP1
00001130: POP
00001131: PUSH1 0x00
00001133: DUP1
00001134: JUMPDEST
00001135: PUSH1 0x05
00001137: SLOAD
00001138: DUP2
00001139: LT
0000113a: ISZERO
0000113b: PUSH2 0x11c4
0000113e: JUMPI
0000113f: DUP6
00001140: DUP1
00001141: ISZERO
00001142: PUSH2 0x115d
00001145: JUMPI
00001146: POP
00001147: PUSH1 0x00
00001149: DUP2
0000114a: DUP2
0000114b: MSTORE
0000114c: PUSH1 0x20
0000114e: DUP2
0000114f: SWAP1
00001150: MSTORE
00001151: PUSH1 0x40
00001153: SWAP1
00001154: KECCAK256
00001155: PUSH1 0x03
00001157: ADD
00001158: SLOAD
00001159: PUSH1 0xff
0000115b: AND
0000115c: ISZERO
0000115d: JUMPDEST
0000115e: DUP1
0000115f: PUSH2 0x1181
00001162: JUMPI
00001163: POP
00001164: DUP5
00001165: DUP1
00001166: ISZERO
00001167: PUSH2 0x1181
0000116a: JUMPI
0000116b: POP
0000116c: PUSH1 0x00
0000116e: DUP2
0000116f: DUP2
00001170: MSTORE
00001171: PUSH1 0x20
00001173: DUP2
00001174: SWAP1
00001175: MSTORE
00001176: PUSH1 0x40
00001178: SWAP1
00001179: KECCAK256
0000117a: PUSH1 0x03
0000117c: ADD
0000117d: SLOAD
0000117e: PUSH1 0xff
00001180: AND
00001181: JUMPDEST
00001182: ISZERO
00001183: PUSH2 0x11b2
00001186: JUMPI
00001187: DUP1
00001188: DUP4
00001189: DUP4
0000118a: DUP2
0000118b: MLOAD
0000118c: DUP2
0000118d: LT
0000118e: PUSH2 0x1199
00001191: JUMPI
00001192: PUSH2 0x1199
00001195: PUSH2 0x2ada
00001198: JUMP
00001199: JUMPDEST
0000119a: PUSH1 0x20
0000119c: SWAP1
0000119d: DUP2
0000119e: MUL
0000119f: SWAP2
000011a0: SWAP1
000011a1: SWAP2
000011a2: ADD
000011a3: ADD
000011a4: MSTORE
000011a5: PUSH2 0x11af
000011a8: PUSH1 0x01
000011aa: DUP4
000011ab: PUSH2 0x29df
000011ae: JUMP
000011af: JUMPDEST
000011b0: SWAP2
000011b1: POP
000011b2: JUMPDEST
000011b3: DUP1
000011b4: PUSH2 0x11bc
000011b7: DUP2
000011b8: PUSH2 0x2a73
000011bb: JUMP
000011bc: JUMPDEST
000011bd: SWAP2
000011be: POP
000011bf: POP
000011c0: PUSH2 0x1134
000011c3: JUMP
000011c4: JUMPDEST
000011c5: PUSH2 0x11ce
000011c8: DUP9
000011c9: DUP9
000011ca: PUSH2 0x29f7
000011cd: JUMP
000011ce: JUMPDEST
000011cf: PUSH1 0x01
000011d1: PUSH1 0x01
000011d3: PUSH1 0x40
000011d5: SHL
000011d6: SUB
000011d7: DUP2
000011d8: GT
000011d9: ISZERO
000011da: PUSH2 0x11e5
000011dd: JUMPI
000011de: PUSH2 0x11e5
000011e1: PUSH2 0x2af0
000011e4: JUMP
000011e5: JUMPDEST
000011e6: PUSH1 0x40
000011e8: MLOAD
000011e9: SWAP1
000011ea: DUP1
000011eb: DUP3
000011ec: MSTORE
000011ed: DUP1
000011ee: PUSH1 0x20
000011f0: MUL
000011f1: PUSH1 0x20
000011f3: ADD
000011f4: DUP3
000011f5: ADD
000011f6: PUSH1 0x40
000011f8: MSTORE
000011f9: DUP1
000011fa: ISZERO
000011fb: PUSH2 0x120e
000011fe: JUMPI
000011ff: DUP2
00001200: PUSH1 0x20
00001202: ADD
00001203: PUSH1 0x20
00001205: DUP3
00001206: MUL
00001207: DUP1
00001208: CALLDATASIZE
00001209: DUP4
0000120a: CALLDATACOPY
0000120b: ADD
0000120c: SWAP1
0000120d: POP
0000120e: JUMPDEST
0000120f: POP
00001210: SWAP4
00001211: POP
00001212: DUP8
00001213: SWAP1
00001214: POP
00001215: JUMPDEST
00001216: DUP7
00001217: DUP2
00001218: LT
00001219: ISZERO
0000121a: PUSH2 0x1271
0000121d: JUMPI
0000121e: DUP3
0000121f: DUP2
00001220: DUP2
00001221: MLOAD
00001222: DUP2
00001223: LT
00001224: PUSH2 0x122f
00001227: JUMPI
00001228: PUSH2 0x122f
0000122b: PUSH2 0x2ada
0000122e: JUMP
0000122f: JUMPDEST
00001230: PUSH1 0x20
00001232: MUL
00001233: PUSH1 0x20
00001235: ADD
00001236: ADD
00001237: MLOAD
00001238: DUP5
00001239: DUP10
0000123a: DUP4
0000123b: PUSH2 0x1244
0000123e: SWAP2
0000123f: SWAP1
00001240: PUSH2 0x29f7
00001243: JUMP
00001244: JUMPDEST
00001245: DUP2
00001246: MLOAD
00001247: DUP2
00001248: LT
00001249: PUSH2 0x1254
0000124c: JUMPI
0000124d: PUSH2 0x1254
00001250: PUSH2 0x2ada
00001253: JUMP
00001254: JUMPDEST
00001255: PUSH1 0x20
00001257: SWAP1
00001258: DUP2
00001259: MUL
0000125a: SWAP2
0000125b: SWAP1
0000125c: SWAP2
0000125d: ADD
0000125e: ADD
0000125f: MSTORE
00001260: DUP1
00001261: PUSH2 0x1269
00001264: DUP2
00001265: PUSH2 0x2a73
00001268: JUMP
00001269: JUMPDEST
0000126a: SWAP2
0000126b: POP
0000126c: POP
0000126d: PUSH2 0x1215
00001270: JUMP
00001271: JUMPDEST
00001272: POP
00001273: POP
00001274: POP
00001275: SWAP5
00001276: SWAP4
00001277: POP
00001278: POP
00001279: POP
0000127a: POP
0000127b: JUMP
0000127c: JUMPDEST
0000127d: PUSH2 0x1284
00001280: PUSH2 0x206b
00001283: JUMP
00001284: JUMPDEST
00001285: PUSH1 0x40
00001287: MLOAD
00001288: DUP1
00001289: PUSH1 0x60
0000128b: ADD
0000128c: PUSH1 0x40
0000128e: MSTORE
0000128f: DUP1
00001290: PUSH1 0xa5
00001292: DUP2
00001293: MSTORE
00001294: PUSH1 0x20
00001296: ADD
00001297: PUSH2 0x02d1
0000129a: DUP2
0000129b: MSTORE
0000129c: PUSH1 0x20
0000129e: ADD
0000129f: PUSH2 0x0483
000012a2: DUP2
000012a3: MSTORE
000012a4: POP
000012a5: SWAP1
000012a6: POP
000012a7: SWAP1
000012a8: JUMP
000012a9: JUMPDEST
000012aa: PUSH1 0x03
000012ac: SLOAD
000012ad: PUSH1 0x60
000012af: SWAP1
000012b0: PUSH1 0x00
000012b2: SWAP1
000012b3: PUSH1 0x01
000012b5: PUSH1 0x01
000012b7: PUSH1 0x40
000012b9: SHL
000012ba: SUB
000012bb: DUP2
000012bc: GT
000012bd: ISZERO
000012be: PUSH2 0x12c9
000012c1: JUMPI
000012c2: PUSH2 0x12c9
000012c5: PUSH2 0x2af0
000012c8: JUMP
000012c9: JUMPDEST
000012ca: PUSH1 0x40
000012cc: MLOAD
000012cd: SWAP1
000012ce: DUP1
000012cf: DUP3
000012d0: MSTORE
000012d1: DUP1
000012d2: PUSH1 0x20
000012d4: MUL
000012d5: PUSH1 0x20
000012d7: ADD
000012d8: DUP3
000012d9: ADD
000012da: PUSH1 0x40
000012dc: MSTORE
000012dd: DUP1
000012de: ISZERO
000012df: PUSH2 0x12f2
000012e2: JUMPI
000012e3: DUP2
000012e4: PUSH1 0x20
000012e6: ADD
000012e7: PUSH1 0x20
000012e9: DUP3
000012ea: MUL
000012eb: DUP1
000012ec: CALLDATASIZE
000012ed: DUP4
000012ee: CALLDATACOPY
000012ef: ADD
000012f0: SWAP1
000012f1: POP
000012f2: JUMPDEST
000012f3: POP
000012f4: SWAP1
000012f5: POP
000012f6: PUSH1 0x00
000012f8: DUP1
000012f9: JUMPDEST
000012fa: PUSH1 0x03
000012fc: SLOAD
000012fd: DUP2
000012fe: LT
000012ff: ISZERO
00001300: PUSH2 0x13d0
00001303: JUMPI
00001304: PUSH1 0x00
00001306: DUP6
00001307: DUP2
00001308: MSTORE
00001309: PUSH1 0x01
0000130b: PUSH1 0x20
0000130d: MSTORE
0000130e: PUSH1 0x40
00001310: DUP2
00001311: KECCAK256
00001312: PUSH1 0x03
00001314: DUP1
00001315: SLOAD
00001316: SWAP2
00001317: SWAP3
00001318: SWAP2
00001319: DUP5
0000131a: SWAP1
0000131b: DUP2
0000131c: LT
0000131d: PUSH2 0x1328
00001320: JUMPI
00001321: PUSH2 0x1328
00001324: PUSH2 0x2ada
00001327: JUMP
00001328: JUMPDEST
00001329: PUSH1 0x00
0000132b: SWAP2
0000132c: DUP3
0000132d: MSTORE
0000132e: PUSH1 0x20
00001330: DUP1
00001331: DUP4
00001332: KECCAK256
00001333: SWAP1
00001334: SWAP2
00001335: ADD
00001336: SLOAD
00001337: PUSH1 0x01
00001339: PUSH1 0x01
0000133b: PUSH1 0xa0
0000133d: SHL
0000133e: SUB
0000133f: AND
00001340: DUP4
00001341: MSTORE
00001342: DUP3
00001343: ADD
00001344: SWAP3
00001345: SWAP1
00001346: SWAP3
00001347: MSTORE
00001348: PUSH1 0x40
0000134a: ADD
0000134b: SWAP1
0000134c: KECCAK256
0000134d: SLOAD
0000134e: PUSH1 0xff
00001350: AND
00001351: ISZERO
00001352: PUSH2 0x13be
00001355: JUMPI
00001356: PUSH1 0x03
00001358: DUP2
00001359: DUP2
0000135a: SLOAD
0000135b: DUP2
0000135c: LT
0000135d: PUSH2 0x1368
00001360: JUMPI
00001361: PUSH2 0x1368
00001364: PUSH2 0x2ada
00001367: JUMP
00001368: JUMPDEST
00001369: SWAP1
0000136a: PUSH1 0x00
0000136c: MSTORE
0000136d: PUSH1 0x20
0000136f: PUSH1 0x00
00001371: KECCAK256
00001372: ADD
00001373: PUSH1 0x00
00001375: SWAP1
00001376: SLOAD
00001377: SWAP1
00001378: PUSH2 0x0100
0000137b: EXP
0000137c: SWAP1
0000137d: DIV
0000137e: PUSH1 0x01
00001380: PUSH1 0x01
00001382: PUSH1 0xa0
00001384: SHL
00001385: SUB
00001386: AND
00001387: DUP4
00001388: DUP4
00001389: DUP2
0000138a: MLOAD
0000138b: DUP2
0000138c: LT
0000138d: PUSH2 0x1398
00001390: JUMPI
00001391: PUSH2 0x1398
00001394: PUSH2 0x2ada
00001397: JUMP
00001398: JUMPDEST
00001399: PUSH1 0x01
0000139b: PUSH1 0x01
0000139d: PUSH1 0xa0
0000139f: SHL
000013a0: SUB
000013a1: SWAP1
000013a2: SWAP3
000013a3: AND
000013a4: PUSH1 0x20
000013a6: SWAP3
000013a7: DUP4
000013a8: MUL
000013a9: SWAP2
000013aa: SWAP1
000013ab: SWAP2
000013ac: ADD
000013ad: SWAP1
000013ae: SWAP2
000013af: ADD
000013b0: MSTORE
000013b1: PUSH2 0x13bb
000013b4: PUSH1 0x01
000013b6: DUP4
000013b7: PUSH2 0x29df
000013ba: JUMP
000013bb: JUMPDEST
000013bc: SWAP2
000013bd: POP
000013be: JUMPDEST
000013bf: DUP1
000013c0: PUSH2 0x13c8
000013c3: DUP2
000013c4: PUSH2 0x2a73
000013c7: JUMP
000013c8: JUMPDEST
000013c9: SWAP2
000013ca: POP
000013cb: POP
000013cc: PUSH2 0x12f9
000013cf: JUMP
000013d0: JUMPDEST
000013d1: DUP2
000013d2: PUSH1 0x01
000013d4: PUSH1 0x01
000013d6: PUSH1 0x40
000013d8: SHL
000013d9: SUB
000013da: DUP2
000013db: GT
000013dc: ISZERO
000013dd: PUSH2 0x13e8
000013e0: JUMPI
000013e1: PUSH2 0x13e8
000013e4: PUSH2 0x2af0
000013e7: JUMP
000013e8: JUMPDEST
000013e9: PUSH1 0x40
000013eb: MLOAD
000013ec: SWAP1
000013ed: DUP1
000013ee: DUP3
000013ef: MSTORE
000013f0: DUP1
000013f1: PUSH1 0x20
000013f3: MUL
000013f4: PUSH1 0x20
000013f6: ADD
000013f7: DUP3
000013f8: ADD
000013f9: PUSH1 0x40
000013fb: MSTORE
000013fc: DUP1
000013fd: ISZERO
000013fe: PUSH2 0x1411
00001401: JUMPI
00001402: DUP2
00001403: PUSH1 0x20
00001405: ADD
00001406: PUSH1 0x20
00001408: DUP3
00001409: MUL
0000140a: DUP1
0000140b: CALLDATASIZE
0000140c: DUP4
0000140d: CALLDATACOPY
0000140e: ADD
0000140f: SWAP1
00001410: POP
00001411: JUMPDEST
00001412: POP
00001413: SWAP4
00001414: POP
00001415: PUSH1 0x00
00001417: SWAP1
00001418: POP
00001419: JUMPDEST
0000141a: DUP2
0000141b: DUP2
0000141c: LT
0000141d: ISZERO
0000141e: PUSH2 0x1477
00001421: JUMPI
00001422: DUP3
00001423: DUP2
00001424: DUP2
00001425: MLOAD
00001426: DUP2
00001427: LT
00001428: PUSH2 0x1433
0000142b: JUMPI
0000142c: PUSH2 0x1433
0000142f: PUSH2 0x2ada
00001432: JUMP
00001433: JUMPDEST
00001434: PUSH1 0x20
00001436: MUL
00001437: PUSH1 0x20
00001439: ADD
0000143a: ADD
0000143b: MLOAD
0000143c: DUP5
0000143d: DUP3
0000143e: DUP2
0000143f: MLOAD
00001440: DUP2
00001441: LT
00001442: PUSH2 0x144d
00001445: JUMPI
00001446: PUSH2 0x144d
00001449: PUSH2 0x2ada
0000144c: JUMP
0000144d: JUMPDEST
0000144e: PUSH1 0x01
00001450: PUSH1 0x01
00001452: PUSH1 0xa0
00001454: SHL
00001455: SUB
00001456: SWAP1
00001457: SWAP3
00001458: AND
00001459: PUSH1 0x20
0000145b: SWAP3
0000145c: DUP4
0000145d: MUL
0000145e: SWAP2
0000145f: SWAP1
00001460: SWAP2
00001461: ADD
00001462: SWAP1
00001463: SWAP2
00001464: ADD
00001465: MSTORE
00001466: DUP1
00001467: PUSH2 0x146f
0000146a: DUP2
0000146b: PUSH2 0x2a73
0000146e: JUMP
0000146f: JUMPDEST
00001470: SWAP2
00001471: POP
00001472: POP
00001473: PUSH2 0x1419
00001476: JUMP
00001477: JUMPDEST
00001478: POP
00001479: POP
0000147a: POP
0000147b: SWAP2
0000147c: SWAP1
0000147d: POP
0000147e: JUMP
0000147f: JUMPDEST
00001480: PUSH1 0x07
00001482: SLOAD
00001483: PUSH1 0xff
00001485: AND
00001486: ISZERO
00001487: PUSH2 0x14a2
0000148a: JUMPI
0000148b: PUSH1 0x40
0000148d: MLOAD
0000148e: PUSH3 0x461bcd
00001492: PUSH1 0xe5
00001494: SHL
00001495: DUP2
00001496: MSTORE
00001497: PUSH1 0x04
00001499: ADD
0000149a: PUSH2 0x0756
0000149d: SWAP1
0000149e: PUSH2 0x296e
000014a1: JUMP
000014a2: JUMPDEST
000014a3: PUSH2 0x0768
000014a6: DUP2
000014a7: PUSH2 0x1e29
000014aa: JUMP
000014ab: JUMPDEST
000014ac: CALLER
000014ad: PUSH1 0x00
000014af: DUP2
000014b0: DUP2
000014b1: MSTORE
000014b2: PUSH1 0x02
000014b4: PUSH1 0x20
000014b6: MSTORE
000014b7: PUSH1 0x40
000014b9: SWAP1
000014ba: KECCAK256
000014bb: SLOAD
000014bc: PUSH1 0xff
000014be: AND
000014bf: PUSH2 0x14c7
000014c2: JUMPI
000014c3: PUSH1 0x00
000014c5: DUP1
000014c6: REVERT
000014c7: JUMPDEST
000014c8: PUSH1 0x00
000014ca: DUP3
000014cb: DUP2
000014cc: MSTORE
000014cd: PUSH1 0x20
000014cf: DUP2
000014d0: SWAP1
000014d1: MSTORE
000014d2: PUSH1 0x40
000014d4: SWAP1
000014d5: KECCAK256
000014d6: SLOAD
000014d7: DUP3
000014d8: SWAP1
000014d9: PUSH1 0x01
000014db: PUSH1 0x01
000014dd: PUSH1 0xa0
000014df: SHL
000014e0: SUB
000014e1: AND
000014e2: PUSH2 0x14ea
000014e5: JUMPI
000014e6: PUSH1 0x00
000014e8: DUP1
000014e9: REVERT
000014ea: JUMPDEST
000014eb: PUSH1 0x00
000014ed: DUP4
000014ee: DUP2
000014ef: MSTORE
000014f0: PUSH1 0x01
000014f2: PUSH1 0x20
000014f4: SWAP1
000014f5: DUP2
000014f6: MSTORE
000014f7: PUSH1 0x40
000014f9: DUP1
000014fa: DUP4
000014fb: KECCAK256
000014fc: CALLER
000014fd: DUP1
000014fe: DUP6
000014ff: MSTORE
00001500: SWAP3
00001501: MSTORE
00001502: SWAP1
00001503: SWAP2
00001504: KECCAK256
00001505: SLOAD
00001506: DUP5
00001507: SWAP2
00001508: SWAP1
00001509: PUSH1 0xff
0000150b: AND
0000150c: ISZERO
0000150d: PUSH2 0x1515
00001510: JUMPI
00001511: PUSH1 0x00
00001513: DUP1
00001514: REVERT
00001515: JUMPDEST
00001516: PUSH1 0x00
00001518: DUP6
00001519: DUP2
0000151a: MSTORE
0000151b: PUSH1 0x01
0000151d: PUSH1 0x20
0000151f: DUP2
00001520: DUP2
00001521: MSTORE
00001522: PUSH1 0x40
00001524: DUP1
00001525: DUP5
00001526: KECCAK256
00001527: CALLER
00001528: DUP1
00001529: DUP7
0000152a: MSTORE
0000152b: SWAP3
0000152c: MSTORE
0000152d: DUP1
0000152e: DUP5
0000152f: KECCAK256
00001530: DUP1
00001531: SLOAD
00001532: PUSH1 0xff
00001534: NOT
00001535: AND
00001536: SWAP1
00001537: SWAP4
00001538: OR
00001539: SWAP1
0000153a: SWAP3
0000153b: SSTORE
0000153c: SWAP1
0000153d: MLOAD
0000153e: DUP8
0000153f: SWAP3
00001540: PUSH32 0x4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef
00001561: SWAP2
00001562: LOG3
00001563: PUSH2 0x156b
00001566: DUP6
00001567: PUSH2 0x15c2
0000156a: JUMP
0000156b: JUMPDEST
0000156c: POP
0000156d: POP
0000156e: POP
0000156f: POP
00001570: POP
00001571: JUMP
00001572: JUMPDEST
00001573: PUSH1 0x00
00001575: PUSH2 0x157f
00001578: DUP5
00001579: DUP5
0000157a: DUP5
0000157b: PUSH2 0x1c0b
0000157e: JUMP
0000157f: JUMPDEST
00001580: SWAP1
00001581: POP
00001582: PUSH2 0x158a
00001585: DUP2
00001586: PUSH2 0x14ab
00001589: JUMP
0000158a: JUMPDEST
0000158b: SWAP4
0000158c: SWAP3
0000158d: POP
0000158e: POP
0000158f: POP
00001590: JUMP
00001591: JUMPDEST
00001592: PUSH1 0x07
00001594: SLOAD
00001595: PUSH1 0xff
00001597: AND
00001598: ISZERO
00001599: PUSH2 0x15b4
0000159c: JUMPI
0000159d: PUSH1 0x40
0000159f: MLOAD
000015a0: PUSH3 0x461bcd
000015a4: PUSH1 0xe5
000015a6: SHL
000015a7: DUP2
000015a8: MSTORE
000015a9: PUSH1 0x04
000015ab: ADD
000015ac: PUSH2 0x0756
000015af: SWAP1
000015b0: PUSH2 0x296e
000015b3: JUMP
000015b4: JUMPDEST
000015b5: PUSH2 0x15be
000015b8: DUP3
000015b9: DUP3
000015ba: PUSH2 0x1ea6
000015bd: JUMP
000015be: JUMPDEST
000015bf: POP
000015c0: POP
000015c1: JUMP
000015c2: JUMPDEST
000015c3: CALLER
000015c4: PUSH1 0x00
000015c6: DUP2
000015c7: DUP2
000015c8: MSTORE
000015c9: PUSH1 0x02
000015cb: PUSH1 0x20
000015cd: MSTORE
000015ce: PUSH1 0x40
000015d0: SWAP1
000015d1: KECCAK256
000015d2: SLOAD
000015d3: PUSH1 0xff
000015d5: AND
000015d6: PUSH2 0x15de
000015d9: JUMPI
000015da: PUSH1 0x00
000015dc: DUP1
000015dd: REVERT
000015de: JUMPDEST
000015df: PUSH1 0x00
000015e1: DUP3
000015e2: DUP2
000015e3: MSTORE
000015e4: PUSH1 0x01
000015e6: PUSH1 0x20
000015e8: SWAP1
000015e9: DUP2
000015ea: MSTORE
000015eb: PUSH1 0x40
000015ed: DUP1
000015ee: DUP4
000015ef: KECCAK256
000015f0: CALLER
000015f1: DUP1
000015f2: DUP6
000015f3: MSTORE
000015f4: SWAP3
000015f5: MSTORE
000015f6: SWAP1
000015f7: SWAP2
000015f8: KECCAK256
000015f9: SLOAD
000015fa: DUP4
000015fb: SWAP2
000015fc: SWAP1
000015fd: PUSH1 0xff
000015ff: AND
00001600: PUSH2 0x1608
00001603: JUMPI
00001604: PUSH1 0x00
00001606: DUP1
00001607: REVERT
00001608: JUMPDEST
00001609: PUSH1 0x00
0000160b: DUP5
0000160c: DUP2
0000160d: MSTORE
0000160e: PUSH1 0x20
00001610: DUP2
00001611: SWAP1
00001612: MSTORE
00001613: PUSH1 0x40
00001615: SWAP1
00001616: KECCAK256
00001617: PUSH1 0x03
00001619: ADD
0000161a: SLOAD
0000161b: DUP5
0000161c: SWAP1
0000161d: PUSH1 0xff
0000161f: AND
00001620: ISZERO
00001621: PUSH2 0x1629
00001624: JUMPI
00001625: PUSH1 0x00
00001627: DUP1
00001628: REVERT
00001629: JUMPDEST
0000162a: PUSH2 0x1632
0000162d: DUP6
0000162e: PUSH2 0x0902
00001631: JUMP
00001632: JUMPDEST
00001633: ISZERO
00001634: PUSH2 0x156b
00001637: JUMPI
00001638: PUSH1 0x00
0000163a: DUP6
0000163b: DUP2
0000163c: MSTORE
0000163d: PUSH1 0x20
0000163f: DUP2
00001640: SWAP1
00001641: MSTORE
00001642: PUSH1 0x40
00001644: SWAP1
00001645: KECCAK256
00001646: PUSH1 0x03
00001648: DUP2
00001649: ADD
0000164a: DUP1
0000164b: SLOAD
0000164c: PUSH1 0xff
0000164e: NOT
0000164f: AND
00001650: PUSH1 0x01
00001652: SWAP1
00001653: DUP2
00001654: OR
00001655: SWAP1
00001656: SWAP2
00001657: SSTORE
00001658: DUP2
00001659: SLOAD
0000165a: SWAP1
0000165b: DUP3
0000165c: ADD
0000165d: SLOAD
0000165e: PUSH1 0x02
00001660: DUP4
00001661: ADD
00001662: DUP1
00001663: SLOAD
00001664: PUSH2 0x1710
00001667: SWAP4
00001668: PUSH1 0x01
0000166a: PUSH1 0x01
0000166c: PUSH1 0xa0
0000166e: SHL
0000166f: SUB
00001670: AND
00001671: SWAP3
00001672: SWAP2
00001673: SWAP1
00001674: PUSH2 0x167c
00001677: SWAP1
00001678: PUSH2 0x2a3e
0000167b: JUMP
0000167c: JUMPDEST
0000167d: SWAP1
0000167e: POP
0000167f: DUP5
00001680: PUSH1 0x02
00001682: ADD
00001683: DUP1
00001684: SLOAD
00001685: PUSH2 0x168d
00001688: SWAP1
00001689: PUSH2 0x2a3e
0000168c: JUMP
0000168d: JUMPDEST
0000168e: DUP1
0000168f: PUSH1 0x1f
00001691: ADD
00001692: PUSH1 0x20
00001694: DUP1
00001695: SWAP2
00001696: DIV
00001697: MUL
00001698: PUSH1 0x20
0000169a: ADD
0000169b: PUSH1 0x40
0000169d: MLOAD
0000169e: SWAP1
0000169f: DUP2
000016a0: ADD
000016a1: PUSH1 0x40
000016a3: MSTORE
000016a4: DUP1
000016a5: SWAP3
000016a6: SWAP2
000016a7: SWAP1
000016a8: DUP2
000016a9: DUP2
000016aa: MSTORE
000016ab: PUSH1 0x20
000016ad: ADD
000016ae: DUP3
000016af: DUP1
000016b0: SLOAD
000016b1: PUSH2 0x16b9
000016b4: SWAP1
000016b5: PUSH2 0x2a3e
000016b8: JUMP
000016b9: JUMPDEST
000016ba: DUP1
000016bb: ISZERO
000016bc: PUSH2 0x1706
000016bf: JUMPI
000016c0: DUP1
000016c1: PUSH1 0x1f
000016c3: LT
000016c4: PUSH2 0x16db
000016c7: JUMPI
000016c8: PUSH2 0x0100
000016cb: DUP1
000016cc: DUP4
000016cd: SLOAD
000016ce: DIV
000016cf: MUL
000016d0: DUP4
000016d1: MSTORE
000016d2: SWAP2
000016d3: PUSH1 0x20
000016d5: ADD
000016d6: SWAP2
000016d7: PUSH2 0x1706
000016da: JUMP
000016db: JUMPDEST
000016dc: DUP3
000016dd: ADD
000016de: SWAP2
000016df: SWAP1
000016e0: PUSH1 0x00
000016e2: MSTORE
000016e3: PUSH1 0x20
000016e5: PUSH1 0x00
000016e7: KECCAK256
000016e8: SWAP1
000016e9: JUMPDEST
000016ea: DUP2
000016eb: SLOAD
000016ec: DUP2
000016ed: MSTORE
000016ee: SWAP1
000016ef: PUSH1 0x01
000016f1: ADD
000016f2: SWAP1
000016f3: PUSH1 0x20
000016f5: ADD
000016f6: DUP1
000016f7: DUP4
000016f8: GT
000016f9: PUSH2 0x16e9
000016fc: JUMPI
000016fd: DUP3
000016fe: SWAP1
000016ff: SUB
00001700: PUSH1 0x1f
00001702: AND
00001703: DUP3
00001704: ADD
00001705: SWAP2
00001706: JUMPDEST
00001707: POP
00001708: POP
00001709: POP
0000170a: POP
0000170b: POP
0000170c: PUSH2 0x2039
0000170f: JUMP
00001710: JUMPDEST
00001711: ISZERO
00001712: PUSH2 0x1745
00001715: JUMPI
00001716: PUSH1 0x40
00001718: MLOAD
00001719: DUP7
0000171a: SWAP1
0000171b: PUSH32 0x33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed75
0000173c: SWAP1
0000173d: PUSH1 0x00
0000173f: SWAP1
00001740: LOG2
00001741: PUSH2 0x177d
00001744: JUMP
00001745: JUMPDEST
00001746: PUSH1 0x40
00001748: MLOAD
00001749: DUP7
0000174a: SWAP1
0000174b: PUSH32 0x526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b79236
0000176c: SWAP1
0000176d: PUSH1 0x00
0000176f: SWAP1
00001770: LOG2
00001771: PUSH1 0x03
00001773: DUP2
00001774: ADD
00001775: DUP1
00001776: SLOAD
00001777: PUSH1 0xff
00001779: NOT
0000177a: AND
0000177b: SWAP1
0000177c: SSTORE
0000177d: JUMPDEST
0000177e: POP
0000177f: POP
00001780: POP
00001781: POP
00001782: POP
00001783: POP
00001784: JUMP
00001785: JUMPDEST
00001786: CALLER
00001787: ADDRESS
00001788: EQ
00001789: PUSH2 0x1791
0000178c: JUMPI
0000178d: PUSH1 0x00
0000178f: DUP1
00001790: REVERT
00001791: JUMPDEST
00001792: PUSH1 0x01
00001794: PUSH1 0x01
00001796: PUSH1 0xa0
00001798: SHL
00001799: SUB
0000179a: DUP2
0000179b: AND
0000179c: PUSH1 0x00
0000179e: SWAP1
0000179f: DUP2
000017a0: MSTORE
000017a1: PUSH1 0x02
000017a3: PUSH1 0x20
000017a5: MSTORE
000017a6: PUSH1 0x40
000017a8: SWAP1
000017a9: KECCAK256
000017aa: SLOAD
000017ab: DUP2
000017ac: SWAP1
000017ad: PUSH1 0xff
000017af: AND
000017b0: PUSH2 0x17b8
000017b3: JUMPI
000017b4: PUSH1 0x00
000017b6: DUP1
000017b7: REVERT
000017b8: JUMPDEST
000017b9: PUSH1 0x03
000017bb: SLOAD
000017bc: PUSH1 0x01
000017be: LT
000017bf: PUSH2 0x180a
000017c2: JUMPI
000017c3: PUSH1 0x40
000017c5: MLOAD
000017c6: PUSH3 0x461bcd
000017ca: PUSH1 0xe5
000017cc: SHL
000017cd: DUP2
000017ce: MSTORE
000017cf: PUSH1 0x20
000017d1: PUSH1 0x04
000017d3: DUP3
000017d4: ADD
000017d5: DUP2
000017d6: SWAP1
000017d7: MSTORE
000017d8: PUSH1 0x24
000017da: DUP3
000017db: ADD
000017dc: MSTORE
000017dd: PUSH32 0x6f776e6572732e6c656e677468206d757374206c6172676572207468616e2031
000017fe: PUSH1 0x44
00001800: DUP3
00001801: ADD
00001802: MSTORE
00001803: PUSH1 0x64
00001805: ADD
00001806: PUSH2 0x0756
00001809: JUMP
0000180a: JUMPDEST
0000180b: PUSH1 0x01
0000180d: PUSH1 0x01
0000180f: PUSH1 0xa0
00001811: SHL
00001812: SUB
00001813: DUP3
00001814: AND
00001815: PUSH1 0x00
00001817: SWAP1
00001818: DUP2
00001819: MSTORE
0000181a: PUSH1 0x02
0000181c: PUSH1 0x20
0000181e: MSTORE
0000181f: PUSH1 0x40
00001821: DUP2
00001822: KECCAK256
00001823: DUP1
00001824: SLOAD
00001825: PUSH1 0xff
00001827: NOT
00001828: AND
00001829: SWAP1
0000182a: SSTORE
0000182b: JUMPDEST
0000182c: PUSH1 0x03
0000182e: SLOAD
0000182f: DUP2
00001830: LT
00001831: ISZERO
00001832: PUSH2 0x1931
00001835: JUMPI
00001836: DUP3
00001837: PUSH1 0x01
00001839: PUSH1 0x01
0000183b: PUSH1 0xa0
0000183d: SHL
0000183e: SUB
0000183f: AND
00001840: PUSH1 0x03
00001842: DUP3
00001843: DUP2
00001844: SLOAD
00001845: DUP2
00001846: LT
00001847: PUSH2 0x1852
0000184a: JUMPI
0000184b: PUSH2 0x1852
0000184e: PUSH2 0x2ada
00001851: JUMP
00001852: JUMPDEST
00001853: PUSH1 0x00
00001855: SWAP2
00001856: DUP3
00001857: MSTORE
00001858: PUSH1 0x20
0000185a: SWAP1
0000185b: SWAP2
0000185c: KECCAK256
0000185d: ADD
0000185e: SLOAD
0000185f: PUSH1 0x01
00001861: PUSH1 0x01
00001863: PUSH1 0xa0
00001865: SHL
00001866: SUB
00001867: AND
00001868: EQ
00001869: ISZERO
0000186a: PUSH2 0x191f
0000186d: JUMPI
0000186e: PUSH1 0x03
00001870: DUP1
00001871: SLOAD
00001872: PUSH2 0x187d
00001875: SWAP1
00001876: PUSH1 0x01
00001878: SWAP1
00001879: PUSH2 0x29f7
0000187c: JUMP
0000187d: JUMPDEST
0000187e: DUP2
0000187f: SLOAD
00001880: DUP2
00001881: LT
00001882: PUSH2 0x188d
00001885: JUMPI
00001886: PUSH2 0x188d
00001889: PUSH2 0x2ada
0000188c: JUMP
0000188d: JUMPDEST
0000188e: PUSH1 0x00
00001890: SWAP2
00001891: DUP3
00001892: MSTORE
00001893: PUSH1 0x20
00001895: SWAP1
00001896: SWAP2
00001897: KECCAK256
00001898: ADD
00001899: SLOAD
0000189a: PUSH1 0x03
0000189c: DUP1
0000189d: SLOAD
0000189e: PUSH1 0x01
000018a0: PUSH1 0x01
000018a2: PUSH1 0xa0
000018a4: SHL
000018a5: SUB
000018a6: SWAP1
000018a7: SWAP3
000018a8: AND
000018a9: SWAP2
000018aa: DUP4
000018ab: SWAP1
000018ac: DUP2
000018ad: LT
000018ae: PUSH2 0x18b9
000018b1: JUMPI
000018b2: PUSH2 0x18b9
000018b5: PUSH2 0x2ada
000018b8: JUMP
000018b9: JUMPDEST
000018ba: SWAP1
000018bb: PUSH1 0x00
000018bd: MSTORE
000018be: PUSH1 0x20
000018c0: PUSH1 0x00
000018c2: KECCAK256
000018c3: ADD
000018c4: PUSH1 0x00
000018c6: PUSH2 0x0100
000018c9: EXP
000018ca: DUP2
000018cb: SLOAD
000018cc: DUP2
000018cd: PUSH1 0x01
000018cf: PUSH1 0x01
000018d1: PUSH1 0xa0
000018d3: SHL
000018d4: SUB
000018d5: MUL
000018d6: NOT
000018d7: AND
000018d8: SWAP1
000018d9: DUP4
000018da: PUSH1 0x01
000018dc: PUSH1 0x01
000018de: PUSH1 0xa0
000018e0: SHL
000018e1: SUB
000018e2: AND
000018e3: MUL
000018e4: OR
000018e5: SWAP1
000018e6: SSTORE
000018e7: POP
000018e8: PUSH1 0x03
000018ea: DUP1
000018eb: SLOAD
000018ec: DUP1
000018ed: PUSH2 0x18f8
000018f0: JUMPI
000018f1: PUSH2 0x18f8
000018f4: PUSH2 0x2ac4
000018f7: JUMP
000018f8: JUMPDEST
000018f9: PUSH1 0x00
000018fb: DUP3
000018fc: DUP2
000018fd: MSTORE
000018fe: PUSH1 0x20
00001900: SWAP1
00001901: KECCAK256
00001902: DUP2
00001903: ADD
00001904: PUSH1 0x00
00001906: NOT
00001907: SWAP1
00001908: DUP2
00001909: ADD
0000190a: DUP1
0000190b: SLOAD
0000190c: PUSH1 0x01
0000190e: PUSH1 0x01
00001910: PUSH1 0xa0
00001912: SHL
00001913: SUB
00001914: NOT
00001915: AND
00001916: SWAP1
00001917: SSTORE
00001918: ADD
00001919: SWAP1
0000191a: SSTORE
0000191b: PUSH2 0x1931
0000191e: JUMP
0000191f: JUMPDEST
00001920: DUP1
00001921: PUSH2 0x1929
00001924: DUP2
00001925: PUSH2 0x2a73
00001928: JUMP
00001929: JUMPDEST
0000192a: SWAP2
0000192b: POP
0000192c: POP
0000192d: PUSH2 0x182b
00001930: JUMP
00001931: JUMPDEST
00001932: POP
00001933: PUSH1 0x03
00001935: SLOAD
00001936: PUSH1 0x04
00001938: SLOAD
00001939: GT
0000193a: ISZERO
0000193b: PUSH2 0x194a
0000193e: JUMPI
0000193f: PUSH1 0x03
00001941: SLOAD
00001942: PUSH2 0x194a
00001945: SWAP1
00001946: PUSH2 0x147f
00001949: JUMP
0000194a: JUMPDEST
0000194b: PUSH1 0x40
0000194d: MLOAD
0000194e: PUSH1 0x01
00001950: PUSH1 0x01
00001952: PUSH1 0xa0
00001954: SHL
00001955: SUB
00001956: DUP4
00001957: AND
00001958: SWAP1
00001959: PUSH32 0x8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b90
0000197a: SWAP1
0000197b: PUSH1 0x00
0000197d: SWAP1
0000197e: LOG2
0000197f: POP
00001980: POP
00001981: JUMP
00001982: JUMPDEST
00001983: CALLER
00001984: ADDRESS
00001985: EQ
00001986: PUSH2 0x198e
00001989: JUMPI
0000198a: PUSH1 0x00
0000198c: DUP1
0000198d: REVERT
0000198e: JUMPDEST
0000198f: PUSH1 0x01
00001991: PUSH1 0x01
00001993: PUSH1 0xa0
00001995: SHL
00001996: SUB
00001997: DUP2
00001998: AND
00001999: PUSH1 0x00
0000199b: SWAP1
0000199c: DUP2
0000199d: MSTORE
0000199e: PUSH1 0x02
000019a0: PUSH1 0x20
000019a2: MSTORE
000019a3: PUSH1 0x40
000019a5: SWAP1
000019a6: KECCAK256
000019a7: SLOAD
000019a8: DUP2
000019a9: SWAP1
000019aa: PUSH1 0xff
000019ac: AND
000019ad: ISZERO
000019ae: PUSH2 0x19b6
000019b1: JUMPI
000019b2: PUSH1 0x00
000019b4: DUP1
000019b5: REVERT
000019b6: JUMPDEST
000019b7: DUP2
000019b8: PUSH1 0x01
000019ba: PUSH1 0x01
000019bc: PUSH1 0xa0
000019be: SHL
000019bf: SUB
000019c0: DUP2
000019c1: AND
000019c2: PUSH2 0x19ca
000019c5: JUMPI
000019c6: PUSH1 0x00
000019c8: DUP1
000019c9: REVERT
000019ca: JUMPDEST
000019cb: PUSH1 0x03
000019cd: SLOAD
000019ce: PUSH2 0x19d8
000019d1: SWAP1
000019d2: PUSH1 0x01
000019d4: PUSH2 0x29df
000019d7: JUMP
000019d8: JUMPDEST
000019d9: PUSH1 0x04
000019db: SLOAD
000019dc: PUSH1 0x32
000019de: DUP3
000019df: GT
000019e0: ISZERO
000019e1: DUP1
000019e2: ISZERO
000019e3: PUSH2 0x19ec
000019e6: JUMPI
000019e7: POP
000019e8: DUP2
000019e9: DUP2
000019ea: GT
000019eb: ISZERO
000019ec: JUMPDEST
000019ed: DUP1
000019ee: ISZERO
000019ef: PUSH2 0x19f7
000019f2: JUMPI
000019f3: POP
000019f4: DUP1
000019f5: ISZERO
000019f6: ISZERO
000019f7: JUMPDEST
000019f8: DUP1
000019f9: ISZERO
000019fa: PUSH2 0x1a02
000019fd: JUMPI
000019fe: POP
000019ff: DUP2
00001a00: ISZERO
00001a01: ISZERO
00001a02: JUMPDEST
00001a03: PUSH2 0x1a0b
00001a06: JUMPI
00001a07: PUSH1 0x00
00001a09: DUP1
00001a0a: REVERT
00001a0b: JUMPDEST
00001a0c: PUSH1 0x01
00001a0e: PUSH1 0x01
00001a10: PUSH1 0xa0
00001a12: SHL
00001a13: SUB
00001a14: DUP6
00001a15: AND
00001a16: PUSH1 0x00
00001a18: DUP2
00001a19: DUP2
00001a1a: MSTORE
00001a1b: PUSH1 0x02
00001a1d: PUSH1 0x20
00001a1f: MSTORE
00001a20: PUSH1 0x40
00001a22: DUP1
00001a23: DUP3
00001a24: KECCAK256
00001a25: DUP1
00001a26: SLOAD
00001a27: PUSH1 0xff
00001a29: NOT
00001a2a: AND
00001a2b: PUSH1 0x01
00001a2d: SWAP1
00001a2e: DUP2
00001a2f: OR
00001a30: SWAP1
00001a31: SWAP2
00001a32: SSTORE
00001a33: PUSH1 0x03
00001a35: DUP1
00001a36: SLOAD
00001a37: SWAP2
00001a38: DUP3
00001a39: ADD
00001a3a: DUP2
00001a3b: SSTORE
00001a3c: DUP4
00001a3d: MSTORE
00001a3e: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b
00001a5f: ADD
00001a60: DUP1
00001a61: SLOAD
00001a62: PUSH1 0x01
00001a64: PUSH1 0x01
00001a66: PUSH1 0xa0
00001a68: SHL
00001a69: SUB
00001a6a: NOT
00001a6b: AND
00001a6c: DUP5
00001a6d: OR
00001a6e: SWAP1
00001a6f: SSTORE
00001a70: MLOAD
00001a71: PUSH32 0xf39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d
00001a92: SWAP2
00001a93: SWAP1
00001a94: LOG2
00001a95: POP
00001a96: POP
00001a97: POP
00001a98: POP
00001a99: POP
00001a9a: JUMP
00001a9b: JUMPDEST
00001a9c: DUP2
00001a9d: MLOAD
00001a9e: DUP2
00001a9f: PUSH1 0x32
00001aa1: DUP3
00001aa2: GT
00001aa3: ISZERO
00001aa4: DUP1
00001aa5: ISZERO
00001aa6: PUSH2 0x1aaf
00001aa9: JUMPI
00001aaa: POP
00001aab: DUP2
00001aac: DUP2
00001aad: GT
00001aae: ISZERO
00001aaf: JUMPDEST
00001ab0: DUP1
00001ab1: ISZERO
00001ab2: PUSH2 0x1aba
00001ab5: JUMPI
00001ab6: POP
00001ab7: DUP1
00001ab8: ISZERO
00001ab9: ISZERO
00001aba: JUMPDEST
00001abb: DUP1
00001abc: ISZERO
00001abd: PUSH2 0x1ac5
00001ac0: JUMPI
00001ac1: POP
00001ac2: DUP2
00001ac3: ISZERO
00001ac4: ISZERO
00001ac5: JUMPDEST
00001ac6: PUSH2 0x1ace
00001ac9: JUMPI
00001aca: PUSH1 0x00
00001acc: DUP1
00001acd: REVERT
00001ace: JUMPDEST
00001acf: PUSH1 0x04
00001ad1: SLOAD
00001ad2: ISZERO
00001ad3: PUSH2 0x1b07
00001ad6: JUMPI
00001ad7: PUSH1 0x40
00001ad9: MLOAD
00001ada: PUSH3 0x461bcd
00001ade: PUSH1 0xe5
00001ae0: SHL
00001ae1: DUP2
00001ae2: MSTORE
00001ae3: PUSH1 0x04
00001ae5: ADD
00001ae6: PUSH2 0x0756
00001ae9: SWAP1
00001aea: PUSH1 0x20
00001aec: DUP1
00001aed: DUP3
00001aee: MSTORE
00001aef: PUSH1 0x04
00001af1: SWAP1
00001af2: DUP3
00001af3: ADD
00001af4: MSTORE
00001af5: PUSH4 0x04d53303
00001afa: PUSH1 0xe4
00001afc: SHL
00001afd: PUSH1 0x40
00001aff: DUP3
00001b00: ADD
00001b01: MSTORE
00001b02: PUSH1 0x60
00001b04: ADD
00001b05: SWAP1
00001b06: JUMP
00001b07: JUMPDEST
00001b08: PUSH1 0x00
00001b0a: JUMPDEST
00001b0b: DUP5
00001b0c: MLOAD
00001b0d: DUP2
00001b0e: LT
00001b0f: ISZERO
00001b10: PUSH2 0x1bee
00001b13: JUMPI
00001b14: PUSH1 0x02
00001b16: PUSH1 0x00
00001b18: DUP7
00001b19: DUP4
00001b1a: DUP2
00001b1b: MLOAD
00001b1c: DUP2
00001b1d: LT
00001b1e: PUSH2 0x1b29
00001b21: JUMPI
00001b22: PUSH2 0x1b29
00001b25: PUSH2 0x2ada
00001b28: JUMP
00001b29: JUMPDEST
00001b2a: PUSH1 0x20
00001b2c: SWAP1
00001b2d: DUP2
00001b2e: MUL
00001b2f: SWAP2
00001b30: SWAP1
00001b31: SWAP2
00001b32: ADD
00001b33: DUP2
00001b34: ADD
00001b35: MLOAD
00001b36: PUSH1 0x01
00001b38: PUSH1 0x01
00001b3a: PUSH1 0xa0
00001b3c: SHL
00001b3d: SUB
00001b3e: AND
00001b3f: DUP3
00001b40: MSTORE
00001b41: DUP2
00001b42: ADD
00001b43: SWAP2
00001b44: SWAP1
00001b45: SWAP2
00001b46: MSTORE
00001b47: PUSH1 0x40
00001b49: ADD
00001b4a: PUSH1 0x00
00001b4c: KECCAK256
00001b4d: SLOAD
00001b4e: PUSH1 0xff
00001b50: AND
00001b51: ISZERO
00001b52: DUP1
00001b53: ISZERO
00001b54: PUSH2 0x1b89
00001b57: JUMPI
00001b58: POP
00001b59: PUSH1 0x00
00001b5b: PUSH1 0x01
00001b5d: PUSH1 0x01
00001b5f: PUSH1 0xa0
00001b61: SHL
00001b62: SUB
00001b63: AND
00001b64: DUP6
00001b65: DUP3
00001b66: DUP2
00001b67: MLOAD
00001b68: DUP2
00001b69: LT
00001b6a: PUSH2 0x1b75
00001b6d: JUMPI
00001b6e: PUSH2 0x1b75
00001b71: PUSH2 0x2ada
00001b74: JUMP
00001b75: JUMPDEST
00001b76: PUSH1 0x20
00001b78: MUL
00001b79: PUSH1 0x20
00001b7b: ADD
00001b7c: ADD
00001b7d: MLOAD
00001b7e: PUSH1 0x01
00001b80: PUSH1 0x01
00001b82: PUSH1 0xa0
00001b84: SHL
00001b85: SUB
00001b86: AND
00001b87: EQ
00001b88: ISZERO
00001b89: JUMPDEST
00001b8a: PUSH2 0x1b92
00001b8d: JUMPI
00001b8e: PUSH1 0x00
00001b90: DUP1
00001b91: REVERT
00001b92: JUMPDEST
00001b93: PUSH1 0x01
00001b95: PUSH1 0x02
00001b97: PUSH1 0x00
00001b99: DUP8
00001b9a: DUP5
00001b9b: DUP2
00001b9c: MLOAD
00001b9d: DUP2
00001b9e: LT
00001b9f: PUSH2 0x1baa
00001ba2: JUMPI
00001ba3: PUSH2 0x1baa
00001ba6: PUSH2 0x2ada
00001ba9: JUMP
00001baa: JUMPDEST
00001bab: PUSH1 0x20
00001bad: SWAP1
00001bae: DUP2
00001baf: MUL
00001bb0: SWAP2
00001bb1: SWAP1
00001bb2: SWAP2
00001bb3: ADD
00001bb4: DUP2
00001bb5: ADD
00001bb6: MLOAD
00001bb7: PUSH1 0x01
00001bb9: PUSH1 0x01
00001bbb: PUSH1 0xa0
00001bbd: SHL
00001bbe: SUB
00001bbf: AND
00001bc0: DUP3
00001bc1: MSTORE
00001bc2: DUP2
00001bc3: ADD
00001bc4: SWAP2
00001bc5: SWAP1
00001bc6: SWAP2
00001bc7: MSTORE
00001bc8: PUSH1 0x40
00001bca: ADD
00001bcb: PUSH1 0x00
00001bcd: KECCAK256
00001bce: DUP1
00001bcf: SLOAD
00001bd0: PUSH1 0xff
00001bd2: NOT
00001bd3: AND
00001bd4: SWAP2
00001bd5: ISZERO
00001bd6: ISZERO
00001bd7: SWAP2
00001bd8: SWAP1
00001bd9: SWAP2
00001bda: OR
00001bdb: SWAP1
00001bdc: SSTORE
00001bdd: DUP1
00001bde: PUSH2 0x1be6
00001be1: DUP2
00001be2: PUSH2 0x2a73
00001be5: JUMP
00001be6: JUMPDEST
00001be7: SWAP2
00001be8: POP
00001be9: POP
00001bea: PUSH2 0x1b0a
00001bed: JUMP
00001bee: JUMPDEST
00001bef: POP
00001bf0: DUP4
00001bf1: MLOAD
00001bf2: PUSH2 0x1c02
00001bf5: SWAP1
00001bf6: PUSH1 0x03
00001bf8: SWAP1
00001bf9: PUSH1 0x20
00001bfb: DUP8
00001bfc: ADD
00001bfd: SWAP1
00001bfe: PUSH2 0x2089
00001c01: JUMP
00001c02: JUMPDEST
00001c03: POP
00001c04: POP
00001c05: POP
00001c06: PUSH1 0x04
00001c08: SSTORE
00001c09: POP
00001c0a: JUMP
00001c0b: JUMPDEST
00001c0c: PUSH1 0x00
00001c0e: DUP4
00001c0f: PUSH1 0x01
00001c11: PUSH1 0x01
00001c13: PUSH1 0xa0
00001c15: SHL
00001c16: SUB
00001c17: DUP2
00001c18: AND
00001c19: PUSH2 0x1c21
00001c1c: JUMPI
00001c1d: PUSH1 0x00
00001c1f: DUP1
00001c20: REVERT
00001c21: JUMPDEST
00001c22: PUSH1 0x05
00001c24: SLOAD
00001c25: PUSH1 0x40
00001c27: DUP1
00001c28: MLOAD
00001c29: PUSH1 0x80
00001c2b: DUP2
00001c2c: ADD
00001c2d: DUP3
00001c2e: MSTORE
00001c2f: PUSH1 0x01
00001c31: PUSH1 0x01
00001c33: PUSH1 0xa0
00001c35: SHL
00001c36: SUB
00001c37: DUP9
00001c38: DUP2
00001c39: AND
00001c3a: DUP3
00001c3b: MSTORE
00001c3c: PUSH1 0x20
00001c3e: DUP1
00001c3f: DUP4
00001c40: ADD
00001c41: DUP10
00001c42: DUP2
00001c43: MSTORE
00001c44: DUP4
00001c45: DUP6
00001c46: ADD
00001c47: DUP10
00001c48: DUP2
00001c49: MSTORE
00001c4a: PUSH1 0x00
00001c4c: PUSH1 0x60
00001c4e: DUP7
00001c4f: ADD
00001c50: DUP2
00001c51: SWAP1
00001c52: MSTORE
00001c53: DUP8
00001c54: DUP2
00001c55: MSTORE
00001c56: DUP1
00001c57: DUP5
00001c58: MSTORE
00001c59: SWAP6
00001c5a: SWAP1
00001c5b: SWAP6
00001c5c: KECCAK256
00001c5d: DUP5
00001c5e: MLOAD
00001c5f: DUP2
00001c60: SLOAD
00001c61: PUSH1 0x01
00001c63: PUSH1 0x01
00001c65: PUSH1 0xa0
00001c67: SHL
00001c68: SUB
00001c69: NOT
00001c6a: AND
00001c6b: SWAP5
00001c6c: AND
00001c6d: SWAP4
00001c6e: SWAP1
00001c6f: SWAP4
00001c70: OR
00001c71: DUP4
00001c72: SSTORE
00001c73: MLOAD
00001c74: PUSH1 0x01
00001c76: DUP4
00001c77: ADD
00001c78: SSTORE
00001c79: SWAP3
00001c7a: MLOAD
00001c7b: DUP1
00001c7c: MLOAD
00001c7d: SWAP5
00001c7e: SWAP7
00001c7f: POP
00001c80: SWAP2
00001c81: SWAP4
00001c82: SWAP1
00001c83: SWAP3
00001c84: PUSH2 0x1c94
00001c87: SWAP3
00001c88: PUSH1 0x02
00001c8a: DUP6
00001c8b: ADD
00001c8c: SWAP3
00001c8d: SWAP2
00001c8e: ADD
00001c8f: SWAP1
00001c90: PUSH2 0x20ee
00001c93: JUMP
00001c94: JUMPDEST
00001c95: POP
00001c96: PUSH1 0x60
00001c98: SWAP2
00001c99: SWAP1
00001c9a: SWAP2
00001c9b: ADD
00001c9c: MLOAD
00001c9d: PUSH1 0x03
00001c9f: SWAP1
00001ca0: SWAP2
00001ca1: ADD
00001ca2: DUP1
00001ca3: SLOAD
00001ca4: PUSH1 0xff
00001ca6: NOT
00001ca7: AND
00001ca8: SWAP2
00001ca9: ISZERO
00001caa: ISZERO
00001cab: SWAP2
00001cac: SWAP1
00001cad: SWAP2
00001cae: OR
00001caf: SWAP1
00001cb0: SSTORE
00001cb1: PUSH1 0x05
00001cb3: DUP1
00001cb4: SLOAD
00001cb5: PUSH1 0x01
00001cb7: SWAP2
00001cb8: SWAP1
00001cb9: PUSH1 0x00
00001cbb: SWAP1
00001cbc: PUSH2 0x1cc6
00001cbf: SWAP1
00001cc0: DUP5
00001cc1: SWAP1
00001cc2: PUSH2 0x29df
00001cc5: JUMP
00001cc6: JUMPDEST
00001cc7: SWAP1
00001cc8: SWAP2
00001cc9: SSTORE
00001cca: POP
00001ccb: POP
00001ccc: PUSH1 0x40
00001cce: MLOAD
00001ccf: DUP3
00001cd0: SWAP1
00001cd1: PUSH32 0xc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e51
00001cf2: SWAP1
00001cf3: PUSH1 0x00
00001cf5: SWAP1
00001cf6: LOG2
00001cf7: POP
00001cf8: SWAP4
00001cf9: SWAP3
00001cfa: POP
00001cfb: POP
00001cfc: POP
00001cfd: JUMP
00001cfe: JUMPDEST
00001cff: DUP3
00001d00: SELFBALANCE
00001d01: LT
00001d02: ISZERO
00001d03: PUSH2 0x1d37
00001d06: JUMPI
00001d07: PUSH1 0x40
00001d09: MLOAD
00001d0a: PUSH3 0x461bcd
00001d0e: PUSH1 0xe5
00001d10: SHL
00001d11: DUP2
00001d12: MSTORE
00001d13: PUSH1 0x04
00001d15: ADD
00001d16: PUSH2 0x0756
00001d19: SWAP1
00001d1a: PUSH1 0x20
00001d1c: DUP1
00001d1d: DUP3
00001d1e: MSTORE
00001d1f: PUSH1 0x04
00001d21: SWAP1
00001d22: DUP3
00001d23: ADD
00001d24: MSTORE
00001d25: PUSH4 0x4d533037
00001d2a: PUSH1 0xe0
00001d2c: SHL
00001d2d: PUSH1 0x40
00001d2f: DUP3
00001d30: ADD
00001d31: MSTORE
00001d32: PUSH1 0x60
00001d34: ADD
00001d35: SWAP1
00001d36: JUMP
00001d37: JUMPDEST
00001d38: PUSH1 0x00
00001d3a: DUP1
00001d3b: DUP6
00001d3c: PUSH1 0x01
00001d3e: PUSH1 0x01
00001d40: PUSH1 0xa0
00001d42: SHL
00001d43: SUB
00001d44: AND
00001d45: DUP6
00001d46: DUP6
00001d47: PUSH1 0x40
00001d49: MLOAD
00001d4a: PUSH2 0x1d53
00001d4d: SWAP2
00001d4e: SWAP1
00001d4f: PUSH2 0x284b
00001d52: JUMP
00001d53: JUMPDEST
00001d54: PUSH1 0x00
00001d56: PUSH1 0x40
00001d58: MLOAD
00001d59: DUP1
00001d5a: DUP4
00001d5b: SUB
00001d5c: DUP2
00001d5d: DUP6
00001d5e: DUP8
00001d5f: GAS
00001d60: CALL
00001d61: SWAP3
00001d62: POP
00001d63: POP
00001d64: POP
00001d65: RETURNDATASIZE
00001d66: DUP1
00001d67: PUSH1 0x00
00001d69: DUP2
00001d6a: EQ
00001d6b: PUSH2 0x1d90
00001d6e: JUMPI
00001d6f: PUSH1 0x40
00001d71: MLOAD
00001d72: SWAP2
00001d73: POP
00001d74: PUSH1 0x1f
00001d76: NOT
00001d77: PUSH1 0x3f
00001d79: RETURNDATASIZE
00001d7a: ADD
00001d7b: AND
00001d7c: DUP3
00001d7d: ADD
00001d7e: PUSH1 0x40
00001d80: MSTORE
00001d81: RETURNDATASIZE
00001d82: DUP3
00001d83: MSTORE
00001d84: RETURNDATASIZE
00001d85: PUSH1 0x00
00001d87: PUSH1 0x20
00001d89: DUP5
00001d8a: ADD
00001d8b: RETURNDATACOPY
00001d8c: PUSH2 0x1d95
00001d8f: JUMP
00001d90: JUMPDEST
00001d91: PUSH1 0x60
00001d93: SWAP2
00001d94: POP
00001d95: JUMPDEST
00001d96: POP
00001d97: SWAP2
00001d98: POP
00001d99: SWAP2
00001d9a: POP
00001d9b: DUP2
00001d9c: ISZERO
00001d9d: PUSH2 0x1de8
00001da0: JUMPI
00001da1: PUSH1 0x00
00001da3: DUP4
00001da4: DUP2
00001da5: MSTORE
00001da6: PUSH1 0x20
00001da8: DUP2
00001da9: SWAP1
00001daa: MSTORE
00001dab: PUSH1 0x40
00001dad: DUP1
00001dae: DUP3
00001daf: KECCAK256
00001db0: PUSH1 0x03
00001db2: ADD
00001db3: DUP1
00001db4: SLOAD
00001db5: PUSH1 0xff
00001db7: NOT
00001db8: AND
00001db9: PUSH1 0x01
00001dbb: OR
00001dbc: SWAP1
00001dbd: SSTORE
00001dbe: MLOAD
00001dbf: DUP5
00001dc0: SWAP2
00001dc1: PUSH32 0x33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed75
00001de2: SWAP2
00001de3: LOG2
00001de4: PUSH2 0x177d
00001de7: JUMP
00001de8: JUMPDEST
00001de9: DUP1
00001dea: MLOAD
00001deb: ISZERO
00001dec: PUSH2 0x1df8
00001def: JUMPI
00001df0: DUP1
00001df1: MLOAD
00001df2: DUP1
00001df3: DUP3
00001df4: PUSH1 0x20
00001df6: ADD
00001df7: REVERT
00001df8: JUMPDEST
00001df9: PUSH1 0x40
00001dfb: MLOAD
00001dfc: PUSH3 0x461bcd
00001e00: PUSH1 0xe5
00001e02: SHL
00001e03: DUP2
00001e04: MSTORE
00001e05: PUSH1 0x04
00001e07: ADD
00001e08: PUSH2 0x0756
00001e0b: SWAP1
00001e0c: PUSH1 0x20
00001e0e: DUP1
00001e0f: DUP3
00001e10: MSTORE
00001e11: PUSH1 0x04
00001e13: SWAP1
00001e14: DUP3
00001e15: ADD
00001e16: MSTORE
00001e17: PUSH4 0x09aa6607
00001e1c: PUSH1 0xe3
00001e1e: SHL
00001e1f: PUSH1 0x40
00001e21: DUP3
00001e22: ADD
00001e23: MSTORE
00001e24: PUSH1 0x60
00001e26: ADD
00001e27: SWAP1
00001e28: JUMP
00001e29: JUMPDEST
00001e2a: CALLER
00001e2b: ADDRESS
00001e2c: EQ
00001e2d: PUSH2 0x1e35
00001e30: JUMPI
00001e31: PUSH1 0x00
00001e33: DUP1
00001e34: REVERT
00001e35: JUMPDEST
00001e36: PUSH1 0x03
00001e38: SLOAD
00001e39: DUP2
00001e3a: PUSH1 0x32
00001e3c: DUP3
00001e3d: GT
00001e3e: DUP1
00001e3f: ISZERO
00001e40: SWAP1
00001e41: PUSH2 0x1e4a
00001e44: JUMPI
00001e45: POP
00001e46: DUP2
00001e47: DUP2
00001e48: GT
00001e49: ISZERO
00001e4a: JUMPDEST
00001e4b: DUP1
00001e4c: ISZERO
00001e4d: PUSH2 0x1e55
00001e50: JUMPI
00001e51: POP
00001e52: DUP1
00001e53: ISZERO
00001e54: ISZERO
00001e55: JUMPDEST
00001e56: DUP1
00001e57: ISZERO
00001e58: PUSH2 0x1e60
00001e5b: JUMPI
00001e5c: POP
00001e5d: DUP2
00001e5e: ISZERO
00001e5f: ISZERO
00001e60: JUMPDEST
00001e61: PUSH2 0x1e69
00001e64: JUMPI
00001e65: PUSH1 0x00
00001e67: DUP1
00001e68: REVERT
00001e69: JUMPDEST
00001e6a: PUSH1 0x04
00001e6c: DUP4
00001e6d: SWAP1
00001e6e: SSTORE
00001e6f: PUSH1 0x40
00001e71: MLOAD
00001e72: DUP4
00001e73: DUP2
00001e74: MSTORE
00001e75: PUSH32 0xa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a
00001e96: SWAP1
00001e97: PUSH1 0x20
00001e99: ADD
00001e9a: PUSH1 0x40
00001e9c: MLOAD
00001e9d: DUP1
00001e9e: SWAP2
00001e9f: SUB
00001ea0: SWAP1
00001ea1: LOG1
00001ea2: POP
00001ea3: POP
00001ea4: POP
00001ea5: JUMP
00001ea6: JUMPDEST
00001ea7: CALLER
00001ea8: ADDRESS
00001ea9: EQ
00001eaa: PUSH2 0x1eb2
00001ead: JUMPI
00001eae: PUSH1 0x00
00001eb0: DUP1
00001eb1: REVERT
00001eb2: JUMPDEST
00001eb3: PUSH1 0x01
00001eb5: PUSH1 0x01
00001eb7: PUSH1 0xa0
00001eb9: SHL
00001eba: SUB
00001ebb: DUP3
00001ebc: AND
00001ebd: PUSH1 0x00
00001ebf: SWAP1
00001ec0: DUP2
00001ec1: MSTORE
00001ec2: PUSH1 0x02
00001ec4: PUSH1 0x20
00001ec6: MSTORE
00001ec7: PUSH1 0x40
00001ec9: SWAP1
00001eca: KECCAK256
00001ecb: SLOAD
00001ecc: DUP3
00001ecd: SWAP1
00001ece: PUSH1 0xff
00001ed0: AND
00001ed1: PUSH2 0x1ed9
00001ed4: JUMPI
00001ed5: PUSH1 0x00
00001ed7: DUP1
00001ed8: REVERT
00001ed9: JUMPDEST
00001eda: PUSH1 0x01
00001edc: PUSH1 0x01
00001ede: PUSH1 0xa0
00001ee0: SHL
00001ee1: SUB
00001ee2: DUP3
00001ee3: AND
00001ee4: PUSH1 0x00
00001ee6: SWAP1
00001ee7: DUP2
00001ee8: MSTORE
00001ee9: PUSH1 0x02
00001eeb: PUSH1 0x20
00001eed: MSTORE
00001eee: PUSH1 0x40
00001ef0: SWAP1
00001ef1: KECCAK256
00001ef2: SLOAD
00001ef3: DUP3
00001ef4: SWAP1
00001ef5: PUSH1 0xff
00001ef7: AND
00001ef8: ISZERO
00001ef9: PUSH2 0x1f01
00001efc: JUMPI
00001efd: PUSH1 0x00
00001eff: DUP1
00001f00: REVERT
00001f01: JUMPDEST
00001f02: PUSH1 0x00
00001f04: JUMPDEST
00001f05: PUSH1 0x03
00001f07: SLOAD
00001f08: DUP2
00001f09: LT
00001f0a: ISZERO
00001f0b: PUSH2 0x1f9f
00001f0e: JUMPI
00001f0f: DUP5
00001f10: PUSH1 0x01
00001f12: PUSH1 0x01
00001f14: PUSH1 0xa0
00001f16: SHL
00001f17: SUB
00001f18: AND
00001f19: PUSH1 0x03
00001f1b: DUP3
00001f1c: DUP2
00001f1d: SLOAD
00001f1e: DUP2
00001f1f: LT
00001f20: PUSH2 0x1f2b
00001f23: JUMPI
00001f24: PUSH2 0x1f2b
00001f27: PUSH2 0x2ada
00001f2a: JUMP
00001f2b: JUMPDEST
00001f2c: PUSH1 0x00
00001f2e: SWAP2
00001f2f: DUP3
00001f30: MSTORE
00001f31: PUSH1 0x20
00001f33: SWAP1
00001f34: SWAP2
00001f35: KECCAK256
00001f36: ADD
00001f37: SLOAD
00001f38: PUSH1 0x01
00001f3a: PUSH1 0x01
00001f3c: PUSH1 0xa0
00001f3e: SHL
00001f3f: SUB
00001f40: AND
00001f41: EQ
00001f42: ISZERO
00001f43: PUSH2 0x1f8d
00001f46: JUMPI
00001f47: DUP4
00001f48: PUSH1 0x03
00001f4a: DUP3
00001f4b: DUP2
00001f4c: SLOAD
00001f4d: DUP2
00001f4e: LT
00001f4f: PUSH2 0x1f5a
00001f52: JUMPI
00001f53: PUSH2 0x1f5a
00001f56: PUSH2 0x2ada
00001f59: JUMP
00001f5a: JUMPDEST
00001f5b: SWAP1
00001f5c: PUSH1 0x00
00001f5e: MSTORE
00001f5f: PUSH1 0x20
00001f61: PUSH1 0x00
00001f63: KECCAK256
00001f64: ADD
00001f65: PUSH1 0x00
00001f67: PUSH2 0x0100
00001f6a: EXP
00001f6b: DUP2
00001f6c: SLOAD
00001f6d: DUP2
00001f6e: PUSH1 0x01
00001f70: PUSH1 0x01
00001f72: PUSH1 0xa0
00001f74: SHL
00001f75: SUB
00001f76: MUL
00001f77: NOT
00001f78: AND
00001f79: SWAP1
00001f7a: DUP4
00001f7b: PUSH1 0x01
00001f7d: PUSH1 0x01
00001f7f: PUSH1 0xa0
00001f81: SHL
00001f82: SUB
00001f83: AND
00001f84: MUL
00001f85: OR
00001f86: SWAP1
00001f87: SSTORE
00001f88: POP
00001f89: PUSH2 0x1f9f
00001f8c: JUMP
00001f8d: JUMPDEST
00001f8e: DUP1
00001f8f: PUSH2 0x1f97
00001f92: DUP2
00001f93: PUSH2 0x2a73
00001f96: JUMP
00001f97: JUMPDEST
00001f98: SWAP2
00001f99: POP
00001f9a: POP
00001f9b: PUSH2 0x1f04
00001f9e: JUMP
00001f9f: JUMPDEST
00001fa0: POP
00001fa1: PUSH1 0x01
00001fa3: PUSH1 0x01
00001fa5: PUSH1 0xa0
00001fa7: SHL
00001fa8: SUB
00001fa9: DUP1
00001faa: DUP6
00001fab: AND
00001fac: PUSH1 0x00
00001fae: DUP2
00001faf: DUP2
00001fb0: MSTORE
00001fb1: PUSH1 0x02
00001fb3: PUSH1 0x20
00001fb5: MSTORE
00001fb6: PUSH1 0x40
00001fb8: DUP1
00001fb9: DUP3
00001fba: KECCAK256
00001fbb: DUP1
00001fbc: SLOAD
00001fbd: PUSH1 0xff
00001fbf: NOT
00001fc0: SWAP1
00001fc1: DUP2
00001fc2: AND
00001fc3: SWAP1
00001fc4: SWAP2
00001fc5: SSTORE
00001fc6: SWAP4
00001fc7: DUP8
00001fc8: AND
00001fc9: DUP3
00001fca: MSTORE
00001fcb: DUP1
00001fcc: DUP3
00001fcd: KECCAK256
00001fce: DUP1
00001fcf: SLOAD
00001fd0: SWAP1
00001fd1: SWAP5
00001fd2: AND
00001fd3: PUSH1 0x01
00001fd5: OR
00001fd6: SWAP1
00001fd7: SWAP4
00001fd8: SSTORE
00001fd9: SWAP2
00001fda: MLOAD
00001fdb: SWAP1
00001fdc: SWAP2
00001fdd: PUSH32 0x8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b90
00001ffe: SWAP2
00001fff: LOG2
00002000: PUSH1 0x40
00002002: MLOAD
00002003: PUSH1 0x01
00002005: PUSH1 0x01
00002007: PUSH1 0xa0
00002009: SHL
0000200a: SUB
0000200b: DUP5
0000200c: AND
0000200d: SWAP1
0000200e: PUSH32 0xf39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d
0000202f: SWAP1
00002030: PUSH1 0x00
00002032: SWAP1
00002033: LOG2
00002034: POP
00002035: POP
00002036: POP
00002037: POP
00002038: JUMP
00002039: JUMPDEST
0000203a: PUSH1 0x00
0000203c: DUP1
0000203d: PUSH1 0x00
0000203f: PUSH2 0x8796
00002042: GAS
00002043: PUSH2 0x204c
00002046: SWAP2
00002047: SWAP1
00002048: PUSH2 0x29f7
0000204b: JUMP
0000204c: JUMPDEST
0000204d: SWAP1
0000204e: POP
0000204f: PUSH1 0x40
00002051: MLOAD
00002052: PUSH1 0x20
00002054: DUP6
00002055: ADD
00002056: PUSH1 0x00
00002058: DUP3
00002059: DUP9
0000205a: DUP4
0000205b: DUP12
0000205c: DUP14
0000205d: DUP9
0000205e: CALL
0000205f: SWAP10
00002060: SWAP9
00002061: POP
00002062: POP
00002063: POP
00002064: POP
00002065: POP
00002066: POP
00002067: POP
00002068: POP
00002069: POP
0000206a: JUMP
0000206b: JUMPDEST
0000206c: PUSH1 0x40
0000206e: MLOAD
0000206f: DUP1
00002070: PUSH1 0x60
00002072: ADD
00002073: PUSH1 0x40
00002075: MSTORE
00002076: DUP1
00002077: PUSH1 0x03
00002079: SWAP1
0000207a: PUSH1 0x20
0000207c: DUP3
0000207d: MUL
0000207e: DUP1
0000207f: CALLDATASIZE
00002080: DUP4
00002081: CALLDATACOPY
00002082: POP
00002083: SWAP2
00002084: SWAP3
00002085: SWAP2
00002086: POP
00002087: POP
00002088: JUMP
00002089: JUMPDEST
0000208a: DUP3
0000208b: DUP1
0000208c: SLOAD
0000208d: DUP3
0000208e: DUP3
0000208f: SSTORE
00002090: SWAP1
00002091: PUSH1 0x00
00002093: MSTORE
00002094: PUSH1 0x20
00002096: PUSH1 0x00
00002098: KECCAK256
00002099: SWAP1
0000209a: DUP2
0000209b: ADD
0000209c: SWAP3
0000209d: DUP3
0000209e: ISZERO
0000209f: PUSH2 0x20de
000020a2: JUMPI
000020a3: SWAP2
000020a4: PUSH1 0x20
000020a6: MUL
000020a7: DUP3
000020a8: ADD
000020a9: JUMPDEST
000020aa: DUP3
000020ab: DUP2
000020ac: GT
000020ad: ISZERO
000020ae: PUSH2 0x20de
000020b1: JUMPI
000020b2: DUP3
000020b3: MLOAD
000020b4: DUP3
000020b5: SLOAD
000020b6: PUSH1 0x01
000020b8: PUSH1 0x01
000020ba: PUSH1 0xa0
000020bc: SHL
000020bd: SUB
000020be: NOT
000020bf: AND
000020c0: PUSH1 0x01
000020c2: PUSH1 0x01
000020c4: PUSH1 0xa0
000020c6: SHL
000020c7: SUB
000020c8: SWAP1
000020c9: SWAP2
000020ca: AND
000020cb: OR
000020cc: DUP3
000020cd: SSTORE
000020ce: PUSH1 0x20
000020d0: SWAP1
000020d1: SWAP3
000020d2: ADD
000020d3: SWAP2
000020d4: PUSH1 0x01
000020d6: SWAP1
000020d7: SWAP2
000020d8: ADD
000020d9: SWAP1
000020da: PUSH2 0x20a9
000020dd: JUMP
000020de: JUMPDEST
000020df: POP
000020e0: PUSH2 0x20ea
000020e3: SWAP3
000020e4: SWAP2
000020e5: POP
000020e6: PUSH2 0x2162
000020e9: JUMP
000020ea: JUMPDEST
000020eb: POP
000020ec: SWAP1
000020ed: JUMP
000020ee: JUMPDEST
000020ef: DUP3
000020f0: DUP1
000020f1: SLOAD
000020f2: PUSH2 0x20fa
000020f5: SWAP1
000020f6: PUSH2 0x2a3e
000020f9: JUMP
000020fa: JUMPDEST
000020fb: SWAP1
000020fc: PUSH1 0x00
000020fe: MSTORE
000020ff: PUSH1 0x20
00002101: PUSH1 0x00
00002103: KECCAK256
00002104: SWAP1
00002105: PUSH1 0x1f
00002107: ADD
00002108: PUSH1 0x20
0000210a: SWAP1
0000210b: DIV
0000210c: DUP2
0000210d: ADD
0000210e: SWAP3
0000210f: DUP3
00002110: PUSH2 0x211c
00002113: JUMPI
00002114: PUSH1 0x00
00002116: DUP6
00002117: SSTORE
00002118: PUSH2 0x20de
0000211b: JUMP
0000211c: JUMPDEST
0000211d: DUP3
0000211e: PUSH1 0x1f
00002120: LT
00002121: PUSH2 0x2135
00002124: JUMPI
00002125: DUP1
00002126: MLOAD
00002127: PUSH1 0xff
00002129: NOT
0000212a: AND
0000212b: DUP4
0000212c: DUP1
0000212d: ADD
0000212e: OR
0000212f: DUP6
00002130: SSTORE
00002131: PUSH2 0x20de
00002134: JUMP
00002135: JUMPDEST
00002136: DUP3
00002137: DUP1
00002138: ADD
00002139: PUSH1 0x01
0000213b: ADD
0000213c: DUP6
0000213d: SSTORE
0000213e: DUP3
0000213f: ISZERO
00002140: PUSH2 0x20de
00002143: JUMPI
00002144: SWAP2
00002145: DUP3
00002146: ADD
00002147: JUMPDEST
00002148: DUP3
00002149: DUP2
0000214a: GT
0000214b: ISZERO
0000214c: PUSH2 0x20de
0000214f: JUMPI
00002150: DUP3
00002151: MLOAD
00002152: DUP3
00002153: SSTORE
00002154: SWAP2
00002155: PUSH1 0x20
00002157: ADD
00002158: SWAP2
00002159: SWAP1
0000215a: PUSH1 0x01
0000215c: ADD
0000215d: SWAP1
0000215e: PUSH2 0x2147
00002161: JUMP
00002162: JUMPDEST
00002163: JUMPDEST
00002164: DUP1
00002165: DUP3
00002166: GT
00002167: ISZERO
00002168: PUSH2 0x20ea
0000216b: JUMPI
0000216c: PUSH1 0x00
0000216e: DUP2
0000216f: SSTORE
00002170: PUSH1 0x01
00002172: ADD
00002173: PUSH2 0x2163
00002176: JUMP
00002177: JUMPDEST
00002178: DUP1
00002179: CALLDATALOAD
0000217a: PUSH1 0x01
0000217c: PUSH1 0x01
0000217e: PUSH1 0xa0
00002180: SHL
00002181: SUB
00002182: DUP2
00002183: AND
00002184: DUP2
00002185: EQ
00002186: PUSH2 0x218e
00002189: JUMPI
0000218a: PUSH1 0x00
0000218c: DUP1
0000218d: REVERT
0000218e: JUMPDEST
0000218f: SWAP2
00002190: SWAP1
00002191: POP
00002192: JUMP
00002193: JUMPDEST
00002194: PUSH1 0x00
00002196: DUP3
00002197: PUSH1 0x1f
00002199: DUP4
0000219a: ADD
0000219b: SLT
0000219c: PUSH2 0x21a4
0000219f: JUMPI
000021a0: PUSH1 0x00
000021a2: DUP1
000021a3: REVERT
000021a4: JUMPDEST
000021a5: DUP2
000021a6: CALLDATALOAD
000021a7: PUSH1 0x20
000021a9: PUSH2 0x21b9
000021ac: PUSH2 0x21b4
000021af: DUP4
000021b0: PUSH2 0x29bc
000021b3: JUMP
000021b4: JUMPDEST
000021b5: PUSH2 0x298c
000021b8: JUMP
000021b9: JUMPDEST
000021ba: DUP1
000021bb: DUP4
000021bc: DUP3
000021bd: MSTORE
000021be: DUP3
000021bf: DUP3
000021c0: ADD
000021c1: SWAP2
000021c2: POP
000021c3: DUP3
000021c4: DUP7
000021c5: ADD
000021c6: DUP8
000021c7: DUP5
000021c8: DUP7
000021c9: PUSH1 0x05
000021cb: SHL
000021cc: DUP10
000021cd: ADD
000021ce: ADD
000021cf: GT
000021d0: ISZERO
000021d1: PUSH2 0x21d9
000021d4: JUMPI
000021d5: PUSH1 0x00
000021d7: DUP1
000021d8: REVERT
000021d9: JUMPDEST
000021da: PUSH1 0x00
000021dc: JUMPDEST
000021dd: DUP6
000021de: DUP2
000021df: LT
000021e0: ISZERO
000021e1: PUSH2 0x21f8
000021e4: JUMPI
000021e5: DUP2
000021e6: CALLDATALOAD
000021e7: DUP5
000021e8: MSTORE
000021e9: SWAP3
000021ea: DUP5
000021eb: ADD
000021ec: SWAP3
000021ed: SWAP1
000021ee: DUP5
000021ef: ADD
000021f0: SWAP1
000021f1: PUSH1 0x01
000021f3: ADD
000021f4: PUSH2 0x21dc
000021f7: JUMP
000021f8: JUMPDEST
000021f9: POP
000021fa: SWAP1
000021fb: SWAP8
000021fc: SWAP7
000021fd: POP
000021fe: POP
000021ff: POP
00002200: POP
00002201: POP
00002202: POP
00002203: POP
00002204: JUMP
00002205: JUMPDEST
00002206: PUSH1 0x00
00002208: DUP1
00002209: DUP4
0000220a: PUSH1 0x1f
0000220c: DUP5
0000220d: ADD
0000220e: SLT
0000220f: PUSH2 0x2217
00002212: JUMPI
00002213: PUSH1 0x00
00002215: DUP1
00002216: REVERT
00002217: JUMPDEST
00002218: POP
00002219: DUP2
0000221a: CALLDATALOAD
0000221b: PUSH1 0x01
0000221d: PUSH1 0x01
0000221f: PUSH1 0x40
00002221: SHL
00002222: SUB
00002223: DUP2
00002224: GT
00002225: ISZERO
00002226: PUSH2 0x222e
00002229: JUMPI
0000222a: PUSH1 0x00
0000222c: DUP1
0000222d: REVERT
0000222e: JUMPDEST
0000222f: PUSH1 0x20
00002231: DUP4
00002232: ADD
00002233: SWAP2
00002234: POP
00002235: DUP4
00002236: PUSH1 0x20
00002238: DUP3
00002239: PUSH1 0x05
0000223b: SHL
0000223c: DUP6
0000223d: ADD
0000223e: ADD
0000223f: GT
00002240: ISZERO
00002241: PUSH2 0x2249
00002244: JUMPI
00002245: PUSH1 0x00
00002247: DUP1
00002248: REVERT
00002249: JUMPDEST
0000224a: SWAP3
0000224b: POP
0000224c: SWAP3
0000224d: SWAP1
0000224e: POP
0000224f: JUMP
00002250: JUMPDEST
00002251: PUSH1 0x00
00002253: DUP3
00002254: PUSH1 0x1f
00002256: DUP4
00002257: ADD
00002258: SLT
00002259: PUSH2 0x2261
0000225c: JUMPI
0000225d: PUSH1 0x00
0000225f: DUP1
00002260: REVERT
00002261: JUMPDEST
00002262: DUP2
00002263: CALLDATALOAD
00002264: PUSH1 0x20
00002266: PUSH2 0x2271
00002269: PUSH2 0x21b4
0000226c: DUP4
0000226d: PUSH2 0x29bc
00002270: JUMP
00002271: JUMPDEST
00002272: DUP1
00002273: DUP4
00002274: DUP3
00002275: MSTORE
00002276: DUP3
00002277: DUP3
00002278: ADD
00002279: SWAP2
0000227a: POP
0000227b: DUP3
0000227c: DUP7
0000227d: ADD
0000227e: DUP8
0000227f: DUP5
00002280: DUP7
00002281: PUSH1 0x05
00002283: SHL
00002284: DUP10
00002285: ADD
00002286: ADD
00002287: GT
00002288: ISZERO
00002289: PUSH2 0x2291
0000228c: JUMPI
0000228d: PUSH1 0x00
0000228f: DUP1
00002290: REVERT
00002291: JUMPDEST
00002292: PUSH1 0x00
00002294: DUP1
00002295: JUMPDEST
00002296: DUP7
00002297: DUP2
00002298: LT
00002299: ISZERO
0000229a: PUSH2 0x22bf
0000229d: JUMPI
0000229e: DUP3
0000229f: CALLDATALOAD
000022a0: PUSH1 0xff
000022a2: DUP2
000022a3: AND
000022a4: DUP2
000022a5: EQ
000022a6: PUSH2 0x22ad
000022a9: JUMPI
000022aa: DUP3
000022ab: DUP4
000022ac: REVERT
000022ad: JUMPDEST
000022ae: DUP6
000022af: MSTORE
000022b0: SWAP4
000022b1: DUP6
000022b2: ADD
000022b3: SWAP4
000022b4: SWAP2
000022b5: DUP6
000022b6: ADD
000022b7: SWAP2
000022b8: PUSH1 0x01
000022ba: ADD
000022bb: PUSH2 0x2295
000022be: JUMP
000022bf: JUMPDEST
000022c0: POP
000022c1: SWAP2
000022c2: SWAP9
000022c3: SWAP8
000022c4: POP
000022c5: POP
000022c6: POP
000022c7: POP
000022c8: POP
000022c9: POP
000022ca: POP
000022cb: POP
000022cc: JUMP
000022cd: JUMPDEST
000022ce: DUP1
000022cf: CALLDATALOAD
000022d0: DUP1
000022d1: ISZERO
000022d2: ISZERO
000022d3: DUP2
000022d4: EQ
000022d5: PUSH2 0x218e
000022d8: JUMPI
000022d9: PUSH1 0x00
000022db: DUP1
000022dc: REVERT
000022dd: JUMPDEST
000022de: DUP1
000022df: CALLDATALOAD
000022e0: PUSH1 0x01
000022e2: PUSH1 0x01
000022e4: PUSH1 0xe0
000022e6: SHL
000022e7: SUB
000022e8: NOT
000022e9: DUP2
000022ea: AND
000022eb: DUP2
000022ec: EQ
000022ed: PUSH2 0x218e
000022f0: JUMPI
000022f1: PUSH1 0x00
000022f3: DUP1
000022f4: REVERT
000022f5: JUMPDEST
000022f6: PUSH1 0x00
000022f8: DUP1
000022f9: DUP4
000022fa: PUSH1 0x1f
000022fc: DUP5
000022fd: ADD
000022fe: SLT
000022ff: PUSH2 0x2307
00002302: JUMPI
00002303: PUSH1 0x00
00002305: DUP1
00002306: REVERT
00002307: JUMPDEST
00002308: POP
00002309: DUP2
0000230a: CALLDATALOAD
0000230b: PUSH1 0x01
0000230d: PUSH1 0x01
0000230f: PUSH1 0x40
00002311: SHL
00002312: SUB
00002313: DUP2
00002314: GT
00002315: ISZERO
00002316: PUSH2 0x231e
00002319: JUMPI
0000231a: PUSH1 0x00
0000231c: DUP1
0000231d: REVERT
0000231e: JUMPDEST
0000231f: PUSH1 0x20
00002321: DUP4
00002322: ADD
00002323: SWAP2
00002324: POP
00002325: DUP4
00002326: PUSH1 0x20
00002328: DUP3
00002329: DUP6
0000232a: ADD
0000232b: ADD
0000232c: GT
0000232d: ISZERO
0000232e: PUSH2 0x2249
00002331: JUMPI
00002332: PUSH1 0x00
00002334: DUP1
00002335: REVERT
00002336: JUMPDEST
00002337: PUSH1 0x00
00002339: DUP3
0000233a: PUSH1 0x1f
0000233c: DUP4
0000233d: ADD
0000233e: SLT
0000233f: PUSH2 0x2347
00002342: JUMPI
00002343: PUSH1 0x00
00002345: DUP1
00002346: REVERT
00002347: JUMPDEST
00002348: DUP2
00002349: CALLDATALOAD
0000234a: PUSH1 0x01
0000234c: PUSH1 0x01
0000234e: PUSH1 0x40
00002350: SHL
00002351: SUB
00002352: DUP2
00002353: GT
00002354: ISZERO
00002355: PUSH2 0x2360
00002358: JUMPI
00002359: PUSH2 0x2360
0000235c: PUSH2 0x2af0
0000235f: JUMP
00002360: JUMPDEST
00002361: PUSH2 0x2373
00002364: PUSH1 0x1f
00002366: DUP3
00002367: ADD
00002368: PUSH1 0x1f
0000236a: NOT
0000236b: AND
0000236c: PUSH1 0x20
0000236e: ADD
0000236f: PUSH2 0x298c
00002372: JUMP
00002373: JUMPDEST
00002374: DUP2
00002375: DUP2
00002376: MSTORE
00002377: DUP5
00002378: PUSH1 0x20
0000237a: DUP4
0000237b: DUP7
0000237c: ADD
0000237d: ADD
0000237e: GT
0000237f: ISZERO
00002380: PUSH2 0x2388
00002383: JUMPI
00002384: PUSH1 0x00
00002386: DUP1
00002387: REVERT
00002388: JUMPDEST
00002389: DUP2
0000238a: PUSH1 0x20
0000238c: DUP6
0000238d: ADD
0000238e: PUSH1 0x20
00002390: DUP4
00002391: ADD
00002392: CALLDATACOPY
00002393: PUSH1 0x00
00002395: SWAP2
00002396: DUP2
00002397: ADD
00002398: PUSH1 0x20
0000239a: ADD
0000239b: SWAP2
0000239c: SWAP1
0000239d: SWAP2
0000239e: MSTORE
0000239f: SWAP4
000023a0: SWAP3
000023a1: POP
000023a2: POP
000023a3: POP
000023a4: JUMP
000023a5: JUMPDEST
000023a6: PUSH1 0x00
000023a8: PUSH1 0x20
000023aa: DUP3
000023ab: DUP5
000023ac: SUB
000023ad: SLT
000023ae: ISZERO
000023af: PUSH2 0x23b7
000023b2: JUMPI
000023b3: PUSH1 0x00
000023b5: DUP1
000023b6: REVERT
000023b7: JUMPDEST
000023b8: PUSH2 0x158a
000023bb: DUP3
000023bc: PUSH2 0x2177
000023bf: JUMP
000023c0: JUMPDEST
000023c1: PUSH1 0x00
000023c3: DUP1
000023c4: PUSH1 0x40
000023c6: DUP4
000023c7: DUP6
000023c8: SUB
000023c9: SLT
000023ca: ISZERO
000023cb: PUSH2 0x23d3
000023ce: JUMPI
000023cf: PUSH1 0x00
000023d1: DUP1
000023d2: REVERT
000023d3: JUMPDEST
000023d4: PUSH2 0x23dc
000023d7: DUP4
000023d8: PUSH2 0x2177
000023db: JUMP
000023dc: JUMPDEST
000023dd: SWAP2
000023de: POP
000023df: PUSH2 0x23ea
000023e2: PUSH1 0x20
000023e4: DUP5
000023e5: ADD
000023e6: PUSH2 0x2177
000023e9: JUMP
000023ea: JUMPDEST
000023eb: SWAP1
000023ec: POP
000023ed: SWAP3
000023ee: POP
000023ef: SWAP3
000023f0: SWAP1
000023f1: POP
000023f2: JUMP
000023f3: JUMPDEST
000023f4: PUSH1 0x00
000023f6: DUP1
000023f7: PUSH1 0x00
000023f9: DUP1
000023fa: PUSH1 0x00
000023fc: DUP1
000023fd: PUSH1 0x00
000023ff: DUP1
00002400: PUSH1 0xa0
00002402: DUP10
00002403: DUP12
00002404: SUB
00002405: SLT
00002406: ISZERO
00002407: PUSH2 0x240f
0000240a: JUMPI
0000240b: PUSH1 0x00
0000240d: DUP1
0000240e: REVERT
0000240f: JUMPDEST
00002410: PUSH2 0x2418
00002413: DUP10
00002414: PUSH2 0x2177
00002417: JUMP
00002418: JUMPDEST
00002419: SWAP8
0000241a: POP
0000241b: PUSH2 0x2426
0000241e: PUSH1 0x20
00002420: DUP11
00002421: ADD
00002422: PUSH2 0x2177
00002425: JUMP
00002426: JUMPDEST
00002427: SWAP7
00002428: POP
00002429: PUSH1 0x40
0000242b: DUP10
0000242c: ADD
0000242d: CALLDATALOAD
0000242e: PUSH1 0x01
00002430: PUSH1 0x01
00002432: PUSH1 0x40
00002434: SHL
00002435: SUB
00002436: DUP1
00002437: DUP3
00002438: GT
00002439: ISZERO
0000243a: PUSH2 0x2442
0000243d: JUMPI
0000243e: PUSH1 0x00
00002440: DUP1
00002441: REVERT
00002442: JUMPDEST
00002443: PUSH2 0x244e
00002446: DUP13
00002447: DUP4
00002448: DUP14
00002449: ADD
0000244a: PUSH2 0x2205
0000244d: JUMP
0000244e: JUMPDEST
0000244f: SWAP1
00002450: SWAP9
00002451: POP
00002452: SWAP7
00002453: POP
00002454: PUSH1 0x60
00002456: DUP12
00002457: ADD
00002458: CALLDATALOAD
00002459: SWAP2
0000245a: POP
0000245b: DUP1
0000245c: DUP3
0000245d: GT
0000245e: ISZERO
0000245f: PUSH2 0x2467
00002462: JUMPI
00002463: PUSH1 0x00
00002465: DUP1
00002466: REVERT
00002467: JUMPDEST
00002468: PUSH2 0x2473
0000246b: DUP13
0000246c: DUP4
0000246d: DUP14
0000246e: ADD
0000246f: PUSH2 0x2205
00002472: JUMP
00002473: JUMPDEST
00002474: SWAP1
00002475: SWAP7
00002476: POP
00002477: SWAP5
00002478: POP
00002479: PUSH1 0x80
0000247b: DUP12
0000247c: ADD
0000247d: CALLDATALOAD
0000247e: SWAP2
0000247f: POP
00002480: DUP1
00002481: DUP3
00002482: GT
00002483: ISZERO
00002484: PUSH2 0x248c
00002487: JUMPI
00002488: PUSH1 0x00
0000248a: DUP1
0000248b: REVERT
0000248c: JUMPDEST
0000248d: POP
0000248e: PUSH2 0x2499
00002491: DUP12
00002492: DUP3
00002493: DUP13
00002494: ADD
00002495: PUSH2 0x22f5
00002498: JUMP
00002499: JUMPDEST
0000249a: SWAP10
0000249b: SWAP13
0000249c: SWAP9
0000249d: SWAP12
0000249e: POP
0000249f: SWAP7
000024a0: SWAP10
000024a1: POP
000024a2: SWAP5
000024a3: SWAP8
000024a4: SWAP4
000024a5: SWAP7
000024a6: SWAP3
000024a7: SWAP6
000024a8: SWAP5
000024a9: POP
000024aa: POP
000024ab: POP
000024ac: JUMP
000024ad: JUMPDEST
000024ae: PUSH1 0x00
000024b0: DUP1
000024b1: PUSH1 0x00
000024b3: DUP1
000024b4: PUSH1 0x80
000024b6: DUP6
000024b7: DUP8
000024b8: SUB
000024b9: SLT
000024ba: ISZERO
000024bb: PUSH2 0x24c3
000024be: JUMPI
000024bf: PUSH1 0x00
000024c1: DUP1
000024c2: REVERT
000024c3: JUMPDEST
000024c4: PUSH2 0x24cc
000024c7: DUP6
000024c8: PUSH2 0x2177
000024cb: JUMP
000024cc: JUMPDEST
000024cd: SWAP4
000024ce: POP
000024cf: PUSH2 0x24da
000024d2: PUSH1 0x20
000024d4: DUP7
000024d5: ADD
000024d6: PUSH2 0x2177
000024d9: JUMP
000024da: JUMPDEST
000024db: SWAP3
000024dc: POP
000024dd: PUSH1 0x40
000024df: DUP6
000024e0: ADD
000024e1: CALLDATALOAD
000024e2: SWAP2
000024e3: POP
000024e4: PUSH1 0x60
000024e6: DUP6
000024e7: ADD
000024e8: CALLDATALOAD
000024e9: PUSH1 0x01
000024eb: PUSH1 0x01
000024ed: PUSH1 0x40
000024ef: SHL
000024f0: SUB
000024f1: DUP2
000024f2: GT
000024f3: ISZERO
000024f4: PUSH2 0x24fc
000024f7: JUMPI
000024f8: PUSH1 0x00
000024fa: DUP1
000024fb: REVERT
000024fc: JUMPDEST
000024fd: PUSH2 0x2508
00002500: DUP8
00002501: DUP3
00002502: DUP9
00002503: ADD
00002504: PUSH2 0x2336
00002507: JUMP
00002508: JUMPDEST
00002509: SWAP2
0000250a: POP
0000250b: POP
0000250c: SWAP3
0000250d: SWAP6
0000250e: SWAP2
0000250f: SWAP5
00002510: POP
00002511: SWAP3
00002512: POP
00002513: JUMP
00002514: JUMPDEST
00002515: PUSH1 0x00
00002517: DUP1
00002518: PUSH1 0x00
0000251a: DUP1
0000251b: PUSH1 0x00
0000251d: DUP1
0000251e: PUSH1 0xa0
00002520: DUP8
00002521: DUP10
00002522: SUB
00002523: SLT
00002524: ISZERO
00002525: PUSH2 0x252d
00002528: JUMPI
00002529: PUSH1 0x00
0000252b: DUP1
0000252c: REVERT
0000252d: JUMPDEST
0000252e: PUSH2 0x2536
00002531: DUP8
00002532: PUSH2 0x2177
00002535: JUMP
00002536: JUMPDEST
00002537: SWAP6
00002538: POP
00002539: PUSH2 0x2544
0000253c: PUSH1 0x20
0000253e: DUP9
0000253f: ADD
00002540: PUSH2 0x2177
00002543: JUMP
00002544: JUMPDEST
00002545: SWAP5
00002546: POP
00002547: PUSH1 0x40
00002549: DUP8
0000254a: ADD
0000254b: CALLDATALOAD
0000254c: SWAP4
0000254d: POP
0000254e: PUSH1 0x60
00002550: DUP8
00002551: ADD
00002552: CALLDATALOAD
00002553: SWAP3
00002554: POP
00002555: PUSH1 0x80
00002557: DUP8
00002558: ADD
00002559: CALLDATALOAD
0000255a: PUSH1 0x01
0000255c: PUSH1 0x01
0000255e: PUSH1 0x40
00002560: SHL
00002561: SUB
00002562: DUP2
00002563: GT
00002564: ISZERO
00002565: PUSH2 0x256d
00002568: JUMPI
00002569: PUSH1 0x00
0000256b: DUP1
0000256c: REVERT
0000256d: JUMPDEST
0000256e: PUSH2 0x2579
00002571: DUP10
00002572: DUP3
00002573: DUP11
00002574: ADD
00002575: PUSH2 0x22f5
00002578: JUMP
00002579: JUMPDEST
0000257a: SWAP8
0000257b: SWAP11
0000257c: SWAP7
0000257d: SWAP10
0000257e: POP
0000257f: SWAP5
00002580: SWAP8
00002581: POP
00002582: SWAP3
00002583: SWAP6
00002584: SWAP4
00002585: SWAP5
00002586: SWAP3
00002587: POP
00002588: POP
00002589: POP
0000258a: JUMP
0000258b: JUMPDEST
0000258c: PUSH1 0x00
0000258e: DUP1
0000258f: PUSH1 0x00
00002591: PUSH1 0x60
00002593: DUP5
00002594: DUP7
00002595: SUB
00002596: SLT
00002597: ISZERO
00002598: PUSH2 0x25a0
0000259b: JUMPI
0000259c: PUSH1 0x00
0000259e: DUP1
0000259f: REVERT
000025a0: JUMPDEST
000025a1: PUSH2 0x25a9
000025a4: DUP5
000025a5: PUSH2 0x2177
000025a8: JUMP
000025a9: JUMPDEST
000025aa: SWAP3
000025ab: POP
000025ac: PUSH1 0x20
000025ae: DUP5
000025af: ADD
000025b0: CALLDATALOAD
000025b1: SWAP2
000025b2: POP
000025b3: PUSH1 0x40
000025b5: DUP5
000025b6: ADD
000025b7: CALLDATALOAD
000025b8: PUSH1 0x01
000025ba: PUSH1 0x01
000025bc: PUSH1 0x40
000025be: SHL
000025bf: SUB
000025c0: DUP2
000025c1: GT
000025c2: ISZERO
000025c3: PUSH2 0x25cb
000025c6: JUMPI
000025c7: PUSH1 0x00
000025c9: DUP1
000025ca: REVERT
000025cb: JUMPDEST
000025cc: PUSH2 0x25d7
000025cf: DUP7
000025d0: DUP3
000025d1: DUP8
000025d2: ADD
000025d3: PUSH2 0x2336
000025d6: JUMP
000025d7: JUMPDEST
000025d8: SWAP2
000025d9: POP
000025da: POP
000025db: SWAP3
000025dc: POP
000025dd: SWAP3
000025de: POP
000025df: SWAP3
000025e0: JUMP
000025e1: JUMPDEST
000025e2: PUSH1 0x00
000025e4: DUP1
000025e5: PUSH1 0x00
000025e7: DUP1
000025e8: PUSH1 0x00
000025ea: DUP1
000025eb: PUSH1 0x00
000025ed: PUSH1 0xe0
000025ef: DUP9
000025f0: DUP11
000025f1: SUB
000025f2: SLT
000025f3: ISZERO
000025f4: PUSH2 0x25fc
000025f7: JUMPI
000025f8: PUSH1 0x00
000025fa: DUP1
000025fb: REVERT
000025fc: JUMPDEST
000025fd: PUSH2 0x2605
00002600: DUP9
00002601: PUSH2 0x2177
00002604: JUMP
00002605: JUMPDEST
00002606: SWAP7
00002607: POP
00002608: PUSH1 0x20
0000260a: DUP9
0000260b: ADD
0000260c: CALLDATALOAD
0000260d: SWAP6
0000260e: POP
0000260f: PUSH1 0x40
00002611: DUP9
00002612: ADD
00002613: CALLDATALOAD
00002614: PUSH1 0x01
00002616: PUSH1 0x01
00002618: PUSH1 0x40
0000261a: SHL
0000261b: SUB
0000261c: DUP1
0000261d: DUP3
0000261e: GT
0000261f: ISZERO
00002620: PUSH2 0x2628
00002623: JUMPI
00002624: PUSH1 0x00
00002626: DUP1
00002627: REVERT
00002628: JUMPDEST
00002629: PUSH2 0x2634
0000262c: DUP12
0000262d: DUP4
0000262e: DUP13
0000262f: ADD
00002630: PUSH2 0x2336
00002633: JUMP
00002634: JUMPDEST
00002635: SWAP7
00002636: POP
00002637: PUSH1 0x60
00002639: DUP11
0000263a: ADD
0000263b: CALLDATALOAD
0000263c: SWAP6
0000263d: POP
0000263e: PUSH1 0x80
00002640: DUP11
00002641: ADD
00002642: CALLDATALOAD
00002643: SWAP2
00002644: POP
00002645: DUP1
00002646: DUP3
00002647: GT
00002648: ISZERO
00002649: PUSH2 0x2651
0000264c: JUMPI
0000264d: PUSH1 0x00
0000264f: DUP1
00002650: REVERT
00002651: JUMPDEST
00002652: PUSH2 0x265d
00002655: DUP12
00002656: DUP4
00002657: DUP13
00002658: ADD
00002659: PUSH2 0x2193
0000265c: JUMP
0000265d: JUMPDEST
0000265e: SWAP5
0000265f: POP
00002660: PUSH1 0xa0
00002662: DUP11
00002663: ADD
00002664: CALLDATALOAD
00002665: SWAP2
00002666: POP
00002667: DUP1
00002668: DUP3
00002669: GT
0000266a: ISZERO
0000266b: PUSH2 0x2673
0000266e: JUMPI
0000266f: PUSH1 0x00
00002671: DUP1
00002672: REVERT
00002673: JUMPDEST
00002674: PUSH2 0x267f
00002677: DUP12
00002678: DUP4
00002679: DUP13
0000267a: ADD
0000267b: PUSH2 0x2193
0000267e: JUMP
0000267f: JUMPDEST
00002680: SWAP4
00002681: POP
00002682: PUSH1 0xc0
00002684: DUP11
00002685: ADD
00002686: CALLDATALOAD
00002687: SWAP2
00002688: POP
00002689: DUP1
0000268a: DUP3
0000268b: GT
0000268c: ISZERO
0000268d: PUSH2 0x2695
00002690: JUMPI
00002691: PUSH1 0x00
00002693: DUP1
00002694: REVERT
00002695: JUMPDEST
00002696: POP
00002697: PUSH2 0x26a2
0000269a: DUP11
0000269b: DUP3
0000269c: DUP12
0000269d: ADD
0000269e: PUSH2 0x2250
000026a1: JUMP
000026a2: JUMPDEST
000026a3: SWAP2
000026a4: POP
000026a5: POP
000026a6: SWAP3
000026a7: SWAP6
000026a8: SWAP9
000026a9: SWAP2
000026aa: SWAP5
000026ab: SWAP8
000026ac: POP
000026ad: SWAP3
000026ae: SWAP6
000026af: POP
000026b0: JUMP
000026b1: JUMPDEST
000026b2: PUSH1 0x00
000026b4: DUP1
000026b5: PUSH1 0x00
000026b7: PUSH1 0x60
000026b9: DUP5
000026ba: DUP7
000026bb: SUB
000026bc: SLT
000026bd: ISZERO
000026be: PUSH2 0x26c6
000026c1: JUMPI
000026c2: PUSH1 0x00
000026c4: DUP1
000026c5: REVERT
000026c6: JUMPDEST
000026c7: DUP4
000026c8: CALLDATALOAD
000026c9: PUSH1 0x01
000026cb: PUSH1 0x01
000026cd: PUSH1 0x40
000026cf: SHL
000026d0: SUB
000026d1: DUP2
000026d2: GT
000026d3: ISZERO
000026d4: PUSH2 0x26dc
000026d7: JUMPI
000026d8: PUSH1 0x00
000026da: DUP1
000026db: REVERT
000026dc: JUMPDEST
000026dd: DUP5
000026de: ADD
000026df: PUSH1 0x1f
000026e1: DUP2
000026e2: ADD
000026e3: DUP7
000026e4: SGT
000026e5: PUSH2 0x26ed
000026e8: JUMPI
000026e9: PUSH1 0x00
000026eb: DUP1
000026ec: REVERT
000026ed: JUMPDEST
000026ee: DUP1
000026ef: CALLDATALOAD
000026f0: PUSH1 0x20
000026f2: PUSH2 0x26fd
000026f5: PUSH2 0x21b4
000026f8: DUP4
000026f9: PUSH2 0x29bc
000026fc: JUMP
000026fd: JUMPDEST
000026fe: DUP1
000026ff: DUP4
00002700: DUP3
00002701: MSTORE
00002702: DUP3
00002703: DUP3
00002704: ADD
00002705: SWAP2
00002706: POP
00002707: DUP3
00002708: DUP6
00002709: ADD
0000270a: DUP11
0000270b: DUP5
0000270c: DUP7
0000270d: PUSH1 0x05
0000270f: SHL
00002710: DUP9
00002711: ADD
00002712: ADD
00002713: GT
00002714: ISZERO
00002715: PUSH2 0x271d
00002718: JUMPI
00002719: PUSH1 0x00
0000271b: DUP1
0000271c: REVERT
0000271d: JUMPDEST
0000271e: PUSH1 0x00
00002720: SWAP6
00002721: POP
00002722: JUMPDEST
00002723: DUP5
00002724: DUP7
00002725: LT
00002726: ISZERO
00002727: PUSH2 0x2747
0000272a: JUMPI
0000272b: PUSH2 0x2733
0000272e: DUP2
0000272f: PUSH2 0x2177
00002732: JUMP
00002733: JUMPDEST
00002734: DUP4
00002735: MSTORE
00002736: PUSH1 0x01
00002738: SWAP6
00002739: SWAP1
0000273a: SWAP6
0000273b: ADD
0000273c: SWAP5
0000273d: SWAP2
0000273e: DUP4
0000273f: ADD
00002740: SWAP2
00002741: DUP4
00002742: ADD
00002743: PUSH2 0x2722
00002746: JUMP
00002747: JUMPDEST
00002748: POP
00002749: SWAP7
0000274a: POP
0000274b: POP
0000274c: DUP7
0000274d: ADD
0000274e: CALLDATALOAD
0000274f: SWAP4
00002750: POP
00002751: PUSH2 0x275f
00002754: SWAP2
00002755: POP
00002756: POP
00002757: PUSH1 0x40
00002759: DUP6
0000275a: ADD
0000275b: PUSH2 0x22cd
0000275e: JUMP
0000275f: JUMPDEST
00002760: SWAP1
00002761: POP
00002762: SWAP3
00002763: POP
00002764: SWAP3
00002765: POP
00002766: SWAP3
00002767: JUMP
00002768: JUMPDEST
00002769: PUSH1 0x00
0000276b: DUP1
0000276c: PUSH1 0x40
0000276e: DUP4
0000276f: DUP6
00002770: SUB
00002771: SLT
00002772: ISZERO
00002773: PUSH2 0x277b
00002776: JUMPI
00002777: PUSH1 0x00
00002779: DUP1
0000277a: REVERT
0000277b: JUMPDEST
0000277c: PUSH2 0x2784
0000277f: DUP4
00002780: PUSH2 0x22cd
00002783: JUMP
00002784: JUMPDEST
00002785: SWAP2
00002786: POP
00002787: PUSH2 0x23ea
0000278a: PUSH1 0x20
0000278c: DUP5
0000278d: ADD
0000278e: PUSH2 0x22cd
00002791: JUMP
00002792: JUMPDEST
00002793: PUSH1 0x00
00002795: PUSH1 0x20
00002797: DUP3
00002798: DUP5
00002799: SUB
0000279a: SLT
0000279b: ISZERO
0000279c: PUSH2 0x27a4
0000279f: JUMPI
000027a0: PUSH1 0x00
000027a2: DUP1
000027a3: REVERT
000027a4: JUMPDEST
000027a5: PUSH2 0x158a
000027a8: DUP3
000027a9: PUSH2 0x22dd
000027ac: JUMP
000027ad: JUMPDEST
000027ae: PUSH1 0x00
000027b0: DUP1
000027b1: PUSH1 0x40
000027b3: DUP4
000027b4: DUP6
000027b5: SUB
000027b6: SLT
000027b7: ISZERO
000027b8: PUSH2 0x27c0
000027bb: JUMPI
000027bc: PUSH1 0x00
000027be: DUP1
000027bf: REVERT
000027c0: JUMPDEST
000027c1: PUSH2 0x2784
000027c4: DUP4
000027c5: PUSH2 0x22dd
000027c8: JUMP
000027c9: JUMPDEST
000027ca: PUSH1 0x00
000027cc: PUSH1 0x20
000027ce: DUP3
000027cf: DUP5
000027d0: SUB
000027d1: SLT
000027d2: ISZERO
000027d3: PUSH2 0x27db
000027d6: JUMPI
000027d7: PUSH1 0x00
000027d9: DUP1
000027da: REVERT
000027db: JUMPDEST
000027dc: POP
000027dd: CALLDATALOAD
000027de: SWAP2
000027df: SWAP1
000027e0: POP
000027e1: JUMP
000027e2: JUMPDEST
000027e3: PUSH1 0x00
000027e5: DUP1
000027e6: PUSH1 0x40
000027e8: DUP4
000027e9: DUP6
000027ea: SUB
000027eb: SLT
000027ec: ISZERO
000027ed: PUSH2 0x27f5
000027f0: JUMPI
000027f1: PUSH1 0x00
000027f3: DUP1
000027f4: REVERT
000027f5: JUMPDEST
000027f6: DUP3
000027f7: CALLDATALOAD
000027f8: SWAP2
000027f9: POP
000027fa: PUSH2 0x23ea
000027fd: PUSH1 0x20
000027ff: DUP5
00002800: ADD
00002801: PUSH2 0x2177
00002804: JUMP
00002805: JUMPDEST
00002806: PUSH1 0x00
00002808: DUP1
00002809: PUSH1 0x00
0000280b: DUP1
0000280c: PUSH1 0x80
0000280e: DUP6
0000280f: DUP8
00002810: SUB
00002811: SLT
00002812: ISZERO
00002813: PUSH2 0x281b
00002816: JUMPI
00002817: PUSH1 0x00
00002819: DUP1
0000281a: REVERT
0000281b: JUMPDEST
0000281c: DUP5
0000281d: CALLDATALOAD
0000281e: SWAP4
0000281f: POP
00002820: PUSH1 0x20
00002822: DUP6
00002823: ADD
00002824: CALLDATALOAD
00002825: SWAP3
00002826: POP
00002827: PUSH2 0x2832
0000282a: PUSH1 0x40
0000282c: DUP7
0000282d: ADD
0000282e: PUSH2 0x22cd
00002831: JUMP
00002832: JUMPDEST
00002833: SWAP2
00002834: POP
00002835: PUSH2 0x2840
00002838: PUSH1 0x60
0000283a: DUP7
0000283b: ADD
0000283c: PUSH2 0x22cd
0000283f: JUMP
00002840: JUMPDEST
00002841: SWAP1
00002842: POP
00002843: SWAP3
00002844: SWAP6
00002845: SWAP2
00002846: SWAP5
00002847: POP
00002848: SWAP3
00002849: POP
0000284a: JUMP
0000284b: JUMPDEST
0000284c: PUSH1 0x00
0000284e: DUP3
0000284f: MLOAD
00002850: PUSH2 0x285d
00002853: DUP2
00002854: DUP5
00002855: PUSH1 0x20
00002857: DUP8
00002858: ADD
00002859: PUSH2 0x2a0e
0000285c: JUMP
0000285d: JUMPDEST
0000285e: SWAP2
0000285f: SWAP1
00002860: SWAP2
00002861: ADD
00002862: SWAP3
00002863: SWAP2
00002864: POP
00002865: POP
00002866: JUMP
00002867: JUMPDEST
00002868: PUSH1 0x01
0000286a: DUP1
0000286b: PUSH1 0xa0
0000286d: SHL
0000286e: SUB
0000286f: DUP6
00002870: AND
00002871: DUP2
00002872: MSTORE
00002873: DUP4
00002874: PUSH1 0x20
00002876: DUP3
00002877: ADD
00002878: MSTORE
00002879: PUSH1 0x80
0000287b: PUSH1 0x40
0000287d: DUP3
0000287e: ADD
0000287f: MSTORE
00002880: PUSH1 0x00
00002882: DUP4
00002883: MLOAD
00002884: DUP1
00002885: PUSH1 0x80
00002887: DUP5
00002888: ADD
00002889: MSTORE
0000288a: PUSH2 0x289a
0000288d: DUP2
0000288e: PUSH1 0xa0
00002890: DUP6
00002891: ADD
00002892: PUSH1 0x20
00002894: DUP9
00002895: ADD
00002896: PUSH2 0x2a0e
00002899: JUMP
0000289a: JUMPDEST
0000289b: SWAP3
0000289c: ISZERO
0000289d: ISZERO
0000289e: PUSH1 0x60
000028a0: DUP4
000028a1: ADD
000028a2: MSTORE
000028a3: POP
000028a4: PUSH1 0x1f
000028a6: SWAP2
000028a7: SWAP1
000028a8: SWAP2
000028a9: ADD
000028aa: PUSH1 0x1f
000028ac: NOT
000028ad: AND
000028ae: ADD
000028af: PUSH1 0xa0
000028b1: ADD
000028b2: SWAP4
000028b3: SWAP3
000028b4: POP
000028b5: POP
000028b6: POP
000028b7: JUMP
000028b8: JUMPDEST
000028b9: PUSH1 0x20
000028bb: DUP1
000028bc: DUP3
000028bd: MSTORE
000028be: DUP3
000028bf: MLOAD
000028c0: DUP3
000028c1: DUP3
000028c2: ADD
000028c3: DUP2
000028c4: SWAP1
000028c5: MSTORE
000028c6: PUSH1 0x00
000028c8: SWAP2
000028c9: SWAP1
000028ca: DUP5
000028cb: DUP3
000028cc: ADD
000028cd: SWAP1
000028ce: PUSH1 0x40
000028d0: DUP6
000028d1: ADD
000028d2: SWAP1
000028d3: DUP5
000028d4: JUMPDEST
000028d5: DUP2
000028d6: DUP2
000028d7: LT
000028d8: ISZERO
000028d9: PUSH2 0x28f9
000028dc: JUMPI
000028dd: DUP4
000028de: MLOAD
000028df: PUSH1 0x01
000028e1: PUSH1 0x01
000028e3: PUSH1 0xa0
000028e5: SHL
000028e6: SUB
000028e7: AND
000028e8: DUP4
000028e9: MSTORE
000028ea: SWAP3
000028eb: DUP5
000028ec: ADD
000028ed: SWAP3
000028ee: SWAP2
000028ef: DUP5
000028f0: ADD
000028f1: SWAP2
000028f2: PUSH1 0x01
000028f4: ADD
000028f5: PUSH2 0x28d4
000028f8: JUMP
000028f9: JUMPDEST
000028fa: POP
000028fb: SWAP1
000028fc: SWAP7
000028fd: SWAP6
000028fe: POP
000028ff: POP
00002900: POP
00002901: POP
00002902: POP
00002903: POP
00002904: JUMP
00002905: JUMPDEST
00002906: PUSH1 0x60
00002908: DUP2
00002909: ADD
0000290a: DUP2
0000290b: DUP4
0000290c: PUSH1 0x00
0000290e: JUMPDEST
0000290f: PUSH1 0x03
00002911: DUP2
00002912: LT
00002913: ISZERO
00002914: PUSH2 0x292d
00002917: JUMPI
00002918: DUP2
00002919: MLOAD
0000291a: DUP4
0000291b: MSTORE
0000291c: PUSH1 0x20
0000291e: SWAP3
0000291f: DUP4
00002920: ADD
00002921: SWAP3
00002922: SWAP1
00002923: SWAP2
00002924: ADD
00002925: SWAP1
00002926: PUSH1 0x01
00002928: ADD
00002929: PUSH2 0x290e
0000292c: JUMP
0000292d: JUMPDEST
0000292e: POP
0000292f: POP
00002930: POP
00002931: SWAP3
00002932: SWAP2
00002933: POP
00002934: POP
00002935: JUMP
00002936: JUMPDEST
00002937: PUSH1 0x20
00002939: DUP1
0000293a: DUP3
0000293b: MSTORE
0000293c: DUP3
0000293d: MLOAD
0000293e: DUP3
0000293f: DUP3
00002940: ADD
00002941: DUP2
00002942: SWAP1
00002943: MSTORE
00002944: PUSH1 0x00
00002946: SWAP2
00002947: SWAP1
00002948: DUP5
00002949: DUP3
0000294a: ADD
0000294b: SWAP1
0000294c: PUSH1 0x40
0000294e: DUP6
0000294f: ADD
00002950: SWAP1
00002951: DUP5
00002952: JUMPDEST
00002953: DUP2
00002954: DUP2
00002955: LT
00002956: ISZERO
00002957: PUSH2 0x28f9
0000295a: JUMPI
0000295b: DUP4
0000295c: MLOAD
0000295d: DUP4
0000295e: MSTORE
0000295f: SWAP3
00002960: DUP5
00002961: ADD
00002962: SWAP3
00002963: SWAP2
00002964: DUP5
00002965: ADD
00002966: SWAP2
00002967: PUSH1 0x01
00002969: ADD
0000296a: PUSH2 0x2952
0000296d: JUMP
0000296e: JUMPDEST
0000296f: PUSH1 0x20
00002971: DUP1
00002972: DUP3
00002973: MSTORE
00002974: PUSH1 0x04
00002976: SWAP1
00002977: DUP3
00002978: ADD
00002979: MSTORE
0000297a: PUSH4 0x4d533031
0000297f: PUSH1 0xe0
00002981: SHL
00002982: PUSH1 0x40
00002984: DUP3
00002985: ADD
00002986: MSTORE
00002987: PUSH1 0x60
00002989: ADD
0000298a: SWAP1
0000298b: JUMP
0000298c: JUMPDEST
0000298d: PUSH1 0x40
0000298f: MLOAD
00002990: PUSH1 0x1f
00002992: DUP3
00002993: ADD
00002994: PUSH1 0x1f
00002996: NOT
00002997: AND
00002998: DUP2
00002999: ADD
0000299a: PUSH1 0x01
0000299c: PUSH1 0x01
0000299e: PUSH1 0x40
000029a0: SHL
000029a1: SUB
000029a2: DUP2
000029a3: GT
000029a4: DUP3
000029a5: DUP3
000029a6: LT
000029a7: OR
000029a8: ISZERO
000029a9: PUSH2 0x29b4
000029ac: JUMPI
000029ad: PUSH2 0x29b4
000029b0: PUSH2 0x2af0
000029b3: JUMP
000029b4: JUMPDEST
000029b5: PUSH1 0x40
000029b7: MSTORE
000029b8: SWAP2
000029b9: SWAP1
000029ba: POP
000029bb: JUMP
000029bc: JUMPDEST
000029bd: PUSH1 0x00
000029bf: PUSH1 0x01
000029c1: PUSH1 0x01
000029c3: PUSH1 0x40
000029c5: SHL
000029c6: SUB
000029c7: DUP3
000029c8: GT
000029c9: ISZERO
000029ca: PUSH2 0x29d5
000029cd: JUMPI
000029ce: PUSH2 0x29d5
000029d1: PUSH2 0x2af0
000029d4: JUMP
000029d5: JUMPDEST
000029d6: POP
000029d7: PUSH1 0x05
000029d9: SHL
000029da: PUSH1 0x20
000029dc: ADD
000029dd: SWAP1
000029de: JUMP
000029df: JUMPDEST
000029e0: PUSH1 0x00
000029e2: DUP3
000029e3: NOT
000029e4: DUP3
000029e5: GT
000029e6: ISZERO
000029e7: PUSH2 0x29f2
000029ea: JUMPI
000029eb: PUSH2 0x29f2
000029ee: PUSH2 0x2aae
000029f1: JUMP
000029f2: JUMPDEST
000029f3: POP
000029f4: ADD
000029f5: SWAP1
000029f6: JUMP
000029f7: JUMPDEST
000029f8: PUSH1 0x00
000029fa: DUP3
000029fb: DUP3
000029fc: LT
000029fd: ISZERO
000029fe: PUSH2 0x2a09
00002a01: JUMPI
00002a02: PUSH2 0x2a09
00002a05: PUSH2 0x2aae
00002a08: JUMP
00002a09: JUMPDEST
00002a0a: POP
00002a0b: SUB
00002a0c: SWAP1
00002a0d: JUMP
00002a0e: JUMPDEST
00002a0f: PUSH1 0x00
00002a11: JUMPDEST
00002a12: DUP4
00002a13: DUP2
00002a14: LT
00002a15: ISZERO
00002a16: PUSH2 0x2a29
00002a19: JUMPI
00002a1a: DUP2
00002a1b: DUP2
00002a1c: ADD
00002a1d: MLOAD
00002a1e: DUP4
00002a1f: DUP3
00002a20: ADD
00002a21: MSTORE
00002a22: PUSH1 0x20
00002a24: ADD
00002a25: PUSH2 0x2a11
00002a28: JUMP
00002a29: JUMPDEST
00002a2a: DUP4
00002a2b: DUP2
00002a2c: GT
00002a2d: ISZERO
00002a2e: PUSH2 0x2a38
00002a31: JUMPI
00002a32: PUSH1 0x00
00002a34: DUP5
00002a35: DUP5
00002a36: ADD
00002a37: MSTORE
00002a38: JUMPDEST
00002a39: POP
00002a3a: POP
00002a3b: POP
00002a3c: POP
00002a3d: JUMP
00002a3e: JUMPDEST
00002a3f: PUSH1 0x01
00002a41: DUP2
00002a42: DUP2
00002a43: SHR
00002a44: SWAP1
00002a45: DUP3
00002a46: AND
00002a47: DUP1
00002a48: PUSH2 0x2a52
00002a4b: JUMPI
00002a4c: PUSH1 0x7f
00002a4e: DUP3
00002a4f: AND
00002a50: SWAP2
00002a51: POP
00002a52: JUMPDEST
00002a53: PUSH1 0x20
00002a55: DUP3
00002a56: LT
00002a57: DUP2
00002a58: EQ
00002a59: ISZERO
00002a5a: PUSH2 0x0b70
00002a5d: JUMPI
00002a5e: PUSH4 0x4e487b71
00002a63: PUSH1 0xe0
00002a65: SHL
00002a66: PUSH1 0x00
00002a68: MSTORE
00002a69: PUSH1 0x22
00002a6b: PUSH1 0x04
00002a6d: MSTORE
00002a6e: PUSH1 0x24
00002a70: PUSH1 0x00
00002a72: REVERT
00002a73: JUMPDEST
00002a74: PUSH1 0x00
00002a76: PUSH1 0x00
00002a78: NOT
00002a79: DUP3
00002a7a: EQ
00002a7b: ISZERO
00002a7c: PUSH2 0x2a87
00002a7f: JUMPI
00002a80: PUSH2 0x2a87
00002a83: PUSH2 0x2aae
00002a86: JUMP
00002a87: JUMPDEST
00002a88: POP
00002a89: PUSH1 0x01
00002a8b: ADD
00002a8c: SWAP1
00002a8d: JUMP
00002a8e: JUMPDEST
00002a8f: PUSH1 0x00
00002a91: PUSH1 0xff
00002a93: DUP3
00002a94: AND
00002a95: PUSH1 0xff
00002a97: DUP2
00002a98: EQ
00002a99: ISZERO
00002a9a: PUSH2 0x2aa5
00002a9d: JUMPI
00002a9e: PUSH2 0x2aa5
00002aa1: PUSH2 0x2aae
00002aa4: JUMP
00002aa5: JUMPDEST
00002aa6: PUSH1 0x01
00002aa8: ADD
00002aa9: SWAP3
00002aaa: SWAP2
00002aab: POP
00002aac: POP
00002aad: JUMP
00002aae: JUMPDEST
00002aaf: PUSH4 0x4e487b71
00002ab4: PUSH1 0xe0
00002ab6: SHL
00002ab7: PUSH1 0x00
00002ab9: MSTORE
00002aba: PUSH1 0x11
00002abc: PUSH1 0x04
00002abe: MSTORE
00002abf: PUSH1 0x24
00002ac1: PUSH1 0x00
00002ac3: REVERT
00002ac4: JUMPDEST
00002ac5: PUSH4 0x4e487b71
00002aca: PUSH1 0xe0
00002acc: SHL
00002acd: PUSH1 0x00
00002acf: MSTORE
00002ad0: PUSH1 0x31
00002ad2: PUSH1 0x04
00002ad4: MSTORE
00002ad5: PUSH1 0x24
00002ad7: PUSH1 0x00
00002ad9: REVERT
00002ada: JUMPDEST
00002adb: PUSH4 0x4e487b71
00002ae0: PUSH1 0xe0
00002ae2: SHL
00002ae3: PUSH1 0x00
00002ae5: MSTORE
00002ae6: PUSH1 0x32
00002ae8: PUSH1 0x04
00002aea: MSTORE
00002aeb: PUSH1 0x24
00002aed: PUSH1 0x00
00002aef: REVERT
00002af0: JUMPDEST
00002af1: PUSH4 0x4e487b71
00002af6: PUSH1 0xe0
00002af8: SHL
00002af9: PUSH1 0x00
00002afb: MSTORE
00002afc: PUSH1 0x41
00002afe: PUSH1 0x04
00002b00: MSTORE
00002b01: PUSH1 0x24
00002b03: PUSH1 0x00
00002b05: REVERT
00002b06: INVALID
00002b07: LOG2
00002b08: PUSH5 0x6970667358
00002b0e: UNKNOWN(0x22)
00002b0f: SLT
00002b10: KECCAK256
00002b11: SWAP7
00002b12: SWAP15
00002b13: SSTORE
00002b14: UNKNOWN(0xEB)
00002b15: CALL
00002b16: UNKNOWN(0xFC)
00002b17: PUSH3 0x4bdb3e
00002b1b: LOG1
00002b1c: UNKNOWN(0x4D)
00002b1d: SWAP4
00002b1e: UNKNOWN(0x21)
00002b1f: UNKNOWN(0xA7)
00002b20: UNKNOWN(0xC4)
00002b21: EXTCODESIZE
00002b22: UNKNOWN(0x23)
00002b23: DUP14
00002b24: UNKNOWN(0xAA)
00002b25: UNKNOWN(0xBF)
00002b26: PUSH31

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high reentrancy codex executeTxWithPermits allows reentrant double-execution of the same transaction 85 no
view
evidence_json
{
    "evidence": "executeTxWithPermits calls executeTransactionInner, which performs destination.call{value:value}(data) before setting executed (contracts/Contract.sol:1367-1387). During that external call, a destination that is also an owner and already confirmed can reenter executeTransaction (contracts/Contract.sol:1027-1037) while notExecuted still passes, causing a second transfer.",
    "locations": [
        "contracts/Contract.sol:1323",
        "contracts/Contract.sol:1367",
        "contracts/Contract.sol:1382",
        "contracts/Contract.sol:1387",
        "contracts/Contract.sol:1027"
    ],
    "recommendation": "Set transactions[transactionId].executed = true before the external call (and revert/reset on failure) or reuse executeTransaction\u2019s checks-effects-interactions flow; additionally add a reentrancy guard around executeTxWithPermits/executeTransactionInner.",
    "exploit_scenario": "1) Attacker controls an owner contract and obtains the required off-chain signatures for a transaction that sends X ETH to that contract (nonce = current transactionCount). 2) The owner contract calls executeTxWithPermits with destination = itself and the collected signatures. 3) executeTransactionInner makes the external call before marking the transaction executed; in the destination fallback, the attacker reenters and calls executeTransaction(transactionId) (the transactionId equals the nonce passed). 4) Because confirmations for the attacker contract are already set and executed is still false, executeTransaction succeeds and transfers X again. 5) Net payout is 2X in one tx; profit is the extra X. With X <= walletBalance/2 the attacker can drain up to the full wallet ETH balance (repeat for full drain)."
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x013b38413b0dd0164efd8126dcb18a58dba12954e0ca97b8f4a11109be403e14
call_targets: 0x471756ad2124b04dc1c5c364ee6a9e29f8c3f67a
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x013b38413b0dd0164efd8126dcb18a58dba12954e0ca97b8f4a11109be403e14",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x471756ad2124b04dc1c5c364ee6a9e29f8c3f67a"
    ],
    "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": "0xdc8452cd",
            "selector": "0xdc8452cd",
            "calldata_variants": [
                "0xdc8452cd",
                "0xdc8452cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe20056e6",
            "selector": "0xe20056e6",
            "calldata_variants": [
                "0xe20056e6",
                "0xe20056e60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xee22610b",
            "selector": "0xee22610b",
            "calldata_variants": [
                "0xee22610b",
                "0xee22610b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf23a6e61",
            "selector": "0xf23a6e61",
            "calldata_variants": [
                "0xf23a6e61",
                "0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbc197c81",
            "selector": "0xbc197c81",
            "calldata_variants": [
                "0xbc197c81",
                "0xbc197c810000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc01a8c84",
            "selector": "0xc01a8c84",
            "calldata_variants": [
                "0xc01a8c84",
                "0xc01a8c840000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc6427474",
            "selector": "0xc6427474",
            "calldata_variants": [
                "0xc6427474",
                "0xc64274740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd74f8edd",
            "selector": "0xd74f8edd",
            "calldata_variants": [
                "0xd74f8edd",
                "0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7520,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8286,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 11029,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": []
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x013b38413b0dd0164efd8126dcb18a58dba12954e0ca97b8f4a11109be403e14
call_targets: 0x471756ad2124b04dc1c5c364ee6a9e29f8c3f67a
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x013b38413b0dd0164efd8126dcb18a58dba12954e0ca97b8f4a11109be403e14",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x471756ad2124b04dc1c5c364ee6a9e29f8c3f67a"
    ],
    "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": "0xdc8452cd",
            "selector": "0xdc8452cd",
            "calldata_variants": [
                "0xdc8452cd",
                "0xdc8452cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe20056e6",
            "selector": "0xe20056e6",
            "calldata_variants": [
                "0xe20056e6",
                "0xe20056e60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xee22610b",
            "selector": "0xee22610b",
            "calldata_variants": [
                "0xee22610b",
                "0xee22610b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf23a6e61",
            "selector": "0xf23a6e61",
            "calldata_variants": [
                "0xf23a6e61",
                "0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbc197c81",
            "selector": "0xbc197c81",
            "calldata_variants": [
                "0xbc197c81",
                "0xbc197c810000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc01a8c84",
            "selector": "0xc01a8c84",
            "calldata_variants": [
                "0xc01a8c84",
                "0xc01a8c840000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc6427474",
            "selector": "0xc6427474",
            "calldata_variants": [
                "0xc6427474",
                "0xc64274740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd74f8edd",
            "selector": "0xd74f8edd",
            "calldata_variants": [
                "0xd74f8edd",
                "0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7520,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8286,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 11029,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [],
    "untrusted_call_count": 3
}