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

Analysis Run

6d9075ea-e510-4702-8437-3a8481b449fa

complete
Chain ID
1
Address
Block Number
Created
Tue, Dec 30, 2025 2:05 AM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 direct contract
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
30655 report.consolidate complete 1 / 1 3 months ago
74926 artifact.fetch complete 1 / 3 1 week ago
74927 tool.cast_disasm complete 1 / 3 1 week ago
74928 analysis.bundle complete 1 / 3 1 week ago
74929 capability.graph complete 1 / 3 1 week ago
74930 detector.run complete 1 / 3 1 week ago
74931 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
3
No findings?
no
Summary
Identified three issues: a high-severity nonce/DoS risk on failed execTransaction, a medium unchecked-return-data false-success risk, and a low cross-chain signature replay risk from a minimal domain separator.
View stderr
[codex:545551] OpenAI Codex v0.77.0 (research preview)
[codex:545551] --------
[codex:545551] workdir: /tmp/codex-multi-ar9m3aj7
[codex:545551] model: gpt-5.2-codex
[codex:545551] provider: openai
[codex:545551] approval: never
[codex:545551] sandbox: read-only
[codex:545551] reasoning effort: xhigh
[codex:545551] reasoning summaries: auto
[codex:545551] session id: 019b6cfc-f113-75c1-a5b0-1679e9ea069e
[codex:545551] --------
[codex:545551] user
[codex:545551] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:545551] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:545551] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:545551] 
[codex:545551] Scope rules:
[codex:545551] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:545551] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:545551] 
[codex:545551] Output MUST be valid JSON matching the provided schema.
[codex:545551] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:545551] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:545551] 
[codex:545551] Output constraints (IMPORTANT):
[codex:545551] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:545551] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:545551] mcp startup: no servers
[codex:545551] 
[codex:545551] thinking
[codex:545551] **Reviewing task instructions and bundle file**
[codex:545551] exec
[codex:545551] /bin/bash -lc ls in /tmp/codex-multi-ar9m3aj7 succeeded in 5ms:
[codex:545551] AUDIT_BUNDLE.txt
[codex:545551] codex-output-schema.json
[codex:545551] contracts
[codex:545551] 
[codex:545551] thinking
[codex:545551] **Reading AUDIT_BUNDLE file**
[codex:545551] exec
[codex:545551] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-ar9m3aj7 succeeded in 5ms:
[codex:545551] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:545551] 
[codex:545551] ================================================================================
[codex:545551] FILE: contracts/@openzeppelin/contracts/cryptography/ECDSA.sol
[codex:545551] ================================================================================
[codex:545551] // SPDX-License-Identifier: MIT
[codex:545551] 
[codex:545551] pragma solidity >=0.6.0 <0.8.0;
[codex:545551] 
[codex:545551] /**
[codex:545551]  * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.
[codex:545551]  *
[codex:545551]  * These functions can be used to verify that a message was signed by the holder
[codex:545551]  * of the private keys of a given address.
[codex:545551]  */
[codex:545551] library ECDSA {
[codex:545551]     /**
[codex:545551]      * @dev Returns the address that signed a hashed message (`hash`) with
[codex:545551]      * `signature`. This address can then be used for verification purposes.
[codex:545551]      *
[codex:545551] 
[codex:545551] 
[codex:545551] thinking
[codex:545551] **Analyzing WrapMultisig contract vulnerabilities**
[codex:545551] thinking
[codex:545551] **Evaluating call patterns and signature handling risks**
[codex:545551] 
[codex:545551] I’m examining corner cases in self-calls allowing potential reentrancy, fee-on-transfer token discrepancies affecting minted amounts, unchecked return values in token transfers risking asset loss, and signature encoding choices that could cause cross-chain replay or validation mismatches. I also want to map vulnerabilities to specific files and lines by inspecting key contract source files next.
[codex:545551] exec
[codex:545551] /bin/bash -lc 'nl -ba contracts/contracts/WrapMultisig.sol' in /tmp/codex-multi-ar9m3aj7 succeeded in 6ms:
[codex:545551]      1	// SPDX-License-Identifier: LGPL-3.0-only
[codex:545551]      2	pragma solidity >=0.7.0 <0.8.0;
[codex:545551]      3	import "@openzeppelin/contracts/math/SafeMath.sol";
[codex:545551]      4	import "@openzeppelin/contracts/cryptography/ECDSA.sol";
[codex:545551]      5	import "./base/WrapManager.sol";
[codex:545551]      6	import "./interfaces/ERC721TokenReceiver.sol";
[codex:545551]      7	
[codex:545551]      8	/// @title Wrap protocol locking contract, based on Gnosis Safe contract work
[codex:545551]      9	contract WrapMultisig is MultisigManager, ERC721TokenReceiver {
[codex:545551]     10	    using SafeMath for uint256;
[codex:545551]     11	    using ECDSA for bytes32;
[codex:545551]     12	
[codex:545551]     13	    string public constant NAME = "Wrap multisig";
[codex:545551]     14	    string public constant VERSION = "1.0.0";
[codex:545551]     15	
[codex:545551]     16	    bytes4 private constant ERC20_TRANSFER_SELECTOR =
[codex:545551]     17	        bytes4(keccak256(bytes("transferFrom(address,address,uint256)")));
[codex:545551]     18	
[codex:545551]     19	    bytes4 private constant ERC721_SAFE_TRANSFER_SELECTOR =
[codex:545551]     20	        bytes4(keccak256(bytes("safeTransferFrom(address,address,uint256)")));
[codex:545551] 
[codex:545551] thinking
[codex:545551] **Analyzing multisig contract vulnerabilities**
[codex:545551] exec
[codex:545551] /bin/bash -lc 'nl -ba contracts/contracts/base/WrapManager.sol' in /tmp/codex-multi-ar9m3aj7 succeeded in 5ms:
[codex:545551]      1	// SPDX-License-Identifier: LGPL-3.0-only
[codex:545551]      2	pragma solidity >=0.7.0 <0.8.0;
[codex:545551]      3	
[codex:545551]      4	/// @title MultisigManager - Manages a set of owners and a threshold to perform actions
[codex:545551]      5	/// @notice Owners and threshold is managed by the administrator
[codex:545551]      6	contract MultisigManager {
[codex:545551]      7	    event AddedOwner(address owner);
[codex:545551]      8	    event RemovedOwner(address owner);
[codex:545551]      9	    event ChangedThreshold(uint256 threshold);
[codex:545551]     10	
[codex:545551]     11	    address internal constant SENTINEL_OWNERS = address(0x1);
[codex:545551]     12	
[codex:545551]     13	    address administrator;
[codex:545551]     14	    mapping(address => address) internal owners;
[codex:545551]     15	    uint256 ownerCount;
[codex:545551]     16	    uint256 internal threshold;
[codex:545551]     17	
[codex:545551]     18	    modifier authorized() {
[codex:545551]     19	        require(
[codex:545551]     20	            msg.sender == administrator,
[codex:545551] 
[codex:545551] thinking
[codex:545551] **Summarizing security findings**
[codex:545551] codex
[codex:545551] {"no_findings":false,"summary":"Identified three issues: a high-severity nonce/DoS risk on failed execTransaction, a medium unchecked-return-data false-success risk, and a low cross-chain signature replay risk from a minimal domain separator.","findings":[{"severity":"high","category":"other","title":"Failed execTransaction still consumes tezosOperation, enabling gas‑griefing DoS and stuck unwraps","exploit_scenario":"An attacker observes a valid signed unwrap in the mempool and submits the same execTransaction with a tight gas limit so the internal call fails. Because tezosOperations[tezosOperation] is set before execution and the function does not revert on failure, the operation is permanently marked processed and cannot be retried, locking funds corresponding to the Tezos burn.","recommendation":"Only mark tezosOperation as processed after a successful execution (or revert on failure with require(success)) so failed calls do not consume the nonce; alternatively add an admin-controlled recovery path to reset failed operations.","evidence":"execTransaction sets tezosOperations[tezosOperation]=true before _execute and does not revert on failure; it merely emits ExecutionFailure.","locations":["contracts/contracts/WrapMultisig.sol:158","contracts/contracts/WrapMultisig.sol:162","contracts/contracts/WrapMultisig.sol:167"]},{"severity":"medium","category":"other","title":"execTransaction ignores return data, so ERC20 transfers that return false are treated as successful","exploit_scenario":"Owners sign an unwrap that calls an ERC20 transfer on a token that signals failure by returning false (e.g., blacklisted/paused tokens). The low‑level call succeeds (no revert), _execute returns true, ExecutionSuccess is emitted, and tezosOperation is consumed even though no tokens moved.","recommendation":"When interacting with token contracts, decode and require a true return value (or use SafeERC20-style checks) so false-returning transfers are treated as failures; consider reverting on any failed token call to keep tezosOperation reusable.","evidence":"_execute uses a raw call and discards return data; execTransaction only checks the boolean success flag.","locations":["contracts/contracts/WrapMultisig.sol:167","contracts/contracts/WrapMultisig.sol:172"]},{"severity":"low","category":"auth","title":"Domain separator omits chainId, allowing cross‑chain signature replay","exploit_scenario":"Signatures collected on one chain (or a fork) remain valid on another chain where the contract is deployed at the same address, because the domain separator only includes verifyingContract. An attacker can replay a signed unwrap on a different chain/fork to trigger an unintended execution.","recommendation":"Include chainId in the EIP‑712 domain separator (e.g., name, version, chainId, verifyingContract) and recompute if chainId changes to prevent cross‑chain replay.","evidence":"DOMAIN_SEPARATOR_TYPEHASH corresponds to EIP712Domain(address verifyingContract) and setup hashes only the contract address.","locations":["contracts/contracts/WrapMultisig.sol:22","contracts/contracts/WrapMultisig.sol:71"]}]}
[codex:545551] tokens used
[codex:545551] 34,073
[codex:545551] {"no_findings":false,"summary":"Identified three issues: a high-severity nonce/DoS risk on failed execTransaction, a medium unchecked-return-data false-success risk, and a low cross-chain signature replay risk from a minimal domain separator.","findings":[{"severity":"high","category":"other","title":"Failed execTransaction still consumes tezosOperation, enabling gas‑griefing DoS and stuck unwraps","exploit_scenario":"An attacker observes a valid signed unwrap in the mempool and submits the same execTransaction with a tight gas limit so the internal call fails. Because tezosOperations[tezosOperation] is set before execution and the function does not revert on failure, the operation is permanently marked processed and cannot be retried, locking funds corresponding to the Tezos burn.","recommendation":"Only mark tezosOperation as processed after a successful execution (or revert on failure with require(success)) so failed calls do not consume the nonce; alternatively add an admin-controlled recovery path to reset failed operations.","evidence":"execTransaction sets tezosOperations[tezosOperation]=true before _execute and does not revert on failure; it merely emits ExecutionFailure.","locations":["contracts/contracts/WrapMultisig.sol:158","contracts/contracts/WrapMultisig.sol:162","contracts/contracts/WrapMultisig.sol:167"]},{"severity":"medium","category":"other","title":"execTransaction ignores return data, so ERC20 transfers that return false are treated as successful","exploit_scenario":"Owners sign an unwrap that calls an ERC20 transfer on a token that signals failure by returning false (e.g., blacklisted/paused tokens). The low‑level call succeeds (no revert), _execute returns true, ExecutionSuccess is emitted, and tezosOperation is consumed even though no tokens moved.","recommendation":"When interacting with token contracts, decode and require a true return value (or use SafeERC20-style checks) so false-returning transfers are treated as failures; consider reverting on any failed token call to keep tezosOperation reusable.","evidence":"_execute uses a raw call and discards return data; execTransaction only checks the boolean success flag.","locations":["contracts/contracts/WrapMultisig.sol:167","contracts/contracts/WrapMultisig.sol:172"]},{"severity":"low","category":"auth","title":"Domain separator omits chainId, allowing cross‑chain signature replay","exploit_scenario":"Signatures collected on one chain (or a fork) remain valid on another chain where the contract is deployed at the same address, because the domain separator only includes verifyingContract. An attacker can replay a signed unwrap on a different chain/fork to trigger an unintended execution.","recommendation":"Include chainId in the EIP‑712 domain separator (e.g., name, version, chainId, verifyingContract) and recompute if chainId changes to prevent cross‑chain replay.","evidence":"DOMAIN_SEPARATOR_TYPEHASH corresponds to EIP712Domain(address verifyingContract) and setup hashes only the contract address.","locations":["contracts/contracts/WrapMultisig.sol:22","contracts/contracts/WrapMultisig.sol:71"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-30T02:05:01.714036+00:00",
        "returncode": 0
    },
    "summary": "Identified three issues: a high-severity nonce/DoS risk on failed execTransaction, a medium unchecked-return-data false-success risk, and a low cross-chain signature replay risk from a minimal domain separator.",
    "raw_final": {
        "summary": "Identified three issues: a high-severity nonce/DoS risk on failed execTransaction, a medium unchecked-return-data false-success risk, and a low cross-chain signature replay risk from a minimal domain separator.",
        "findings": [
            {
                "title": "Failed execTransaction still consumes tezosOperation, enabling gas\u2011griefing DoS and stuck unwraps",
                "category": "other",
                "evidence": "execTransaction sets tezosOperations[tezosOperation]=true before _execute and does not revert on failure; it merely emits ExecutionFailure.",
                "severity": "high",
                "locations": [
                    "contracts/contracts/WrapMultisig.sol:158",
                    "contracts/contracts/WrapMultisig.sol:162",
                    "contracts/contracts/WrapMultisig.sol:167"
                ],
                "recommendation": "Only mark tezosOperation as processed after a successful execution (or revert on failure with require(success)) so failed calls do not consume the nonce; alternatively add an admin-controlled recovery path to reset failed operations.",
                "exploit_scenario": "An attacker observes a valid signed unwrap in the mempool and submits the same execTransaction with a tight gas limit so the internal call fails. Because tezosOperations[tezosOperation] is set before execution and the function does not revert on failure, the operation is permanently marked processed and cannot be retried, locking funds corresponding to the Tezos burn."
            },
            {
                "title": "execTransaction ignores return data, so ERC20 transfers that return false are treated as successful",
                "category": "other",
                "evidence": "_execute uses a raw call and discards return data; execTransaction only checks the boolean success flag.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/WrapMultisig.sol:167",
                    "contracts/contracts/WrapMultisig.sol:172"
                ],
                "recommendation": "When interacting with token contracts, decode and require a true return value (or use SafeERC20-style checks) so false-returning transfers are treated as failures; consider reverting on any failed token call to keep tezosOperation reusable.",
                "exploit_scenario": "Owners sign an unwrap that calls an ERC20 transfer on a token that signals failure by returning false (e.g., blacklisted/paused tokens). The low\u2011level call succeeds (no revert), _execute returns true, ExecutionSuccess is emitted, and tezosOperation is consumed even though no tokens moved."
            },
            {
                "title": "Domain separator omits chainId, allowing cross\u2011chain signature replay",
                "category": "auth",
                "evidence": "DOMAIN_SEPARATOR_TYPEHASH corresponds to EIP712Domain(address verifyingContract) and setup hashes only the contract address.",
                "severity": "low",
                "locations": [
                    "contracts/contracts/WrapMultisig.sol:22",
                    "contracts/contracts/WrapMultisig.sol:71"
                ],
                "recommendation": "Include chainId in the EIP\u2011712 domain separator (e.g., name, version, chainId, verifyingContract) and recompute if chainId changes to prevent cross\u2011chain replay.",
                "exploit_scenario": "Signatures collected on one chain (or a fork) remain valid on another chain where the contract is deployed at the same address, because the domain separator only includes verifyingContract. An attacker can replay a signed unwrap on a different chain/fork to trigger an unintended execution."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
1
CALL-family (heavy)
4
EXT*/BALANCE
0
Total opcodes
6228
Flags
create_opcodes_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x0151
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x931a2256
00000026: GT
00000027: PUSH2 0x00cd
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xe75235b8
00000031: GT
00000032: PUSH2 0x0081
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xf698da25
0000003c: GT
0000003d: PUSH2 0x0066
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xf698da25
00000047: EQ
00000048: PUSH2 0x0a3a
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xf8dc5dd9
00000052: EQ
00000053: PUSH2 0x0a42
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xffa1ad74
0000005d: EQ
0000005e: PUSH2 0x0a85
00000061: JUMPI
00000062: PUSH2 0x0151
00000065: JUMP
00000066: JUMPDEST
00000067: DUP1
00000068: PUSH4 0xe75235b8
0000006d: EQ
0000006e: PUSH2 0x08d1
00000071: JUMPI
00000072: DUP1
00000073: PUSH4 0xeed53e9f
00000078: EQ
00000079: PUSH2 0x08eb
0000007c: JUMPI
0000007d: PUSH2 0x0151
00000080: JUMP
00000081: JUMPDEST
00000082: DUP1
00000083: PUSH4 0xa3f4df7e
00000088: GT
00000089: PUSH2 0x00b2
0000008c: JUMPI
0000008d: DUP1
0000008e: PUSH4 0xa3f4df7e
00000093: EQ
00000094: PUSH2 0x06c0
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0xc8d3e980
0000009e: EQ
0000009f: PUSH2 0x073d
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0xe318b52b
000000a9: EQ
000000aa: PUSH2 0x088c
000000ad: JUMPI
000000ae: PUSH2 0x0151
000000b1: JUMP
000000b2: JUMPDEST
000000b3: DUP1
000000b4: PUSH4 0x931a2256
000000b9: EQ
000000ba: PUSH2 0x05d6
000000bd: JUMPI
000000be: DUP1
000000bf: PUSH4 0xa0e67e2b
000000c4: EQ
000000c5: PUSH2 0x0668
000000c8: JUMPI
000000c9: PUSH2 0x0151
000000cc: JUMP
000000cd: JUMPDEST
000000ce: DUP1
000000cf: PUSH4 0x2f54bf6e
000000d4: GT
000000d5: PUSH2 0x0124
000000d8: JUMPI
000000d9: DUP1
000000da: PUSH4 0x45426b9b
000000df: GT
000000e0: PUSH2 0x0109
000000e3: JUMPI
000000e4: DUP1
000000e5: PUSH4 0x45426b9b
000000ea: EQ
000000eb: PUSH2 0x0413
000000ee: JUMPI
000000ef: DUP1
000000f0: PUSH4 0x4ab88427
000000f5: EQ
000000f6: PUSH2 0x0549
000000f9: JUMPI
000000fa: DUP1
000000fb: PUSH4 0x694e80c3
00000100: EQ
00000101: PUSH2 0x05b9
00000104: JUMPI
00000105: PUSH2 0x0151
00000108: JUMP
00000109: JUMPDEST
0000010a: DUP1
0000010b: PUSH4 0x2f54bf6e
00000110: EQ
00000111: PUSH2 0x033a
00000114: JUMPI
00000115: DUP1
00000116: PUSH4 0x39c691d5
0000011b: EQ
0000011c: PUSH2 0x036d
0000011f: JUMPI
00000120: PUSH2 0x0151
00000123: JUMP
00000124: JUMPDEST
00000125: DUP1
00000126: PUSH4 0x090a3282
0000012b: EQ
0000012c: PUSH2 0x0156
0000012f: JUMPI
00000130: DUP1
00000131: PUSH4 0x0d582f13
00000136: EQ
00000137: PUSH2 0x01fc
0000013a: JUMPI
0000013b: DUP1
0000013c: PUSH4 0x150b7a02
00000141: EQ
00000142: PUSH2 0x0237
00000145: JUMPI
00000146: DUP1
00000147: PUSH4 0x16967407
0000014c: EQ
0000014d: PUSH2 0x0309
00000150: JUMPI
00000151: JUMPDEST
00000152: PUSH1 0x00
00000154: DUP1
00000155: REVERT
00000156: JUMPDEST
00000157: PUSH2 0x01e8
0000015a: PUSH1 0x04
0000015c: DUP1
0000015d: CALLDATASIZE
0000015e: SUB
0000015f: PUSH1 0x60
00000161: DUP2
00000162: LT
00000163: ISZERO
00000164: PUSH2 0x016c
00000167: JUMPI
00000168: PUSH1 0x00
0000016a: DUP1
0000016b: REVERT
0000016c: JUMPDEST
0000016d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000182: DUP3
00000183: CALLDATALOAD
00000184: AND
00000185: SWAP2
00000186: PUSH1 0x20
00000188: DUP2
00000189: ADD
0000018a: CALLDATALOAD
0000018b: SWAP2
0000018c: DUP2
0000018d: ADD
0000018e: SWAP1
0000018f: PUSH1 0x60
00000191: DUP2
00000192: ADD
00000193: PUSH1 0x40
00000195: DUP3
00000196: ADD
00000197: CALLDATALOAD
00000198: PUSH5 0x0100000000
0000019e: DUP2
0000019f: GT
000001a0: ISZERO
000001a1: PUSH2 0x01a9
000001a4: JUMPI
000001a5: PUSH1 0x00
000001a7: DUP1
000001a8: REVERT
000001a9: JUMPDEST
000001aa: DUP3
000001ab: ADD
000001ac: DUP4
000001ad: PUSH1 0x20
000001af: DUP3
000001b0: ADD
000001b1: GT
000001b2: ISZERO
000001b3: PUSH2 0x01bb
000001b6: JUMPI
000001b7: PUSH1 0x00
000001b9: DUP1
000001ba: REVERT
000001bb: JUMPDEST
000001bc: DUP1
000001bd: CALLDATALOAD
000001be: SWAP1
000001bf: PUSH1 0x20
000001c1: ADD
000001c2: SWAP2
000001c3: DUP5
000001c4: PUSH1 0x01
000001c6: DUP4
000001c7: MUL
000001c8: DUP5
000001c9: ADD
000001ca: GT
000001cb: PUSH5 0x0100000000
000001d1: DUP4
000001d2: GT
000001d3: OR
000001d4: ISZERO
000001d5: PUSH2 0x01dd
000001d8: JUMPI
000001d9: PUSH1 0x00
000001db: DUP1
000001dc: REVERT
000001dd: JUMPDEST
000001de: POP
000001df: SWAP1
000001e0: SWAP3
000001e1: POP
000001e2: SWAP1
000001e3: POP
000001e4: PUSH2 0x0a8d
000001e7: JUMP
000001e8: JUMPDEST
000001e9: PUSH1 0x40
000001eb: DUP1
000001ec: MLOAD
000001ed: SWAP2
000001ee: ISZERO
000001ef: ISZERO
000001f0: DUP3
000001f1: MSTORE
000001f2: MLOAD
000001f3: SWAP1
000001f4: DUP2
000001f5: SWAP1
000001f6: SUB
000001f7: PUSH1 0x20
000001f9: ADD
000001fa: SWAP1
000001fb: RETURN
000001fc: JUMPDEST
000001fd: PUSH2 0x0235
00000200: PUSH1 0x04
00000202: DUP1
00000203: CALLDATASIZE
00000204: SUB
00000205: PUSH1 0x40
00000207: DUP2
00000208: LT
00000209: ISZERO
0000020a: PUSH2 0x0212
0000020d: JUMPI
0000020e: PUSH1 0x00
00000210: DUP1
00000211: REVERT
00000212: JUMPDEST
00000213: POP
00000214: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000229: DUP2
0000022a: CALLDATALOAD
0000022b: AND
0000022c: SWAP1
0000022d: PUSH1 0x20
0000022f: ADD
00000230: CALLDATALOAD
00000231: PUSH2 0x0b68
00000234: JUMP
00000235: JUMPDEST
00000236: STOP
00000237: JUMPDEST
00000238: PUSH2 0x02d4
0000023b: PUSH1 0x04
0000023d: DUP1
0000023e: CALLDATASIZE
0000023f: SUB
00000240: PUSH1 0x80
00000242: DUP2
00000243: LT
00000244: ISZERO
00000245: PUSH2 0x024d
00000248: JUMPI
00000249: PUSH1 0x00
0000024b: DUP1
0000024c: REVERT
0000024d: JUMPDEST
0000024e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000263: DUP3
00000264: CALLDATALOAD
00000265: DUP2
00000266: AND
00000267: SWAP3
00000268: PUSH1 0x20
0000026a: DUP2
0000026b: ADD
0000026c: CALLDATALOAD
0000026d: SWAP1
0000026e: SWAP2
0000026f: AND
00000270: SWAP2
00000271: PUSH1 0x40
00000273: DUP3
00000274: ADD
00000275: CALLDATALOAD
00000276: SWAP2
00000277: SWAP1
00000278: DUP2
00000279: ADD
0000027a: SWAP1
0000027b: PUSH1 0x80
0000027d: DUP2
0000027e: ADD
0000027f: PUSH1 0x60
00000281: DUP3
00000282: ADD
00000283: CALLDATALOAD
00000284: PUSH5 0x0100000000
0000028a: DUP2
0000028b: GT
0000028c: ISZERO
0000028d: PUSH2 0x0295
00000290: JUMPI
00000291: PUSH1 0x00
00000293: DUP1
00000294: REVERT
00000295: JUMPDEST
00000296: DUP3
00000297: ADD
00000298: DUP4
00000299: PUSH1 0x20
0000029b: DUP3
0000029c: ADD
0000029d: GT
0000029e: ISZERO
0000029f: PUSH2 0x02a7
000002a2: JUMPI
000002a3: PUSH1 0x00
000002a5: DUP1
000002a6: REVERT
000002a7: JUMPDEST
000002a8: DUP1
000002a9: CALLDATALOAD
000002aa: SWAP1
000002ab: PUSH1 0x20
000002ad: ADD
000002ae: SWAP2
000002af: DUP5
000002b0: PUSH1 0x01
000002b2: DUP4
000002b3: MUL
000002b4: DUP5
000002b5: ADD
000002b6: GT
000002b7: PUSH5 0x0100000000
000002bd: DUP4
000002be: GT
000002bf: OR
000002c0: ISZERO
000002c1: PUSH2 0x02c9
000002c4: JUMPI
000002c5: PUSH1 0x00
000002c7: DUP1
000002c8: REVERT
000002c9: JUMPDEST
000002ca: POP
000002cb: SWAP1
000002cc: SWAP3
000002cd: POP
000002ce: SWAP1
000002cf: POP
000002d0: PUSH2 0x0dbf
000002d3: JUMP
000002d4: JUMPDEST
000002d5: PUSH1 0x40
000002d7: DUP1
000002d8: MLOAD
000002d9: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000002fa: SWAP1
000002fb: SWAP3
000002fc: AND
000002fd: DUP3
000002fe: MSTORE
000002ff: MLOAD
00000300: SWAP1
00000301: DUP2
00000302: SWAP1
00000303: SUB
00000304: PUSH1 0x20
00000306: ADD
00000307: SWAP1
00000308: RETURN
00000309: JUMPDEST
0000030a: PUSH2 0x0311
0000030d: PUSH2 0x0de9
00000310: JUMP
00000311: JUMPDEST
00000312: PUSH1 0x40
00000314: DUP1
00000315: MLOAD
00000316: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000032b: SWAP1
0000032c: SWAP3
0000032d: AND
0000032e: DUP3
0000032f: MSTORE
00000330: MLOAD
00000331: SWAP1
00000332: DUP2
00000333: SWAP1
00000334: SUB
00000335: PUSH1 0x20
00000337: ADD
00000338: SWAP1
00000339: RETURN
0000033a: JUMPDEST
0000033b: PUSH2 0x01e8
0000033e: PUSH1 0x04
00000340: DUP1
00000341: CALLDATASIZE
00000342: SUB
00000343: PUSH1 0x20
00000345: DUP2
00000346: LT
00000347: ISZERO
00000348: PUSH2 0x0350
0000034b: JUMPI
0000034c: PUSH1 0x00
0000034e: DUP1
0000034f: REVERT
00000350: JUMPDEST
00000351: POP
00000352: CALLDATALOAD
00000353: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000368: AND
00000369: PUSH2 0x0e05
0000036c: JUMP
0000036d: JUMPDEST
0000036e: PUSH2 0x01e8
00000371: PUSH1 0x04
00000373: DUP1
00000374: CALLDATASIZE
00000375: SUB
00000376: PUSH1 0x20
00000378: DUP2
00000379: LT
0000037a: ISZERO
0000037b: PUSH2 0x0383
0000037e: JUMPI
0000037f: PUSH1 0x00
00000381: DUP1
00000382: REVERT
00000383: JUMPDEST
00000384: DUP2
00000385: ADD
00000386: SWAP1
00000387: PUSH1 0x20
00000389: DUP2
0000038a: ADD
0000038b: DUP2
0000038c: CALLDATALOAD
0000038d: PUSH5 0x0100000000
00000393: DUP2
00000394: GT
00000395: ISZERO
00000396: PUSH2 0x039e
00000399: JUMPI
0000039a: PUSH1 0x00
0000039c: DUP1
0000039d: REVERT
0000039e: JUMPDEST
0000039f: DUP3
000003a0: ADD
000003a1: DUP4
000003a2: PUSH1 0x20
000003a4: DUP3
000003a5: ADD
000003a6: GT
000003a7: ISZERO
000003a8: PUSH2 0x03b0
000003ab: JUMPI
000003ac: PUSH1 0x00
000003ae: DUP1
000003af: REVERT
000003b0: JUMPDEST
000003b1: DUP1
000003b2: CALLDATALOAD
000003b3: SWAP1
000003b4: PUSH1 0x20
000003b6: ADD
000003b7: SWAP2
000003b8: DUP5
000003b9: PUSH1 0x01
000003bb: DUP4
000003bc: MUL
000003bd: DUP5
000003be: ADD
000003bf: GT
000003c0: PUSH5 0x0100000000
000003c6: DUP4
000003c7: GT
000003c8: OR
000003c9: ISZERO
000003ca: PUSH2 0x03d2
000003cd: JUMPI
000003ce: PUSH1 0x00
000003d0: DUP1
000003d1: REVERT
000003d2: JUMPDEST
000003d3: SWAP2
000003d4: SWAP1
000003d5: DUP1
000003d6: DUP1
000003d7: PUSH1 0x1f
000003d9: ADD
000003da: PUSH1 0x20
000003dc: DUP1
000003dd: SWAP2
000003de: DIV
000003df: MUL
000003e0: PUSH1 0x20
000003e2: ADD
000003e3: PUSH1 0x40
000003e5: MLOAD
000003e6: SWAP1
000003e7: DUP2
000003e8: ADD
000003e9: PUSH1 0x40
000003eb: MSTORE
000003ec: DUP1
000003ed: SWAP4
000003ee: SWAP3
000003ef: SWAP2
000003f0: SWAP1
000003f1: DUP2
000003f2: DUP2
000003f3: MSTORE
000003f4: PUSH1 0x20
000003f6: ADD
000003f7: DUP4
000003f8: DUP4
000003f9: DUP1
000003fa: DUP3
000003fb: DUP5
000003fc: CALLDATACOPY
000003fd: PUSH1 0x00
000003ff: SWAP3
00000400: ADD
00000401: SWAP2
00000402: SWAP1
00000403: SWAP2
00000404: MSTORE
00000405: POP
00000406: SWAP3
00000407: SWAP6
00000408: POP
00000409: PUSH2 0x0e5a
0000040c: SWAP5
0000040d: POP
0000040e: POP
0000040f: POP
00000410: POP
00000411: POP
00000412: JUMP
00000413: JUMPDEST
00000414: PUSH2 0x01e8
00000417: PUSH1 0x04
00000419: DUP1
0000041a: CALLDATASIZE
0000041b: SUB
0000041c: PUSH1 0xa0
0000041e: DUP2
0000041f: LT
00000420: ISZERO
00000421: PUSH2 0x0429
00000424: JUMPI
00000425: PUSH1 0x00
00000427: DUP1
00000428: REVERT
00000429: JUMPDEST
0000042a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000043f: DUP3
00000440: CALLDATALOAD
00000441: AND
00000442: SWAP2
00000443: PUSH1 0x20
00000445: DUP2
00000446: ADD
00000447: CALLDATALOAD
00000448: SWAP2
00000449: DUP2
0000044a: ADD
0000044b: SWAP1
0000044c: PUSH1 0x60
0000044e: DUP2
0000044f: ADD
00000450: PUSH1 0x40
00000452: DUP3
00000453: ADD
00000454: CALLDATALOAD
00000455: PUSH5 0x0100000000
0000045b: DUP2
0000045c: GT
0000045d: ISZERO
0000045e: PUSH2 0x0466
00000461: JUMPI
00000462: PUSH1 0x00
00000464: DUP1
00000465: REVERT
00000466: JUMPDEST
00000467: DUP3
00000468: ADD
00000469: DUP4
0000046a: PUSH1 0x20
0000046c: DUP3
0000046d: ADD
0000046e: GT
0000046f: ISZERO
00000470: PUSH2 0x0478
00000473: JUMPI
00000474: PUSH1 0x00
00000476: DUP1
00000477: REVERT
00000478: JUMPDEST
00000479: DUP1
0000047a: CALLDATALOAD
0000047b: SWAP1
0000047c: PUSH1 0x20
0000047e: ADD
0000047f: SWAP2
00000480: DUP5
00000481: PUSH1 0x01
00000483: DUP4
00000484: MUL
00000485: DUP5
00000486: ADD
00000487: GT
00000488: PUSH5 0x0100000000
0000048e: DUP4
0000048f: GT
00000490: OR
00000491: ISZERO
00000492: PUSH2 0x049a
00000495: JUMPI
00000496: PUSH1 0x00
00000498: DUP1
00000499: REVERT
0000049a: JUMPDEST
0000049b: SWAP2
0000049c: SWAP4
0000049d: SWAP1
0000049e: SWAP3
0000049f: SWAP1
000004a0: SWAP2
000004a1: PUSH1 0x20
000004a3: DUP2
000004a4: ADD
000004a5: SWAP1
000004a6: CALLDATALOAD
000004a7: PUSH5 0x0100000000
000004ad: DUP2
000004ae: GT
000004af: ISZERO
000004b0: PUSH2 0x04b8
000004b3: JUMPI
000004b4: PUSH1 0x00
000004b6: DUP1
000004b7: REVERT
000004b8: JUMPDEST
000004b9: DUP3
000004ba: ADD
000004bb: DUP4
000004bc: PUSH1 0x20
000004be: DUP3
000004bf: ADD
000004c0: GT
000004c1: ISZERO
000004c2: PUSH2 0x04ca
000004c5: JUMPI
000004c6: PUSH1 0x00
000004c8: DUP1
000004c9: REVERT
000004ca: JUMPDEST
000004cb: DUP1
000004cc: CALLDATALOAD
000004cd: SWAP1
000004ce: PUSH1 0x20
000004d0: ADD
000004d1: SWAP2
000004d2: DUP5
000004d3: PUSH1 0x01
000004d5: DUP4
000004d6: MUL
000004d7: DUP5
000004d8: ADD
000004d9: GT
000004da: PUSH5 0x0100000000
000004e0: DUP4
000004e1: GT
000004e2: OR
000004e3: ISZERO
000004e4: PUSH2 0x04ec
000004e7: JUMPI
000004e8: PUSH1 0x00
000004ea: DUP1
000004eb: REVERT
000004ec: JUMPDEST
000004ed: SWAP2
000004ee: SWAP4
000004ef: SWAP1
000004f0: SWAP3
000004f1: SWAP1
000004f2: SWAP2
000004f3: PUSH1 0x20
000004f5: DUP2
000004f6: ADD
000004f7: SWAP1
000004f8: CALLDATALOAD
000004f9: PUSH5 0x0100000000
000004ff: DUP2
00000500: GT
00000501: ISZERO
00000502: PUSH2 0x050a
00000505: JUMPI
00000506: PUSH1 0x00
00000508: DUP1
00000509: REVERT
0000050a: JUMPDEST
0000050b: DUP3
0000050c: ADD
0000050d: DUP4
0000050e: PUSH1 0x20
00000510: DUP3
00000511: ADD
00000512: GT
00000513: ISZERO
00000514: PUSH2 0x051c
00000517: JUMPI
00000518: PUSH1 0x00
0000051a: DUP1
0000051b: REVERT
0000051c: JUMPDEST
0000051d: DUP1
0000051e: CALLDATALOAD
0000051f: SWAP1
00000520: PUSH1 0x20
00000522: ADD
00000523: SWAP2
00000524: DUP5
00000525: PUSH1 0x01
00000527: DUP4
00000528: MUL
00000529: DUP5
0000052a: ADD
0000052b: GT
0000052c: PUSH5 0x0100000000
00000532: DUP4
00000533: GT
00000534: OR
00000535: ISZERO
00000536: PUSH2 0x053e
00000539: JUMPI
0000053a: PUSH1 0x00
0000053c: DUP1
0000053d: REVERT
0000053e: JUMPDEST
0000053f: POP
00000540: SWAP1
00000541: SWAP3
00000542: POP
00000543: SWAP1
00000544: POP
00000545: PUSH2 0x0f01
00000548: JUMP
00000549: JUMPDEST
0000054a: PUSH2 0x0235
0000054d: PUSH1 0x04
0000054f: DUP1
00000550: CALLDATASIZE
00000551: SUB
00000552: PUSH1 0x40
00000554: DUP2
00000555: LT
00000556: ISZERO
00000557: PUSH2 0x055f
0000055a: JUMPI
0000055b: PUSH1 0x00
0000055d: DUP1
0000055e: REVERT
0000055f: JUMPDEST
00000560: DUP2
00000561: ADD
00000562: SWAP1
00000563: PUSH1 0x20
00000565: DUP2
00000566: ADD
00000567: DUP2
00000568: CALLDATALOAD
00000569: PUSH5 0x0100000000
0000056f: DUP2
00000570: GT
00000571: ISZERO
00000572: PUSH2 0x057a
00000575: JUMPI
00000576: PUSH1 0x00
00000578: DUP1
00000579: REVERT
0000057a: JUMPDEST
0000057b: DUP3
0000057c: ADD
0000057d: DUP4
0000057e: PUSH1 0x20
00000580: DUP3
00000581: ADD
00000582: GT
00000583: ISZERO
00000584: PUSH2 0x058c
00000587: JUMPI
00000588: PUSH1 0x00
0000058a: DUP1
0000058b: REVERT
0000058c: JUMPDEST
0000058d: DUP1
0000058e: CALLDATALOAD
0000058f: SWAP1
00000590: PUSH1 0x20
00000592: ADD
00000593: SWAP2
00000594: DUP5
00000595: PUSH1 0x20
00000597: DUP4
00000598: MUL
00000599: DUP5
0000059a: ADD
0000059b: GT
0000059c: PUSH5 0x0100000000
000005a2: DUP4
000005a3: GT
000005a4: OR
000005a5: ISZERO
000005a6: PUSH2 0x05ae
000005a9: JUMPI
000005aa: PUSH1 0x00
000005ac: DUP1
000005ad: REVERT
000005ae: JUMPDEST
000005af: SWAP2
000005b0: SWAP4
000005b1: POP
000005b2: SWAP2
000005b3: POP
000005b4: CALLDATALOAD
000005b5: PUSH2 0x115e
000005b8: JUMP
000005b9: JUMPDEST
000005ba: PUSH2 0x0235
000005bd: PUSH1 0x04
000005bf: DUP1
000005c0: CALLDATASIZE
000005c1: SUB
000005c2: PUSH1 0x20
000005c4: DUP2
000005c5: LT
000005c6: ISZERO
000005c7: PUSH2 0x05cf
000005ca: JUMPI
000005cb: PUSH1 0x00
000005cd: DUP1
000005ce: REVERT
000005cf: JUMPDEST
000005d0: POP
000005d1: CALLDATALOAD
000005d2: PUSH2 0x12b6
000005d5: JUMP
000005d6: JUMPDEST
000005d7: PUSH2 0x01e8
000005da: PUSH1 0x04
000005dc: DUP1
000005dd: CALLDATASIZE
000005de: SUB
000005df: PUSH1 0x60
000005e1: DUP2
000005e2: LT
000005e3: ISZERO
000005e4: PUSH2 0x05ec
000005e7: JUMPI
000005e8: PUSH1 0x00
000005ea: DUP1
000005eb: REVERT
000005ec: JUMPDEST
000005ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000602: DUP3
00000603: CALLDATALOAD
00000604: AND
00000605: SWAP2
00000606: PUSH1 0x20
00000608: DUP2
00000609: ADD
0000060a: CALLDATALOAD
0000060b: SWAP2
0000060c: DUP2
0000060d: ADD
0000060e: SWAP1
0000060f: PUSH1 0x60
00000611: DUP2
00000612: ADD
00000613: PUSH1 0x40
00000615: DUP3
00000616: ADD
00000617: CALLDATALOAD
00000618: PUSH5 0x0100000000
0000061e: DUP2
0000061f: GT
00000620: ISZERO
00000621: PUSH2 0x0629
00000624: JUMPI
00000625: PUSH1 0x00
00000627: DUP1
00000628: REVERT
00000629: JUMPDEST
0000062a: DUP3
0000062b: ADD
0000062c: DUP4
0000062d: PUSH1 0x20
0000062f: DUP3
00000630: ADD
00000631: GT
00000632: ISZERO
00000633: PUSH2 0x063b
00000636: JUMPI
00000637: PUSH1 0x00
00000639: DUP1
0000063a: REVERT
0000063b: JUMPDEST
0000063c: DUP1
0000063d: CALLDATALOAD
0000063e: SWAP1
0000063f: PUSH1 0x20
00000641: ADD
00000642: SWAP2
00000643: DUP5
00000644: PUSH1 0x01
00000646: DUP4
00000647: MUL
00000648: DUP5
00000649: ADD
0000064a: GT
0000064b: PUSH5 0x0100000000
00000651: DUP4
00000652: GT
00000653: OR
00000654: ISZERO
00000655: PUSH2 0x065d
00000658: JUMPI
00000659: PUSH1 0x00
0000065b: DUP1
0000065c: REVERT
0000065d: JUMPDEST
0000065e: POP
0000065f: SWAP1
00000660: SWAP3
00000661: POP
00000662: SWAP1
00000663: POP
00000664: PUSH2 0x1416
00000667: JUMP
00000668: JUMPDEST
00000669: PUSH2 0x0670
0000066c: PUSH2 0x155f
0000066f: JUMP
00000670: JUMPDEST
00000671: PUSH1 0x40
00000673: DUP1
00000674: MLOAD
00000675: PUSH1 0x20
00000677: DUP1
00000678: DUP3
00000679: MSTORE
0000067a: DUP4
0000067b: MLOAD
0000067c: DUP2
0000067d: DUP4
0000067e: ADD
0000067f: MSTORE
00000680: DUP4
00000681: MLOAD
00000682: SWAP2
00000683: SWAP3
00000684: DUP4
00000685: SWAP3
00000686: SWAP1
00000687: DUP4
00000688: ADD
00000689: SWAP2
0000068a: DUP6
0000068b: DUP2
0000068c: ADD
0000068d: SWAP2
0000068e: MUL
0000068f: DUP1
00000690: DUP4
00000691: DUP4
00000692: PUSH1 0x00
00000694: JUMPDEST
00000695: DUP4
00000696: DUP2
00000697: LT
00000698: ISZERO
00000699: PUSH2 0x06ac
0000069c: JUMPI
0000069d: DUP2
0000069e: DUP2
0000069f: ADD
000006a0: MLOAD
000006a1: DUP4
000006a2: DUP3
000006a3: ADD
000006a4: MSTORE
000006a5: PUSH1 0x20
000006a7: ADD
000006a8: PUSH2 0x0694
000006ab: JUMP
000006ac: JUMPDEST
000006ad: POP
000006ae: POP
000006af: POP
000006b0: POP
000006b1: SWAP1
000006b2: POP
000006b3: ADD
000006b4: SWAP3
000006b5: POP
000006b6: POP
000006b7: POP
000006b8: PUSH1 0x40
000006ba: MLOAD
000006bb: DUP1
000006bc: SWAP2
000006bd: SUB
000006be: SWAP1
000006bf: RETURN
000006c0: JUMPDEST
000006c1: PUSH2 0x06c8
000006c4: PUSH2 0x1669
000006c7: JUMP
000006c8: JUMPDEST
000006c9: PUSH1 0x40
000006cb: DUP1
000006cc: MLOAD
000006cd: PUSH1 0x20
000006cf: DUP1
000006d0: DUP3
000006d1: MSTORE
000006d2: DUP4
000006d3: MLOAD
000006d4: DUP2
000006d5: DUP4
000006d6: ADD
000006d7: MSTORE
000006d8: DUP4
000006d9: MLOAD
000006da: SWAP2
000006db: SWAP3
000006dc: DUP4
000006dd: SWAP3
000006de: SWAP1
000006df: DUP4
000006e0: ADD
000006e1: SWAP2
000006e2: DUP6
000006e3: ADD
000006e4: SWAP1
000006e5: DUP1
000006e6: DUP4
000006e7: DUP4
000006e8: PUSH1 0x00
000006ea: JUMPDEST
000006eb: DUP4
000006ec: DUP2
000006ed: LT
000006ee: ISZERO
000006ef: PUSH2 0x0702
000006f2: JUMPI
000006f3: DUP2
000006f4: DUP2
000006f5: ADD
000006f6: MLOAD
000006f7: DUP4
000006f8: DUP3
000006f9: ADD
000006fa: MSTORE
000006fb: PUSH1 0x20
000006fd: ADD
000006fe: PUSH2 0x06ea
00000701: JUMP
00000702: JUMPDEST
00000703: POP
00000704: POP
00000705: POP
00000706: POP
00000707: SWAP1
00000708: POP
00000709: SWAP1
0000070a: DUP2
0000070b: ADD
0000070c: SWAP1
0000070d: PUSH1 0x1f
0000070f: AND
00000710: DUP1
00000711: ISZERO
00000712: PUSH2 0x072f
00000715: JUMPI
00000716: DUP1
00000717: DUP3
00000718: SUB
00000719: DUP1
0000071a: MLOAD
0000071b: PUSH1 0x01
0000071d: DUP4
0000071e: PUSH1 0x20
00000720: SUB
00000721: PUSH2 0x0100
00000724: EXP
00000725: SUB
00000726: NOT
00000727: AND
00000728: DUP2
00000729: MSTORE
0000072a: PUSH1 0x20
0000072c: ADD
0000072d: SWAP2
0000072e: POP
0000072f: JUMPDEST
00000730: POP
00000731: SWAP3
00000732: POP
00000733: POP
00000734: POP
00000735: PUSH1 0x40
00000737: MLOAD
00000738: DUP1
00000739: SWAP2
0000073a: SUB
0000073b: SWAP1
0000073c: RETURN
0000073d: JUMPDEST
0000073e: PUSH2 0x06c8
00000741: PUSH1 0x04
00000743: DUP1
00000744: CALLDATASIZE
00000745: SUB
00000746: PUSH1 0x80
00000748: DUP2
00000749: LT
0000074a: ISZERO
0000074b: PUSH2 0x0753
0000074e: JUMPI
0000074f: PUSH1 0x00
00000751: DUP1
00000752: REVERT
00000753: JUMPDEST
00000754: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000769: DUP3
0000076a: CALLDATALOAD
0000076b: AND
0000076c: SWAP2
0000076d: PUSH1 0x20
0000076f: DUP2
00000770: ADD
00000771: CALLDATALOAD
00000772: SWAP2
00000773: DUP2
00000774: ADD
00000775: SWAP1
00000776: PUSH1 0x60
00000778: DUP2
00000779: ADD
0000077a: PUSH1 0x40
0000077c: DUP3
0000077d: ADD
0000077e: CALLDATALOAD
0000077f: PUSH5 0x0100000000
00000785: DUP2
00000786: GT
00000787: ISZERO
00000788: PUSH2 0x0790
0000078b: JUMPI
0000078c: PUSH1 0x00
0000078e: DUP1
0000078f: REVERT
00000790: JUMPDEST
00000791: DUP3
00000792: ADD
00000793: DUP4
00000794: PUSH1 0x20
00000796: DUP3
00000797: ADD
00000798: GT
00000799: ISZERO
0000079a: PUSH2 0x07a2
0000079d: JUMPI
0000079e: PUSH1 0x00
000007a0: DUP1
000007a1: REVERT
000007a2: JUMPDEST
000007a3: DUP1
000007a4: CALLDATALOAD
000007a5: SWAP1
000007a6: PUSH1 0x20
000007a8: ADD
000007a9: SWAP2
000007aa: DUP5
000007ab: PUSH1 0x01
000007ad: DUP4
000007ae: MUL
000007af: DUP5
000007b0: ADD
000007b1: GT
000007b2: PUSH5 0x0100000000
000007b8: DUP4
000007b9: GT
000007ba: OR
000007bb: ISZERO
000007bc: PUSH2 0x07c4
000007bf: JUMPI
000007c0: PUSH1 0x00
000007c2: DUP1
000007c3: REVERT
000007c4: JUMPDEST
000007c5: SWAP2
000007c6: SWAP1
000007c7: DUP1
000007c8: DUP1
000007c9: PUSH1 0x1f
000007cb: ADD
000007cc: PUSH1 0x20
000007ce: DUP1
000007cf: SWAP2
000007d0: DIV
000007d1: MUL
000007d2: PUSH1 0x20
000007d4: ADD
000007d5: PUSH1 0x40
000007d7: MLOAD
000007d8: SWAP1
000007d9: DUP2
000007da: ADD
000007db: PUSH1 0x40
000007dd: MSTORE
000007de: DUP1
000007df: SWAP4
000007e0: SWAP3
000007e1: SWAP2
000007e2: SWAP1
000007e3: DUP2
000007e4: DUP2
000007e5: MSTORE
000007e6: PUSH1 0x20
000007e8: ADD
000007e9: DUP4
000007ea: DUP4
000007eb: DUP1
000007ec: DUP3
000007ed: DUP5
000007ee: CALLDATACOPY
000007ef: PUSH1 0x00
000007f1: SWAP3
000007f2: ADD
000007f3: SWAP2
000007f4: SWAP1
000007f5: SWAP2
000007f6: MSTORE
000007f7: POP
000007f8: SWAP3
000007f9: SWAP6
000007fa: SWAP5
000007fb: SWAP4
000007fc: PUSH1 0x20
000007fe: DUP2
000007ff: ADD
00000800: SWAP4
00000801: POP
00000802: CALLDATALOAD
00000803: SWAP2
00000804: POP
00000805: POP
00000806: PUSH5 0x0100000000
0000080c: DUP2
0000080d: GT
0000080e: ISZERO
0000080f: PUSH2 0x0817
00000812: JUMPI
00000813: PUSH1 0x00
00000815: DUP1
00000816: REVERT
00000817: JUMPDEST
00000818: DUP3
00000819: ADD
0000081a: DUP4
0000081b: PUSH1 0x20
0000081d: DUP3
0000081e: ADD
0000081f: GT
00000820: ISZERO
00000821: PUSH2 0x0829
00000824: JUMPI
00000825: PUSH1 0x00
00000827: DUP1
00000828: REVERT
00000829: JUMPDEST
0000082a: DUP1
0000082b: CALLDATALOAD
0000082c: SWAP1
0000082d: PUSH1 0x20
0000082f: ADD
00000830: SWAP2
00000831: DUP5
00000832: PUSH1 0x01
00000834: DUP4
00000835: MUL
00000836: DUP5
00000837: ADD
00000838: GT
00000839: PUSH5 0x0100000000
0000083f: DUP4
00000840: GT
00000841: OR
00000842: ISZERO
00000843: PUSH2 0x084b
00000846: JUMPI
00000847: PUSH1 0x00
00000849: DUP1
0000084a: REVERT
0000084b: JUMPDEST
0000084c: SWAP2
0000084d: SWAP1
0000084e: DUP1
0000084f: DUP1
00000850: PUSH1 0x1f
00000852: ADD
00000853: PUSH1 0x20
00000855: DUP1
00000856: SWAP2
00000857: DIV
00000858: MUL
00000859: PUSH1 0x20
0000085b: ADD
0000085c: PUSH1 0x40
0000085e: MLOAD
0000085f: SWAP1
00000860: DUP2
00000861: ADD
00000862: PUSH1 0x40
00000864: MSTORE
00000865: DUP1
00000866: SWAP4
00000867: SWAP3
00000868: SWAP2
00000869: SWAP1
0000086a: DUP2
0000086b: DUP2
0000086c: MSTORE
0000086d: PUSH1 0x20
0000086f: ADD
00000870: DUP4
00000871: DUP4
00000872: DUP1
00000873: DUP3
00000874: DUP5
00000875: CALLDATACOPY
00000876: PUSH1 0x00
00000878: SWAP3
00000879: ADD
0000087a: SWAP2
0000087b: SWAP1
0000087c: SWAP2
0000087d: MSTORE
0000087e: POP
0000087f: SWAP3
00000880: SWAP6
00000881: POP
00000882: PUSH2 0x16a2
00000885: SWAP5
00000886: POP
00000887: POP
00000888: POP
00000889: POP
0000088a: POP
0000088b: JUMP
0000088c: JUMPDEST
0000088d: PUSH2 0x0235
00000890: PUSH1 0x04
00000892: DUP1
00000893: CALLDATASIZE
00000894: SUB
00000895: PUSH1 0x60
00000897: DUP2
00000898: LT
00000899: ISZERO
0000089a: PUSH2 0x08a2
0000089d: JUMPI
0000089e: PUSH1 0x00
000008a0: DUP1
000008a1: REVERT
000008a2: JUMPDEST
000008a3: POP
000008a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008b9: DUP2
000008ba: CALLDATALOAD
000008bb: DUP2
000008bc: AND
000008bd: SWAP2
000008be: PUSH1 0x20
000008c0: DUP2
000008c1: ADD
000008c2: CALLDATALOAD
000008c3: DUP3
000008c4: AND
000008c5: SWAP2
000008c6: PUSH1 0x40
000008c8: SWAP1
000008c9: SWAP2
000008ca: ADD
000008cb: CALLDATALOAD
000008cc: AND
000008cd: PUSH2 0x182b
000008d0: JUMP
000008d1: JUMPDEST
000008d2: PUSH2 0x08d9
000008d5: PUSH2 0x1bbb
000008d8: JUMP
000008d9: JUMPDEST
000008da: PUSH1 0x40
000008dc: DUP1
000008dd: MLOAD
000008de: SWAP2
000008df: DUP3
000008e0: MSTORE
000008e1: MLOAD
000008e2: SWAP1
000008e3: DUP2
000008e4: SWAP1
000008e5: SUB
000008e6: PUSH1 0x20
000008e8: ADD
000008e9: SWAP1
000008ea: RETURN
000008eb: JUMPDEST
000008ec: PUSH2 0x08d9
000008ef: PUSH1 0x04
000008f1: DUP1
000008f2: CALLDATASIZE
000008f3: SUB
000008f4: PUSH1 0x80
000008f6: DUP2
000008f7: LT
000008f8: ISZERO
000008f9: PUSH2 0x0901
000008fc: JUMPI
000008fd: PUSH1 0x00
000008ff: DUP1
00000900: REVERT
00000901: JUMPDEST
00000902: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000917: DUP3
00000918: CALLDATALOAD
00000919: AND
0000091a: SWAP2
0000091b: PUSH1 0x20
0000091d: DUP2
0000091e: ADD
0000091f: CALLDATALOAD
00000920: SWAP2
00000921: DUP2
00000922: ADD
00000923: SWAP1
00000924: PUSH1 0x60
00000926: DUP2
00000927: ADD
00000928: PUSH1 0x40
0000092a: DUP3
0000092b: ADD
0000092c: CALLDATALOAD
0000092d: PUSH5 0x0100000000
00000933: DUP2
00000934: GT
00000935: ISZERO
00000936: PUSH2 0x093e
00000939: JUMPI
0000093a: PUSH1 0x00
0000093c: DUP1
0000093d: REVERT
0000093e: JUMPDEST
0000093f: DUP3
00000940: ADD
00000941: DUP4
00000942: PUSH1 0x20
00000944: DUP3
00000945: ADD
00000946: GT
00000947: ISZERO
00000948: PUSH2 0x0950
0000094b: JUMPI
0000094c: PUSH1 0x00
0000094e: DUP1
0000094f: REVERT
00000950: JUMPDEST
00000951: DUP1
00000952: CALLDATALOAD
00000953: SWAP1
00000954: PUSH1 0x20
00000956: ADD
00000957: SWAP2
00000958: DUP5
00000959: PUSH1 0x01
0000095b: DUP4
0000095c: MUL
0000095d: DUP5
0000095e: ADD
0000095f: GT
00000960: PUSH5 0x0100000000
00000966: DUP4
00000967: GT
00000968: OR
00000969: ISZERO
0000096a: PUSH2 0x0972
0000096d: JUMPI
0000096e: PUSH1 0x00
00000970: DUP1
00000971: REVERT
00000972: JUMPDEST
00000973: SWAP2
00000974: SWAP1
00000975: DUP1
00000976: DUP1
00000977: PUSH1 0x1f
00000979: ADD
0000097a: PUSH1 0x20
0000097c: DUP1
0000097d: SWAP2
0000097e: DIV
0000097f: MUL
00000980: PUSH1 0x20
00000982: ADD
00000983: PUSH1 0x40
00000985: MLOAD
00000986: SWAP1
00000987: DUP2
00000988: ADD
00000989: PUSH1 0x40
0000098b: MSTORE
0000098c: DUP1
0000098d: SWAP4
0000098e: SWAP3
0000098f: SWAP2
00000990: SWAP1
00000991: DUP2
00000992: DUP2
00000993: MSTORE
00000994: PUSH1 0x20
00000996: ADD
00000997: DUP4
00000998: DUP4
00000999: DUP1
0000099a: DUP3
0000099b: DUP5
0000099c: CALLDATACOPY
0000099d: PUSH1 0x00
0000099f: SWAP3
000009a0: ADD
000009a1: SWAP2
000009a2: SWAP1
000009a3: SWAP2
000009a4: MSTORE
000009a5: POP
000009a6: SWAP3
000009a7: SWAP6
000009a8: SWAP5
000009a9: SWAP4
000009aa: PUSH1 0x20
000009ac: DUP2
000009ad: ADD
000009ae: SWAP4
000009af: POP
000009b0: CALLDATALOAD
000009b1: SWAP2
000009b2: POP
000009b3: POP
000009b4: PUSH5 0x0100000000
000009ba: DUP2
000009bb: GT
000009bc: ISZERO
000009bd: PUSH2 0x09c5
000009c0: JUMPI
000009c1: PUSH1 0x00
000009c3: DUP1
000009c4: REVERT
000009c5: JUMPDEST
000009c6: DUP3
000009c7: ADD
000009c8: DUP4
000009c9: PUSH1 0x20
000009cb: DUP3
000009cc: ADD
000009cd: GT
000009ce: ISZERO
000009cf: PUSH2 0x09d7
000009d2: JUMPI
000009d3: PUSH1 0x00
000009d5: DUP1
000009d6: REVERT
000009d7: JUMPDEST
000009d8: DUP1
000009d9: CALLDATALOAD
000009da: SWAP1
000009db: PUSH1 0x20
000009dd: ADD
000009de: SWAP2
000009df: DUP5
000009e0: PUSH1 0x01
000009e2: DUP4
000009e3: MUL
000009e4: DUP5
000009e5: ADD
000009e6: GT
000009e7: PUSH5 0x0100000000
000009ed: DUP4
000009ee: GT
000009ef: OR
000009f0: ISZERO
000009f1: PUSH2 0x09f9
000009f4: JUMPI
000009f5: PUSH1 0x00
000009f7: DUP1
000009f8: REVERT
000009f9: JUMPDEST
000009fa: SWAP2
000009fb: SWAP1
000009fc: DUP1
000009fd: DUP1
000009fe: PUSH1 0x1f
00000a00: ADD
00000a01: PUSH1 0x20
00000a03: DUP1
00000a04: SWAP2
00000a05: DIV
00000a06: MUL
00000a07: PUSH1 0x20
00000a09: ADD
00000a0a: PUSH1 0x40
00000a0c: MLOAD
00000a0d: SWAP1
00000a0e: DUP2
00000a0f: ADD
00000a10: PUSH1 0x40
00000a12: MSTORE
00000a13: DUP1
00000a14: SWAP4
00000a15: SWAP3
00000a16: SWAP2
00000a17: SWAP1
00000a18: DUP2
00000a19: DUP2
00000a1a: MSTORE
00000a1b: PUSH1 0x20
00000a1d: ADD
00000a1e: DUP4
00000a1f: DUP4
00000a20: DUP1
00000a21: DUP3
00000a22: DUP5
00000a23: CALLDATACOPY
00000a24: PUSH1 0x00
00000a26: SWAP3
00000a27: ADD
00000a28: SWAP2
00000a29: SWAP1
00000a2a: SWAP2
00000a2b: MSTORE
00000a2c: POP
00000a2d: SWAP3
00000a2e: SWAP6
00000a2f: POP
00000a30: PUSH2 0x1bc1
00000a33: SWAP5
00000a34: POP
00000a35: POP
00000a36: POP
00000a37: POP
00000a38: POP
00000a39: JUMP
00000a3a: JUMPDEST
00000a3b: PUSH2 0x08d9
00000a3e: PUSH2 0x1be0
00000a41: JUMP
00000a42: JUMPDEST
00000a43: PUSH2 0x0235
00000a46: PUSH1 0x04
00000a48: DUP1
00000a49: CALLDATASIZE
00000a4a: SUB
00000a4b: PUSH1 0x60
00000a4d: DUP2
00000a4e: LT
00000a4f: ISZERO
00000a50: PUSH2 0x0a58
00000a53: JUMPI
00000a54: PUSH1 0x00
00000a56: DUP1
00000a57: REVERT
00000a58: JUMPDEST
00000a59: POP
00000a5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a6f: DUP2
00000a70: CALLDATALOAD
00000a71: DUP2
00000a72: AND
00000a73: SWAP2
00000a74: PUSH1 0x20
00000a76: DUP2
00000a77: ADD
00000a78: CALLDATALOAD
00000a79: SWAP1
00000a7a: SWAP2
00000a7b: AND
00000a7c: SWAP1
00000a7d: PUSH1 0x40
00000a7f: ADD
00000a80: CALLDATALOAD
00000a81: PUSH2 0x1be6
00000a84: JUMP
00000a85: JUMPDEST
00000a86: PUSH2 0x06c8
00000a89: PUSH2 0x1ea0
00000a8c: JUMP
00000a8d: JUMPDEST
00000a8e: PUSH1 0x00
00000a90: PUSH2 0x0a9b
00000a93: DUP6
00000a94: CALLER
00000a95: ADDRESS
00000a96: DUP8
00000a97: PUSH2 0x1ed9
00000a9a: JUMP
00000a9b: JUMPDEST
00000a9c: PUSH32 0x2e616d24cb14cc7a22d0efef037ff9c8dc13ee53c172ca5fef2185c5f5ad28e0
00000abd: CALLER
00000abe: DUP7
00000abf: DUP7
00000ac0: DUP7
00000ac1: DUP7
00000ac2: PUSH1 0x40
00000ac4: MLOAD
00000ac5: DUP1
00000ac6: DUP7
00000ac7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000adc: AND
00000add: DUP2
00000ade: MSTORE
00000adf: PUSH1 0x20
00000ae1: ADD
00000ae2: DUP6
00000ae3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000af8: AND
00000af9: DUP2
00000afa: MSTORE
00000afb: PUSH1 0x20
00000afd: ADD
00000afe: DUP5
00000aff: DUP2
00000b00: MSTORE
00000b01: PUSH1 0x20
00000b03: ADD
00000b04: DUP1
00000b05: PUSH1 0x20
00000b07: ADD
00000b08: DUP3
00000b09: DUP2
00000b0a: SUB
00000b0b: DUP3
00000b0c: MSTORE
00000b0d: DUP5
00000b0e: DUP5
00000b0f: DUP3
00000b10: DUP2
00000b11: DUP2
00000b12: MSTORE
00000b13: PUSH1 0x20
00000b15: ADD
00000b16: SWAP3
00000b17: POP
00000b18: DUP1
00000b19: DUP3
00000b1a: DUP5
00000b1b: CALLDATACOPY
00000b1c: PUSH1 0x00
00000b1e: DUP4
00000b1f: DUP3
00000b20: ADD
00000b21: MSTORE
00000b22: PUSH1 0x40
00000b24: MLOAD
00000b25: PUSH1 0x1f
00000b27: SWAP1
00000b28: SWAP2
00000b29: ADD
00000b2a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00000b4b: AND
00000b4c: SWAP1
00000b4d: SWAP3
00000b4e: ADD
00000b4f: DUP3
00000b50: SWAP1
00000b51: SUB
00000b52: SWAP9
00000b53: POP
00000b54: SWAP1
00000b55: SWAP7
00000b56: POP
00000b57: POP
00000b58: POP
00000b59: POP
00000b5a: POP
00000b5b: POP
00000b5c: POP
00000b5d: LOG1
00000b5e: POP
00000b5f: PUSH1 0x01
00000b61: SWAP5
00000b62: SWAP4
00000b63: POP
00000b64: POP
00000b65: POP
00000b66: POP
00000b67: JUMP
00000b68: JUMPDEST
00000b69: PUSH1 0x00
00000b6b: SLOAD
00000b6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b81: AND
00000b82: CALLER
00000b83: EQ
00000b84: PUSH2 0x0bd8
00000b87: JUMPI
00000b88: PUSH1 0x40
00000b8a: MLOAD
00000b8b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000bac: DUP2
00000bad: MSTORE
00000bae: PUSH1 0x04
00000bb0: ADD
00000bb1: DUP1
00000bb2: DUP1
00000bb3: PUSH1 0x20
00000bb5: ADD
00000bb6: DUP3
00000bb7: DUP2
00000bb8: SUB
00000bb9: DUP3
00000bba: MSTORE
00000bbb: PUSH1 0x30
00000bbd: DUP2
00000bbe: MSTORE
00000bbf: PUSH1 0x20
00000bc1: ADD
00000bc2: DUP1
00000bc3: PUSH2 0x2d5a
00000bc6: PUSH1 0x30
00000bc8: SWAP2
00000bc9: CODECOPY
00000bca: PUSH1 0x40
00000bcc: ADD
00000bcd: SWAP2
00000bce: POP
00000bcf: POP
00000bd0: PUSH1 0x40
00000bd2: MLOAD
00000bd3: DUP1
00000bd4: SWAP2
00000bd5: SUB
00000bd6: SWAP1
00000bd7: REVERT
00000bd8: JUMPDEST
00000bd9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bee: DUP3
00000bef: AND
00000bf0: ISZERO
00000bf1: DUP1
00000bf2: ISZERO
00000bf3: SWAP1
00000bf4: PUSH2 0x0c14
00000bf7: JUMPI
00000bf8: POP
00000bf9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c0e: DUP3
00000c0f: AND
00000c10: PUSH1 0x01
00000c12: EQ
00000c13: ISZERO
00000c14: JUMPDEST
00000c15: PUSH2 0x0c69
00000c18: JUMPI
00000c19: PUSH1 0x40
00000c1b: MLOAD
00000c1c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000c3d: DUP2
00000c3e: MSTORE
00000c3f: PUSH1 0x04
00000c41: ADD
00000c42: DUP1
00000c43: DUP1
00000c44: PUSH1 0x20
00000c46: ADD
00000c47: DUP3
00000c48: DUP2
00000c49: SUB
00000c4a: DUP3
00000c4b: MSTORE
00000c4c: PUSH1 0x24
00000c4e: DUP2
00000c4f: MSTORE
00000c50: PUSH1 0x20
00000c52: ADD
00000c53: DUP1
00000c54: PUSH2 0x2baf
00000c57: PUSH1 0x24
00000c59: SWAP2
00000c5a: CODECOPY
00000c5b: PUSH1 0x40
00000c5d: ADD
00000c5e: SWAP2
00000c5f: POP
00000c60: POP
00000c61: PUSH1 0x40
00000c63: MLOAD
00000c64: DUP1
00000c65: SWAP2
00000c66: SUB
00000c67: SWAP1
00000c68: REVERT
00000c69: JUMPDEST
00000c6a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c7f: DUP3
00000c80: DUP2
00000c81: AND
00000c82: PUSH1 0x00
00000c84: SWAP1
00000c85: DUP2
00000c86: MSTORE
00000c87: PUSH1 0x01
00000c89: PUSH1 0x20
00000c8b: MSTORE
00000c8c: PUSH1 0x40
00000c8e: SWAP1
00000c8f: KECCAK256
00000c90: SLOAD
00000c91: AND
00000c92: ISZERO
00000c93: PUSH2 0x0ce7
00000c96: JUMPI
00000c97: PUSH1 0x40
00000c99: MLOAD
00000c9a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000cbb: DUP2
00000cbc: MSTORE
00000cbd: PUSH1 0x04
00000cbf: ADD
00000cc0: DUP1
00000cc1: DUP1
00000cc2: PUSH1 0x20
00000cc4: ADD
00000cc5: DUP3
00000cc6: DUP2
00000cc7: SUB
00000cc8: DUP3
00000cc9: MSTORE
00000cca: PUSH1 0x21
00000ccc: DUP2
00000ccd: MSTORE
00000cce: PUSH1 0x20
00000cd0: ADD
00000cd1: DUP1
00000cd2: PUSH2 0x2c77
00000cd5: PUSH1 0x21
00000cd7: SWAP2
00000cd8: CODECOPY
00000cd9: PUSH1 0x40
00000cdb: ADD
00000cdc: SWAP2
00000cdd: POP
00000cde: POP
00000cdf: PUSH1 0x40
00000ce1: MLOAD
00000ce2: DUP1
00000ce3: SWAP2
00000ce4: SUB
00000ce5: SWAP1
00000ce6: REVERT
00000ce7: JUMPDEST
00000ce8: PUSH1 0x01
00000cea: PUSH1 0x20
00000cec: DUP2
00000ced: DUP2
00000cee: MSTORE
00000cef: PUSH32 0xcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f
00000d10: DUP1
00000d11: SLOAD
00000d12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d27: DUP7
00000d28: DUP2
00000d29: AND
00000d2a: PUSH1 0x00
00000d2c: DUP2
00000d2d: DUP2
00000d2e: MSTORE
00000d2f: PUSH1 0x40
00000d31: DUP1
00000d32: DUP3
00000d33: KECCAK256
00000d34: DUP1
00000d35: SLOAD
00000d36: SWAP5
00000d37: SWAP1
00000d38: SWAP6
00000d39: AND
00000d3a: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000d5b: SWAP5
00000d5c: DUP6
00000d5d: AND
00000d5e: OR
00000d5f: SWAP1
00000d60: SWAP5
00000d61: SSTORE
00000d62: DUP7
00000d63: SWAP1
00000d64: MSTORE
00000d65: DUP4
00000d66: SLOAD
00000d67: SWAP1
00000d68: SWAP2
00000d69: AND
00000d6a: DUP2
00000d6b: OR
00000d6c: SWAP1
00000d6d: SWAP3
00000d6e: SSTORE
00000d6f: PUSH1 0x02
00000d71: DUP1
00000d72: SLOAD
00000d73: SWAP1
00000d74: SWAP5
00000d75: ADD
00000d76: SWAP1
00000d77: SWAP4
00000d78: SSTORE
00000d79: DUP3
00000d7a: MLOAD
00000d7b: SWAP1
00000d7c: DUP2
00000d7d: MSTORE
00000d7e: SWAP2
00000d7f: MLOAD
00000d80: PUSH32 0x9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea26
00000da1: SWAP3
00000da2: DUP2
00000da3: SWAP1
00000da4: SUB
00000da5: SWAP1
00000da6: SWAP2
00000da7: ADD
00000da8: SWAP1
00000da9: LOG1
00000daa: DUP1
00000dab: PUSH1 0x03
00000dad: SLOAD
00000dae: EQ
00000daf: PUSH2 0x0dbb
00000db2: JUMPI
00000db3: PUSH2 0x0dbb
00000db6: DUP2
00000db7: PUSH2 0x12b6
00000dba: JUMP
00000dbb: JUMPDEST
00000dbc: POP
00000dbd: POP
00000dbe: JUMP
00000dbf: JUMPDEST
00000dc0: PUSH32 0x150b7a0200000000000000000000000000000000000000000000000000000000
00000de1: SWAP6
00000de2: SWAP5
00000de3: POP
00000de4: POP
00000de5: POP
00000de6: POP
00000de7: POP
00000de8: JUMP
00000de9: JUMPDEST
00000dea: PUSH1 0x00
00000dec: SLOAD
00000ded: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e02: AND
00000e03: SWAP1
00000e04: JUMP
00000e05: JUMPDEST
00000e06: PUSH1 0x00
00000e08: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e1d: DUP3
00000e1e: AND
00000e1f: PUSH1 0x01
00000e21: EQ
00000e22: DUP1
00000e23: ISZERO
00000e24: SWAP1
00000e25: PUSH2 0x0e54
00000e28: JUMPI
00000e29: POP
00000e2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e3f: DUP3
00000e40: DUP2
00000e41: AND
00000e42: PUSH1 0x00
00000e44: SWAP1
00000e45: DUP2
00000e46: MSTORE
00000e47: PUSH1 0x01
00000e49: PUSH1 0x20
00000e4b: MSTORE
00000e4c: PUSH1 0x40
00000e4e: SWAP1
00000e4f: KECCAK256
00000e50: SLOAD
00000e51: AND
00000e52: ISZERO
00000e53: ISZERO
00000e54: JUMPDEST
00000e55: SWAP3
00000e56: SWAP2
00000e57: POP
00000e58: POP
00000e59: JUMP
00000e5a: JUMPDEST
00000e5b: PUSH1 0x00
00000e5d: PUSH1 0x04
00000e5f: DUP3
00000e60: PUSH1 0x40
00000e62: MLOAD
00000e63: DUP1
00000e64: DUP3
00000e65: DUP1
00000e66: MLOAD
00000e67: SWAP1
00000e68: PUSH1 0x20
00000e6a: ADD
00000e6b: SWAP1
00000e6c: DUP1
00000e6d: DUP4
00000e6e: DUP4
00000e6f: JUMPDEST
00000e70: PUSH1 0x20
00000e72: DUP4
00000e73: LT
00000e74: PUSH2 0x0eac
00000e77: JUMPI
00000e78: DUP1
00000e79: MLOAD
00000e7a: DUP3
00000e7b: MSTORE
00000e7c: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00000e9d: SWAP1
00000e9e: SWAP3
00000e9f: ADD
00000ea0: SWAP2
00000ea1: PUSH1 0x20
00000ea3: SWAP2
00000ea4: DUP3
00000ea5: ADD
00000ea6: SWAP2
00000ea7: ADD
00000ea8: PUSH2 0x0e6f
00000eab: JUMP
00000eac: JUMPDEST
00000ead: MLOAD
00000eae: DUP2
00000eaf: MLOAD
00000eb0: PUSH1 0x20
00000eb2: SWAP4
00000eb3: DUP5
00000eb4: SUB
00000eb5: PUSH2 0x0100
00000eb8: EXP
00000eb9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000eda: ADD
00000edb: DUP1
00000edc: NOT
00000edd: SWAP1
00000ede: SWAP3
00000edf: AND
00000ee0: SWAP2
00000ee1: AND
00000ee2: OR
00000ee3: SWAP1
00000ee4: MSTORE
00000ee5: SWAP3
00000ee6: ADD
00000ee7: SWAP5
00000ee8: DUP6
00000ee9: MSTORE
00000eea: POP
00000eeb: PUSH1 0x40
00000eed: MLOAD
00000eee: SWAP4
00000eef: DUP5
00000ef0: SWAP1
00000ef1: SUB
00000ef2: ADD
00000ef3: SWAP1
00000ef4: SWAP3
00000ef5: KECCAK256
00000ef6: SLOAD
00000ef7: PUSH1 0xff
00000ef9: AND
00000efa: SWAP5
00000efb: SWAP4
00000efc: POP
00000efd: POP
00000efe: POP
00000eff: POP
00000f00: JUMP
00000f01: JUMPDEST
00000f02: PUSH1 0x00
00000f04: PUSH1 0x04
00000f06: DUP6
00000f07: DUP6
00000f08: PUSH1 0x40
00000f0a: MLOAD
00000f0b: DUP1
00000f0c: DUP4
00000f0d: DUP4
00000f0e: DUP1
00000f0f: DUP3
00000f10: DUP5
00000f11: CALLDATACOPY
00000f12: SWAP2
00000f13: SWAP1
00000f14: SWAP2
00000f15: ADD
00000f16: SWAP5
00000f17: DUP6
00000f18: MSTORE
00000f19: POP
00000f1a: POP
00000f1b: PUSH1 0x40
00000f1d: MLOAD
00000f1e: SWAP3
00000f1f: DUP4
00000f20: SWAP1
00000f21: SUB
00000f22: PUSH1 0x20
00000f24: ADD
00000f25: SWAP1
00000f26: SWAP3
00000f27: KECCAK256
00000f28: SLOAD
00000f29: PUSH1 0xff
00000f2b: AND
00000f2c: ISZERO
00000f2d: SWAP2
00000f2e: POP
00000f2f: PUSH2 0x0f85
00000f32: SWAP1
00000f33: POP
00000f34: JUMPI
00000f35: PUSH1 0x40
00000f37: MLOAD
00000f38: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000f59: DUP2
00000f5a: MSTORE
00000f5b: PUSH1 0x04
00000f5d: ADD
00000f5e: DUP1
00000f5f: DUP1
00000f60: PUSH1 0x20
00000f62: ADD
00000f63: DUP3
00000f64: DUP2
00000f65: SUB
00000f66: DUP3
00000f67: MSTORE
00000f68: PUSH1 0x23
00000f6a: DUP2
00000f6b: MSTORE
00000f6c: PUSH1 0x20
00000f6e: ADD
00000f6f: DUP1
00000f70: PUSH2 0x2b67
00000f73: PUSH1 0x23
00000f75: SWAP2
00000f76: CODECOPY
00000f77: PUSH1 0x40
00000f79: ADD
00000f7a: SWAP2
00000f7b: POP
00000f7c: POP
00000f7d: PUSH1 0x40
00000f7f: MLOAD
00000f80: DUP1
00000f81: SWAP2
00000f82: SUB
00000f83: SWAP1
00000f84: REVERT
00000f85: JUMPDEST
00000f86: PUSH1 0x01
00000f88: PUSH1 0x04
00000f8a: DUP7
00000f8b: DUP7
00000f8c: PUSH1 0x40
00000f8e: MLOAD
00000f8f: DUP1
00000f90: DUP4
00000f91: DUP4
00000f92: DUP1
00000f93: DUP3
00000f94: DUP5
00000f95: CALLDATACOPY
00000f96: SWAP2
00000f97: SWAP1
00000f98: SWAP2
00000f99: ADD
00000f9a: SWAP5
00000f9b: DUP6
00000f9c: MSTORE
00000f9d: POP
00000f9e: POP
00000f9f: PUSH1 0x40
00000fa1: DUP1
00000fa2: MLOAD
00000fa3: PUSH1 0x20
00000fa5: SWAP5
00000fa6: DUP2
00000fa7: SWAP1
00000fa8: SUB
00000fa9: DUP6
00000faa: ADD
00000fab: DUP2
00000fac: KECCAK256
00000fad: DUP1
00000fae: SLOAD
00000faf: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
00000fd0: AND
00000fd1: SWAP7
00000fd2: ISZERO
00000fd3: ISZERO
00000fd4: SWAP7
00000fd5: SWAP1
00000fd6: SWAP7
00000fd7: OR
00000fd8: SWAP1
00000fd9: SWAP6
00000fda: SSTORE
00000fdb: PUSH1 0x1f
00000fdd: DUP12
00000fde: ADD
00000fdf: DUP5
00000fe0: SWAP1
00000fe1: DIV
00000fe2: DUP5
00000fe3: MUL
00000fe4: DUP6
00000fe5: ADD
00000fe6: DUP5
00000fe7: ADD
00000fe8: SWAP1
00000fe9: MSTORE
00000fea: POP
00000feb: POP
00000fec: DUP8
00000fed: DUP3
00000fee: MSTORE
00000fef: PUSH1 0x00
00000ff1: SWAP2
00000ff2: PUSH2 0x104d
00000ff5: SWAP2
00000ff6: DUP13
00000ff7: SWAP2
00000ff8: DUP13
00000ff9: SWAP2
00000ffa: DUP13
00000ffb: SWAP1
00000ffc: DUP13
00000ffd: SWAP1
00000ffe: DUP2
00000fff: SWAP1
00001000: DUP5
00001001: ADD
00001002: DUP4
00001003: DUP3
00001004: DUP1
00001005: DUP3
00001006: DUP5
00001007: CALLDATACOPY
00001008: PUSH1 0x00
0000100a: SWAP3
0000100b: ADD
0000100c: SWAP2
0000100d: SWAP1
0000100e: SWAP2
0000100f: MSTORE
00001010: POP
00001011: POP
00001012: PUSH1 0x40
00001014: DUP1
00001015: MLOAD
00001016: PUSH1 0x20
00001018: PUSH1 0x1f
0000101a: DUP15
0000101b: ADD
0000101c: DUP2
0000101d: SWAP1
0000101e: DIV
0000101f: DUP2
00001020: MUL
00001021: DUP3
00001022: ADD
00001023: DUP2
00001024: ADD
00001025: SWAP1
00001026: SWAP3
00001027: MSTORE
00001028: DUP13
00001029: DUP2
0000102a: MSTORE
0000102b: SWAP3
0000102c: POP
0000102d: DUP13
0000102e: SWAP2
0000102f: POP
00001030: DUP12
00001031: SWAP1
00001032: DUP2
00001033: SWAP1
00001034: DUP5
00001035: ADD
00001036: DUP4
00001037: DUP3
00001038: DUP1
00001039: DUP3
0000103a: DUP5
0000103b: CALLDATACOPY
0000103c: PUSH1 0x00
0000103e: SWAP3
0000103f: ADD
00001040: SWAP2
00001041: SWAP1
00001042: SWAP2
00001043: MSTORE
00001044: POP
00001045: PUSH2 0x16a2
00001048: SWAP3
00001049: POP
0000104a: POP
0000104b: POP
0000104c: JUMP
0000104d: JUMPDEST
0000104e: SWAP1
0000104f: POP
00001050: PUSH1 0x00
00001052: DUP2
00001053: DUP1
00001054: MLOAD
00001055: SWAP1
00001056: PUSH1 0x20
00001058: ADD
00001059: KECCAK256
0000105a: SWAP1
0000105b: POP
0000105c: PUSH2 0x109b
0000105f: DUP2
00001060: DUP7
00001061: DUP7
00001062: DUP1
00001063: DUP1
00001064: PUSH1 0x1f
00001066: ADD
00001067: PUSH1 0x20
00001069: DUP1
0000106a: SWAP2
0000106b: DIV
0000106c: MUL
0000106d: PUSH1 0x20
0000106f: ADD
00001070: PUSH1 0x40
00001072: MLOAD
00001073: SWAP1
00001074: DUP2
00001075: ADD
00001076: PUSH1 0x40
00001078: MSTORE
00001079: DUP1
0000107a: SWAP4
0000107b: SWAP3
0000107c: SWAP2
0000107d: SWAP1
0000107e: DUP2
0000107f: DUP2
00001080: MSTORE
00001081: PUSH1 0x20
00001083: ADD
00001084: DUP4
00001085: DUP4
00001086: DUP1
00001087: DUP3
00001088: DUP5
00001089: CALLDATACOPY
0000108a: PUSH1 0x00
0000108c: SWAP3
0000108d: ADD
0000108e: SWAP2
0000108f: SWAP1
00001090: SWAP2
00001091: MSTORE
00001092: POP
00001093: PUSH2 0x20f2
00001096: SWAP3
00001097: POP
00001098: POP
00001099: POP
0000109a: JUMP
0000109b: JUMPDEST
0000109c: PUSH2 0x10dc
0000109f: DUP12
000010a0: DUP12
000010a1: DUP12
000010a2: DUP12
000010a3: DUP1
000010a4: DUP1
000010a5: PUSH1 0x1f
000010a7: ADD
000010a8: PUSH1 0x20
000010aa: DUP1
000010ab: SWAP2
000010ac: DIV
000010ad: MUL
000010ae: PUSH1 0x20
000010b0: ADD
000010b1: PUSH1 0x40
000010b3: MLOAD
000010b4: SWAP1
000010b5: DUP2
000010b6: ADD
000010b7: PUSH1 0x40
000010b9: MSTORE
000010ba: DUP1
000010bb: SWAP4
000010bc: SWAP3
000010bd: SWAP2
000010be: SWAP1
000010bf: DUP2
000010c0: DUP2
000010c1: MSTORE
000010c2: PUSH1 0x20
000010c4: ADD
000010c5: DUP4
000010c6: DUP4
000010c7: DUP1
000010c8: DUP3
000010c9: DUP5
000010ca: CALLDATACOPY
000010cb: PUSH1 0x00
000010cd: SWAP3
000010ce: ADD
000010cf: SWAP2
000010d0: SWAP1
000010d1: SWAP2
000010d2: MSTORE
000010d3: POP
000010d4: POP
000010d5: POP
000010d6: POP
000010d7: GAS
000010d8: PUSH2 0x231e
000010db: JUMP
000010dc: JUMPDEST
000010dd: SWAP3
000010de: POP
000010df: DUP3
000010e0: ISZERO
000010e1: PUSH2 0x111c
000010e4: JUMPI
000010e5: PUSH1 0x40
000010e7: DUP1
000010e8: MLOAD
000010e9: DUP3
000010ea: DUP2
000010eb: MSTORE
000010ec: SWAP1
000010ed: MLOAD
000010ee: PUSH32 0xdc29884a71d2bb98d3c53dc09718be05c7bfd142b7773a5c5cf2517629290ac0
0000110f: SWAP2
00001110: DUP2
00001111: SWAP1
00001112: SUB
00001113: PUSH1 0x20
00001115: ADD
00001116: SWAP1
00001117: LOG1
00001118: PUSH2 0x1150
0000111b: JUMP
0000111c: JUMPDEST
0000111d: PUSH1 0x40
0000111f: DUP1
00001120: MLOAD
00001121: DUP3
00001122: DUP2
00001123: MSTORE
00001124: SWAP1
00001125: MLOAD
00001126: PUSH32 0xdbe42d02a4e07d7eeff2874efe172540c93b297d206f6d691c9782a257323e32
00001147: SWAP2
00001148: DUP2
00001149: SWAP1
0000114a: SUB
0000114b: PUSH1 0x20
0000114d: ADD
0000114e: SWAP1
0000114f: LOG1
00001150: JUMPDEST
00001151: POP
00001152: POP
00001153: SWAP9
00001154: SWAP8
00001155: POP
00001156: POP
00001157: POP
00001158: POP
00001159: POP
0000115a: POP
0000115b: POP
0000115c: POP
0000115d: JUMP
0000115e: JUMPDEST
0000115f: PUSH1 0x00
00001161: SLOAD
00001162: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001177: AND
00001178: CALLER
00001179: EQ
0000117a: PUSH2 0x11ce
0000117d: JUMPI
0000117e: PUSH1 0x40
00001180: MLOAD
00001181: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000011a2: DUP2
000011a3: MSTORE
000011a4: PUSH1 0x04
000011a6: ADD
000011a7: DUP1
000011a8: DUP1
000011a9: PUSH1 0x20
000011ab: ADD
000011ac: DUP3
000011ad: DUP2
000011ae: SUB
000011af: DUP3
000011b0: MSTORE
000011b1: PUSH1 0x30
000011b3: DUP2
000011b4: MSTORE
000011b5: PUSH1 0x20
000011b7: ADD
000011b8: DUP1
000011b9: PUSH2 0x2d5a
000011bc: PUSH1 0x30
000011be: SWAP2
000011bf: CODECOPY
000011c0: PUSH1 0x40
000011c2: ADD
000011c3: SWAP2
000011c4: POP
000011c5: POP
000011c6: PUSH1 0x40
000011c8: MLOAD
000011c9: DUP1
000011ca: SWAP2
000011cb: SUB
000011cc: SWAP1
000011cd: REVERT
000011ce: JUMPDEST
000011cf: PUSH1 0x05
000011d1: SLOAD
000011d2: ISZERO
000011d3: PUSH2 0x1227
000011d6: JUMPI
000011d7: PUSH1 0x40
000011d9: MLOAD
000011da: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000011fb: DUP2
000011fc: MSTORE
000011fd: PUSH1 0x04
000011ff: ADD
00001200: DUP1
00001201: DUP1
00001202: PUSH1 0x20
00001204: ADD
00001205: DUP3
00001206: DUP2
00001207: SUB
00001208: DUP3
00001209: MSTORE
0000120a: PUSH1 0x22
0000120c: DUP2
0000120d: MSTORE
0000120e: PUSH1 0x20
00001210: ADD
00001211: DUP1
00001212: PUSH2 0x2c55
00001215: PUSH1 0x22
00001217: SWAP2
00001218: CODECOPY
00001219: PUSH1 0x40
0000121b: ADD
0000121c: SWAP2
0000121d: POP
0000121e: POP
0000121f: PUSH1 0x40
00001221: MLOAD
00001222: DUP1
00001223: SWAP2
00001224: SUB
00001225: SWAP1
00001226: REVERT
00001227: JUMPDEST
00001228: PUSH1 0x40
0000122a: DUP1
0000122b: MLOAD
0000122c: PUSH32 0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749
0000124d: PUSH1 0x20
0000124f: DUP1
00001250: DUP4
00001251: ADD
00001252: SWAP2
00001253: SWAP1
00001254: SWAP2
00001255: MSTORE
00001256: ADDRESS
00001257: DUP3
00001258: DUP5
00001259: ADD
0000125a: MSTORE
0000125b: DUP3
0000125c: MLOAD
0000125d: DUP1
0000125e: DUP4
0000125f: SUB
00001260: DUP5
00001261: ADD
00001262: DUP2
00001263: MSTORE
00001264: PUSH1 0x60
00001266: DUP4
00001267: ADD
00001268: DUP1
00001269: DUP6
0000126a: MSTORE
0000126b: DUP2
0000126c: MLOAD
0000126d: SWAP2
0000126e: DUP4
0000126f: ADD
00001270: SWAP2
00001271: SWAP1
00001272: SWAP2
00001273: KECCAK256
00001274: PUSH1 0x05
00001276: SSTORE
00001277: PUSH1 0x80
00001279: SWAP2
0000127a: DUP7
0000127b: MUL
0000127c: DUP1
0000127d: DUP5
0000127e: ADD
0000127f: DUP4
00001280: ADD
00001281: SWAP1
00001282: SWAP5
00001283: MSTORE
00001284: DUP6
00001285: DUP2
00001286: MSTORE
00001287: PUSH2 0x12b1
0000128a: SWAP4
0000128b: SWAP1
0000128c: SWAP3
0000128d: DUP8
0000128e: SWAP3
0000128f: DUP8
00001290: SWAP3
00001291: DUP4
00001292: SWAP3
00001293: SWAP2
00001294: SWAP1
00001295: SWAP2
00001296: ADD
00001297: SWAP1
00001298: DUP5
00001299: SWAP1
0000129a: DUP1
0000129b: DUP3
0000129c: DUP5
0000129d: CALLDATACOPY
0000129e: PUSH1 0x00
000012a0: SWAP3
000012a1: ADD
000012a2: SWAP2
000012a3: SWAP1
000012a4: SWAP2
000012a5: MSTORE
000012a6: POP
000012a7: DUP6
000012a8: SWAP3
000012a9: POP
000012aa: PUSH2 0x2336
000012ad: SWAP2
000012ae: POP
000012af: POP
000012b0: JUMP
000012b1: JUMPDEST
000012b2: POP
000012b3: POP
000012b4: POP
000012b5: JUMP
000012b6: JUMPDEST
000012b7: PUSH1 0x00
000012b9: SLOAD
000012ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012cf: AND
000012d0: CALLER
000012d1: EQ
000012d2: PUSH2 0x1326
000012d5: JUMPI
000012d6: PUSH1 0x40
000012d8: MLOAD
000012d9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000012fa: DUP2
000012fb: MSTORE
000012fc: PUSH1 0x04
000012fe: ADD
000012ff: DUP1
00001300: DUP1
00001301: PUSH1 0x20
00001303: ADD
00001304: DUP3
00001305: DUP2
00001306: SUB
00001307: DUP3
00001308: MSTORE
00001309: PUSH1 0x30
0000130b: DUP2
0000130c: MSTORE
0000130d: PUSH1 0x20
0000130f: ADD
00001310: DUP1
00001311: PUSH2 0x2d5a
00001314: PUSH1 0x30
00001316: SWAP2
00001317: CODECOPY
00001318: PUSH1 0x40
0000131a: ADD
0000131b: SWAP2
0000131c: POP
0000131d: POP
0000131e: PUSH1 0x40
00001320: MLOAD
00001321: DUP1
00001322: SWAP2
00001323: SUB
00001324: SWAP1
00001325: REVERT
00001326: JUMPDEST
00001327: PUSH1 0x02
00001329: SLOAD
0000132a: DUP2
0000132b: GT
0000132c: ISZERO
0000132d: PUSH2 0x1381
00001330: JUMPI
00001331: PUSH1 0x40
00001333: MLOAD
00001334: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001355: DUP2
00001356: MSTORE
00001357: PUSH1 0x04
00001359: ADD
0000135a: DUP1
0000135b: DUP1
0000135c: PUSH1 0x20
0000135e: ADD
0000135f: DUP3
00001360: DUP2
00001361: SUB
00001362: DUP3
00001363: MSTORE
00001364: PUSH1 0x29
00001366: DUP2
00001367: MSTORE
00001368: PUSH1 0x20
0000136a: ADD
0000136b: DUP1
0000136c: PUSH2 0x2d07
0000136f: PUSH1 0x29
00001371: SWAP2
00001372: CODECOPY
00001373: PUSH1 0x40
00001375: ADD
00001376: SWAP2
00001377: POP
00001378: POP
00001379: PUSH1 0x40
0000137b: MLOAD
0000137c: DUP1
0000137d: SWAP2
0000137e: SUB
0000137f: SWAP1
00001380: REVERT
00001381: JUMPDEST
00001382: PUSH1 0x01
00001384: DUP2
00001385: LT
00001386: ISZERO
00001387: PUSH2 0x13db
0000138a: JUMPI
0000138b: PUSH1 0x40
0000138d: MLOAD
0000138e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000013af: DUP2
000013b0: MSTORE
000013b1: PUSH1 0x04
000013b3: ADD
000013b4: DUP1
000013b5: DUP1
000013b6: PUSH1 0x20
000013b8: ADD
000013b9: DUP3
000013ba: DUP2
000013bb: SUB
000013bc: DUP3
000013bd: MSTORE
000013be: PUSH1 0x2a
000013c0: DUP2
000013c1: MSTORE
000013c2: PUSH1 0x20
000013c4: ADD
000013c5: DUP1
000013c6: PUSH2 0x2d30
000013c9: PUSH1 0x2a
000013cb: SWAP2
000013cc: CODECOPY
000013cd: PUSH1 0x40
000013cf: ADD
000013d0: SWAP2
000013d1: POP
000013d2: POP
000013d3: PUSH1 0x40
000013d5: MLOAD
000013d6: DUP1
000013d7: SWAP2
000013d8: SUB
000013d9: SWAP1
000013da: REVERT
000013db: JUMPDEST
000013dc: PUSH1 0x03
000013de: DUP2
000013df: SWAP1
000013e0: SSTORE
000013e1: PUSH1 0x40
000013e3: DUP1
000013e4: MLOAD
000013e5: DUP3
000013e6: DUP2
000013e7: MSTORE
000013e8: SWAP1
000013e9: MLOAD
000013ea: PUSH32 0x610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c93
0000140b: SWAP2
0000140c: DUP2
0000140d: SWAP1
0000140e: SUB
0000140f: PUSH1 0x20
00001411: ADD
00001412: SWAP1
00001413: LOG1
00001414: POP
00001415: JUMP
00001416: JUMPDEST
00001417: PUSH1 0x00
00001419: DUP1
0000141a: DUP5
0000141b: GT
0000141c: PUSH2 0x1486
0000141f: JUMPI
00001420: PUSH1 0x40
00001422: DUP1
00001423: MLOAD
00001424: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001445: DUP2
00001446: MSTORE
00001447: PUSH1 0x20
00001449: PUSH1 0x04
0000144b: DUP3
0000144c: ADD
0000144d: MSTORE
0000144e: PUSH1 0x14
00001450: PUSH1 0x24
00001452: DUP3
00001453: ADD
00001454: MSTORE
00001455: PUSH32 0x575241503a20494e56414c49445f414d4f554e54000000000000000000000000
00001476: PUSH1 0x44
00001478: DUP3
00001479: ADD
0000147a: MSTORE
0000147b: SWAP1
0000147c: MLOAD
0000147d: SWAP1
0000147e: DUP2
0000147f: SWAP1
00001480: SUB
00001481: PUSH1 0x64
00001483: ADD
00001484: SWAP1
00001485: REVERT
00001486: JUMPDEST
00001487: PUSH2 0x1492
0000148a: DUP6
0000148b: CALLER
0000148c: ADDRESS
0000148d: DUP8
0000148e: PUSH2 0x2675
00001491: JUMP
00001492: JUMPDEST
00001493: PUSH32 0x4f4dff159c274e50aaa8650afd371620db5c679e96bde2a4133cf626384ba046
000014b4: CALLER
000014b5: DUP7
000014b6: DUP7
000014b7: DUP7
000014b8: DUP7
000014b9: PUSH1 0x40
000014bb: MLOAD
000014bc: DUP1
000014bd: DUP7
000014be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014d3: AND
000014d4: DUP2
000014d5: MSTORE
000014d6: PUSH1 0x20
000014d8: ADD
000014d9: DUP6
000014da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014ef: AND
000014f0: DUP2
000014f1: MSTORE
000014f2: PUSH1 0x20
000014f4: ADD
000014f5: DUP5
000014f6: DUP2
000014f7: MSTORE
000014f8: PUSH1 0x20
000014fa: ADD
000014fb: DUP1
000014fc: PUSH1 0x20
000014fe: ADD
000014ff: DUP3
00001500: DUP2
00001501: SUB
00001502: DUP3
00001503: MSTORE
00001504: DUP5
00001505: DUP5
00001506: DUP3
00001507: DUP2
00001508: DUP2
00001509: MSTORE
0000150a: PUSH1 0x20
0000150c: ADD
0000150d: SWAP3
0000150e: POP
0000150f: DUP1
00001510: DUP3
00001511: DUP5
00001512: CALLDATACOPY
00001513: PUSH1 0x00
00001515: DUP4
00001516: DUP3
00001517: ADD
00001518: MSTORE
00001519: PUSH1 0x40
0000151b: MLOAD
0000151c: PUSH1 0x1f
0000151e: SWAP1
0000151f: SWAP2
00001520: ADD
00001521: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001542: AND
00001543: SWAP1
00001544: SWAP3
00001545: ADD
00001546: DUP3
00001547: SWAP1
00001548: SUB
00001549: SWAP9
0000154a: POP
0000154b: SWAP1
0000154c: SWAP7
0000154d: POP
0000154e: POP
0000154f: POP
00001550: POP
00001551: POP
00001552: POP
00001553: POP
00001554: LOG1
00001555: POP
00001556: PUSH1 0x01
00001558: SWAP5
00001559: SWAP4
0000155a: POP
0000155b: POP
0000155c: POP
0000155d: POP
0000155e: JUMP
0000155f: JUMPDEST
00001560: PUSH1 0x60
00001562: PUSH1 0x00
00001564: PUSH1 0x02
00001566: SLOAD
00001567: PUSH8 0xffffffffffffffff
00001570: DUP2
00001571: GT
00001572: DUP1
00001573: ISZERO
00001574: PUSH2 0x157c
00001577: JUMPI
00001578: PUSH1 0x00
0000157a: DUP1
0000157b: REVERT
0000157c: JUMPDEST
0000157d: POP
0000157e: PUSH1 0x40
00001580: MLOAD
00001581: SWAP1
00001582: DUP1
00001583: DUP3
00001584: MSTORE
00001585: DUP1
00001586: PUSH1 0x20
00001588: MUL
00001589: PUSH1 0x20
0000158b: ADD
0000158c: DUP3
0000158d: ADD
0000158e: PUSH1 0x40
00001590: MSTORE
00001591: DUP1
00001592: ISZERO
00001593: PUSH2 0x15a6
00001596: JUMPI
00001597: DUP2
00001598: PUSH1 0x20
0000159a: ADD
0000159b: PUSH1 0x20
0000159d: DUP3
0000159e: MUL
0000159f: DUP1
000015a0: CALLDATASIZE
000015a1: DUP4
000015a2: CALLDATACOPY
000015a3: ADD
000015a4: SWAP1
000015a5: POP
000015a6: JUMPDEST
000015a7: POP
000015a8: PUSH1 0x01
000015aa: PUSH1 0x00
000015ac: DUP2
000015ad: DUP2
000015ae: MSTORE
000015af: PUSH1 0x20
000015b1: SWAP2
000015b2: SWAP1
000015b3: SWAP2
000015b4: MSTORE
000015b5: PUSH32 0xcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f
000015d6: SLOAD
000015d7: SWAP2
000015d8: SWAP3
000015d9: POP
000015da: SWAP1
000015db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015f0: AND
000015f1: JUMPDEST
000015f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001607: DUP2
00001608: AND
00001609: PUSH1 0x01
0000160b: EQ
0000160c: PUSH2 0x1661
0000160f: JUMPI
00001610: DUP1
00001611: DUP4
00001612: DUP4
00001613: DUP2
00001614: MLOAD
00001615: DUP2
00001616: LT
00001617: PUSH2 0x161c
0000161a: JUMPI
0000161b: INVALID
0000161c: JUMPDEST
0000161d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001632: SWAP3
00001633: DUP4
00001634: AND
00001635: PUSH1 0x20
00001637: SWAP2
00001638: DUP3
00001639: MUL
0000163a: SWAP3
0000163b: SWAP1
0000163c: SWAP3
0000163d: ADD
0000163e: DUP2
0000163f: ADD
00001640: SWAP2
00001641: SWAP1
00001642: SWAP2
00001643: MSTORE
00001644: SWAP2
00001645: DUP2
00001646: AND
00001647: PUSH1 0x00
00001649: SWAP1
0000164a: DUP2
0000164b: MSTORE
0000164c: PUSH1 0x01
0000164e: SWAP3
0000164f: DUP4
00001650: SWAP1
00001651: MSTORE
00001652: PUSH1 0x40
00001654: SWAP1
00001655: KECCAK256
00001656: SLOAD
00001657: SWAP3
00001658: SWAP1
00001659: SWAP2
0000165a: ADD
0000165b: SWAP2
0000165c: AND
0000165d: PUSH2 0x15f1
00001660: JUMP
00001661: JUMPDEST
00001662: POP
00001663: SWAP1
00001664: SWAP2
00001665: POP
00001666: POP
00001667: SWAP1
00001668: JUMP
00001669: JUMPDEST
0000166a: PUSH1 0x40
0000166c: MLOAD
0000166d: DUP1
0000166e: PUSH1 0x40
00001670: ADD
00001671: PUSH1 0x40
00001673: MSTORE
00001674: DUP1
00001675: PUSH1 0x0d
00001677: DUP2
00001678: MSTORE
00001679: PUSH1 0x20
0000167b: ADD
0000167c: PUSH32 0x57726170206d756c746973696700000000000000000000000000000000000000
0000169d: DUP2
0000169e: MSTORE
0000169f: POP
000016a0: DUP2
000016a1: JUMP
000016a2: JUMPDEST
000016a3: PUSH1 0x60
000016a5: PUSH1 0x00
000016a7: PUSH32 0x987804e036e2c4c5e32f45ccae87d65fb92de3f7d16998a7fa3910a01da2ab53
000016c8: PUSH1 0x00
000016ca: SHL
000016cb: DUP7
000016cc: DUP7
000016cd: DUP7
000016ce: DUP1
000016cf: MLOAD
000016d0: SWAP1
000016d1: PUSH1 0x20
000016d3: ADD
000016d4: KECCAK256
000016d5: DUP7
000016d6: PUSH1 0x40
000016d8: MLOAD
000016d9: PUSH1 0x20
000016db: ADD
000016dc: DUP1
000016dd: DUP7
000016de: DUP2
000016df: MSTORE
000016e0: PUSH1 0x20
000016e2: ADD
000016e3: DUP6
000016e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016f9: AND
000016fa: DUP2
000016fb: MSTORE
000016fc: PUSH1 0x20
000016fe: ADD
000016ff: DUP5
00001700: DUP2
00001701: MSTORE
00001702: PUSH1 0x20
00001704: ADD
00001705: DUP4
00001706: DUP2
00001707: MSTORE
00001708: PUSH1 0x20
0000170a: ADD
0000170b: DUP1
0000170c: PUSH1 0x20
0000170e: ADD
0000170f: DUP3
00001710: DUP2
00001711: SUB
00001712: DUP3
00001713: MSTORE
00001714: DUP4
00001715: DUP2
00001716: DUP2
00001717: MLOAD
00001718: DUP2
00001719: MSTORE
0000171a: PUSH1 0x20
0000171c: ADD
0000171d: SWAP2
0000171e: POP
0000171f: DUP1
00001720: MLOAD
00001721: SWAP1
00001722: PUSH1 0x20
00001724: ADD
00001725: SWAP1
00001726: DUP1
00001727: DUP4
00001728: DUP4
00001729: PUSH1 0x00
0000172b: JUMPDEST
0000172c: DUP4
0000172d: DUP2
0000172e: LT
0000172f: ISZERO
00001730: PUSH2 0x1743
00001733: JUMPI
00001734: DUP2
00001735: DUP2
00001736: ADD
00001737: MLOAD
00001738: DUP4
00001739: DUP3
0000173a: ADD
0000173b: MSTORE
0000173c: PUSH1 0x20
0000173e: ADD
0000173f: PUSH2 0x172b
00001742: JUMP
00001743: JUMPDEST
00001744: POP
00001745: POP
00001746: POP
00001747: POP
00001748: SWAP1
00001749: POP
0000174a: SWAP1
0000174b: DUP2
0000174c: ADD
0000174d: SWAP1
0000174e: PUSH1 0x1f
00001750: AND
00001751: DUP1
00001752: ISZERO
00001753: PUSH2 0x1770
00001756: JUMPI
00001757: DUP1
00001758: DUP3
00001759: SUB
0000175a: DUP1
0000175b: MLOAD
0000175c: PUSH1 0x01
0000175e: DUP4
0000175f: PUSH1 0x20
00001761: SUB
00001762: PUSH2 0x0100
00001765: EXP
00001766: SUB
00001767: NOT
00001768: AND
00001769: DUP2
0000176a: MSTORE
0000176b: PUSH1 0x20
0000176d: ADD
0000176e: SWAP2
0000176f: POP
00001770: JUMPDEST
00001771: POP
00001772: PUSH1 0x40
00001774: DUP1
00001775: MLOAD
00001776: DUP1
00001777: DUP4
00001778: SUB
00001779: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
0000179a: ADD
0000179b: DUP2
0000179c: MSTORE
0000179d: DUP3
0000179e: DUP3
0000179f: MSTORE
000017a0: DUP1
000017a1: MLOAD
000017a2: PUSH1 0x20
000017a4: SWAP2
000017a5: DUP3
000017a6: ADD
000017a7: KECCAK256
000017a8: PUSH1 0x05
000017aa: SLOAD
000017ab: PUSH32 0x1900000000000000000000000000000000000000000000000000000000000000
000017cc: SWAP3
000017cd: DUP6
000017ce: ADD
000017cf: SWAP3
000017d0: SWAP1
000017d1: SWAP3
000017d2: MSTORE
000017d3: PUSH32 0x0100000000000000000000000000000000000000000000000000000000000000
000017f4: PUSH1 0x21
000017f6: DUP6
000017f7: ADD
000017f8: MSTORE
000017f9: PUSH1 0x22
000017fb: DUP5
000017fc: ADD
000017fd: SWAP2
000017fe: SWAP1
000017ff: SWAP2
00001800: MSTORE
00001801: PUSH1 0x42
00001803: DUP1
00001804: DUP5
00001805: ADD
00001806: SWAP2
00001807: SWAP1
00001808: SWAP2
00001809: MSTORE
0000180a: DUP2
0000180b: MLOAD
0000180c: DUP1
0000180d: DUP5
0000180e: SUB
0000180f: SWAP1
00001810: SWAP2
00001811: ADD
00001812: DUP2
00001813: MSTORE
00001814: PUSH1 0x62
00001816: SWAP1
00001817: SWAP3
00001818: ADD
00001819: SWAP1
0000181a: MSTORE
0000181b: SWAP14
0000181c: SWAP13
0000181d: POP
0000181e: POP
0000181f: POP
00001820: POP
00001821: POP
00001822: POP
00001823: POP
00001824: POP
00001825: POP
00001826: POP
00001827: POP
00001828: POP
00001829: POP
0000182a: JUMP
0000182b: JUMPDEST
0000182c: PUSH1 0x00
0000182e: SLOAD
0000182f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001844: AND
00001845: CALLER
00001846: EQ
00001847: PUSH2 0x189b
0000184a: JUMPI
0000184b: PUSH1 0x40
0000184d: MLOAD
0000184e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000186f: DUP2
00001870: MSTORE
00001871: PUSH1 0x04
00001873: ADD
00001874: DUP1
00001875: DUP1
00001876: PUSH1 0x20
00001878: ADD
00001879: DUP3
0000187a: DUP2
0000187b: SUB
0000187c: DUP3
0000187d: MSTORE
0000187e: PUSH1 0x30
00001880: DUP2
00001881: MSTORE
00001882: PUSH1 0x20
00001884: ADD
00001885: DUP1
00001886: PUSH2 0x2d5a
00001889: PUSH1 0x30
0000188b: SWAP2
0000188c: CODECOPY
0000188d: PUSH1 0x40
0000188f: ADD
00001890: SWAP2
00001891: POP
00001892: POP
00001893: PUSH1 0x40
00001895: MLOAD
00001896: DUP1
00001897: SWAP2
00001898: SUB
00001899: SWAP1
0000189a: REVERT
0000189b: JUMPDEST
0000189c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018b1: DUP2
000018b2: AND
000018b3: ISZERO
000018b4: DUP1
000018b5: ISZERO
000018b6: SWAP1
000018b7: PUSH2 0x18d7
000018ba: JUMPI
000018bb: POP
000018bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018d1: DUP2
000018d2: AND
000018d3: PUSH1 0x01
000018d5: EQ
000018d6: ISZERO
000018d7: JUMPDEST
000018d8: PUSH2 0x192c
000018db: JUMPI
000018dc: PUSH1 0x40
000018de: MLOAD
000018df: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001900: DUP2
00001901: MSTORE
00001902: PUSH1 0x04
00001904: ADD
00001905: DUP1
00001906: DUP1
00001907: PUSH1 0x20
00001909: ADD
0000190a: DUP3
0000190b: DUP2
0000190c: SUB
0000190d: DUP3
0000190e: MSTORE
0000190f: PUSH1 0x24
00001911: DUP2
00001912: MSTORE
00001913: PUSH1 0x20
00001915: ADD
00001916: DUP1
00001917: PUSH2 0x2baf
0000191a: PUSH1 0x24
0000191c: SWAP2
0000191d: CODECOPY
0000191e: PUSH1 0x40
00001920: ADD
00001921: SWAP2
00001922: POP
00001923: POP
00001924: PUSH1 0x40
00001926: MLOAD
00001927: DUP1
00001928: SWAP2
00001929: SUB
0000192a: SWAP1
0000192b: REVERT
0000192c: JUMPDEST
0000192d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001942: DUP2
00001943: DUP2
00001944: AND
00001945: PUSH1 0x00
00001947: SWAP1
00001948: DUP2
00001949: MSTORE
0000194a: PUSH1 0x01
0000194c: PUSH1 0x20
0000194e: MSTORE
0000194f: PUSH1 0x40
00001951: SWAP1
00001952: KECCAK256
00001953: SLOAD
00001954: AND
00001955: ISZERO
00001956: PUSH2 0x19aa
00001959: JUMPI
0000195a: PUSH1 0x40
0000195c: MLOAD
0000195d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000197e: DUP2
0000197f: MSTORE
00001980: PUSH1 0x04
00001982: ADD
00001983: DUP1
00001984: DUP1
00001985: PUSH1 0x20
00001987: ADD
00001988: DUP3
00001989: DUP2
0000198a: SUB
0000198b: DUP3
0000198c: MSTORE
0000198d: PUSH1 0x21
0000198f: DUP2
00001990: MSTORE
00001991: PUSH1 0x20
00001993: ADD
00001994: DUP1
00001995: PUSH2 0x2c77
00001998: PUSH1 0x21
0000199a: SWAP2
0000199b: CODECOPY
0000199c: PUSH1 0x40
0000199e: ADD
0000199f: SWAP2
000019a0: POP
000019a1: POP
000019a2: PUSH1 0x40
000019a4: MLOAD
000019a5: DUP1
000019a6: SWAP2
000019a7: SUB
000019a8: SWAP1
000019a9: REVERT
000019aa: JUMPDEST
000019ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019c0: DUP3
000019c1: AND
000019c2: ISZERO
000019c3: DUP1
000019c4: ISZERO
000019c5: SWAP1
000019c6: PUSH2 0x19e6
000019c9: JUMPI
000019ca: POP
000019cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019e0: DUP3
000019e1: AND
000019e2: PUSH1 0x01
000019e4: EQ
000019e5: ISZERO
000019e6: JUMPDEST
000019e7: PUSH2 0x1a3b
000019ea: JUMPI
000019eb: PUSH1 0x40
000019ed: MLOAD
000019ee: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001a0f: DUP2
00001a10: MSTORE
00001a11: PUSH1 0x04
00001a13: ADD
00001a14: DUP1
00001a15: DUP1
00001a16: PUSH1 0x20
00001a18: ADD
00001a19: DUP3
00001a1a: DUP2
00001a1b: SUB
00001a1c: DUP3
00001a1d: MSTORE
00001a1e: PUSH1 0x24
00001a20: DUP2
00001a21: MSTORE
00001a22: PUSH1 0x20
00001a24: ADD
00001a25: DUP1
00001a26: PUSH2 0x2baf
00001a29: PUSH1 0x24
00001a2b: SWAP2
00001a2c: CODECOPY
00001a2d: PUSH1 0x40
00001a2f: ADD
00001a30: SWAP2
00001a31: POP
00001a32: POP
00001a33: PUSH1 0x40
00001a35: MLOAD
00001a36: DUP1
00001a37: SWAP2
00001a38: SUB
00001a39: SWAP1
00001a3a: REVERT
00001a3b: JUMPDEST
00001a3c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a51: DUP4
00001a52: DUP2
00001a53: AND
00001a54: PUSH1 0x00
00001a56: SWAP1
00001a57: DUP2
00001a58: MSTORE
00001a59: PUSH1 0x01
00001a5b: PUSH1 0x20
00001a5d: MSTORE
00001a5e: PUSH1 0x40
00001a60: SWAP1
00001a61: KECCAK256
00001a62: SLOAD
00001a63: DUP2
00001a64: AND
00001a65: SWAP1
00001a66: DUP4
00001a67: AND
00001a68: EQ
00001a69: PUSH2 0x1abd
00001a6c: JUMPI
00001a6d: PUSH1 0x40
00001a6f: MLOAD
00001a70: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001a91: DUP2
00001a92: MSTORE
00001a93: PUSH1 0x04
00001a95: ADD
00001a96: DUP1
00001a97: DUP1
00001a98: PUSH1 0x20
00001a9a: ADD
00001a9b: DUP3
00001a9c: DUP2
00001a9d: SUB
00001a9e: DUP3
00001a9f: MSTORE
00001aa0: PUSH1 0x2c
00001aa2: DUP2
00001aa3: MSTORE
00001aa4: PUSH1 0x20
00001aa6: ADD
00001aa7: DUP1
00001aa8: PUSH2 0x2cdb
00001aab: PUSH1 0x2c
00001aad: SWAP2
00001aae: CODECOPY
00001aaf: PUSH1 0x40
00001ab1: ADD
00001ab2: SWAP2
00001ab3: POP
00001ab4: POP
00001ab5: PUSH1 0x40
00001ab7: MLOAD
00001ab8: DUP1
00001ab9: SWAP2
00001aba: SUB
00001abb: SWAP1
00001abc: REVERT
00001abd: JUMPDEST
00001abe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ad3: DUP3
00001ad4: DUP2
00001ad5: AND
00001ad6: PUSH1 0x00
00001ad8: DUP2
00001ad9: DUP2
00001ada: MSTORE
00001adb: PUSH1 0x01
00001add: PUSH1 0x20
00001adf: SWAP1
00001ae0: DUP2
00001ae1: MSTORE
00001ae2: PUSH1 0x40
00001ae4: DUP1
00001ae5: DUP4
00001ae6: KECCAK256
00001ae7: DUP1
00001ae8: SLOAD
00001ae9: DUP8
00001aea: DUP8
00001aeb: AND
00001aec: DUP1
00001aed: DUP7
00001aee: MSTORE
00001aef: DUP4
00001af0: DUP7
00001af1: KECCAK256
00001af2: DUP1
00001af3: SLOAD
00001af4: SWAP3
00001af5: DUP10
00001af6: AND
00001af7: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00001b18: SWAP4
00001b19: DUP5
00001b1a: AND
00001b1b: OR
00001b1c: SWAP1
00001b1d: SSTORE
00001b1e: SWAP7
00001b1f: DUP11
00001b20: AND
00001b21: DUP6
00001b22: MSTORE
00001b23: DUP3
00001b24: DUP6
00001b25: KECCAK256
00001b26: DUP1
00001b27: SLOAD
00001b28: DUP3
00001b29: AND
00001b2a: SWAP1
00001b2b: SWAP8
00001b2c: OR
00001b2d: SWAP1
00001b2e: SWAP7
00001b2f: SSTORE
00001b30: SWAP3
00001b31: DUP5
00001b32: SWAP1
00001b33: MSTORE
00001b34: DUP3
00001b35: SLOAD
00001b36: SWAP1
00001b37: SWAP5
00001b38: AND
00001b39: SWAP1
00001b3a: SWAP2
00001b3b: SSTORE
00001b3c: DUP3
00001b3d: MLOAD
00001b3e: SWAP2
00001b3f: DUP3
00001b40: MSTORE
00001b41: SWAP2
00001b42: MLOAD
00001b43: PUSH32 0xf8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf
00001b64: SWAP3
00001b65: SWAP2
00001b66: DUP2
00001b67: SWAP1
00001b68: SUB
00001b69: SWAP1
00001b6a: SWAP2
00001b6b: ADD
00001b6c: SWAP1
00001b6d: LOG1
00001b6e: PUSH1 0x40
00001b70: DUP1
00001b71: MLOAD
00001b72: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b87: DUP4
00001b88: AND
00001b89: DUP2
00001b8a: MSTORE
00001b8b: SWAP1
00001b8c: MLOAD
00001b8d: PUSH32 0x9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea26
00001bae: SWAP2
00001baf: DUP2
00001bb0: SWAP1
00001bb1: SUB
00001bb2: PUSH1 0x20
00001bb4: ADD
00001bb5: SWAP1
00001bb6: LOG1
00001bb7: POP
00001bb8: POP
00001bb9: POP
00001bba: JUMP
00001bbb: JUMPDEST
00001bbc: PUSH1 0x03
00001bbe: SLOAD
00001bbf: SWAP1
00001bc0: JUMP
00001bc1: JUMPDEST
00001bc2: PUSH1 0x00
00001bc4: PUSH2 0x1bcf
00001bc7: DUP6
00001bc8: DUP6
00001bc9: DUP6
00001bca: DUP6
00001bcb: PUSH2 0x16a2
00001bce: JUMP
00001bcf: JUMPDEST
00001bd0: DUP1
00001bd1: MLOAD
00001bd2: SWAP1
00001bd3: PUSH1 0x20
00001bd5: ADD
00001bd6: KECCAK256
00001bd7: SWAP1
00001bd8: POP
00001bd9: SWAP5
00001bda: SWAP4
00001bdb: POP
00001bdc: POP
00001bdd: POP
00001bde: POP
00001bdf: JUMP
00001be0: JUMPDEST
00001be1: PUSH1 0x05
00001be3: SLOAD
00001be4: DUP2
00001be5: JUMP
00001be6: JUMPDEST
00001be7: PUSH1 0x00
00001be9: SLOAD
00001bea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bff: AND
00001c00: CALLER
00001c01: EQ
00001c02: PUSH2 0x1c56
00001c05: JUMPI
00001c06: PUSH1 0x40
00001c08: MLOAD
00001c09: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001c2a: DUP2
00001c2b: MSTORE
00001c2c: PUSH1 0x04
00001c2e: ADD
00001c2f: DUP1
00001c30: DUP1
00001c31: PUSH1 0x20
00001c33: ADD
00001c34: DUP3
00001c35: DUP2
00001c36: SUB
00001c37: DUP3
00001c38: MSTORE
00001c39: PUSH1 0x30
00001c3b: DUP2
00001c3c: MSTORE
00001c3d: PUSH1 0x20
00001c3f: ADD
00001c40: DUP1
00001c41: PUSH2 0x2d5a
00001c44: PUSH1 0x30
00001c46: SWAP2
00001c47: CODECOPY
00001c48: PUSH1 0x40
00001c4a: ADD
00001c4b: SWAP2
00001c4c: POP
00001c4d: POP
00001c4e: PUSH1 0x40
00001c50: MLOAD
00001c51: DUP1
00001c52: SWAP2
00001c53: SUB
00001c54: SWAP1
00001c55: REVERT
00001c56: JUMPDEST
00001c57: DUP1
00001c58: PUSH1 0x01
00001c5a: PUSH1 0x02
00001c5c: SLOAD
00001c5d: SUB
00001c5e: LT
00001c5f: ISZERO
00001c60: PUSH2 0x1cb4
00001c63: JUMPI
00001c64: PUSH1 0x40
00001c66: MLOAD
00001c67: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001c88: DUP2
00001c89: MSTORE
00001c8a: PUSH1 0x04
00001c8c: ADD
00001c8d: DUP1
00001c8e: DUP1
00001c8f: PUSH1 0x20
00001c91: ADD
00001c92: DUP3
00001c93: DUP2
00001c94: SUB
00001c95: DUP3
00001c96: MSTORE
00001c97: PUSH1 0x37
00001c99: DUP2
00001c9a: MSTORE
00001c9b: PUSH1 0x20
00001c9d: ADD
00001c9e: DUP1
00001c9f: PUSH2 0x2bfc
00001ca2: PUSH1 0x37
00001ca4: SWAP2
00001ca5: CODECOPY
00001ca6: PUSH1 0x40
00001ca8: ADD
00001ca9: SWAP2
00001caa: POP
00001cab: POP
00001cac: PUSH1 0x40
00001cae: MLOAD
00001caf: DUP1
00001cb0: SWAP2
00001cb1: SUB
00001cb2: SWAP1
00001cb3: REVERT
00001cb4: JUMPDEST
00001cb5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cca: DUP3
00001ccb: AND
00001ccc: ISZERO
00001ccd: DUP1
00001cce: ISZERO
00001ccf: SWAP1
00001cd0: PUSH2 0x1cf0
00001cd3: JUMPI
00001cd4: POP
00001cd5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cea: DUP3
00001ceb: AND
00001cec: PUSH1 0x01
00001cee: EQ
00001cef: ISZERO
00001cf0: JUMPDEST
00001cf1: PUSH2 0x1d45
00001cf4: JUMPI
00001cf5: PUSH1 0x40
00001cf7: MLOAD
00001cf8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001d19: DUP2
00001d1a: MSTORE
00001d1b: PUSH1 0x04
00001d1d: ADD
00001d1e: DUP1
00001d1f: DUP1
00001d20: PUSH1 0x20
00001d22: ADD
00001d23: DUP3
00001d24: DUP2
00001d25: SUB
00001d26: DUP3
00001d27: MSTORE
00001d28: PUSH1 0x24
00001d2a: DUP2
00001d2b: MSTORE
00001d2c: PUSH1 0x20
00001d2e: ADD
00001d2f: DUP1
00001d30: PUSH2 0x2baf
00001d33: PUSH1 0x24
00001d35: SWAP2
00001d36: CODECOPY
00001d37: PUSH1 0x40
00001d39: ADD
00001d3a: SWAP2
00001d3b: POP
00001d3c: POP
00001d3d: PUSH1 0x40
00001d3f: MLOAD
00001d40: DUP1
00001d41: SWAP2
00001d42: SUB
00001d43: SWAP1
00001d44: REVERT
00001d45: JUMPDEST
00001d46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d5b: DUP4
00001d5c: DUP2
00001d5d: AND
00001d5e: PUSH1 0x00
00001d60: SWAP1
00001d61: DUP2
00001d62: MSTORE
00001d63: PUSH1 0x01
00001d65: PUSH1 0x20
00001d67: MSTORE
00001d68: PUSH1 0x40
00001d6a: SWAP1
00001d6b: KECCAK256
00001d6c: SLOAD
00001d6d: DUP2
00001d6e: AND
00001d6f: SWAP1
00001d70: DUP4
00001d71: AND
00001d72: EQ
00001d73: PUSH2 0x1dc7
00001d76: JUMPI
00001d77: PUSH1 0x40
00001d79: MLOAD
00001d7a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001d9b: DUP2
00001d9c: MSTORE
00001d9d: PUSH1 0x04
00001d9f: ADD
00001da0: DUP1
00001da1: DUP1
00001da2: PUSH1 0x20
00001da4: ADD
00001da5: DUP3
00001da6: DUP2
00001da7: SUB
00001da8: DUP3
00001da9: MSTORE
00001daa: PUSH1 0x2c
00001dac: DUP2
00001dad: MSTORE
00001dae: PUSH1 0x20
00001db0: ADD
00001db1: DUP1
00001db2: PUSH2 0x2cdb
00001db5: PUSH1 0x2c
00001db7: SWAP2
00001db8: CODECOPY
00001db9: PUSH1 0x40
00001dbb: ADD
00001dbc: SWAP2
00001dbd: POP
00001dbe: POP
00001dbf: PUSH1 0x40
00001dc1: MLOAD
00001dc2: DUP1
00001dc3: SWAP2
00001dc4: SUB
00001dc5: SWAP1
00001dc6: REVERT
00001dc7: JUMPDEST
00001dc8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ddd: DUP3
00001dde: DUP2
00001ddf: AND
00001de0: PUSH1 0x00
00001de2: DUP2
00001de3: DUP2
00001de4: MSTORE
00001de5: PUSH1 0x01
00001de7: PUSH1 0x20
00001de9: SWAP1
00001dea: DUP2
00001deb: MSTORE
00001dec: PUSH1 0x40
00001dee: DUP1
00001def: DUP4
00001df0: KECCAK256
00001df1: DUP1
00001df2: SLOAD
00001df3: DUP10
00001df4: DUP8
00001df5: AND
00001df6: DUP6
00001df7: MSTORE
00001df8: DUP3
00001df9: DUP6
00001dfa: KECCAK256
00001dfb: DUP1
00001dfc: SLOAD
00001dfd: SWAP2
00001dfe: SWAP1
00001dff: SWAP8
00001e00: AND
00001e01: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00001e22: SWAP2
00001e23: DUP3
00001e24: AND
00001e25: OR
00001e26: SWAP1
00001e27: SWAP7
00001e28: SSTORE
00001e29: SWAP3
00001e2a: DUP5
00001e2b: SWAP1
00001e2c: MSTORE
00001e2d: DUP3
00001e2e: SLOAD
00001e2f: SWAP1
00001e30: SWAP5
00001e31: AND
00001e32: SWAP1
00001e33: SWAP2
00001e34: SSTORE
00001e35: PUSH1 0x02
00001e37: DUP1
00001e38: SLOAD
00001e39: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001e5a: ADD
00001e5b: SWAP1
00001e5c: SSTORE
00001e5d: DUP3
00001e5e: MLOAD
00001e5f: SWAP2
00001e60: DUP3
00001e61: MSTORE
00001e62: SWAP2
00001e63: MLOAD
00001e64: PUSH32 0xf8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf
00001e85: SWAP3
00001e86: SWAP2
00001e87: DUP2
00001e88: SWAP1
00001e89: SUB
00001e8a: SWAP1
00001e8b: SWAP2
00001e8c: ADD
00001e8d: SWAP1
00001e8e: LOG1
00001e8f: DUP1
00001e90: PUSH1 0x03
00001e92: SLOAD
00001e93: EQ
00001e94: PUSH2 0x12b1
00001e97: JUMPI
00001e98: PUSH2 0x12b1
00001e9b: DUP2
00001e9c: PUSH2 0x12b6
00001e9f: JUMP
00001ea0: JUMPDEST
00001ea1: PUSH1 0x40
00001ea3: MLOAD
00001ea4: DUP1
00001ea5: PUSH1 0x40
00001ea7: ADD
00001ea8: PUSH1 0x40
00001eaa: MSTORE
00001eab: DUP1
00001eac: PUSH1 0x05
00001eae: DUP2
00001eaf: MSTORE
00001eb0: PUSH1 0x20
00001eb2: ADD
00001eb3: PUSH32 0x312e302e30000000000000000000000000000000000000000000000000000000
00001ed4: DUP2
00001ed5: MSTORE
00001ed6: POP
00001ed7: DUP2
00001ed8: JUMP
00001ed9: JUMPDEST
00001eda: PUSH1 0x00
00001edc: DUP1
00001edd: DUP6
00001ede: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ef3: AND
00001ef4: PUSH1 0x40
00001ef6: MLOAD
00001ef7: DUP1
00001ef8: PUSH1 0x60
00001efa: ADD
00001efb: PUSH1 0x40
00001efd: MSTORE
00001efe: DUP1
00001eff: PUSH1 0x29
00001f01: DUP2
00001f02: MSTORE
00001f03: PUSH1 0x20
00001f05: ADD
00001f06: PUSH2 0x2bd3
00001f09: PUSH1 0x29
00001f0b: SWAP2
00001f0c: CODECOPY
00001f0d: DUP1
00001f0e: MLOAD
00001f0f: PUSH1 0x20
00001f11: SWAP2
00001f12: DUP3
00001f13: ADD
00001f14: KECCAK256
00001f15: PUSH1 0x40
00001f17: DUP1
00001f18: MLOAD
00001f19: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f2e: DUP1
00001f2f: DUP12
00001f30: AND
00001f31: PUSH1 0x24
00001f33: DUP4
00001f34: ADD
00001f35: MSTORE
00001f36: DUP10
00001f37: AND
00001f38: PUSH1 0x44
00001f3a: DUP3
00001f3b: ADD
00001f3c: MSTORE
00001f3d: PUSH1 0x64
00001f3f: DUP1
00001f40: DUP3
00001f41: ADD
00001f42: DUP10
00001f43: SWAP1
00001f44: MSTORE
00001f45: DUP3
00001f46: MLOAD
00001f47: DUP1
00001f48: DUP4
00001f49: SUB
00001f4a: SWAP1
00001f4b: SWAP2
00001f4c: ADD
00001f4d: DUP2
00001f4e: MSTORE
00001f4f: PUSH1 0x84
00001f51: SWAP1
00001f52: SWAP2
00001f53: ADD
00001f54: DUP3
00001f55: MSTORE
00001f56: SWAP3
00001f57: DUP4
00001f58: ADD
00001f59: DUP1
00001f5a: MLOAD
00001f5b: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001f78: AND
00001f79: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00001f9a: SWAP1
00001f9b: SWAP4
00001f9c: AND
00001f9d: SWAP3
00001f9e: SWAP1
00001f9f: SWAP3
00001fa0: OR
00001fa1: DUP3
00001fa2: MSTORE
00001fa3: MLOAD
00001fa4: DUP3
00001fa5: MLOAD
00001fa6: SWAP1
00001fa7: SWAP2
00001fa8: DUP3
00001fa9: SWAP2
00001faa: DUP1
00001fab: DUP4
00001fac: DUP4
00001fad: JUMPDEST
00001fae: PUSH1 0x20
00001fb0: DUP4
00001fb1: LT
00001fb2: PUSH2 0x1fea
00001fb5: JUMPI
00001fb6: DUP1
00001fb7: MLOAD
00001fb8: DUP3
00001fb9: MSTORE
00001fba: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001fdb: SWAP1
00001fdc: SWAP3
00001fdd: ADD
00001fde: SWAP2
00001fdf: PUSH1 0x20
00001fe1: SWAP2
00001fe2: DUP3
00001fe3: ADD
00001fe4: SWAP2
00001fe5: ADD
00001fe6: PUSH2 0x1fad
00001fe9: JUMP
00001fea: JUMPDEST
00001feb: PUSH1 0x01
00001fed: DUP4
00001fee: PUSH1 0x20
00001ff0: SUB
00001ff1: PUSH2 0x0100
00001ff4: EXP
00001ff5: SUB
00001ff6: DUP1
00001ff7: NOT
00001ff8: DUP3
00001ff9: MLOAD
00001ffa: AND
00001ffb: DUP2
00001ffc: DUP5
00001ffd: MLOAD
00001ffe: AND
00001fff: DUP1
00002000: DUP3
00002001: OR
00002002: DUP6
00002003: MSTORE
00002004: POP
00002005: POP
00002006: POP
00002007: POP
00002008: POP
00002009: POP
0000200a: SWAP1
0000200b: POP
0000200c: ADD
0000200d: SWAP2
0000200e: POP
0000200f: POP
00002010: PUSH1 0x00
00002012: PUSH1 0x40
00002014: MLOAD
00002015: DUP1
00002016: DUP4
00002017: SUB
00002018: DUP2
00002019: PUSH1 0x00
0000201b: DUP7
0000201c: GAS
0000201d: CALL
0000201e: SWAP2
0000201f: POP
00002020: POP
00002021: RETURNDATASIZE
00002022: DUP1
00002023: PUSH1 0x00
00002025: DUP2
00002026: EQ
00002027: PUSH2 0x204c
0000202a: JUMPI
0000202b: PUSH1 0x40
0000202d: MLOAD
0000202e: SWAP2
0000202f: POP
00002030: PUSH1 0x1f
00002032: NOT
00002033: PUSH1 0x3f
00002035: RETURNDATASIZE
00002036: ADD
00002037: AND
00002038: DUP3
00002039: ADD
0000203a: PUSH1 0x40
0000203c: MSTORE
0000203d: RETURNDATASIZE
0000203e: DUP3
0000203f: MSTORE
00002040: RETURNDATASIZE
00002041: PUSH1 0x00
00002043: PUSH1 0x20
00002045: DUP5
00002046: ADD
00002047: RETURNDATACOPY
00002048: PUSH2 0x2051
0000204b: JUMP
0000204c: JUMPDEST
0000204d: PUSH1 0x60
0000204f: SWAP2
00002050: POP
00002051: JUMPDEST
00002052: POP
00002053: SWAP2
00002054: POP
00002055: SWAP2
00002056: POP
00002057: DUP2
00002058: DUP1
00002059: ISZERO
0000205a: PUSH2 0x207f
0000205d: JUMPI
0000205e: POP
0000205f: DUP1
00002060: MLOAD
00002061: ISZERO
00002062: DUP1
00002063: PUSH2 0x207f
00002066: JUMPI
00002067: POP
00002068: DUP1
00002069: DUP1
0000206a: PUSH1 0x20
0000206c: ADD
0000206d: SWAP1
0000206e: MLOAD
0000206f: PUSH1 0x20
00002071: DUP2
00002072: LT
00002073: ISZERO
00002074: PUSH2 0x207c
00002077: JUMPI
00002078: PUSH1 0x00
0000207a: DUP1
0000207b: REVERT
0000207c: JUMPDEST
0000207d: POP
0000207e: MLOAD
0000207f: JUMPDEST
00002080: PUSH2 0x20ea
00002083: JUMPI
00002084: PUSH1 0x40
00002086: DUP1
00002087: MLOAD
00002088: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000020a9: DUP2
000020aa: MSTORE
000020ab: PUSH1 0x20
000020ad: PUSH1 0x04
000020af: DUP3
000020b0: ADD
000020b1: MSTORE
000020b2: PUSH1 0x1c
000020b4: PUSH1 0x24
000020b6: DUP3
000020b7: ADD
000020b8: MSTORE
000020b9: PUSH32 0x575241503a204552433732315f5452414e534645525f4641494c454400000000
000020da: PUSH1 0x44
000020dc: DUP3
000020dd: ADD
000020de: MSTORE
000020df: SWAP1
000020e0: MLOAD
000020e1: SWAP1
000020e2: DUP2
000020e3: SWAP1
000020e4: SUB
000020e5: PUSH1 0x64
000020e7: ADD
000020e8: SWAP1
000020e9: REVERT
000020ea: JUMPDEST
000020eb: POP
000020ec: POP
000020ed: POP
000020ee: POP
000020ef: POP
000020f0: POP
000020f1: JUMP
000020f2: JUMPDEST
000020f3: PUSH1 0x03
000020f5: SLOAD
000020f6: DUP1
000020f7: PUSH2 0x2161
000020fa: JUMPI
000020fb: PUSH1 0x40
000020fd: DUP1
000020fe: MLOAD
000020ff: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002120: DUP2
00002121: MSTORE
00002122: PUSH1 0x20
00002124: PUSH1 0x04
00002126: DUP3
00002127: ADD
00002128: MSTORE
00002129: PUSH1 0x1b
0000212b: PUSH1 0x24
0000212d: DUP3
0000212e: ADD
0000212f: MSTORE
00002130: PUSH32 0x575241503a205448524553484f4c445f4e4f545f444546494e45440000000000
00002151: PUSH1 0x44
00002153: DUP3
00002154: ADD
00002155: MSTORE
00002156: SWAP1
00002157: MLOAD
00002158: SWAP1
00002159: DUP2
0000215a: SWAP1
0000215b: SUB
0000215c: PUSH1 0x64
0000215e: ADD
0000215f: SWAP1
00002160: REVERT
00002161: JUMPDEST
00002162: PUSH2 0x216c
00002165: DUP2
00002166: PUSH1 0x41
00002168: PUSH2 0x2886
0000216b: JUMP
0000216c: JUMPDEST
0000216d: DUP3
0000216e: MLOAD
0000216f: LT
00002170: ISZERO
00002171: PUSH2 0x21db
00002174: JUMPI
00002175: PUSH1 0x40
00002177: DUP1
00002178: MLOAD
00002179: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000219a: DUP2
0000219b: MSTORE
0000219c: PUSH1 0x20
0000219e: PUSH1 0x04
000021a0: DUP3
000021a1: ADD
000021a2: MSTORE
000021a3: PUSH1 0x1f
000021a5: PUSH1 0x24
000021a7: DUP3
000021a8: ADD
000021a9: MSTORE
000021aa: PUSH32 0x575241503a205349474e4154555245535f444154415f544f4f5f53484f525400
000021cb: PUSH1 0x44
000021cd: DUP3
000021ce: ADD
000021cf: MSTORE
000021d0: SWAP1
000021d1: MLOAD
000021d2: SWAP1
000021d3: DUP2
000021d4: SWAP1
000021d5: SUB
000021d6: PUSH1 0x64
000021d8: ADD
000021d9: SWAP1
000021da: REVERT
000021db: JUMPDEST
000021dc: PUSH1 0x00
000021de: DUP1
000021df: DUP1
000021e0: PUSH1 0x00
000021e2: DUP1
000021e3: PUSH1 0x00
000021e5: JUMPDEST
000021e6: DUP7
000021e7: DUP2
000021e8: LT
000021e9: ISZERO
000021ea: PUSH2 0x2313
000021ed: JUMPI
000021ee: PUSH2 0x21f7
000021f1: DUP9
000021f2: DUP3
000021f3: PUSH2 0x2900
000021f6: JUMP
000021f7: JUMPDEST
000021f8: SWAP2
000021f9: SWAP6
000021fa: POP
000021fb: SWAP4
000021fc: POP
000021fd: SWAP2
000021fe: POP
000021ff: PUSH2 0x2215
00002202: DUP5
00002203: DUP5
00002204: DUP5
00002205: PUSH2 0x220d
00002208: DUP14
00002209: PUSH2 0x291e
0000220c: JUMP
0000220d: JUMPDEST
0000220e: SWAP3
0000220f: SWAP2
00002210: SWAP1
00002211: PUSH2 0x296f
00002214: JUMP
00002215: JUMPDEST
00002216: SWAP5
00002217: POP
00002218: DUP6
00002219: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000222e: AND
0000222f: DUP6
00002230: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002245: AND
00002246: GT
00002247: DUP1
00002248: ISZERO
00002249: PUSH2 0x2278
0000224c: JUMPI
0000224d: POP
0000224e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002263: DUP6
00002264: DUP2
00002265: AND
00002266: PUSH1 0x00
00002268: SWAP1
00002269: DUP2
0000226a: MSTORE
0000226b: PUSH1 0x01
0000226d: PUSH1 0x20
0000226f: MSTORE
00002270: PUSH1 0x40
00002272: SWAP1
00002273: KECCAK256
00002274: SLOAD
00002275: AND
00002276: ISZERO
00002277: ISZERO
00002278: JUMPDEST
00002279: DUP1
0000227a: ISZERO
0000227b: PUSH2 0x229b
0000227e: JUMPI
0000227f: POP
00002280: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002295: DUP6
00002296: AND
00002297: PUSH1 0x01
00002299: EQ
0000229a: ISZERO
0000229b: JUMPDEST
0000229c: PUSH2 0x2306
0000229f: JUMPI
000022a0: PUSH1 0x40
000022a2: DUP1
000022a3: MLOAD
000022a4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000022c5: DUP2
000022c6: MSTORE
000022c7: PUSH1 0x20
000022c9: PUSH1 0x04
000022cb: DUP3
000022cc: ADD
000022cd: MSTORE
000022ce: PUSH1 0x1c
000022d0: PUSH1 0x24
000022d2: DUP3
000022d3: ADD
000022d4: MSTORE
000022d5: PUSH32 0x575241503a20494e56414c49445f4f574e45525f50524f564944454400000000
000022f6: PUSH1 0x44
000022f8: DUP3
000022f9: ADD
000022fa: MSTORE
000022fb: SWAP1
000022fc: MLOAD
000022fd: SWAP1
000022fe: DUP2
000022ff: SWAP1
00002300: SUB
00002301: PUSH1 0x64
00002303: ADD
00002304: SWAP1
00002305: REVERT
00002306: JUMPDEST
00002307: SWAP4
00002308: SWAP5
00002309: POP
0000230a: DUP5
0000230b: SWAP4
0000230c: PUSH1 0x01
0000230e: ADD
0000230f: PUSH2 0x21e5
00002312: JUMP
00002313: JUMPDEST
00002314: POP
00002315: POP
00002316: POP
00002317: POP
00002318: POP
00002319: POP
0000231a: POP
0000231b: POP
0000231c: POP
0000231d: JUMP
0000231e: JUMPDEST
0000231f: PUSH1 0x00
00002321: DUP1
00002322: PUSH1 0x00
00002324: DUP5
00002325: MLOAD
00002326: PUSH1 0x20
00002328: DUP7
00002329: ADD
0000232a: DUP8
0000232b: DUP10
0000232c: DUP8
0000232d: CALL
0000232e: SWAP6
0000232f: SWAP5
00002330: POP
00002331: POP
00002332: POP
00002333: POP
00002334: POP
00002335: JUMP
00002336: JUMPDEST
00002337: PUSH1 0x03
00002339: SLOAD
0000233a: ISZERO
0000233b: PUSH2 0x23a5
0000233e: JUMPI
0000233f: PUSH1 0x40
00002341: DUP1
00002342: MLOAD
00002343: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002364: DUP2
00002365: MSTORE
00002366: PUSH1 0x20
00002368: PUSH1 0x04
0000236a: DUP3
0000236b: ADD
0000236c: MSTORE
0000236d: PUSH1 0x1c
0000236f: PUSH1 0x24
00002371: DUP3
00002372: ADD
00002373: MSTORE
00002374: PUSH32 0x575241503a20434f4e54524143545f414c52454144595f534554555000000000
00002395: PUSH1 0x44
00002397: DUP3
00002398: ADD
00002399: MSTORE
0000239a: SWAP1
0000239b: MLOAD
0000239c: SWAP1
0000239d: DUP2
0000239e: SWAP1
0000239f: SUB
000023a0: PUSH1 0x64
000023a2: ADD
000023a3: SWAP1
000023a4: REVERT
000023a5: JUMPDEST
000023a6: DUP2
000023a7: MLOAD
000023a8: DUP2
000023a9: GT
000023aa: ISZERO
000023ab: PUSH2 0x23ff
000023ae: JUMPI
000023af: PUSH1 0x40
000023b1: MLOAD
000023b2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000023d3: DUP2
000023d4: MSTORE
000023d5: PUSH1 0x04
000023d7: ADD
000023d8: DUP1
000023d9: DUP1
000023da: PUSH1 0x20
000023dc: ADD
000023dd: DUP3
000023de: DUP2
000023df: SUB
000023e0: DUP3
000023e1: MSTORE
000023e2: PUSH1 0x29
000023e4: DUP2
000023e5: MSTORE
000023e6: PUSH1 0x20
000023e8: ADD
000023e9: DUP1
000023ea: PUSH2 0x2d07
000023ed: PUSH1 0x29
000023ef: SWAP2
000023f0: CODECOPY
000023f1: PUSH1 0x40
000023f3: ADD
000023f4: SWAP2
000023f5: POP
000023f6: POP
000023f7: PUSH1 0x40
000023f9: MLOAD
000023fa: DUP1
000023fb: SWAP2
000023fc: SUB
000023fd: SWAP1
000023fe: REVERT
000023ff: JUMPDEST
00002400: PUSH1 0x01
00002402: DUP2
00002403: LT
00002404: ISZERO
00002405: PUSH2 0x2459
00002408: JUMPI
00002409: PUSH1 0x40
0000240b: MLOAD
0000240c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000242d: DUP2
0000242e: MSTORE
0000242f: PUSH1 0x04
00002431: ADD
00002432: DUP1
00002433: DUP1
00002434: PUSH1 0x20
00002436: ADD
00002437: DUP3
00002438: DUP2
00002439: SUB
0000243a: DUP3
0000243b: MSTORE
0000243c: PUSH1 0x2a
0000243e: DUP2
0000243f: MSTORE
00002440: PUSH1 0x20
00002442: ADD
00002443: DUP1
00002444: PUSH2 0x2d30
00002447: PUSH1 0x2a
00002449: SWAP2
0000244a: CODECOPY
0000244b: PUSH1 0x40
0000244d: ADD
0000244e: SWAP2
0000244f: POP
00002450: POP
00002451: PUSH1 0x40
00002453: MLOAD
00002454: DUP1
00002455: SWAP2
00002456: SUB
00002457: SWAP1
00002458: REVERT
00002459: JUMPDEST
0000245a: PUSH1 0x01
0000245c: PUSH1 0x00
0000245e: JUMPDEST
0000245f: DUP4
00002460: MLOAD
00002461: DUP2
00002462: LT
00002463: ISZERO
00002464: PUSH2 0x261a
00002467: JUMPI
00002468: PUSH1 0x00
0000246a: DUP5
0000246b: DUP3
0000246c: DUP2
0000246d: MLOAD
0000246e: DUP2
0000246f: LT
00002470: PUSH2 0x2475
00002473: JUMPI
00002474: INVALID
00002475: JUMPDEST
00002476: PUSH1 0x20
00002478: MUL
00002479: PUSH1 0x20
0000247b: ADD
0000247c: ADD
0000247d: MLOAD
0000247e: SWAP1
0000247f: POP
00002480: PUSH1 0x00
00002482: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002497: AND
00002498: DUP2
00002499: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024ae: AND
000024af: EQ
000024b0: ISZERO
000024b1: DUP1
000024b2: ISZERO
000024b3: PUSH2 0x24d3
000024b6: JUMPI
000024b7: POP
000024b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024cd: DUP2
000024ce: AND
000024cf: PUSH1 0x01
000024d1: EQ
000024d2: ISZERO
000024d3: JUMPDEST
000024d4: PUSH2 0x253e
000024d7: JUMPI
000024d8: PUSH1 0x40
000024da: DUP1
000024db: MLOAD
000024dc: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000024fd: DUP2
000024fe: MSTORE
000024ff: PUSH1 0x20
00002501: PUSH1 0x04
00002503: DUP3
00002504: ADD
00002505: MSTORE
00002506: PUSH1 0x1c
00002508: PUSH1 0x24
0000250a: DUP3
0000250b: ADD
0000250c: MSTORE
0000250d: PUSH32 0x575241503a20494e56414c49445f4f574e45525f50524f564944454400000000
0000252e: PUSH1 0x44
00002530: DUP3
00002531: ADD
00002532: MSTORE
00002533: SWAP1
00002534: MLOAD
00002535: SWAP1
00002536: DUP2
00002537: SWAP1
00002538: SUB
00002539: PUSH1 0x64
0000253b: ADD
0000253c: SWAP1
0000253d: REVERT
0000253e: JUMPDEST
0000253f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002554: DUP2
00002555: DUP2
00002556: AND
00002557: PUSH1 0x00
00002559: SWAP1
0000255a: DUP2
0000255b: MSTORE
0000255c: PUSH1 0x01
0000255e: PUSH1 0x20
00002560: MSTORE
00002561: PUSH1 0x40
00002563: SWAP1
00002564: KECCAK256
00002565: SLOAD
00002566: AND
00002567: ISZERO
00002568: PUSH2 0x25bc
0000256b: JUMPI
0000256c: PUSH1 0x40
0000256e: MLOAD
0000256f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002590: DUP2
00002591: MSTORE
00002592: PUSH1 0x04
00002594: ADD
00002595: DUP1
00002596: DUP1
00002597: PUSH1 0x20
00002599: ADD
0000259a: DUP3
0000259b: DUP2
0000259c: SUB
0000259d: DUP3
0000259e: MSTORE
0000259f: PUSH1 0x26
000025a1: DUP2
000025a2: MSTORE
000025a3: PUSH1 0x20
000025a5: ADD
000025a6: DUP1
000025a7: PUSH2 0x2d8a
000025aa: PUSH1 0x26
000025ac: SWAP2
000025ad: CODECOPY
000025ae: PUSH1 0x40
000025b0: ADD
000025b1: SWAP2
000025b2: POP
000025b3: POP
000025b4: PUSH1 0x40
000025b6: MLOAD
000025b7: DUP1
000025b8: SWAP2
000025b9: SUB
000025ba: SWAP1
000025bb: REVERT
000025bc: JUMPDEST
000025bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025d2: SWAP3
000025d3: DUP4
000025d4: AND
000025d5: PUSH1 0x00
000025d7: SWAP1
000025d8: DUP2
000025d9: MSTORE
000025da: PUSH1 0x01
000025dc: PUSH1 0x20
000025de: DUP2
000025df: SWAP1
000025e0: MSTORE
000025e1: PUSH1 0x40
000025e3: SWAP1
000025e4: SWAP2
000025e5: KECCAK256
000025e6: DUP1
000025e7: SLOAD
000025e8: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00002609: AND
0000260a: SWAP5
0000260b: DUP4
0000260c: AND
0000260d: SWAP5
0000260e: SWAP1
0000260f: SWAP5
00002610: OR
00002611: SWAP1
00002612: SWAP4
00002613: SSTORE
00002614: SWAP2
00002615: ADD
00002616: PUSH2 0x245e
00002619: JUMP
0000261a: JUMPDEST
0000261b: POP
0000261c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002631: AND
00002632: PUSH1 0x00
00002634: SWAP1
00002635: DUP2
00002636: MSTORE
00002637: PUSH1 0x01
00002639: PUSH1 0x20
0000263b: DUP2
0000263c: SWAP1
0000263d: MSTORE
0000263e: PUSH1 0x40
00002640: SWAP1
00002641: SWAP2
00002642: KECCAK256
00002643: DUP1
00002644: SLOAD
00002645: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00002666: AND
00002667: SWAP1
00002668: SWAP2
00002669: OR
0000266a: SWAP1
0000266b: SSTORE
0000266c: SWAP1
0000266d: MLOAD
0000266e: PUSH1 0x02
00002670: SSTORE
00002671: PUSH1 0x03
00002673: SSTORE
00002674: JUMP
00002675: JUMPDEST
00002676: PUSH1 0x00
00002678: DUP1
00002679: DUP6
0000267a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000268f: AND
00002690: PUSH1 0x40
00002692: MLOAD
00002693: DUP1
00002694: PUSH1 0x60
00002696: ADD
00002697: PUSH1 0x40
00002699: MSTORE
0000269a: DUP1
0000269b: PUSH1 0x25
0000269d: DUP2
0000269e: MSTORE
0000269f: PUSH1 0x20
000026a1: ADD
000026a2: PUSH2 0x2b8a
000026a5: PUSH1 0x25
000026a7: SWAP2
000026a8: CODECOPY
000026a9: DUP1
000026aa: MLOAD
000026ab: PUSH1 0x20
000026ad: SWAP2
000026ae: DUP3
000026af: ADD
000026b0: KECCAK256
000026b1: PUSH1 0x40
000026b3: DUP1
000026b4: MLOAD
000026b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026ca: DUP1
000026cb: DUP12
000026cc: AND
000026cd: PUSH1 0x24
000026cf: DUP4
000026d0: ADD
000026d1: MSTORE
000026d2: DUP10
000026d3: AND
000026d4: PUSH1 0x44
000026d6: DUP3
000026d7: ADD
000026d8: MSTORE
000026d9: PUSH1 0x64
000026db: DUP1
000026dc: DUP3
000026dd: ADD
000026de: DUP10
000026df: SWAP1
000026e0: MSTORE
000026e1: DUP3
000026e2: MLOAD
000026e3: DUP1
000026e4: DUP4
000026e5: SUB
000026e6: SWAP1
000026e7: SWAP2
000026e8: ADD
000026e9: DUP2
000026ea: MSTORE
000026eb: PUSH1 0x84
000026ed: SWAP1
000026ee: SWAP2
000026ef: ADD
000026f0: DUP3
000026f1: MSTORE
000026f2: SWAP3
000026f3: DUP4
000026f4: ADD
000026f5: DUP1
000026f6: MLOAD
000026f7: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002714: AND
00002715: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00002736: SWAP1
00002737: SWAP4
00002738: AND
00002739: SWAP3
0000273a: SWAP1
0000273b: SWAP3
0000273c: OR
0000273d: DUP3
0000273e: MSTORE
0000273f: MLOAD
00002740: DUP3
00002741: MLOAD
00002742: SWAP1
00002743: SWAP2
00002744: DUP3
00002745: SWAP2
00002746: DUP1
00002747: DUP4
00002748: DUP4
00002749: JUMPDEST
0000274a: PUSH1 0x20
0000274c: DUP4
0000274d: LT
0000274e: PUSH2 0x2786
00002751: JUMPI
00002752: DUP1
00002753: MLOAD
00002754: DUP3
00002755: MSTORE
00002756: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00002777: SWAP1
00002778: SWAP3
00002779: ADD
0000277a: SWAP2
0000277b: PUSH1 0x20
0000277d: SWAP2
0000277e: DUP3
0000277f: ADD
00002780: SWAP2
00002781: ADD
00002782: PUSH2 0x2749
00002785: JUMP
00002786: JUMPDEST
00002787: PUSH1 0x01
00002789: DUP4
0000278a: PUSH1 0x20
0000278c: SUB
0000278d: PUSH2 0x0100
00002790: EXP
00002791: SUB
00002792: DUP1
00002793: NOT
00002794: DUP3
00002795: MLOAD
00002796: AND
00002797: DUP2
00002798: DUP5
00002799: MLOAD
0000279a: AND
0000279b: DUP1
0000279c: DUP3
0000279d: OR
0000279e: DUP6
0000279f: MSTORE
000027a0: POP
000027a1: POP
000027a2: POP
000027a3: POP
000027a4: POP
000027a5: POP
000027a6: SWAP1
000027a7: POP
000027a8: ADD
000027a9: SWAP2
000027aa: POP
000027ab: POP
000027ac: PUSH1 0x00
000027ae: PUSH1 0x40
000027b0: MLOAD
000027b1: DUP1
000027b2: DUP4
000027b3: SUB
000027b4: DUP2
000027b5: PUSH1 0x00
000027b7: DUP7
000027b8: GAS
000027b9: CALL
000027ba: SWAP2
000027bb: POP
000027bc: POP
000027bd: RETURNDATASIZE
000027be: DUP1
000027bf: PUSH1 0x00
000027c1: DUP2
000027c2: EQ
000027c3: PUSH2 0x27e8
000027c6: JUMPI
000027c7: PUSH1 0x40
000027c9: MLOAD
000027ca: SWAP2
000027cb: POP
000027cc: PUSH1 0x1f
000027ce: NOT
000027cf: PUSH1 0x3f
000027d1: RETURNDATASIZE
000027d2: ADD
000027d3: AND
000027d4: DUP3
000027d5: ADD
000027d6: PUSH1 0x40
000027d8: MSTORE
000027d9: RETURNDATASIZE
000027da: DUP3
000027db: MSTORE
000027dc: RETURNDATASIZE
000027dd: PUSH1 0x00
000027df: PUSH1 0x20
000027e1: DUP5
000027e2: ADD
000027e3: RETURNDATACOPY
000027e4: PUSH2 0x27ed
000027e7: JUMP
000027e8: JUMPDEST
000027e9: PUSH1 0x60
000027eb: SWAP2
000027ec: POP
000027ed: JUMPDEST
000027ee: POP
000027ef: SWAP2
000027f0: POP
000027f1: SWAP2
000027f2: POP
000027f3: DUP2
000027f4: DUP1
000027f5: ISZERO
000027f6: PUSH2 0x281b
000027f9: JUMPI
000027fa: POP
000027fb: DUP1
000027fc: MLOAD
000027fd: ISZERO
000027fe: DUP1
000027ff: PUSH2 0x281b
00002802: JUMPI
00002803: POP
00002804: DUP1
00002805: DUP1
00002806: PUSH1 0x20
00002808: ADD
00002809: SWAP1
0000280a: MLOAD
0000280b: PUSH1 0x20
0000280d: DUP2
0000280e: LT
0000280f: ISZERO
00002810: PUSH2 0x2818
00002813: JUMPI
00002814: PUSH1 0x00
00002816: DUP1
00002817: REVERT
00002818: JUMPDEST
00002819: POP
0000281a: MLOAD
0000281b: JUMPDEST
0000281c: PUSH2 0x20ea
0000281f: JUMPI
00002820: PUSH1 0x40
00002822: DUP1
00002823: MLOAD
00002824: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002845: DUP2
00002846: MSTORE
00002847: PUSH1 0x20
00002849: PUSH1 0x04
0000284b: DUP3
0000284c: ADD
0000284d: MSTORE
0000284e: PUSH1 0x1b
00002850: PUSH1 0x24
00002852: DUP3
00002853: ADD
00002854: MSTORE
00002855: PUSH32 0x575241503a2045524332305f5452414e534645525f4641494c45440000000000
00002876: PUSH1 0x44
00002878: DUP3
00002879: ADD
0000287a: MSTORE
0000287b: SWAP1
0000287c: MLOAD
0000287d: SWAP1
0000287e: DUP2
0000287f: SWAP1
00002880: SUB
00002881: PUSH1 0x64
00002883: ADD
00002884: SWAP1
00002885: REVERT
00002886: JUMPDEST
00002887: PUSH1 0x00
00002889: DUP3
0000288a: PUSH2 0x2895
0000288d: JUMPI
0000288e: POP
0000288f: PUSH1 0x00
00002891: PUSH2 0x0e54
00002894: JUMP
00002895: JUMPDEST
00002896: DUP3
00002897: DUP3
00002898: MUL
00002899: DUP3
0000289a: DUP5
0000289b: DUP3
0000289c: DUP2
0000289d: PUSH2 0x28a2
000028a0: JUMPI
000028a1: INVALID
000028a2: JUMPDEST
000028a3: DIV
000028a4: EQ
000028a5: PUSH2 0x28f9
000028a8: JUMPI
000028a9: PUSH1 0x40
000028ab: MLOAD
000028ac: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000028cd: DUP2
000028ce: MSTORE
000028cf: PUSH1 0x04
000028d1: ADD
000028d2: DUP1
000028d3: DUP1
000028d4: PUSH1 0x20
000028d6: ADD
000028d7: DUP3
000028d8: DUP2
000028d9: SUB
000028da: DUP3
000028db: MSTORE
000028dc: PUSH1 0x21
000028de: DUP2
000028df: MSTORE
000028e0: PUSH1 0x20
000028e2: ADD
000028e3: DUP1
000028e4: PUSH2 0x2cba
000028e7: PUSH1 0x21
000028e9: SWAP2
000028ea: CODECOPY
000028eb: PUSH1 0x40
000028ed: ADD
000028ee: SWAP2
000028ef: POP
000028f0: POP
000028f1: PUSH1 0x40
000028f3: MLOAD
000028f4: DUP1
000028f5: SWAP2
000028f6: SUB
000028f7: SWAP1
000028f8: REVERT
000028f9: JUMPDEST
000028fa: SWAP4
000028fb: SWAP3
000028fc: POP
000028fd: POP
000028fe: POP
000028ff: JUMP
00002900: JUMPDEST
00002901: PUSH1 0x41
00002903: SWAP1
00002904: DUP2
00002905: MUL
00002906: SWAP2
00002907: SWAP1
00002908: SWAP2
00002909: ADD
0000290a: PUSH1 0x20
0000290c: DUP2
0000290d: ADD
0000290e: MLOAD
0000290f: PUSH1 0x40
00002911: DUP3
00002912: ADD
00002913: MLOAD
00002914: SWAP2
00002915: SWAP1
00002916: SWAP3
00002917: ADD
00002918: MLOAD
00002919: PUSH1 0xff
0000291b: AND
0000291c: SWAP3
0000291d: JUMP
0000291e: JUMPDEST
0000291f: PUSH1 0x40
00002921: DUP1
00002922: MLOAD
00002923: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
00002944: PUSH1 0x20
00002946: DUP1
00002947: DUP4
00002948: ADD
00002949: SWAP2
0000294a: SWAP1
0000294b: SWAP2
0000294c: MSTORE
0000294d: PUSH1 0x3c
0000294f: DUP1
00002950: DUP4
00002951: ADD
00002952: SWAP5
00002953: SWAP1
00002954: SWAP5
00002955: MSTORE
00002956: DUP3
00002957: MLOAD
00002958: DUP1
00002959: DUP4
0000295a: SUB
0000295b: SWAP1
0000295c: SWAP5
0000295d: ADD
0000295e: DUP5
0000295f: MSTORE
00002960: PUSH1 0x5c
00002962: SWAP1
00002963: SWAP2
00002964: ADD
00002965: SWAP1
00002966: SWAP2
00002967: MSTORE
00002968: DUP2
00002969: MLOAD
0000296a: SWAP2
0000296b: ADD
0000296c: KECCAK256
0000296d: SWAP1
0000296e: JUMP
0000296f: JUMPDEST
00002970: PUSH1 0x00
00002972: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
00002993: DUP3
00002994: GT
00002995: ISZERO
00002996: PUSH2 0x29ea
00002999: JUMPI
0000299a: PUSH1 0x40
0000299c: MLOAD
0000299d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000029be: DUP2
000029bf: MSTORE
000029c0: PUSH1 0x04
000029c2: ADD
000029c3: DUP1
000029c4: DUP1
000029c5: PUSH1 0x20
000029c7: ADD
000029c8: DUP3
000029c9: DUP2
000029ca: SUB
000029cb: DUP3
000029cc: MSTORE
000029cd: PUSH1 0x22
000029cf: DUP2
000029d0: MSTORE
000029d1: PUSH1 0x20
000029d3: ADD
000029d4: DUP1
000029d5: PUSH2 0x2c33
000029d8: PUSH1 0x22
000029da: SWAP2
000029db: CODECOPY
000029dc: PUSH1 0x40
000029de: ADD
000029df: SWAP2
000029e0: POP
000029e1: POP
000029e2: PUSH1 0x40
000029e4: MLOAD
000029e5: DUP1
000029e6: SWAP2
000029e7: SUB
000029e8: SWAP1
000029e9: REVERT
000029ea: JUMPDEST
000029eb: DUP4
000029ec: PUSH1 0xff
000029ee: AND
000029ef: PUSH1 0x1b
000029f1: EQ
000029f2: DUP1
000029f3: PUSH2 0x29ff
000029f6: JUMPI
000029f7: POP
000029f8: DUP4
000029f9: PUSH1 0xff
000029fb: AND
000029fc: PUSH1 0x1c
000029fe: EQ
000029ff: JUMPDEST
00002a00: PUSH2 0x2a54
00002a03: JUMPI
00002a04: PUSH1 0x40
00002a06: MLOAD
00002a07: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002a28: DUP2
00002a29: MSTORE
00002a2a: PUSH1 0x04
00002a2c: ADD
00002a2d: DUP1
00002a2e: DUP1
00002a2f: PUSH1 0x20
00002a31: ADD
00002a32: DUP3
00002a33: DUP2
00002a34: SUB
00002a35: DUP3
00002a36: MSTORE
00002a37: PUSH1 0x22
00002a39: DUP2
00002a3a: MSTORE
00002a3b: PUSH1 0x20
00002a3d: ADD
00002a3e: DUP1
00002a3f: PUSH2 0x2c98
00002a42: PUSH1 0x22
00002a44: SWAP2
00002a45: CODECOPY
00002a46: PUSH1 0x40
00002a48: ADD
00002a49: SWAP2
00002a4a: POP
00002a4b: POP
00002a4c: PUSH1 0x40
00002a4e: MLOAD
00002a4f: DUP1
00002a50: SWAP2
00002a51: SUB
00002a52: SWAP1
00002a53: REVERT
00002a54: JUMPDEST
00002a55: PUSH1 0x00
00002a57: PUSH1 0x01
00002a59: DUP7
00002a5a: DUP7
00002a5b: DUP7
00002a5c: DUP7
00002a5d: PUSH1 0x40
00002a5f: MLOAD
00002a60: PUSH1 0x00
00002a62: DUP2
00002a63: MSTORE
00002a64: PUSH1 0x20
00002a66: ADD
00002a67: PUSH1 0x40
00002a69: MSTORE
00002a6a: PUSH1 0x40
00002a6c: MLOAD
00002a6d: DUP1
00002a6e: DUP6
00002a6f: DUP2
00002a70: MSTORE
00002a71: PUSH1 0x20
00002a73: ADD
00002a74: DUP5
00002a75: PUSH1 0xff
00002a77: AND
00002a78: DUP2
00002a79: MSTORE
00002a7a: PUSH1 0x20
00002a7c: ADD
00002a7d: DUP4
00002a7e: DUP2
00002a7f: MSTORE
00002a80: PUSH1 0x20
00002a82: ADD
00002a83: DUP3
00002a84: DUP2
00002a85: MSTORE
00002a86: PUSH1 0x20
00002a88: ADD
00002a89: SWAP5
00002a8a: POP
00002a8b: POP
00002a8c: POP
00002a8d: POP
00002a8e: POP
00002a8f: PUSH1 0x20
00002a91: PUSH1 0x40
00002a93: MLOAD
00002a94: PUSH1 0x20
00002a96: DUP2
00002a97: SUB
00002a98: SWAP1
00002a99: DUP1
00002a9a: DUP5
00002a9b: SUB
00002a9c: SWAP1
00002a9d: DUP6
00002a9e: GAS
00002a9f: STATICCALL
00002aa0: ISZERO
00002aa1: DUP1
00002aa2: ISZERO
00002aa3: PUSH2 0x2ab0
00002aa6: JUMPI
00002aa7: RETURNDATASIZE
00002aa8: PUSH1 0x00
00002aaa: DUP1
00002aab: RETURNDATACOPY
00002aac: RETURNDATASIZE
00002aad: PUSH1 0x00
00002aaf: REVERT
00002ab0: JUMPDEST
00002ab1: POP
00002ab2: POP
00002ab3: PUSH1 0x40
00002ab5: MLOAD
00002ab6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00002ad7: ADD
00002ad8: MLOAD
00002ad9: SWAP2
00002ada: POP
00002adb: POP
00002adc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002af1: DUP2
00002af2: AND
00002af3: PUSH2 0x2b5d
00002af6: JUMPI
00002af7: PUSH1 0x40
00002af9: DUP1
00002afa: MLOAD
00002afb: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002b1c: DUP2
00002b1d: MSTORE
00002b1e: PUSH1 0x20
00002b20: PUSH1 0x04
00002b22: DUP3
00002b23: ADD
00002b24: MSTORE
00002b25: PUSH1 0x18
00002b27: PUSH1 0x24
00002b29: DUP3
00002b2a: ADD
00002b2b: MSTORE
00002b2c: PUSH32 0x45434453413a20696e76616c6964207369676e61747572650000000000000000
00002b4d: PUSH1 0x44
00002b4f: DUP3
00002b50: ADD
00002b51: MSTORE
00002b52: SWAP1
00002b53: MLOAD
00002b54: SWAP1
00002b55: DUP2
00002b56: SWAP1
00002b57: SUB
00002b58: PUSH1 0x64
00002b5a: ADD
00002b5b: SWAP1
00002b5c: REVERT
00002b5d: JUMPDEST
00002b5e: SWAP6
00002b5f: SWAP5
00002b60: POP
00002b61: POP
00002b62: POP
00002b63: POP
00002b64: POP
00002b65: JUMP
00002b66: INVALID
00002b67: JUMPI
00002b68: MSTORE
00002b69: COINBASE
00002b6a: POP
00002b6b: GASPRICE
00002b6c: KECCAK256
00002b6d: SLOAD
00002b6e: MSTORE
00002b6f: COINBASE
00002b70: UNKNOWN(0x4E)
00002b71: MSTORE8
00002b72: COINBASE
00002b73: NUMBER
00002b74: SLOAD
00002b75: BLOBHASH
00002b76: UNKNOWN(0x4F)
00002b77: UNKNOWN(0x4E)
00002b78: PUSH0
00002b79: COINBASE
00002b7a: UNKNOWN(0x4C)
00002b7b: MSTORE
00002b7c: GASLIMIT
00002b7d: COINBASE
00002b7e: DIFFICULTY
00002b7f: MSIZE
00002b80: PUSH0
00002b81: POP
00002b82: MSTORE
00002b83: UNKNOWN(0x4F)
00002b84: NUMBER
00002b85: GASLIMIT
00002b86: MSTORE8
00002b87: MSTORE8
00002b88: GASLIMIT
00002b89: DIFFICULTY
00002b8a: PUSH21 0x72616e7366657246726f6d28616464726573732c61
00002ba0: PUSH5 0x6472657373
00002ba6: UNKNOWN(0x2C)
00002ba7: PUSH22 0x696e7432353629575241503a20494e56414c49445f4f
00002bbe: JUMPI
00002bbf: UNKNOWN(0x4E)
00002bc0: GASLIMIT
00002bc1: MSTORE
00002bc2: PUSH0
00002bc3: COINBASE
00002bc4: DIFFICULTY
00002bc5: DIFFICULTY
00002bc6: MSTORE
00002bc7: GASLIMIT
00002bc8: MSTORE8
00002bc9: MSTORE8
00002bca: PUSH0
00002bcb: POP
00002bcc: MSTORE
00002bcd: UNKNOWN(0x4F)
00002bce: JUMP
00002bcf: BLOBHASH
00002bd0: DIFFICULTY
00002bd1: GASLIMIT
00002bd2: DIFFICULTY
00002bd3: PUSH20 0x6166655472616e7366657246726f6d2861646472
00002be8: PUSH6 0x73732c616464
00002bef: PUSH19 0x6573732c75696e7432353629575241503a204e
00002c03: GASLIMIT
00002c04: JUMPI
00002c05: PUSH0
00002c06: UNKNOWN(0x4F)
00002c07: JUMPI
00002c08: UNKNOWN(0x4E)
00002c09: GASLIMIT
00002c0a: MSTORE
00002c0b: PUSH0
00002c0c: NUMBER
00002c0d: UNKNOWN(0x4F)
00002c0e: SSTORE
00002c0f: UNKNOWN(0x4E)
00002c10: SLOAD
00002c11: PUSH0
00002c12: UNKNOWN(0x4E)
00002c13: GASLIMIT
00002c14: GASLIMIT
00002c15: DIFFICULTY
00002c16: MSTORE8
00002c17: PUSH0
00002c18: SLOAD
00002c19: UNKNOWN(0x4F)
00002c1a: PUSH0
00002c1b: TIMESTAMP
00002c1c: GASLIMIT
00002c1d: PUSH0
00002c1e: UNKNOWN(0x4C)
00002c1f: UNKNOWN(0x4F)
00002c20: UNKNOWN(0x4E)
00002c21: SELFBALANCE
00002c22: GASLIMIT
00002c23: MSTORE
00002c24: PUSH0
00002c25: SLOAD
00002c26: BASEFEE
00002c27: COINBASE
00002c28: UNKNOWN(0x4E)
00002c29: PUSH0
00002c2a: SLOAD
00002c2b: BASEFEE
00002c2c: MSTORE
00002c2d: GASLIMIT
00002c2e: MSTORE8
00002c2f: BASEFEE
00002c30: UNKNOWN(0x4F)
00002c31: UNKNOWN(0x4C)
00002c32: DIFFICULTY
00002c33: GASLIMIT
00002c34: NUMBER
00002c35: DIFFICULTY
00002c36: MSTORE8
00002c37: COINBASE
00002c38: GASPRICE
00002c39: KECCAK256
00002c3a: PUSH10 0x6e76616c696420736967
00002c45: PUSH15 0x6174757265202773272076616c7565
00002c55: JUMPI
00002c56: MSTORE
00002c57: COINBASE
00002c58: POP
00002c59: GASPRICE
00002c5a: KECCAK256
00002c5b: DIFFICULTY
00002c5c: UNKNOWN(0x4F)
00002c5d: UNKNOWN(0x4D)
00002c5e: COINBASE
00002c5f: BLOBHASH
00002c60: UNKNOWN(0x4E)
00002c61: PUSH0
00002c62: MSTORE8
00002c63: GASLIMIT
00002c64: POP
00002c65: COINBASE
00002c66: MSTORE
00002c67: COINBASE
00002c68: SLOAD
00002c69: UNKNOWN(0x4F)
00002c6a: MSTORE
00002c6b: PUSH0
00002c6c: COINBASE
00002c6d: UNKNOWN(0x4C)
00002c6e: MSTORE
00002c6f: GASLIMIT
00002c70: COINBASE
00002c71: DIFFICULTY
00002c72: MSIZE
00002c73: PUSH0
00002c74: MSTORE8
00002c75: GASLIMIT
00002c76: SLOAD
00002c77: JUMPI
00002c78: MSTORE
00002c79: COINBASE
00002c7a: POP
00002c7b: GASPRICE
00002c7c: KECCAK256
00002c7d: COINBASE
00002c7e: DIFFICULTY
00002c7f: DIFFICULTY
00002c80: MSTORE
00002c81: GASLIMIT
00002c82: MSTORE8
00002c83: MSTORE8
00002c84: PUSH0
00002c85: BLOBHASH
00002c86: MSTORE8
00002c87: PUSH0
00002c88: COINBASE
00002c89: UNKNOWN(0x4C)
00002c8a: MSTORE
00002c8b: GASLIMIT
00002c8c: COINBASE
00002c8d: DIFFICULTY
00002c8e: MSIZE
00002c8f: PUSH0
00002c90: COINBASE
00002c91: UNKNOWN(0x4E)
00002c92: PUSH0
00002c93: UNKNOWN(0x4F)
00002c94: JUMPI
00002c95: UNKNOWN(0x4E)
00002c96: GASLIMIT
00002c97: MSTORE
00002c98: GASLIMIT
00002c99: NUMBER
00002c9a: DIFFICULTY
00002c9b: MSTORE8
00002c9c: COINBASE
00002c9d: GASPRICE
00002c9e: KECCAK256
00002c9f: PUSH10 0x6e76616c696420736967
00002caa: PUSH15 0x6174757265202776272076616c7565
00002cba: MSTORE8
00002cbb: PUSH2 0x6665
00002cbe: UNKNOWN(0x4D)
00002cbf: PUSH2 0x7468
00002cc2: GASPRICE
00002cc3: KECCAK256
00002cc4: PUSH14 0x756c7469706c69636174696f6e20
00002cd3: PUSH16 0x766572666c6f77575241503a20494e56
00002ce4: COINBASE
00002ce5: UNKNOWN(0x4C)
00002ce6: BLOBHASH
00002ce7: DIFFICULTY
00002ce8: PUSH0
00002ce9: POP
00002cea: MSTORE
00002ceb: GASLIMIT
00002cec: JUMP
00002ced: PUSH0
00002cee: UNKNOWN(0x4F)
00002cef: JUMPI
00002cf0: UNKNOWN(0x4E)
00002cf1: GASLIMIT
00002cf2: MSTORE
00002cf3: PUSH0
00002cf4: UNKNOWN(0x4F)
00002cf5: JUMPI
00002cf6: UNKNOWN(0x4E)
00002cf7: GASLIMIT
00002cf8: MSTORE
00002cf9: PUSH0
00002cfa: POP
00002cfb: COINBASE
00002cfc: BLOBHASH
00002cfd: MSTORE
00002cfe: PUSH0
00002cff: POP
00002d00: MSTORE
00002d01: UNKNOWN(0x4F)
00002d02: JUMP
00002d03: BLOBHASH
00002d04: DIFFICULTY
00002d05: GASLIMIT
00002d06: DIFFICULTY
00002d07: JUMPI
00002d08: MSTORE
00002d09: COINBASE
00002d0a: POP
00002d0b: GASPRICE
00002d0c: KECCAK256
00002d0d: SLOAD
00002d0e: BASEFEE
00002d0f: MSTORE
00002d10: GASLIMIT
00002d11: MSTORE8
00002d12: BASEFEE
00002d13: UNKNOWN(0x4F)
00002d14: UNKNOWN(0x4C)
00002d15: DIFFICULTY
00002d16: PUSH0
00002d17: NUMBER
00002d18: COINBASE
00002d19: UNKNOWN(0x4E)
00002d1a: UNKNOWN(0x4E)
00002d1b: UNKNOWN(0x4F)
00002d1c: SLOAD
00002d1d: PUSH0
00002d1e: GASLIMIT
00002d1f: PC
00002d20: NUMBER
00002d21: GASLIMIT
00002d22: GASLIMIT
00002d23: DIFFICULTY
00002d24: PUSH0
00002d25: UNKNOWN(0x4F)
00002d26: JUMPI
00002d27: UNKNOWN(0x4E)
00002d28: GASLIMIT
00002d29: MSTORE
00002d2a: PUSH0
00002d2b: NUMBER
00002d2c: UNKNOWN(0x4F)
00002d2d: SSTORE
00002d2e: UNKNOWN(0x4E)
00002d2f: SLOAD
00002d30: JUMPI
00002d31: MSTORE
00002d32: COINBASE
00002d33: POP
00002d34: GASPRICE
00002d35: KECCAK256
00002d36: SLOAD
00002d37: BASEFEE
00002d38: MSTORE
00002d39: GASLIMIT
00002d3a: MSTORE8
00002d3b: BASEFEE
00002d3c: UNKNOWN(0x4F)
00002d3d: UNKNOWN(0x4C)
00002d3e: DIFFICULTY
00002d3f: PUSH0
00002d40: UNKNOWN(0x4E)
00002d41: GASLIMIT
00002d42: GASLIMIT
00002d43: GASLIMIT
00002d44: DIFFICULTY
00002d45: PUSH0
00002d46: SLOAD
00002d47: UNKNOWN(0x4F)
00002d48: PUSH0
00002d49: TIMESTAMP
00002d4a: GASLIMIT
00002d4b: PUSH0
00002d4c: SELFBALANCE
00002d4d: MSTORE
00002d4e: GASLIMIT
00002d4f: GASLIMIT
00002d50: SLOAD
00002d51: GASLIMIT
00002d52: MSTORE
00002d53: PUSH0
00002d54: SLOAD
00002d55: BASEFEE
00002d56: COINBASE
00002d57: UNKNOWN(0x4E)
00002d58: PUSH0
00002d59: ADDRESS
00002d5a: JUMPI
00002d5b: MSTORE
00002d5c: COINBASE
00002d5d: POP
00002d5e: GASPRICE
00002d5f: KECCAK256
00002d60: UNKNOWN(0x4D)
00002d61: GASLIMIT
00002d62: SLOAD
00002d63: BASEFEE
00002d64: UNKNOWN(0x4F)
00002d65: DIFFICULTY
00002d66: PUSH0
00002d67: NUMBER
00002d68: COINBASE
00002d69: UNKNOWN(0x4E)
00002d6a: PUSH0
00002d6b: UNKNOWN(0x4F)
00002d6c: UNKNOWN(0x4E)
00002d6d: UNKNOWN(0x4C)
00002d6e: MSIZE
00002d6f: PUSH0
00002d70: TIMESTAMP
00002d71: GASLIMIT
00002d72: PUSH0
00002d73: NUMBER
00002d74: COINBASE
00002d75: UNKNOWN(0x4C)
00002d76: UNKNOWN(0x4C)
00002d77: GASLIMIT
00002d78: DIFFICULTY
00002d79: PUSH0
00002d7a: TIMESTAMP
00002d7b: MSIZE
00002d7c: PUSH0
00002d7d: COINBASE
00002d7e: DIFFICULTY
00002d7f: UNKNOWN(0x4D)
00002d80: BLOBHASH
00002d81: UNKNOWN(0x4E)
00002d82: BLOBHASH
00002d83: MSTORE8
00002d84: SLOAD
00002d85: MSTORE
00002d86: COINBASE
00002d87: SLOAD
00002d88: UNKNOWN(0x4F)
00002d89: MSTORE
00002d8a: JUMPI
00002d8b: MSTORE
00002d8c: COINBASE
00002d8d: POP
00002d8e: GASPRICE
00002d8f: KECCAK256
00002d90: DIFFICULTY
00002d91: SSTORE
00002d92: POP
00002d93: UNKNOWN(0x4C)
00002d94: BLOBHASH
00002d95: NUMBER
00002d96: COINBASE
00002d97: SLOAD
00002d98: GASLIMIT
00002d99: PUSH0
00002d9a: UNKNOWN(0x4F)
00002d9b: JUMPI
00002d9c: UNKNOWN(0x4E)
00002d9d: GASLIMIT
00002d9e: MSTORE
00002d9f: PUSH0
00002da0: COINBASE
00002da1: DIFFICULTY
00002da2: DIFFICULTY
00002da3: MSTORE
00002da4: GASLIMIT
00002da5: MSTORE8
00002da6: MSTORE8
00002da7: PUSH0
00002da8: POP
00002da9: MSTORE
00002daa: UNKNOWN(0x4F)
00002dab: JUMP
00002dac: BLOBHASH
00002dad: DIFFICULTY
00002dae: GASLIMIT
00002daf: DIFFICULTY
00002db0: LOG2
00002db1: PUSH5 0x6970667358
00002db7: UNKNOWN(0x22)
00002db8: SLT
00002db9: KECCAK256
00002dba: PUSH17 0xf702fc78d19ccd35e78eca00de9cbc7d60
00002dcc: CREATE2
00002dcd: UNKNOWN(0xEF)
00002dce: DUP7
00002dcf: RETURN
00002dd0: UNKNOWN(0x26)
00002dd1: NOT
00002dd2: UNKNOWN(0xD0)
00002dd3: SWAP9
00002dd4: UNKNOWN(0xEC)
00002dd5: DUP1
00002dd6: UNKNOWN(0xDC)
00002dd7: PUSH28

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x3e9fb61b351ab0f470279990914d1ecee5bcd0dc82b599a0a90789ea30b3fa07
call_targets: 0x5dc76fd132354be5567ad617fd1fe8fb79421d82
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x3e9fb61b351ab0f470279990914d1ecee5bcd0dc82b599a0a90789ea30b3fa07",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5dc76fd132354be5567ad617fd1fe8fb79421d82"
    ],
    "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": "0xf698da25",
            "selector": "0xf698da25",
            "calldata_variants": [
                "0xf698da25",
                "0xf698da250000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8dc5dd9",
            "selector": "0xf8dc5dd9",
            "calldata_variants": [
                "0xf8dc5dd9",
                "0xf8dc5dd90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffa1ad74",
            "selector": "0xffa1ad74",
            "calldata_variants": [
                "0xffa1ad74",
                "0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe75235b8",
            "selector": "0xe75235b8",
            "calldata_variants": [
                "0xe75235b8",
                "0xe75235b80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeed53e9f",
            "selector": "0xeed53e9f",
            "calldata_variants": [
                "0xeed53e9f",
                "0xeed53e9f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa3f4df7e",
            "selector": "0xa3f4df7e",
            "calldata_variants": [
                "0xa3f4df7e",
                "0xa3f4df7e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc8d3e980",
            "selector": "0xc8d3e980",
            "calldata_variants": [
                "0xc8d3e980",
                "0xc8d3e9800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe318b52b",
            "selector": "0xe318b52b",
            "calldata_variants": [
                "0xe318b52b",
                "0xe318b52b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 8221,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9005,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10169,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [],
    "untrusted_call_count": 3
}
high other codex Failed execTransaction still consumes tezosOperation, enabling gas‑griefing DoS and stuck unwraps 85 no
view
evidence_json
{
    "evidence": "execTransaction sets tezosOperations[tezosOperation]=true before _execute and does not revert on failure; it merely emits ExecutionFailure.",
    "locations": [
        "contracts/contracts/WrapMultisig.sol:158",
        "contracts/contracts/WrapMultisig.sol:162",
        "contracts/contracts/WrapMultisig.sol:167"
    ],
    "recommendation": "Only mark tezosOperation as processed after a successful execution (or revert on failure with require(success)) so failed calls do not consume the nonce; alternatively add an admin-controlled recovery path to reset failed operations.",
    "exploit_scenario": "An attacker observes a valid signed unwrap in the mempool and submits the same execTransaction with a tight gas limit so the internal call fails. Because tezosOperations[tezosOperation] is set before execution and the function does not revert on failure, the operation is permanently marked processed and cannot be retried, locking funds corresponding to the Tezos burn."
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x3e9fb61b351ab0f470279990914d1ecee5bcd0dc82b599a0a90789ea30b3fa07
call_targets: 0x5dc76fd132354be5567ad617fd1fe8fb79421d82
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x3e9fb61b351ab0f470279990914d1ecee5bcd0dc82b599a0a90789ea30b3fa07",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5dc76fd132354be5567ad617fd1fe8fb79421d82"
    ],
    "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": "0xf698da25",
            "selector": "0xf698da25",
            "calldata_variants": [
                "0xf698da25",
                "0xf698da250000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8dc5dd9",
            "selector": "0xf8dc5dd9",
            "calldata_variants": [
                "0xf8dc5dd9",
                "0xf8dc5dd90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffa1ad74",
            "selector": "0xffa1ad74",
            "calldata_variants": [
                "0xffa1ad74",
                "0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe75235b8",
            "selector": "0xe75235b8",
            "calldata_variants": [
                "0xe75235b8",
                "0xe75235b80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeed53e9f",
            "selector": "0xeed53e9f",
            "calldata_variants": [
                "0xeed53e9f",
                "0xeed53e9f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa3f4df7e",
            "selector": "0xa3f4df7e",
            "calldata_variants": [
                "0xa3f4df7e",
                "0xa3f4df7e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc8d3e980",
            "selector": "0xc8d3e980",
            "calldata_variants": [
                "0xc8d3e980",
                "0xc8d3e9800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe318b52b",
            "selector": "0xe318b52b",
            "calldata_variants": [
                "0xe318b52b",
                "0xe318b52b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 8221,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9005,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10169,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": []
}
medium other codex execTransaction ignores return data, so ERC20 transfers that return false are treated as successful 75 no
view
evidence_json
{
    "evidence": "_execute uses a raw call and discards return data; execTransaction only checks the boolean success flag.",
    "locations": [
        "contracts/contracts/WrapMultisig.sol:167",
        "contracts/contracts/WrapMultisig.sol:172"
    ],
    "recommendation": "When interacting with token contracts, decode and require a true return value (or use SafeERC20-style checks) so false-returning transfers are treated as failures; consider reverting on any failed token call to keep tezosOperation reusable.",
    "exploit_scenario": "Owners sign an unwrap that calls an ERC20 transfer on a token that signals failure by returning false (e.g., blacklisted/paused tokens). The low\u2011level call succeeds (no revert), _execute returns true, ExecutionSuccess is emitted, and tezosOperation is consumed even though no tokens moved."
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x98e283ffbf559b674a6c42ee93ed640f87dd28a9f4607ee10168954920308a4b
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x98e283ffbf559b674a6c42ee93ed640f87dd28a9f4607ee10168954920308a4b",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xf698da25",
            "selector": "0xf698da25",
            "calldata_variants": [
                "0xf698da25",
                "0xf698da250000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8dc5dd9",
            "selector": "0xf8dc5dd9",
            "calldata_variants": [
                "0xf8dc5dd9",
                "0xf8dc5dd90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffa1ad74",
            "selector": "0xffa1ad74",
            "calldata_variants": [
                "0xffa1ad74",
                "0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe75235b8",
            "selector": "0xe75235b8",
            "calldata_variants": [
                "0xe75235b8",
                "0xe75235b80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeed53e9f",
            "selector": "0xeed53e9f",
            "calldata_variants": [
                "0xeed53e9f",
                "0xeed53e9f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa3f4df7e",
            "selector": "0xa3f4df7e",
            "calldata_variants": [
                "0xa3f4df7e",
                "0xa3f4df7e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc8d3e980",
            "selector": "0xc8d3e980",
            "calldata_variants": [
                "0xc8d3e980",
                "0xc8d3e9800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe318b52b",
            "selector": "0xe318b52b",
            "calldata_variants": [
                "0xe318b52b",
                "0xe318b52b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 0,
    "create2_count": 1
}
low auth codex Domain separator omits chainId, allowing cross‑chain signature replay 65 no
view
evidence_json
{
    "evidence": "DOMAIN_SEPARATOR_TYPEHASH corresponds to EIP712Domain(address verifyingContract) and setup hashes only the contract address.",
    "locations": [
        "contracts/contracts/WrapMultisig.sol:22",
        "contracts/contracts/WrapMultisig.sol:71"
    ],
    "recommendation": "Include chainId in the EIP\u2011712 domain separator (e.g., name, version, chainId, verifyingContract) and recompute if chainId changes to prevent cross\u2011chain replay.",
    "exploit_scenario": "Signatures collected on one chain (or a fork) remain valid on another chain where the contract is deployed at the same address, because the domain separator only includes verifyingContract. An attacker can replay a signed unwrap on a different chain/fork to trigger an unintended execution."
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 0,
    "create2_count": 1
}