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

Analysis Run

019c0ea9-07ab-7229-8ea9-ef5c66ea8236

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 30, 2026 11:28 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
OwnbitMultiSig.spend(address,uint256,uint8[],bytes32[],bytes32[],bytes) (contracts/Contract.sol#116-123) sends eth to arbitrary user
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
41648 artifact.fetch complete 1 / 3 2 months ago
41649 proxy.resolve complete 1 / 3 2 months ago
41650 tool.cast_disasm complete 1 / 3 2 months ago
41651 analysis.bundle complete 1 / 3 2 months ago
41652 capability.graph complete 1 / 3 2 months ago
41653 detector.run complete 1 / 3 2 months ago
41654 validation.fork complete 1 / 3 2 months ago
42244 report.consolidate complete 1 / 6 2 months ago
42245 tool.slither complete 1 / 2 2 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither
Status
complete
Attempts
1 / 2
Findings
1
Solc
0.8.0 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-1amkpmi8)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-1amkpmi8)

OwnbitMultiSig.spend(address,uint256,uint8[],bytes32[],bytes32[],bytes) (contracts/Contract.sol#116-123) sends eth to arbitrary user
	Dangerous calls:
	- (sent,_ret) = destination.call{value: value}(data) (contracts/Contract.sol#120-122)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#functions-that-send-ether-to-arbitrary-destinations

OwnbitMultiSig._distinctOwners(address[]) (contracts/Contract.sol#173-188) uses a dangerous strict equality:
	- ownerBlockMap[addrs[i]] == 0 (contracts/Contract.sol#179-180)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities

Reentrancy in OwnbitMultiSig.spend(address,uint256,uint8[],bytes32[],bytes32[],bytes) (contracts/Contract.sol#116-123):
	External calls:
	- (sent,_ret) = destination.call{value: value}(data) (contracts/Contract.sol#120-122)
	Event emitted after the call(s):
	- Spent(destination,value) (contracts/Contract.sol#122-123)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3

Version constraint >=0.8.0<0.9.0 is too complex.
It is used by:
	- >=0.8.0<0.9.0 (contracts/Contract.sol#1)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Low level call in OwnbitMultiSig.spend(address,uint256,uint8[],bytes32[],bytes32[],bytes) (contracts/Contract.sol#116-123):
	- (sent,_ret) = destination.call{value: value}(data) (contracts/Contract.sol#120-122)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls

OwnbitMultiSig.slitherConstructorConstantVariables() (contracts/Contract.sol#24-213) uses literals with too many digits:
	- MAX_INACTIVE_BLOCKNUMBER = 3000000 (contracts/Contract.sol#29-30)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#too-many-digits

Loop condition i < owners.length (contracts/Contract.sol#133-136) should use cached array length instead of referencing `length` member of the storage array.
 Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#cache-array-length

OwnbitMultiSig.required (contracts/Contract.sol#35-36) should be immutable 
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-immutable
. analyzed (1 contracts with 100 detectors), 8 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.8.0",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.8.0",
        "install_stderr": null,
        "install_stdout": "Version '0.8.0' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-1amkpmi8 --allow-paths /tmp/slither-1amkpmi8,/tmp/slither-1amkpmi8/lib,/tmp/slither-1amkpmi8/src",
    "remappings": [],
    "source_files": [
        "contracts/Contract.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 8,
    "workspace_hash": "c5866a14e1ec055e6f192d75559c23eabfad7df40e71ccc77607dece69a435b7",
    "duration_seconds": 0.5256297588348389,
    "solc_version_requested": "0.8.17"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Two issues found: silent failure/nonce consumption on external calls and missing chain-id in signed message domain separation.
View stdout
{"no_findings":false,"summary":"Two issues found: silent failure/nonce consumption on external calls and missing chain-id in signed message domain separation.","findings":[{"severity":"low","category":"other","title":"External call result ignored; nonce advances even on failed transfer","exploit_scenario":"A signed spend can fail (e.g., destination reverts or ERC20 returns false without reverting). The contract still increments spendNonce and may emit Spent, consuming the signed nonce and forcing owners to re-sign; for ERC20s that return false, observers may think the transfer succeeded even though it did not.","recommendation":"Require the call to succeed and validate ERC20 return data when calling token contracts; revert on failure so the nonce is not consumed and no misleading event is emitted.","evidence":"spend() increments spendNonce before executing destination.call and ignores _ret; it does not revert when sent is false.","locations":["contracts/Contract.sol:spend"]},{"severity":"info","category":"auth","title":"Signed message lacks chain-id domain separation","exploit_scenario":"If the multisig is deployed at the same address on another chain (e.g., via CREATE2), a valid signature on one chain can be replayed on the other because the signed digest does not include chain-id.","recommendation":"Include block.chainid in the signed message (or use EIP-712 domain separation) to prevent cross-chain replay.","evidence":"generateMessageToSign hashes address(this), destination, value, data, spendNonce only.","locations":["contracts/Contract.sol:generateMessageToSign"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-3n_y5vof
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0ee4-4a7c-7633-820f-c1696c35d189
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
exec
/bin/bash -lc ls in /tmp/codex-3n_y5vof succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-3n_y5vof succeeded in 5ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: contracts/Contract.sol
================================================================================
pragma solidity >=0.8.0 <0.9.0;

// This is the ETH/ERC20/NFT multisig contract for Ownbit.
//
// For 2-of-3 multisig, to authorize a spend, two signtures must be provided by 2 of the 3 owners.
// To generate the message to be signed, provide the destination address and
// spend amount (in wei) to the generateMessageToSign method.
// The signatures must be provided as the (v, r, s) hex-encoded coordinates.
// The S coordinate must be 0x00 or 0x01 corresponding to 0x1b and 0x1c, respectively.
//
// WARNING: The generated message is only valid until the next spend is executed.
//          after that, a new message will need to be calculated.
//
//
codex
{"no_findings":false,"summary":"Two issues found: silent failure/nonce consumption on external calls and missing chain-id in signed message domain separation.","findings":[{"severity":"low","category":"other","title":"External call result ignored; nonce advances even on failed transfer","exploit_scenario":"A signed spend can fail (e.g., destination reverts or ERC20 returns false without reverting). The contract still increments spendNonce and may emit Spent, consuming the signed nonce and forcing owners to re-sign; for ERC20s that return false, observers may think the transfer succeeded even though it did not.","recommendation":"Require the call to succeed and validate ERC20 return data when calling token contracts; revert on failure so the nonce is not consumed and no misleading event is emitted.","evidence":"spend() increments spendNonce before executing destination.call and ignores _ret; it does not revert when sent is false.","locations":["contracts/Contract.sol:spend"]},{"severity":"info","category":"auth","title":"Signed message lacks chain-id domain separation","exploit_scenario":"If the multisig is deployed at the same address on another chain (e.g., via CREATE2), a valid signature on one chain can be replayed on the other because the signed digest does not include chain-id.","recommendation":"Include block.chainid in the signed message (or use EIP-712 domain separation) to prevent cross-chain replay.","evidence":"generateMessageToSign hashes address(this), destination, value, data, spendNonce only.","locations":["contracts/Contract.sol:generateMessageToSign"]}]}
tokens used
10,782
Metadata
{
    "codex": {
        "ran_at": "2026-01-30T12:34:03.701910+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 1,
        "import_count": 0,
        "first_party_contracts_count": 1
    },
    "summary": "Two issues found: silent failure/nonce consumption on external calls and missing chain-id in signed message domain separation.",
    "raw_final": {
        "summary": "Two issues found: silent failure/nonce consumption on external calls and missing chain-id in signed message domain separation.",
        "findings": [
            {
                "title": "External call result ignored; nonce advances even on failed transfer",
                "category": "other",
                "evidence": "spend() increments spendNonce before executing destination.call and ignores _ret; it does not revert when sent is false.",
                "severity": "low",
                "locations": [
                    "contracts/Contract.sol:spend"
                ],
                "recommendation": "Require the call to succeed and validate ERC20 return data when calling token contracts; revert on failure so the nonce is not consumed and no misleading event is emitted.",
                "exploit_scenario": "A signed spend can fail (e.g., destination reverts or ERC20 returns false without reverting). The contract still increments spendNonce and may emit Spent, consuming the signed nonce and forcing owners to re-sign; for ERC20s that return false, observers may think the transfer succeeded even though it did not."
            },
            {
                "title": "Signed message lacks chain-id domain separation",
                "category": "auth",
                "evidence": "generateMessageToSign hashes address(this), destination, value, data, spendNonce only.",
                "severity": "info",
                "locations": [
                    "contracts/Contract.sol:generateMessageToSign"
                ],
                "recommendation": "Include block.chainid in the signed message (or use EIP-712 domain separation) to prevent cross-chain replay.",
                "exploit_scenario": "If the multisig is deployed at the same address on another chain (e.g., via CREATE2), a valid signature on one chain can be replayed on the other because the signed digest does not include chain-id."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
0
Total opcodes
3935
Flags
create_opcodes_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00a0
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x7c99df4a
00000019: GT
0000001a: PUSH2 0x0064
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x7c99df4a
00000024: EQ
00000025: PUSH2 0x01c0
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xa0e67e2b
0000002f: EQ
00000030: PUSH2 0x01e9
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xc6a2a9f1
0000003a: EQ
0000003b: PUSH2 0x0214
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xd74f8edd
00000045: EQ
00000046: PUSH2 0x023f
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf23a6e61
00000050: EQ
00000051: PUSH2 0x026a
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf3acb258
0000005b: EQ
0000005c: PUSH2 0x02a7
0000005f: JUMPI
00000060: PUSH2 0x00a1
00000063: JUMP
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0x02fb0c5e
0000006b: EQ
0000006c: PUSH2 0x00e6
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0x1398a5f6
00000076: EQ
00000077: PUSH2 0x00f0
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0x150b7a02
00000081: EQ
00000082: PUSH2 0x011b
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0x5f43e63f
0000008c: EQ
0000008d: PUSH2 0x0158
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0x6ad68826
00000097: EQ
00000098: PUSH2 0x0183
0000009b: JUMPI
0000009c: PUSH2 0x00a1
0000009f: JUMP
000000a0: JUMPDEST
000000a1: JUMPDEST
000000a2: PUSH1 0x00
000000a4: CALLVALUE
000000a5: GT
000000a6: ISZERO
000000a7: PUSH2 0x00e4
000000aa: JUMPI
000000ab: PUSH32 0x5af8184bef8e4b45eb9f6ed7734d04da38ced226495548f46e0c8ff8d7d9a524
000000cc: CALLER
000000cd: CALLVALUE
000000ce: PUSH1 0x40
000000d0: MLOAD
000000d1: PUSH2 0x00db
000000d4: SWAP3
000000d5: SWAP2
000000d6: SWAP1
000000d7: PUSH2 0x0d1d
000000da: JUMP
000000db: JUMPDEST
000000dc: PUSH1 0x40
000000de: MLOAD
000000df: DUP1
000000e0: SWAP2
000000e1: SUB
000000e2: SWAP1
000000e3: LOG1
000000e4: JUMPDEST
000000e5: STOP
000000e6: JUMPDEST
000000e7: PUSH2 0x00ee
000000ea: PUSH2 0x02d2
000000ed: JUMP
000000ee: JUMPDEST
000000ef: STOP
000000f0: JUMPDEST
000000f1: CALLVALUE
000000f2: DUP1
000000f3: ISZERO
000000f4: PUSH2 0x00fc
000000f7: JUMPI
000000f8: PUSH1 0x00
000000fa: DUP1
000000fb: REVERT
000000fc: JUMPDEST
000000fd: POP
000000fe: PUSH2 0x0105
00000101: PUSH2 0x0398
00000104: JUMP
00000105: JUMPDEST
00000106: PUSH1 0x40
00000108: MLOAD
00000109: PUSH2 0x0112
0000010c: SWAP2
0000010d: SWAP1
0000010e: PUSH2 0x0d46
00000111: JUMP
00000112: JUMPDEST
00000113: PUSH1 0x40
00000115: MLOAD
00000116: DUP1
00000117: SWAP2
00000118: SUB
00000119: SWAP1
0000011a: RETURN
0000011b: JUMPDEST
0000011c: CALLVALUE
0000011d: DUP1
0000011e: ISZERO
0000011f: PUSH2 0x0127
00000122: JUMPI
00000123: PUSH1 0x00
00000125: DUP1
00000126: REVERT
00000127: JUMPDEST
00000128: POP
00000129: PUSH2 0x0142
0000012c: PUSH1 0x04
0000012e: DUP1
0000012f: CALLDATASIZE
00000130: SUB
00000131: DUP2
00000132: ADD
00000133: SWAP1
00000134: PUSH2 0x013d
00000137: SWAP2
00000138: SWAP1
00000139: PUSH2 0x0e32
0000013c: JUMP
0000013d: JUMPDEST
0000013e: PUSH2 0x03a2
00000141: JUMP
00000142: JUMPDEST
00000143: PUSH1 0x40
00000145: MLOAD
00000146: PUSH2 0x014f
00000149: SWAP2
0000014a: SWAP1
0000014b: PUSH2 0x0ef5
0000014e: JUMP
0000014f: JUMPDEST
00000150: PUSH1 0x40
00000152: MLOAD
00000153: DUP1
00000154: SWAP2
00000155: SUB
00000156: SWAP1
00000157: RETURN
00000158: JUMPDEST
00000159: CALLVALUE
0000015a: DUP1
0000015b: ISZERO
0000015c: PUSH2 0x0164
0000015f: JUMPI
00000160: PUSH1 0x00
00000162: DUP1
00000163: REVERT
00000164: JUMPDEST
00000165: POP
00000166: PUSH2 0x016d
00000169: PUSH2 0x03d0
0000016c: JUMP
0000016d: JUMPDEST
0000016e: PUSH1 0x40
00000170: MLOAD
00000171: PUSH2 0x017a
00000174: SWAP2
00000175: SWAP1
00000176: PUSH2 0x0d46
00000179: JUMP
0000017a: JUMPDEST
0000017b: PUSH1 0x40
0000017d: MLOAD
0000017e: DUP1
0000017f: SWAP2
00000180: SUB
00000181: SWAP1
00000182: RETURN
00000183: JUMPDEST
00000184: CALLVALUE
00000185: DUP1
00000186: ISZERO
00000187: PUSH2 0x018f
0000018a: JUMPI
0000018b: PUSH1 0x00
0000018d: DUP1
0000018e: REVERT
0000018f: JUMPDEST
00000190: POP
00000191: PUSH2 0x01aa
00000194: PUSH1 0x04
00000196: DUP1
00000197: CALLDATASIZE
00000198: SUB
00000199: DUP2
0000019a: ADD
0000019b: SWAP1
0000019c: PUSH2 0x01a5
0000019f: SWAP2
000001a0: SWAP1
000001a1: PUSH2 0x0f10
000001a4: JUMP
000001a5: JUMPDEST
000001a6: PUSH2 0x03d7
000001a9: JUMP
000001aa: JUMPDEST
000001ab: PUSH1 0x40
000001ad: MLOAD
000001ae: PUSH2 0x01b7
000001b1: SWAP2
000001b2: SWAP1
000001b3: PUSH2 0x0d46
000001b6: JUMP
000001b7: JUMPDEST
000001b8: PUSH1 0x40
000001ba: MLOAD
000001bb: DUP1
000001bc: SWAP2
000001bd: SUB
000001be: SWAP1
000001bf: RETURN
000001c0: JUMPDEST
000001c1: CALLVALUE
000001c2: DUP1
000001c3: ISZERO
000001c4: PUSH2 0x01cc
000001c7: JUMPI
000001c8: PUSH1 0x00
000001ca: DUP1
000001cb: REVERT
000001cc: JUMPDEST
000001cd: POP
000001ce: PUSH2 0x01e7
000001d1: PUSH1 0x04
000001d3: DUP1
000001d4: CALLDATASIZE
000001d5: SUB
000001d6: DUP2
000001d7: ADD
000001d8: SWAP1
000001d9: PUSH2 0x01e2
000001dc: SWAP2
000001dd: SWAP1
000001de: PUSH2 0x11be
000001e1: JUMP
000001e2: JUMPDEST
000001e3: PUSH2 0x041f
000001e6: JUMP
000001e7: JUMPDEST
000001e8: STOP
000001e9: JUMPDEST
000001ea: CALLVALUE
000001eb: DUP1
000001ec: ISZERO
000001ed: PUSH2 0x01f5
000001f0: JUMPI
000001f1: PUSH1 0x00
000001f3: DUP1
000001f4: REVERT
000001f5: JUMPDEST
000001f6: POP
000001f7: PUSH2 0x01fe
000001fa: PUSH2 0x05f0
000001fd: JUMP
000001fe: JUMPDEST
000001ff: PUSH1 0x40
00000201: MLOAD
00000202: PUSH2 0x020b
00000205: SWAP2
00000206: SWAP1
00000207: PUSH2 0x137f
0000020a: JUMP
0000020b: JUMPDEST
0000020c: PUSH1 0x40
0000020e: MLOAD
0000020f: DUP1
00000210: SWAP2
00000211: SUB
00000212: SWAP1
00000213: RETURN
00000214: JUMPDEST
00000215: CALLVALUE
00000216: DUP1
00000217: ISZERO
00000218: PUSH2 0x0220
0000021b: JUMPI
0000021c: PUSH1 0x00
0000021e: DUP1
0000021f: REVERT
00000220: JUMPDEST
00000221: POP
00000222: PUSH2 0x0229
00000225: PUSH2 0x067e
00000228: JUMP
00000229: JUMPDEST
0000022a: PUSH1 0x40
0000022c: MLOAD
0000022d: PUSH2 0x0236
00000230: SWAP2
00000231: SWAP1
00000232: PUSH2 0x0d46
00000235: JUMP
00000236: JUMPDEST
00000237: PUSH1 0x40
00000239: MLOAD
0000023a: DUP1
0000023b: SWAP2
0000023c: SUB
0000023d: SWAP1
0000023e: RETURN
0000023f: JUMPDEST
00000240: CALLVALUE
00000241: DUP1
00000242: ISZERO
00000243: PUSH2 0x024b
00000246: JUMPI
00000247: PUSH1 0x00
00000249: DUP1
0000024a: REVERT
0000024b: JUMPDEST
0000024c: POP
0000024d: PUSH2 0x0254
00000250: PUSH2 0x0688
00000253: JUMP
00000254: JUMPDEST
00000255: PUSH1 0x40
00000257: MLOAD
00000258: PUSH2 0x0261
0000025b: SWAP2
0000025c: SWAP1
0000025d: PUSH2 0x0d46
00000260: JUMP
00000261: JUMPDEST
00000262: PUSH1 0x40
00000264: MLOAD
00000265: DUP1
00000266: SWAP2
00000267: SUB
00000268: SWAP1
00000269: RETURN
0000026a: JUMPDEST
0000026b: CALLVALUE
0000026c: DUP1
0000026d: ISZERO
0000026e: PUSH2 0x0276
00000271: JUMPI
00000272: PUSH1 0x00
00000274: DUP1
00000275: REVERT
00000276: JUMPDEST
00000277: POP
00000278: PUSH2 0x0291
0000027b: PUSH1 0x04
0000027d: DUP1
0000027e: CALLDATASIZE
0000027f: SUB
00000280: DUP2
00000281: ADD
00000282: SWAP1
00000283: PUSH2 0x028c
00000286: SWAP2
00000287: SWAP1
00000288: PUSH2 0x13a1
0000028b: JUMP
0000028c: JUMPDEST
0000028d: PUSH2 0x068d
00000290: JUMP
00000291: JUMPDEST
00000292: PUSH1 0x40
00000294: MLOAD
00000295: PUSH2 0x029e
00000298: SWAP2
00000299: SWAP1
0000029a: PUSH2 0x0ef5
0000029d: JUMP
0000029e: JUMPDEST
0000029f: PUSH1 0x40
000002a1: MLOAD
000002a2: DUP1
000002a3: SWAP2
000002a4: SUB
000002a5: SWAP1
000002a6: RETURN
000002a7: JUMPDEST
000002a8: CALLVALUE
000002a9: DUP1
000002aa: ISZERO
000002ab: PUSH2 0x02b3
000002ae: JUMPI
000002af: PUSH1 0x00
000002b1: DUP1
000002b2: REVERT
000002b3: JUMPDEST
000002b4: POP
000002b5: PUSH2 0x02bc
000002b8: PUSH2 0x06bc
000002bb: JUMP
000002bc: JUMPDEST
000002bd: PUSH1 0x40
000002bf: MLOAD
000002c0: PUSH2 0x02c9
000002c3: SWAP2
000002c4: SWAP1
000002c5: PUSH2 0x0d46
000002c8: JUMP
000002c9: JUMPDEST
000002ca: PUSH1 0x40
000002cc: MLOAD
000002cd: DUP1
000002ce: SWAP2
000002cf: SUB
000002d0: SWAP1
000002d1: RETURN
000002d2: JUMPDEST
000002d3: PUSH1 0x00
000002d5: DUP1
000002d6: PUSH1 0x00
000002d8: CALLER
000002d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002ee: AND
000002ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000304: AND
00000305: DUP2
00000306: MSTORE
00000307: PUSH1 0x20
00000309: ADD
0000030a: SWAP1
0000030b: DUP2
0000030c: MSTORE
0000030d: PUSH1 0x20
0000030f: ADD
00000310: PUSH1 0x00
00000312: KECCAK256
00000313: SLOAD
00000314: GT
00000315: PUSH2 0x0353
00000318: JUMPI
00000319: PUSH1 0x40
0000031b: MLOAD
0000031c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000033d: DUP2
0000033e: MSTORE
0000033f: PUSH1 0x04
00000341: ADD
00000342: PUSH2 0x034a
00000345: SWAP1
00000346: PUSH2 0x1498
00000349: JUMP
0000034a: JUMPDEST
0000034b: PUSH1 0x40
0000034d: MLOAD
0000034e: DUP1
0000034f: SWAP2
00000350: SUB
00000351: SWAP1
00000352: REVERT
00000353: JUMPDEST
00000354: NUMBER
00000355: PUSH1 0x00
00000357: DUP1
00000358: CALLER
00000359: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000036e: AND
0000036f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000384: AND
00000385: DUP2
00000386: MSTORE
00000387: PUSH1 0x20
00000389: ADD
0000038a: SWAP1
0000038b: DUP2
0000038c: MSTORE
0000038d: PUSH1 0x20
0000038f: ADD
00000390: PUSH1 0x00
00000392: KECCAK256
00000393: DUP2
00000394: SWAP1
00000395: SSTORE
00000396: POP
00000397: JUMP
00000398: JUMPDEST
00000399: PUSH1 0x00
0000039b: PUSH1 0x02
0000039d: SLOAD
0000039e: SWAP1
0000039f: POP
000003a0: SWAP1
000003a1: JUMP
000003a2: JUMPDEST
000003a3: PUSH1 0x00
000003a5: PUSH32 0x150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f
000003c6: SWAP1
000003c7: POP
000003c8: SWAP6
000003c9: SWAP5
000003ca: POP
000003cb: POP
000003cc: POP
000003cd: POP
000003ce: POP
000003cf: JUMP
000003d0: JUMPDEST
000003d1: PUSH3 0x2dc6c0
000003d5: DUP2
000003d6: JUMP
000003d7: JUMPDEST
000003d8: PUSH1 0x00
000003da: DUP1
000003db: PUSH1 0x00
000003dd: DUP4
000003de: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003f3: AND
000003f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000409: AND
0000040a: DUP2
0000040b: MSTORE
0000040c: PUSH1 0x20
0000040e: ADD
0000040f: SWAP1
00000410: DUP2
00000411: MSTORE
00000412: PUSH1 0x20
00000414: ADD
00000415: PUSH1 0x00
00000417: KECCAK256
00000418: SLOAD
00000419: SWAP1
0000041a: POP
0000041b: SWAP2
0000041c: SWAP1
0000041d: POP
0000041e: JUMP
0000041f: JUMPDEST
00000420: ADDRESS
00000421: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000436: AND
00000437: DUP8
00000438: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000044d: AND
0000044e: SUB
0000044f: PUSH2 0x048d
00000452: JUMPI
00000453: PUSH1 0x40
00000455: MLOAD
00000456: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000477: DUP2
00000478: MSTORE
00000479: PUSH1 0x04
0000047b: ADD
0000047c: PUSH2 0x0484
0000047f: SWAP1
00000480: PUSH2 0x1504
00000483: JUMP
00000484: JUMPDEST
00000485: PUSH1 0x40
00000487: MLOAD
00000488: DUP1
00000489: SWAP2
0000048a: SUB
0000048b: SWAP1
0000048c: REVERT
0000048d: JUMPDEST
0000048e: PUSH2 0x04df
00000491: DUP8
00000492: DUP8
00000493: DUP8
00000494: DUP8
00000495: DUP8
00000496: DUP8
00000497: DUP8
00000498: DUP1
00000499: DUP1
0000049a: PUSH1 0x1f
0000049c: ADD
0000049d: PUSH1 0x20
0000049f: DUP1
000004a0: SWAP2
000004a1: DIV
000004a2: MUL
000004a3: PUSH1 0x20
000004a5: ADD
000004a6: PUSH1 0x40
000004a8: MLOAD
000004a9: SWAP1
000004aa: DUP2
000004ab: ADD
000004ac: PUSH1 0x40
000004ae: MSTORE
000004af: DUP1
000004b0: SWAP4
000004b1: SWAP3
000004b2: SWAP2
000004b3: SWAP1
000004b4: DUP2
000004b5: DUP2
000004b6: MSTORE
000004b7: PUSH1 0x20
000004b9: ADD
000004ba: DUP4
000004bb: DUP4
000004bc: DUP1
000004bd: DUP3
000004be: DUP5
000004bf: CALLDATACOPY
000004c0: PUSH1 0x00
000004c2: DUP2
000004c3: DUP5
000004c4: ADD
000004c5: MSTORE
000004c6: PUSH1 0x1f
000004c8: NOT
000004c9: PUSH1 0x1f
000004cb: DUP3
000004cc: ADD
000004cd: AND
000004ce: SWAP1
000004cf: POP
000004d0: DUP1
000004d1: DUP4
000004d2: ADD
000004d3: SWAP3
000004d4: POP
000004d5: POP
000004d6: POP
000004d7: POP
000004d8: POP
000004d9: POP
000004da: POP
000004db: PUSH2 0x07b5
000004de: JUMP
000004df: JUMPDEST
000004e0: PUSH2 0x051e
000004e3: JUMPI
000004e4: PUSH1 0x40
000004e6: MLOAD
000004e7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000508: DUP2
00000509: MSTORE
0000050a: PUSH1 0x04
0000050c: ADD
0000050d: PUSH2 0x0515
00000510: SWAP1
00000511: PUSH2 0x1570
00000514: JUMP
00000515: JUMPDEST
00000516: PUSH1 0x40
00000518: MLOAD
00000519: DUP1
0000051a: SWAP2
0000051b: SUB
0000051c: SWAP1
0000051d: REVERT
0000051e: JUMPDEST
0000051f: PUSH1 0x01
00000521: PUSH1 0x03
00000523: SLOAD
00000524: PUSH2 0x052d
00000527: SWAP2
00000528: SWAP1
00000529: PUSH2 0x15bf
0000052c: JUMP
0000052d: JUMPDEST
0000052e: PUSH1 0x03
00000530: DUP2
00000531: SWAP1
00000532: SSTORE
00000533: POP
00000534: PUSH1 0x00
00000536: DUP1
00000537: DUP9
00000538: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000054d: AND
0000054e: DUP9
0000054f: DUP6
00000550: DUP6
00000551: PUSH1 0x40
00000553: MLOAD
00000554: PUSH2 0x055e
00000557: SWAP3
00000558: SWAP2
00000559: SWAP1
0000055a: PUSH2 0x1632
0000055d: JUMP
0000055e: JUMPDEST
0000055f: PUSH1 0x00
00000561: PUSH1 0x40
00000563: MLOAD
00000564: DUP1
00000565: DUP4
00000566: SUB
00000567: DUP2
00000568: DUP6
00000569: DUP8
0000056a: GAS
0000056b: CALL
0000056c: SWAP3
0000056d: POP
0000056e: POP
0000056f: POP
00000570: RETURNDATASIZE
00000571: DUP1
00000572: PUSH1 0x00
00000574: DUP2
00000575: EQ
00000576: PUSH2 0x059b
00000579: JUMPI
0000057a: PUSH1 0x40
0000057c: MLOAD
0000057d: SWAP2
0000057e: POP
0000057f: PUSH1 0x1f
00000581: NOT
00000582: PUSH1 0x3f
00000584: RETURNDATASIZE
00000585: ADD
00000586: AND
00000587: DUP3
00000588: ADD
00000589: PUSH1 0x40
0000058b: MSTORE
0000058c: RETURNDATASIZE
0000058d: DUP3
0000058e: MSTORE
0000058f: RETURNDATASIZE
00000590: PUSH1 0x00
00000592: PUSH1 0x20
00000594: DUP5
00000595: ADD
00000596: RETURNDATACOPY
00000597: PUSH2 0x05a0
0000059a: JUMP
0000059b: JUMPDEST
0000059c: PUSH1 0x60
0000059e: SWAP2
0000059f: POP
000005a0: JUMPDEST
000005a1: POP
000005a2: SWAP2
000005a3: POP
000005a4: SWAP2
000005a5: POP
000005a6: DUP2
000005a7: ISZERO
000005a8: PUSH2 0x05e5
000005ab: JUMPI
000005ac: PUSH32 0xd3eec71143c45f28685b24760ea218d476917aa0ac0392a55e5304cef40bd2b6
000005cd: DUP10
000005ce: DUP10
000005cf: PUSH1 0x40
000005d1: MLOAD
000005d2: PUSH2 0x05dc
000005d5: SWAP3
000005d6: SWAP2
000005d7: SWAP1
000005d8: PUSH2 0x0d1d
000005db: JUMP
000005dc: JUMPDEST
000005dd: PUSH1 0x40
000005df: MLOAD
000005e0: DUP1
000005e1: SWAP2
000005e2: SUB
000005e3: SWAP1
000005e4: LOG1
000005e5: JUMPDEST
000005e6: POP
000005e7: POP
000005e8: POP
000005e9: POP
000005ea: POP
000005eb: POP
000005ec: POP
000005ed: POP
000005ee: POP
000005ef: JUMP
000005f0: JUMPDEST
000005f1: PUSH1 0x60
000005f3: PUSH1 0x01
000005f5: DUP1
000005f6: SLOAD
000005f7: DUP1
000005f8: PUSH1 0x20
000005fa: MUL
000005fb: PUSH1 0x20
000005fd: ADD
000005fe: PUSH1 0x40
00000600: MLOAD
00000601: SWAP1
00000602: DUP2
00000603: ADD
00000604: PUSH1 0x40
00000606: MSTORE
00000607: DUP1
00000608: SWAP3
00000609: SWAP2
0000060a: SWAP1
0000060b: DUP2
0000060c: DUP2
0000060d: MSTORE
0000060e: PUSH1 0x20
00000610: ADD
00000611: DUP3
00000612: DUP1
00000613: SLOAD
00000614: DUP1
00000615: ISZERO
00000616: PUSH2 0x0674
00000619: JUMPI
0000061a: PUSH1 0x20
0000061c: MUL
0000061d: DUP3
0000061e: ADD
0000061f: SWAP2
00000620: SWAP1
00000621: PUSH1 0x00
00000623: MSTORE
00000624: PUSH1 0x20
00000626: PUSH1 0x00
00000628: KECCAK256
00000629: SWAP1
0000062a: JUMPDEST
0000062b: DUP2
0000062c: PUSH1 0x00
0000062e: SWAP1
0000062f: SLOAD
00000630: SWAP1
00000631: PUSH2 0x0100
00000634: EXP
00000635: SWAP1
00000636: DIV
00000637: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000064c: AND
0000064d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000662: AND
00000663: DUP2
00000664: MSTORE
00000665: PUSH1 0x20
00000667: ADD
00000668: SWAP1
00000669: PUSH1 0x01
0000066b: ADD
0000066c: SWAP1
0000066d: DUP1
0000066e: DUP4
0000066f: GT
00000670: PUSH2 0x062a
00000673: JUMPI
00000674: JUMPDEST
00000675: POP
00000676: POP
00000677: POP
00000678: POP
00000679: POP
0000067a: SWAP1
0000067b: POP
0000067c: SWAP1
0000067d: JUMP
0000067e: JUMPDEST
0000067f: PUSH1 0x00
00000681: PUSH1 0x03
00000683: SLOAD
00000684: SWAP1
00000685: POP
00000686: SWAP1
00000687: JUMP
00000688: JUMPDEST
00000689: PUSH1 0x09
0000068b: DUP2
0000068c: JUMP
0000068d: JUMPDEST
0000068e: PUSH1 0x00
00000690: PUSH32 0xf23a6e612e1ff4830e658fe43f4e3cb4a5f8170bd5d9e69fb5d7a7fa9e4fdf97
000006b1: SWAP1
000006b2: POP
000006b3: SWAP7
000006b4: SWAP6
000006b5: POP
000006b6: POP
000006b7: POP
000006b8: POP
000006b9: POP
000006ba: POP
000006bb: JUMP
000006bc: JUMPDEST
000006bd: PUSH1 0x00
000006bf: DUP1
000006c0: PUSH1 0x00
000006c2: SWAP1
000006c3: POP
000006c4: PUSH1 0x00
000006c6: JUMPDEST
000006c7: PUSH1 0x01
000006c9: DUP1
000006ca: SLOAD
000006cb: SWAP1
000006cc: POP
000006cd: DUP2
000006ce: LT
000006cf: ISZERO
000006d0: PUSH2 0x0786
000006d3: JUMPI
000006d4: NUMBER
000006d5: PUSH3 0x2dc6c0
000006d9: PUSH1 0x00
000006db: DUP1
000006dc: PUSH1 0x01
000006de: DUP6
000006df: DUP2
000006e0: SLOAD
000006e1: DUP2
000006e2: LT
000006e3: PUSH2 0x06ef
000006e6: JUMPI
000006e7: PUSH2 0x06ee
000006ea: PUSH2 0x164b
000006ed: JUMP
000006ee: JUMPDEST
000006ef: JUMPDEST
000006f0: SWAP1
000006f1: PUSH1 0x00
000006f3: MSTORE
000006f4: PUSH1 0x20
000006f6: PUSH1 0x00
000006f8: KECCAK256
000006f9: ADD
000006fa: PUSH1 0x00
000006fc: SWAP1
000006fd: SLOAD
000006fe: SWAP1
000006ff: PUSH2 0x0100
00000702: EXP
00000703: SWAP1
00000704: DIV
00000705: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000071a: AND
0000071b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000730: AND
00000731: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000746: AND
00000747: DUP2
00000748: MSTORE
00000749: PUSH1 0x20
0000074b: ADD
0000074c: SWAP1
0000074d: DUP2
0000074e: MSTORE
0000074f: PUSH1 0x20
00000751: ADD
00000752: PUSH1 0x00
00000754: KECCAK256
00000755: SLOAD
00000756: PUSH2 0x075f
00000759: SWAP2
0000075a: SWAP1
0000075b: PUSH2 0x15bf
0000075e: JUMP
0000075f: JUMPDEST
00000760: LT
00000761: PUSH2 0x0773
00000764: JUMPI
00000765: DUP2
00000766: DUP1
00000767: PUSH2 0x076f
0000076a: SWAP1
0000076b: PUSH2 0x167a
0000076e: JUMP
0000076f: JUMPDEST
00000770: SWAP3
00000771: POP
00000772: POP
00000773: JUMPDEST
00000774: DUP1
00000775: DUP1
00000776: PUSH2 0x077e
00000779: SWAP1
0000077a: PUSH2 0x167a
0000077d: JUMP
0000077e: JUMPDEST
0000077f: SWAP2
00000780: POP
00000781: POP
00000782: PUSH2 0x06c6
00000785: JUMP
00000786: JUMPDEST
00000787: POP
00000788: PUSH1 0x02
0000078a: SLOAD
0000078b: DUP2
0000078c: LT
0000078d: PUSH2 0x079b
00000790: JUMPI
00000791: PUSH1 0x02
00000793: SLOAD
00000794: SWAP2
00000795: POP
00000796: POP
00000797: PUSH2 0x07b2
0000079a: JUMP
0000079b: JUMPDEST
0000079c: PUSH1 0x01
0000079e: DUP2
0000079f: LT
000007a0: PUSH2 0x07ac
000007a3: JUMPI
000007a4: DUP1
000007a5: SWAP2
000007a6: POP
000007a7: POP
000007a8: PUSH2 0x07b2
000007ab: JUMP
000007ac: JUMPDEST
000007ad: PUSH1 0x01
000007af: SWAP2
000007b0: POP
000007b1: POP
000007b2: JUMPDEST
000007b3: SWAP1
000007b4: JUMP
000007b5: JUMPDEST
000007b6: PUSH1 0x00
000007b8: DUP4
000007b9: MLOAD
000007ba: DUP6
000007bb: MLOAD
000007bc: EQ
000007bd: PUSH2 0x07c5
000007c0: JUMPI
000007c1: PUSH1 0x00
000007c3: DUP1
000007c4: REVERT
000007c5: JUMPDEST
000007c6: DUP3
000007c7: MLOAD
000007c8: DUP5
000007c9: MLOAD
000007ca: EQ
000007cb: PUSH2 0x07d3
000007ce: JUMPI
000007cf: PUSH1 0x00
000007d1: DUP1
000007d2: REVERT
000007d3: JUMPDEST
000007d4: PUSH1 0x01
000007d6: DUP1
000007d7: SLOAD
000007d8: SWAP1
000007d9: POP
000007da: DUP6
000007db: MLOAD
000007dc: GT
000007dd: ISZERO
000007de: PUSH2 0x07e6
000007e1: JUMPI
000007e2: PUSH1 0x00
000007e4: DUP1
000007e5: REVERT
000007e6: JUMPDEST
000007e7: PUSH2 0x07ee
000007ea: PUSH2 0x06bc
000007ed: JUMP
000007ee: JUMPDEST
000007ef: DUP6
000007f0: MLOAD
000007f1: LT
000007f2: ISZERO
000007f3: PUSH2 0x07fb
000007f6: JUMPI
000007f7: PUSH1 0x00
000007f9: DUP1
000007fa: REVERT
000007fb: JUMPDEST
000007fc: PUSH1 0x00
000007fe: PUSH2 0x0808
00000801: DUP9
00000802: DUP9
00000803: DUP6
00000804: PUSH2 0x09e4
00000807: JUMP
00000808: JUMPDEST
00000809: SWAP1
0000080a: POP
0000080b: PUSH1 0x00
0000080d: DUP7
0000080e: MLOAD
0000080f: PUSH8 0xffffffffffffffff
00000818: DUP2
00000819: GT
0000081a: ISZERO
0000081b: PUSH2 0x0827
0000081e: JUMPI
0000081f: PUSH2 0x0826
00000822: PUSH2 0x0f4e
00000825: JUMP
00000826: JUMPDEST
00000827: JUMPDEST
00000828: PUSH1 0x40
0000082a: MLOAD
0000082b: SWAP1
0000082c: DUP1
0000082d: DUP3
0000082e: MSTORE
0000082f: DUP1
00000830: PUSH1 0x20
00000832: MUL
00000833: PUSH1 0x20
00000835: ADD
00000836: DUP3
00000837: ADD
00000838: PUSH1 0x40
0000083a: MSTORE
0000083b: DUP1
0000083c: ISZERO
0000083d: PUSH2 0x0855
00000840: JUMPI
00000841: DUP2
00000842: PUSH1 0x20
00000844: ADD
00000845: PUSH1 0x20
00000847: DUP3
00000848: MUL
00000849: DUP1
0000084a: CALLDATASIZE
0000084b: DUP4
0000084c: CALLDATACOPY
0000084d: DUP1
0000084e: DUP3
0000084f: ADD
00000850: SWAP2
00000851: POP
00000852: POP
00000853: SWAP1
00000854: POP
00000855: JUMPDEST
00000856: POP
00000857: SWAP1
00000858: POP
00000859: PUSH1 0x00
0000085b: JUMPDEST
0000085c: DUP8
0000085d: MLOAD
0000085e: DUP2
0000085f: LT
00000860: ISZERO
00000861: PUSH2 0x096d
00000864: JUMPI
00000865: PUSH1 0x01
00000867: DUP4
00000868: PUSH1 0x1b
0000086a: DUP11
0000086b: DUP5
0000086c: DUP2
0000086d: MLOAD
0000086e: DUP2
0000086f: LT
00000870: PUSH2 0x087c
00000873: JUMPI
00000874: PUSH2 0x087b
00000877: PUSH2 0x164b
0000087a: JUMP
0000087b: JUMPDEST
0000087c: JUMPDEST
0000087d: PUSH1 0x20
0000087f: MUL
00000880: PUSH1 0x20
00000882: ADD
00000883: ADD
00000884: MLOAD
00000885: PUSH2 0x088e
00000888: SWAP2
00000889: SWAP1
0000088a: PUSH2 0x16c2
0000088d: JUMP
0000088e: JUMPDEST
0000088f: DUP10
00000890: DUP5
00000891: DUP2
00000892: MLOAD
00000893: DUP2
00000894: LT
00000895: PUSH2 0x08a1
00000898: JUMPI
00000899: PUSH2 0x08a0
0000089c: PUSH2 0x164b
0000089f: JUMP
000008a0: JUMPDEST
000008a1: JUMPDEST
000008a2: PUSH1 0x20
000008a4: MUL
000008a5: PUSH1 0x20
000008a7: ADD
000008a8: ADD
000008a9: MLOAD
000008aa: DUP10
000008ab: DUP6
000008ac: DUP2
000008ad: MLOAD
000008ae: DUP2
000008af: LT
000008b0: PUSH2 0x08bc
000008b3: JUMPI
000008b4: PUSH2 0x08bb
000008b7: PUSH2 0x164b
000008ba: JUMP
000008bb: JUMPDEST
000008bc: JUMPDEST
000008bd: PUSH1 0x20
000008bf: MUL
000008c0: PUSH1 0x20
000008c2: ADD
000008c3: ADD
000008c4: MLOAD
000008c5: PUSH1 0x40
000008c7: MLOAD
000008c8: PUSH1 0x00
000008ca: DUP2
000008cb: MSTORE
000008cc: PUSH1 0x20
000008ce: ADD
000008cf: PUSH1 0x40
000008d1: MSTORE
000008d2: PUSH1 0x40
000008d4: MLOAD
000008d5: PUSH2 0x08e1
000008d8: SWAP5
000008d9: SWAP4
000008da: SWAP3
000008db: SWAP2
000008dc: SWAP1
000008dd: PUSH2 0x1715
000008e0: JUMP
000008e1: JUMPDEST
000008e2: PUSH1 0x20
000008e4: PUSH1 0x40
000008e6: MLOAD
000008e7: PUSH1 0x20
000008e9: DUP2
000008ea: SUB
000008eb: SWAP1
000008ec: DUP1
000008ed: DUP5
000008ee: SUB
000008ef: SWAP1
000008f0: DUP6
000008f1: GAS
000008f2: STATICCALL
000008f3: ISZERO
000008f4: DUP1
000008f5: ISZERO
000008f6: PUSH2 0x0903
000008f9: JUMPI
000008fa: RETURNDATASIZE
000008fb: PUSH1 0x00
000008fd: DUP1
000008fe: RETURNDATACOPY
000008ff: RETURNDATASIZE
00000900: PUSH1 0x00
00000902: REVERT
00000903: JUMPDEST
00000904: POP
00000905: POP
00000906: POP
00000907: PUSH1 0x20
00000909: PUSH1 0x40
0000090b: MLOAD
0000090c: SUB
0000090d: MLOAD
0000090e: DUP3
0000090f: DUP3
00000910: DUP2
00000911: MLOAD
00000912: DUP2
00000913: LT
00000914: PUSH2 0x0920
00000917: JUMPI
00000918: PUSH2 0x091f
0000091b: PUSH2 0x164b
0000091e: JUMP
0000091f: JUMPDEST
00000920: JUMPDEST
00000921: PUSH1 0x20
00000923: MUL
00000924: PUSH1 0x20
00000926: ADD
00000927: ADD
00000928: SWAP1
00000929: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000093e: AND
0000093f: SWAP1
00000940: DUP2
00000941: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000956: AND
00000957: DUP2
00000958: MSTORE
00000959: POP
0000095a: POP
0000095b: DUP1
0000095c: DUP1
0000095d: PUSH2 0x0965
00000960: SWAP1
00000961: PUSH2 0x167a
00000964: JUMP
00000965: JUMPDEST
00000966: SWAP2
00000967: POP
00000968: POP
00000969: PUSH2 0x085b
0000096c: JUMP
0000096d: JUMPDEST
0000096e: POP
0000096f: PUSH2 0x0977
00000972: DUP2
00000973: PUSH2 0x0a62
00000976: JUMP
00000977: JUMPDEST
00000978: PUSH2 0x0980
0000097b: JUMPI
0000097c: PUSH1 0x00
0000097e: DUP1
0000097f: REVERT
00000980: JUMPDEST
00000981: PUSH2 0x0989
00000984: DUP2
00000985: PUSH2 0x0ba0
00000988: JUMP
00000989: JUMPDEST
0000098a: PUSH2 0x0991
0000098d: PUSH2 0x06bc
00000990: JUMP
00000991: JUMPDEST
00000992: DUP8
00000993: MLOAD
00000994: LT
00000995: ISZERO
00000996: PUSH2 0x09d4
00000999: JUMPI
0000099a: PUSH1 0x40
0000099c: MLOAD
0000099d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000009be: DUP2
000009bf: MSTORE
000009c0: PUSH1 0x04
000009c2: ADD
000009c3: PUSH2 0x09cb
000009c6: SWAP1
000009c7: PUSH2 0x17f2
000009ca: JUMP
000009cb: JUMPDEST
000009cc: PUSH1 0x40
000009ce: MLOAD
000009cf: DUP1
000009d0: SWAP2
000009d1: SUB
000009d2: SWAP1
000009d3: REVERT
000009d4: JUMPDEST
000009d5: PUSH1 0x01
000009d7: SWAP3
000009d8: POP
000009d9: POP
000009da: POP
000009db: SWAP7
000009dc: SWAP6
000009dd: POP
000009de: POP
000009df: POP
000009e0: POP
000009e1: POP
000009e2: POP
000009e3: JUMP
000009e4: JUMPDEST
000009e5: PUSH1 0x00
000009e7: DUP1
000009e8: PUSH2 0x09f2
000009eb: DUP6
000009ec: DUP6
000009ed: DUP6
000009ee: PUSH2 0x0c82
000009f1: JUMP
000009f2: JUMPDEST
000009f3: SWAP1
000009f4: POP
000009f5: PUSH1 0x00
000009f7: PUSH1 0x40
000009f9: MLOAD
000009fa: DUP1
000009fb: PUSH1 0x40
000009fd: ADD
000009fe: PUSH1 0x40
00000a00: MSTORE
00000a01: DUP1
00000a02: PUSH1 0x1c
00000a04: DUP2
00000a05: MSTORE
00000a06: PUSH1 0x20
00000a08: ADD
00000a09: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
00000a2a: DUP2
00000a2b: MSTORE
00000a2c: POP
00000a2d: SWAP1
00000a2e: POP
00000a2f: DUP1
00000a30: DUP3
00000a31: PUSH1 0x40
00000a33: MLOAD
00000a34: PUSH1 0x20
00000a36: ADD
00000a37: PUSH2 0x0a41
00000a3a: SWAP3
00000a3b: SWAP2
00000a3c: SWAP1
00000a3d: PUSH2 0x1899
00000a40: JUMP
00000a41: JUMPDEST
00000a42: PUSH1 0x40
00000a44: MLOAD
00000a45: PUSH1 0x20
00000a47: DUP2
00000a48: DUP4
00000a49: SUB
00000a4a: SUB
00000a4b: DUP2
00000a4c: MSTORE
00000a4d: SWAP1
00000a4e: PUSH1 0x40
00000a50: MSTORE
00000a51: DUP1
00000a52: MLOAD
00000a53: SWAP1
00000a54: PUSH1 0x20
00000a56: ADD
00000a57: KECCAK256
00000a58: SWAP3
00000a59: POP
00000a5a: POP
00000a5b: POP
00000a5c: SWAP4
00000a5d: SWAP3
00000a5e: POP
00000a5f: POP
00000a60: POP
00000a61: JUMP
00000a62: JUMPDEST
00000a63: PUSH1 0x00
00000a65: PUSH1 0x01
00000a67: DUP1
00000a68: SLOAD
00000a69: SWAP1
00000a6a: POP
00000a6b: DUP3
00000a6c: MLOAD
00000a6d: GT
00000a6e: ISZERO
00000a6f: PUSH2 0x0a7b
00000a72: JUMPI
00000a73: PUSH1 0x00
00000a75: SWAP1
00000a76: POP
00000a77: PUSH2 0x0b9b
00000a7a: JUMP
00000a7b: JUMPDEST
00000a7c: PUSH1 0x00
00000a7e: JUMPDEST
00000a7f: DUP3
00000a80: MLOAD
00000a81: DUP2
00000a82: LT
00000a83: ISZERO
00000a84: PUSH2 0x0b95
00000a87: JUMPI
00000a88: PUSH1 0x00
00000a8a: DUP1
00000a8b: PUSH1 0x00
00000a8d: DUP6
00000a8e: DUP5
00000a8f: DUP2
00000a90: MLOAD
00000a91: DUP2
00000a92: LT
00000a93: PUSH2 0x0a9f
00000a96: JUMPI
00000a97: PUSH2 0x0a9e
00000a9a: PUSH2 0x164b
00000a9d: JUMP
00000a9e: JUMPDEST
00000a9f: JUMPDEST
00000aa0: PUSH1 0x20
00000aa2: MUL
00000aa3: PUSH1 0x20
00000aa5: ADD
00000aa6: ADD
00000aa7: MLOAD
00000aa8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000abd: AND
00000abe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ad3: AND
00000ad4: DUP2
00000ad5: MSTORE
00000ad6: PUSH1 0x20
00000ad8: ADD
00000ad9: SWAP1
00000ada: DUP2
00000adb: MSTORE
00000adc: PUSH1 0x20
00000ade: ADD
00000adf: PUSH1 0x00
00000ae1: KECCAK256
00000ae2: SLOAD
00000ae3: SUB
00000ae4: PUSH2 0x0af1
00000ae7: JUMPI
00000ae8: PUSH1 0x00
00000aea: SWAP2
00000aeb: POP
00000aec: POP
00000aed: PUSH2 0x0b9b
00000af0: JUMP
00000af1: JUMPDEST
00000af2: PUSH1 0x00
00000af4: JUMPDEST
00000af5: DUP2
00000af6: DUP2
00000af7: LT
00000af8: ISZERO
00000af9: PUSH2 0x0b81
00000afc: JUMPI
00000afd: DUP4
00000afe: DUP2
00000aff: DUP2
00000b00: MLOAD
00000b01: DUP2
00000b02: LT
00000b03: PUSH2 0x0b0f
00000b06: JUMPI
00000b07: PUSH2 0x0b0e
00000b0a: PUSH2 0x164b
00000b0d: JUMP
00000b0e: JUMPDEST
00000b0f: JUMPDEST
00000b10: PUSH1 0x20
00000b12: MUL
00000b13: PUSH1 0x20
00000b15: ADD
00000b16: ADD
00000b17: MLOAD
00000b18: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b2d: AND
00000b2e: DUP5
00000b2f: DUP4
00000b30: DUP2
00000b31: MLOAD
00000b32: DUP2
00000b33: LT
00000b34: PUSH2 0x0b40
00000b37: JUMPI
00000b38: PUSH2 0x0b3f
00000b3b: PUSH2 0x164b
00000b3e: JUMP
00000b3f: JUMPDEST
00000b40: JUMPDEST
00000b41: PUSH1 0x20
00000b43: MUL
00000b44: PUSH1 0x20
00000b46: ADD
00000b47: ADD
00000b48: MLOAD
00000b49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b5e: AND
00000b5f: SUB
00000b60: PUSH2 0x0b6e
00000b63: JUMPI
00000b64: PUSH1 0x00
00000b66: SWAP3
00000b67: POP
00000b68: POP
00000b69: POP
00000b6a: PUSH2 0x0b9b
00000b6d: JUMP
00000b6e: JUMPDEST
00000b6f: DUP1
00000b70: DUP1
00000b71: PUSH2 0x0b79
00000b74: SWAP1
00000b75: PUSH2 0x167a
00000b78: JUMP
00000b79: JUMPDEST
00000b7a: SWAP2
00000b7b: POP
00000b7c: POP
00000b7d: PUSH2 0x0af4
00000b80: JUMP
00000b81: JUMPDEST
00000b82: POP
00000b83: DUP1
00000b84: DUP1
00000b85: PUSH2 0x0b8d
00000b88: SWAP1
00000b89: PUSH2 0x167a
00000b8c: JUMP
00000b8d: JUMPDEST
00000b8e: SWAP2
00000b8f: POP
00000b90: POP
00000b91: PUSH2 0x0a7e
00000b94: JUMP
00000b95: JUMPDEST
00000b96: POP
00000b97: PUSH1 0x01
00000b99: SWAP1
00000b9a: POP
00000b9b: JUMPDEST
00000b9c: SWAP2
00000b9d: SWAP1
00000b9e: POP
00000b9f: JUMP
00000ba0: JUMPDEST
00000ba1: PUSH1 0x00
00000ba3: JUMPDEST
00000ba4: DUP2
00000ba5: MLOAD
00000ba6: DUP2
00000ba7: LT
00000ba8: ISZERO
00000ba9: PUSH2 0x0c7e
00000bac: JUMPI
00000bad: PUSH1 0x00
00000baf: DUP1
00000bb0: PUSH1 0x00
00000bb2: DUP5
00000bb3: DUP5
00000bb4: DUP2
00000bb5: MLOAD
00000bb6: DUP2
00000bb7: LT
00000bb8: PUSH2 0x0bc4
00000bbb: JUMPI
00000bbc: PUSH2 0x0bc3
00000bbf: PUSH2 0x164b
00000bc2: JUMP
00000bc3: JUMPDEST
00000bc4: JUMPDEST
00000bc5: PUSH1 0x20
00000bc7: MUL
00000bc8: PUSH1 0x20
00000bca: ADD
00000bcb: ADD
00000bcc: MLOAD
00000bcd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000be2: AND
00000be3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bf8: AND
00000bf9: DUP2
00000bfa: MSTORE
00000bfb: PUSH1 0x20
00000bfd: ADD
00000bfe: SWAP1
00000bff: DUP2
00000c00: MSTORE
00000c01: PUSH1 0x20
00000c03: ADD
00000c04: PUSH1 0x00
00000c06: KECCAK256
00000c07: SLOAD
00000c08: GT
00000c09: ISZERO
00000c0a: PUSH2 0x0c6b
00000c0d: JUMPI
00000c0e: NUMBER
00000c0f: PUSH1 0x00
00000c11: DUP1
00000c12: DUP5
00000c13: DUP5
00000c14: DUP2
00000c15: MLOAD
00000c16: DUP2
00000c17: LT
00000c18: PUSH2 0x0c24
00000c1b: JUMPI
00000c1c: PUSH2 0x0c23
00000c1f: PUSH2 0x164b
00000c22: JUMP
00000c23: JUMPDEST
00000c24: JUMPDEST
00000c25: PUSH1 0x20
00000c27: MUL
00000c28: PUSH1 0x20
00000c2a: ADD
00000c2b: ADD
00000c2c: MLOAD
00000c2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c42: AND
00000c43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c58: AND
00000c59: DUP2
00000c5a: MSTORE
00000c5b: PUSH1 0x20
00000c5d: ADD
00000c5e: SWAP1
00000c5f: DUP2
00000c60: MSTORE
00000c61: PUSH1 0x20
00000c63: ADD
00000c64: PUSH1 0x00
00000c66: KECCAK256
00000c67: DUP2
00000c68: SWAP1
00000c69: SSTORE
00000c6a: POP
00000c6b: JUMPDEST
00000c6c: DUP1
00000c6d: DUP1
00000c6e: PUSH2 0x0c76
00000c71: SWAP1
00000c72: PUSH2 0x167a
00000c75: JUMP
00000c76: JUMPDEST
00000c77: SWAP2
00000c78: POP
00000c79: POP
00000c7a: PUSH2 0x0ba3
00000c7d: JUMP
00000c7e: JUMPDEST
00000c7f: POP
00000c80: POP
00000c81: JUMP
00000c82: JUMPDEST
00000c83: PUSH1 0x00
00000c85: DUP1
00000c86: ADDRESS
00000c87: DUP6
00000c88: DUP6
00000c89: DUP6
00000c8a: PUSH1 0x03
00000c8c: SLOAD
00000c8d: PUSH1 0x40
00000c8f: MLOAD
00000c90: PUSH1 0x20
00000c92: ADD
00000c93: PUSH2 0x0ca0
00000c96: SWAP6
00000c97: SWAP5
00000c98: SWAP4
00000c99: SWAP3
00000c9a: SWAP2
00000c9b: SWAP1
00000c9c: PUSH2 0x192a
00000c9f: JUMP
00000ca0: JUMPDEST
00000ca1: PUSH1 0x40
00000ca3: MLOAD
00000ca4: PUSH1 0x20
00000ca6: DUP2
00000ca7: DUP4
00000ca8: SUB
00000ca9: SUB
00000caa: DUP2
00000cab: MSTORE
00000cac: SWAP1
00000cad: PUSH1 0x40
00000caf: MSTORE
00000cb0: DUP1
00000cb1: MLOAD
00000cb2: SWAP1
00000cb3: PUSH1 0x20
00000cb5: ADD
00000cb6: KECCAK256
00000cb7: SWAP1
00000cb8: POP
00000cb9: DUP1
00000cba: SWAP2
00000cbb: POP
00000cbc: POP
00000cbd: SWAP4
00000cbe: SWAP3
00000cbf: POP
00000cc0: POP
00000cc1: POP
00000cc2: JUMP
00000cc3: JUMPDEST
00000cc4: PUSH1 0x00
00000cc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cdb: DUP3
00000cdc: AND
00000cdd: SWAP1
00000cde: POP
00000cdf: SWAP2
00000ce0: SWAP1
00000ce1: POP
00000ce2: JUMP
00000ce3: JUMPDEST
00000ce4: PUSH1 0x00
00000ce6: PUSH2 0x0cee
00000ce9: DUP3
00000cea: PUSH2 0x0cc3
00000ced: JUMP
00000cee: JUMPDEST
00000cef: SWAP1
00000cf0: POP
00000cf1: SWAP2
00000cf2: SWAP1
00000cf3: POP
00000cf4: JUMP
00000cf5: JUMPDEST
00000cf6: PUSH2 0x0cfe
00000cf9: DUP2
00000cfa: PUSH2 0x0ce3
00000cfd: JUMP
00000cfe: JUMPDEST
00000cff: DUP3
00000d00: MSTORE
00000d01: POP
00000d02: POP
00000d03: JUMP
00000d04: JUMPDEST
00000d05: PUSH1 0x00
00000d07: DUP2
00000d08: SWAP1
00000d09: POP
00000d0a: SWAP2
00000d0b: SWAP1
00000d0c: POP
00000d0d: JUMP
00000d0e: JUMPDEST
00000d0f: PUSH2 0x0d17
00000d12: DUP2
00000d13: PUSH2 0x0d04
00000d16: JUMP
00000d17: JUMPDEST
00000d18: DUP3
00000d19: MSTORE
00000d1a: POP
00000d1b: POP
00000d1c: JUMP
00000d1d: JUMPDEST
00000d1e: PUSH1 0x00
00000d20: PUSH1 0x40
00000d22: DUP3
00000d23: ADD
00000d24: SWAP1
00000d25: POP
00000d26: PUSH2 0x0d32
00000d29: PUSH1 0x00
00000d2b: DUP4
00000d2c: ADD
00000d2d: DUP6
00000d2e: PUSH2 0x0cf5
00000d31: JUMP
00000d32: JUMPDEST
00000d33: PUSH2 0x0d3f
00000d36: PUSH1 0x20
00000d38: DUP4
00000d39: ADD
00000d3a: DUP5
00000d3b: PUSH2 0x0d0e
00000d3e: JUMP
00000d3f: JUMPDEST
00000d40: SWAP4
00000d41: SWAP3
00000d42: POP
00000d43: POP
00000d44: POP
00000d45: JUMP
00000d46: JUMPDEST
00000d47: PUSH1 0x00
00000d49: PUSH1 0x20
00000d4b: DUP3
00000d4c: ADD
00000d4d: SWAP1
00000d4e: POP
00000d4f: PUSH2 0x0d5b
00000d52: PUSH1 0x00
00000d54: DUP4
00000d55: ADD
00000d56: DUP5
00000d57: PUSH2 0x0d0e
00000d5a: JUMP
00000d5b: JUMPDEST
00000d5c: SWAP3
00000d5d: SWAP2
00000d5e: POP
00000d5f: POP
00000d60: JUMP
00000d61: JUMPDEST
00000d62: PUSH1 0x00
00000d64: PUSH1 0x40
00000d66: MLOAD
00000d67: SWAP1
00000d68: POP
00000d69: SWAP1
00000d6a: JUMP
00000d6b: JUMPDEST
00000d6c: PUSH1 0x00
00000d6e: DUP1
00000d6f: REVERT
00000d70: JUMPDEST
00000d71: PUSH1 0x00
00000d73: DUP1
00000d74: REVERT
00000d75: JUMPDEST
00000d76: PUSH2 0x0d7e
00000d79: DUP2
00000d7a: PUSH2 0x0ce3
00000d7d: JUMP
00000d7e: JUMPDEST
00000d7f: DUP2
00000d80: EQ
00000d81: PUSH2 0x0d89
00000d84: JUMPI
00000d85: PUSH1 0x00
00000d87: DUP1
00000d88: REVERT
00000d89: JUMPDEST
00000d8a: POP
00000d8b: JUMP
00000d8c: JUMPDEST
00000d8d: PUSH1 0x00
00000d8f: DUP2
00000d90: CALLDATALOAD
00000d91: SWAP1
00000d92: POP
00000d93: PUSH2 0x0d9b
00000d96: DUP2
00000d97: PUSH2 0x0d75
00000d9a: JUMP
00000d9b: JUMPDEST
00000d9c: SWAP3
00000d9d: SWAP2
00000d9e: POP
00000d9f: POP
00000da0: JUMP
00000da1: JUMPDEST
00000da2: PUSH2 0x0daa
00000da5: DUP2
00000da6: PUSH2 0x0d04
00000da9: JUMP
00000daa: JUMPDEST
00000dab: DUP2
00000dac: EQ
00000dad: PUSH2 0x0db5
00000db0: JUMPI
00000db1: PUSH1 0x00
00000db3: DUP1
00000db4: REVERT
00000db5: JUMPDEST
00000db6: POP
00000db7: JUMP
00000db8: JUMPDEST
00000db9: PUSH1 0x00
00000dbb: DUP2
00000dbc: CALLDATALOAD
00000dbd: SWAP1
00000dbe: POP
00000dbf: PUSH2 0x0dc7
00000dc2: DUP2
00000dc3: PUSH2 0x0da1
00000dc6: JUMP
00000dc7: JUMPDEST
00000dc8: SWAP3
00000dc9: SWAP2
00000dca: POP
00000dcb: POP
00000dcc: JUMP
00000dcd: JUMPDEST
00000dce: PUSH1 0x00
00000dd0: DUP1
00000dd1: REVERT
00000dd2: JUMPDEST
00000dd3: PUSH1 0x00
00000dd5: DUP1
00000dd6: REVERT
00000dd7: JUMPDEST
00000dd8: PUSH1 0x00
00000dda: DUP1
00000ddb: REVERT
00000ddc: JUMPDEST
00000ddd: PUSH1 0x00
00000ddf: DUP1
00000de0: DUP4
00000de1: PUSH1 0x1f
00000de3: DUP5
00000de4: ADD
00000de5: SLT
00000de6: PUSH2 0x0df2
00000de9: JUMPI
00000dea: PUSH2 0x0df1
00000ded: PUSH2 0x0dcd
00000df0: JUMP
00000df1: JUMPDEST
00000df2: JUMPDEST
00000df3: DUP3
00000df4: CALLDATALOAD
00000df5: SWAP1
00000df6: POP
00000df7: PUSH8 0xffffffffffffffff
00000e00: DUP2
00000e01: GT
00000e02: ISZERO
00000e03: PUSH2 0x0e0f
00000e06: JUMPI
00000e07: PUSH2 0x0e0e
00000e0a: PUSH2 0x0dd2
00000e0d: JUMP
00000e0e: JUMPDEST
00000e0f: JUMPDEST
00000e10: PUSH1 0x20
00000e12: DUP4
00000e13: ADD
00000e14: SWAP2
00000e15: POP
00000e16: DUP4
00000e17: PUSH1 0x01
00000e19: DUP3
00000e1a: MUL
00000e1b: DUP4
00000e1c: ADD
00000e1d: GT
00000e1e: ISZERO
00000e1f: PUSH2 0x0e2b
00000e22: JUMPI
00000e23: PUSH2 0x0e2a
00000e26: PUSH2 0x0dd7
00000e29: JUMP
00000e2a: JUMPDEST
00000e2b: JUMPDEST
00000e2c: SWAP3
00000e2d: POP
00000e2e: SWAP3
00000e2f: SWAP1
00000e30: POP
00000e31: JUMP
00000e32: JUMPDEST
00000e33: PUSH1 0x00
00000e35: DUP1
00000e36: PUSH1 0x00
00000e38: DUP1
00000e39: PUSH1 0x00
00000e3b: PUSH1 0x80
00000e3d: DUP7
00000e3e: DUP9
00000e3f: SUB
00000e40: SLT
00000e41: ISZERO
00000e42: PUSH2 0x0e4e
00000e45: JUMPI
00000e46: PUSH2 0x0e4d
00000e49: PUSH2 0x0d6b
00000e4c: JUMP
00000e4d: JUMPDEST
00000e4e: JUMPDEST
00000e4f: PUSH1 0x00
00000e51: PUSH2 0x0e5c
00000e54: DUP9
00000e55: DUP3
00000e56: DUP10
00000e57: ADD
00000e58: PUSH2 0x0d8c
00000e5b: JUMP
00000e5c: JUMPDEST
00000e5d: SWAP6
00000e5e: POP
00000e5f: POP
00000e60: PUSH1 0x20
00000e62: PUSH2 0x0e6d
00000e65: DUP9
00000e66: DUP3
00000e67: DUP10
00000e68: ADD
00000e69: PUSH2 0x0d8c
00000e6c: JUMP
00000e6d: JUMPDEST
00000e6e: SWAP5
00000e6f: POP
00000e70: POP
00000e71: PUSH1 0x40
00000e73: PUSH2 0x0e7e
00000e76: DUP9
00000e77: DUP3
00000e78: DUP10
00000e79: ADD
00000e7a: PUSH2 0x0db8
00000e7d: JUMP
00000e7e: JUMPDEST
00000e7f: SWAP4
00000e80: POP
00000e81: POP
00000e82: PUSH1 0x60
00000e84: DUP7
00000e85: ADD
00000e86: CALLDATALOAD
00000e87: PUSH8 0xffffffffffffffff
00000e90: DUP2
00000e91: GT
00000e92: ISZERO
00000e93: PUSH2 0x0e9f
00000e96: JUMPI
00000e97: PUSH2 0x0e9e
00000e9a: PUSH2 0x0d70
00000e9d: JUMP
00000e9e: JUMPDEST
00000e9f: JUMPDEST
00000ea0: PUSH2 0x0eab
00000ea3: DUP9
00000ea4: DUP3
00000ea5: DUP10
00000ea6: ADD
00000ea7: PUSH2 0x0ddc
00000eaa: JUMP
00000eab: JUMPDEST
00000eac: SWAP3
00000ead: POP
00000eae: SWAP3
00000eaf: POP
00000eb0: POP
00000eb1: SWAP3
00000eb2: SWAP6
00000eb3: POP
00000eb4: SWAP3
00000eb5: SWAP6
00000eb6: SWAP1
00000eb7: SWAP4
00000eb8: POP
00000eb9: JUMP
00000eba: JUMPDEST
00000ebb: PUSH1 0x00
00000ebd: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000ede: DUP3
00000edf: AND
00000ee0: SWAP1
00000ee1: POP
00000ee2: SWAP2
00000ee3: SWAP1
00000ee4: POP
00000ee5: JUMP
00000ee6: JUMPDEST
00000ee7: PUSH2 0x0eef
00000eea: DUP2
00000eeb: PUSH2 0x0eba
00000eee: JUMP
00000eef: JUMPDEST
00000ef0: DUP3
00000ef1: MSTORE
00000ef2: POP
00000ef3: POP
00000ef4: JUMP
00000ef5: JUMPDEST
00000ef6: PUSH1 0x00
00000ef8: PUSH1 0x20
00000efa: DUP3
00000efb: ADD
00000efc: SWAP1
00000efd: POP
00000efe: PUSH2 0x0f0a
00000f01: PUSH1 0x00
00000f03: DUP4
00000f04: ADD
00000f05: DUP5
00000f06: PUSH2 0x0ee6
00000f09: JUMP
00000f0a: JUMPDEST
00000f0b: SWAP3
00000f0c: SWAP2
00000f0d: POP
00000f0e: POP
00000f0f: JUMP
00000f10: JUMPDEST
00000f11: PUSH1 0x00
00000f13: PUSH1 0x20
00000f15: DUP3
00000f16: DUP5
00000f17: SUB
00000f18: SLT
00000f19: ISZERO
00000f1a: PUSH2 0x0f26
00000f1d: JUMPI
00000f1e: PUSH2 0x0f25
00000f21: PUSH2 0x0d6b
00000f24: JUMP
00000f25: JUMPDEST
00000f26: JUMPDEST
00000f27: PUSH1 0x00
00000f29: PUSH2 0x0f34
00000f2c: DUP5
00000f2d: DUP3
00000f2e: DUP6
00000f2f: ADD
00000f30: PUSH2 0x0d8c
00000f33: JUMP
00000f34: JUMPDEST
00000f35: SWAP2
00000f36: POP
00000f37: POP
00000f38: SWAP3
00000f39: SWAP2
00000f3a: POP
00000f3b: POP
00000f3c: JUMP
00000f3d: JUMPDEST
00000f3e: PUSH1 0x00
00000f40: PUSH1 0x1f
00000f42: NOT
00000f43: PUSH1 0x1f
00000f45: DUP4
00000f46: ADD
00000f47: AND
00000f48: SWAP1
00000f49: POP
00000f4a: SWAP2
00000f4b: SWAP1
00000f4c: POP
00000f4d: JUMP
00000f4e: JUMPDEST
00000f4f: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00000f70: PUSH1 0x00
00000f72: MSTORE
00000f73: PUSH1 0x41
00000f75: PUSH1 0x04
00000f77: MSTORE
00000f78: PUSH1 0x24
00000f7a: PUSH1 0x00
00000f7c: REVERT
00000f7d: JUMPDEST
00000f7e: PUSH2 0x0f86
00000f81: DUP3
00000f82: PUSH2 0x0f3d
00000f85: JUMP
00000f86: JUMPDEST
00000f87: DUP2
00000f88: ADD
00000f89: DUP2
00000f8a: DUP2
00000f8b: LT
00000f8c: PUSH8 0xffffffffffffffff
00000f95: DUP3
00000f96: GT
00000f97: OR
00000f98: ISZERO
00000f99: PUSH2 0x0fa5
00000f9c: JUMPI
00000f9d: PUSH2 0x0fa4
00000fa0: PUSH2 0x0f4e
00000fa3: JUMP
00000fa4: JUMPDEST
00000fa5: JUMPDEST
00000fa6: DUP1
00000fa7: PUSH1 0x40
00000fa9: MSTORE
00000faa: POP
00000fab: POP
00000fac: POP
00000fad: JUMP
00000fae: JUMPDEST
00000faf: PUSH1 0x00
00000fb1: PUSH2 0x0fb8
00000fb4: PUSH2 0x0d61
00000fb7: JUMP
00000fb8: JUMPDEST
00000fb9: SWAP1
00000fba: POP
00000fbb: PUSH2 0x0fc4
00000fbe: DUP3
00000fbf: DUP3
00000fc0: PUSH2 0x0f7d
00000fc3: JUMP
00000fc4: JUMPDEST
00000fc5: SWAP2
00000fc6: SWAP1
00000fc7: POP
00000fc8: JUMP
00000fc9: JUMPDEST
00000fca: PUSH1 0x00
00000fcc: PUSH8 0xffffffffffffffff
00000fd5: DUP3
00000fd6: GT
00000fd7: ISZERO
00000fd8: PUSH2 0x0fe4
00000fdb: JUMPI
00000fdc: PUSH2 0x0fe3
00000fdf: PUSH2 0x0f4e
00000fe2: JUMP
00000fe3: JUMPDEST
00000fe4: JUMPDEST
00000fe5: PUSH1 0x20
00000fe7: DUP3
00000fe8: MUL
00000fe9: SWAP1
00000fea: POP
00000feb: PUSH1 0x20
00000fed: DUP2
00000fee: ADD
00000fef: SWAP1
00000ff0: POP
00000ff1: SWAP2
00000ff2: SWAP1
00000ff3: POP
00000ff4: JUMP
00000ff5: JUMPDEST
00000ff6: PUSH1 0x00
00000ff8: PUSH1 0xff
00000ffa: DUP3
00000ffb: AND
00000ffc: SWAP1
00000ffd: POP
00000ffe: SWAP2
00000fff: SWAP1
00001000: POP
00001001: JUMP
00001002: JUMPDEST
00001003: PUSH2 0x100b
00001006: DUP2
00001007: PUSH2 0x0ff5
0000100a: JUMP
0000100b: JUMPDEST
0000100c: DUP2
0000100d: EQ
0000100e: PUSH2 0x1016
00001011: JUMPI
00001012: PUSH1 0x00
00001014: DUP1
00001015: REVERT
00001016: JUMPDEST
00001017: POP
00001018: JUMP
00001019: JUMPDEST
0000101a: PUSH1 0x00
0000101c: DUP2
0000101d: CALLDATALOAD
0000101e: SWAP1
0000101f: POP
00001020: PUSH2 0x1028
00001023: DUP2
00001024: PUSH2 0x1002
00001027: JUMP
00001028: JUMPDEST
00001029: SWAP3
0000102a: SWAP2
0000102b: POP
0000102c: POP
0000102d: JUMP
0000102e: JUMPDEST
0000102f: PUSH1 0x00
00001031: PUSH2 0x1041
00001034: PUSH2 0x103c
00001037: DUP5
00001038: PUSH2 0x0fc9
0000103b: JUMP
0000103c: JUMPDEST
0000103d: PUSH2 0x0fae
00001040: JUMP
00001041: JUMPDEST
00001042: SWAP1
00001043: POP
00001044: DUP1
00001045: DUP4
00001046: DUP3
00001047: MSTORE
00001048: PUSH1 0x20
0000104a: DUP3
0000104b: ADD
0000104c: SWAP1
0000104d: POP
0000104e: PUSH1 0x20
00001050: DUP5
00001051: MUL
00001052: DUP4
00001053: ADD
00001054: DUP6
00001055: DUP2
00001056: GT
00001057: ISZERO
00001058: PUSH2 0x1064
0000105b: JUMPI
0000105c: PUSH2 0x1063
0000105f: PUSH2 0x0dd7
00001062: JUMP
00001063: JUMPDEST
00001064: JUMPDEST
00001065: DUP4
00001066: JUMPDEST
00001067: DUP2
00001068: DUP2
00001069: LT
0000106a: ISZERO
0000106b: PUSH2 0x108d
0000106e: JUMPI
0000106f: DUP1
00001070: PUSH2 0x1079
00001073: DUP9
00001074: DUP3
00001075: PUSH2 0x1019
00001078: JUMP
00001079: JUMPDEST
0000107a: DUP5
0000107b: MSTORE
0000107c: PUSH1 0x20
0000107e: DUP5
0000107f: ADD
00001080: SWAP4
00001081: POP
00001082: POP
00001083: PUSH1 0x20
00001085: DUP2
00001086: ADD
00001087: SWAP1
00001088: POP
00001089: PUSH2 0x1066
0000108c: JUMP
0000108d: JUMPDEST
0000108e: POP
0000108f: POP
00001090: POP
00001091: SWAP4
00001092: SWAP3
00001093: POP
00001094: POP
00001095: POP
00001096: JUMP
00001097: JUMPDEST
00001098: PUSH1 0x00
0000109a: DUP3
0000109b: PUSH1 0x1f
0000109d: DUP4
0000109e: ADD
0000109f: SLT
000010a0: PUSH2 0x10ac
000010a3: JUMPI
000010a4: PUSH2 0x10ab
000010a7: PUSH2 0x0dcd
000010aa: JUMP
000010ab: JUMPDEST
000010ac: JUMPDEST
000010ad: DUP2
000010ae: CALLDATALOAD
000010af: PUSH2 0x10bc
000010b2: DUP5
000010b3: DUP3
000010b4: PUSH1 0x20
000010b6: DUP7
000010b7: ADD
000010b8: PUSH2 0x102e
000010bb: JUMP
000010bc: JUMPDEST
000010bd: SWAP2
000010be: POP
000010bf: POP
000010c0: SWAP3
000010c1: SWAP2
000010c2: POP
000010c3: POP
000010c4: JUMP
000010c5: JUMPDEST
000010c6: PUSH1 0x00
000010c8: PUSH8 0xffffffffffffffff
000010d1: DUP3
000010d2: GT
000010d3: ISZERO
000010d4: PUSH2 0x10e0
000010d7: JUMPI
000010d8: PUSH2 0x10df
000010db: PUSH2 0x0f4e
000010de: JUMP
000010df: JUMPDEST
000010e0: JUMPDEST
000010e1: PUSH1 0x20
000010e3: DUP3
000010e4: MUL
000010e5: SWAP1
000010e6: POP
000010e7: PUSH1 0x20
000010e9: DUP2
000010ea: ADD
000010eb: SWAP1
000010ec: POP
000010ed: SWAP2
000010ee: SWAP1
000010ef: POP
000010f0: JUMP
000010f1: JUMPDEST
000010f2: PUSH1 0x00
000010f4: DUP2
000010f5: SWAP1
000010f6: POP
000010f7: SWAP2
000010f8: SWAP1
000010f9: POP
000010fa: JUMP
000010fb: JUMPDEST
000010fc: PUSH2 0x1104
000010ff: DUP2
00001100: PUSH2 0x10f1
00001103: JUMP
00001104: JUMPDEST
00001105: DUP2
00001106: EQ
00001107: PUSH2 0x110f
0000110a: JUMPI
0000110b: PUSH1 0x00
0000110d: DUP1
0000110e: REVERT
0000110f: JUMPDEST
00001110: POP
00001111: JUMP
00001112: JUMPDEST
00001113: PUSH1 0x00
00001115: DUP2
00001116: CALLDATALOAD
00001117: SWAP1
00001118: POP
00001119: PUSH2 0x1121
0000111c: DUP2
0000111d: PUSH2 0x10fb
00001120: JUMP
00001121: JUMPDEST
00001122: SWAP3
00001123: SWAP2
00001124: POP
00001125: POP
00001126: JUMP
00001127: JUMPDEST
00001128: PUSH1 0x00
0000112a: PUSH2 0x113a
0000112d: PUSH2 0x1135
00001130: DUP5
00001131: PUSH2 0x10c5
00001134: JUMP
00001135: JUMPDEST
00001136: PUSH2 0x0fae
00001139: JUMP
0000113a: JUMPDEST
0000113b: SWAP1
0000113c: POP
0000113d: DUP1
0000113e: DUP4
0000113f: DUP3
00001140: MSTORE
00001141: PUSH1 0x20
00001143: DUP3
00001144: ADD
00001145: SWAP1
00001146: POP
00001147: PUSH1 0x20
00001149: DUP5
0000114a: MUL
0000114b: DUP4
0000114c: ADD
0000114d: DUP6
0000114e: DUP2
0000114f: GT
00001150: ISZERO
00001151: PUSH2 0x115d
00001154: JUMPI
00001155: PUSH2 0x115c
00001158: PUSH2 0x0dd7
0000115b: JUMP
0000115c: JUMPDEST
0000115d: JUMPDEST
0000115e: DUP4
0000115f: JUMPDEST
00001160: DUP2
00001161: DUP2
00001162: LT
00001163: ISZERO
00001164: PUSH2 0x1186
00001167: JUMPI
00001168: DUP1
00001169: PUSH2 0x1172
0000116c: DUP9
0000116d: DUP3
0000116e: PUSH2 0x1112
00001171: JUMP
00001172: JUMPDEST
00001173: DUP5
00001174: MSTORE
00001175: PUSH1 0x20
00001177: DUP5
00001178: ADD
00001179: SWAP4
0000117a: POP
0000117b: POP
0000117c: PUSH1 0x20
0000117e: DUP2
0000117f: ADD
00001180: SWAP1
00001181: POP
00001182: PUSH2 0x115f
00001185: JUMP
00001186: JUMPDEST
00001187: POP
00001188: POP
00001189: POP
0000118a: SWAP4
0000118b: SWAP3
0000118c: POP
0000118d: POP
0000118e: POP
0000118f: JUMP
00001190: JUMPDEST
00001191: PUSH1 0x00
00001193: DUP3
00001194: PUSH1 0x1f
00001196: DUP4
00001197: ADD
00001198: SLT
00001199: PUSH2 0x11a5
0000119c: JUMPI
0000119d: PUSH2 0x11a4
000011a0: PUSH2 0x0dcd
000011a3: JUMP
000011a4: JUMPDEST
000011a5: JUMPDEST
000011a6: DUP2
000011a7: CALLDATALOAD
000011a8: PUSH2 0x11b5
000011ab: DUP5
000011ac: DUP3
000011ad: PUSH1 0x20
000011af: DUP7
000011b0: ADD
000011b1: PUSH2 0x1127
000011b4: JUMP
000011b5: JUMPDEST
000011b6: SWAP2
000011b7: POP
000011b8: POP
000011b9: SWAP3
000011ba: SWAP2
000011bb: POP
000011bc: POP
000011bd: JUMP
000011be: JUMPDEST
000011bf: PUSH1 0x00
000011c1: DUP1
000011c2: PUSH1 0x00
000011c4: DUP1
000011c5: PUSH1 0x00
000011c7: DUP1
000011c8: PUSH1 0x00
000011ca: PUSH1 0xc0
000011cc: DUP9
000011cd: DUP11
000011ce: SUB
000011cf: SLT
000011d0: ISZERO
000011d1: PUSH2 0x11dd
000011d4: JUMPI
000011d5: PUSH2 0x11dc
000011d8: PUSH2 0x0d6b
000011db: JUMP
000011dc: JUMPDEST
000011dd: JUMPDEST
000011de: PUSH1 0x00
000011e0: PUSH2 0x11eb
000011e3: DUP11
000011e4: DUP3
000011e5: DUP12
000011e6: ADD
000011e7: PUSH2 0x0d8c
000011ea: JUMP
000011eb: JUMPDEST
000011ec: SWAP8
000011ed: POP
000011ee: POP
000011ef: PUSH1 0x20
000011f1: PUSH2 0x11fc
000011f4: DUP11
000011f5: DUP3
000011f6: DUP12
000011f7: ADD
000011f8: PUSH2 0x0db8
000011fb: JUMP
000011fc: JUMPDEST
000011fd: SWAP7
000011fe: POP
000011ff: POP
00001200: PUSH1 0x40
00001202: DUP9
00001203: ADD
00001204: CALLDATALOAD
00001205: PUSH8 0xffffffffffffffff
0000120e: DUP2
0000120f: GT
00001210: ISZERO
00001211: PUSH2 0x121d
00001214: JUMPI
00001215: PUSH2 0x121c
00001218: PUSH2 0x0d70
0000121b: JUMP
0000121c: JUMPDEST
0000121d: JUMPDEST
0000121e: PUSH2 0x1229
00001221: DUP11
00001222: DUP3
00001223: DUP12
00001224: ADD
00001225: PUSH2 0x1097
00001228: JUMP
00001229: JUMPDEST
0000122a: SWAP6
0000122b: POP
0000122c: POP
0000122d: PUSH1 0x60
0000122f: DUP9
00001230: ADD
00001231: CALLDATALOAD
00001232: PUSH8 0xffffffffffffffff
0000123b: DUP2
0000123c: GT
0000123d: ISZERO
0000123e: PUSH2 0x124a
00001241: JUMPI
00001242: PUSH2 0x1249
00001245: PUSH2 0x0d70
00001248: JUMP
00001249: JUMPDEST
0000124a: JUMPDEST
0000124b: PUSH2 0x1256
0000124e: DUP11
0000124f: DUP3
00001250: DUP12
00001251: ADD
00001252: PUSH2 0x1190
00001255: JUMP
00001256: JUMPDEST
00001257: SWAP5
00001258: POP
00001259: POP
0000125a: PUSH1 0x80
0000125c: DUP9
0000125d: ADD
0000125e: CALLDATALOAD
0000125f: PUSH8 0xffffffffffffffff
00001268: DUP2
00001269: GT
0000126a: ISZERO
0000126b: PUSH2 0x1277
0000126e: JUMPI
0000126f: PUSH2 0x1276
00001272: PUSH2 0x0d70
00001275: JUMP
00001276: JUMPDEST
00001277: JUMPDEST
00001278: PUSH2 0x1283
0000127b: DUP11
0000127c: DUP3
0000127d: DUP12
0000127e: ADD
0000127f: PUSH2 0x1190
00001282: JUMP
00001283: JUMPDEST
00001284: SWAP4
00001285: POP
00001286: POP
00001287: PUSH1 0xa0
00001289: DUP9
0000128a: ADD
0000128b: CALLDATALOAD
0000128c: PUSH8 0xffffffffffffffff
00001295: DUP2
00001296: GT
00001297: ISZERO
00001298: PUSH2 0x12a4
0000129b: JUMPI
0000129c: PUSH2 0x12a3
0000129f: PUSH2 0x0d70
000012a2: JUMP
000012a3: JUMPDEST
000012a4: JUMPDEST
000012a5: PUSH2 0x12b0
000012a8: DUP11
000012a9: DUP3
000012aa: DUP12
000012ab: ADD
000012ac: PUSH2 0x0ddc
000012af: JUMP
000012b0: JUMPDEST
000012b1: SWAP3
000012b2: POP
000012b3: SWAP3
000012b4: POP
000012b5: POP
000012b6: SWAP3
000012b7: SWAP6
000012b8: SWAP9
000012b9: SWAP2
000012ba: SWAP5
000012bb: SWAP8
000012bc: POP
000012bd: SWAP3
000012be: SWAP6
000012bf: POP
000012c0: JUMP
000012c1: JUMPDEST
000012c2: PUSH1 0x00
000012c4: DUP2
000012c5: MLOAD
000012c6: SWAP1
000012c7: POP
000012c8: SWAP2
000012c9: SWAP1
000012ca: POP
000012cb: JUMP
000012cc: JUMPDEST
000012cd: PUSH1 0x00
000012cf: DUP3
000012d0: DUP3
000012d1: MSTORE
000012d2: PUSH1 0x20
000012d4: DUP3
000012d5: ADD
000012d6: SWAP1
000012d7: POP
000012d8: SWAP3
000012d9: SWAP2
000012da: POP
000012db: POP
000012dc: JUMP
000012dd: JUMPDEST
000012de: PUSH1 0x00
000012e0: DUP2
000012e1: SWAP1
000012e2: POP
000012e3: PUSH1 0x20
000012e5: DUP3
000012e6: ADD
000012e7: SWAP1
000012e8: POP
000012e9: SWAP2
000012ea: SWAP1
000012eb: POP
000012ec: JUMP
000012ed: JUMPDEST
000012ee: PUSH2 0x12f6
000012f1: DUP2
000012f2: PUSH2 0x0ce3
000012f5: JUMP
000012f6: JUMPDEST
000012f7: DUP3
000012f8: MSTORE
000012f9: POP
000012fa: POP
000012fb: JUMP
000012fc: JUMPDEST
000012fd: PUSH1 0x00
000012ff: PUSH2 0x1308
00001302: DUP4
00001303: DUP4
00001304: PUSH2 0x12ed
00001307: JUMP
00001308: JUMPDEST
00001309: PUSH1 0x20
0000130b: DUP4
0000130c: ADD
0000130d: SWAP1
0000130e: POP
0000130f: SWAP3
00001310: SWAP2
00001311: POP
00001312: POP
00001313: JUMP
00001314: JUMPDEST
00001315: PUSH1 0x00
00001317: PUSH1 0x20
00001319: DUP3
0000131a: ADD
0000131b: SWAP1
0000131c: POP
0000131d: SWAP2
0000131e: SWAP1
0000131f: POP
00001320: JUMP
00001321: JUMPDEST
00001322: PUSH1 0x00
00001324: PUSH2 0x132c
00001327: DUP3
00001328: PUSH2 0x12c1
0000132b: JUMP
0000132c: JUMPDEST
0000132d: PUSH2 0x1336
00001330: DUP2
00001331: DUP6
00001332: PUSH2 0x12cc
00001335: JUMP
00001336: JUMPDEST
00001337: SWAP4
00001338: POP
00001339: PUSH2 0x1341
0000133c: DUP4
0000133d: PUSH2 0x12dd
00001340: JUMP
00001341: JUMPDEST
00001342: DUP1
00001343: PUSH1 0x00
00001345: JUMPDEST
00001346: DUP4
00001347: DUP2
00001348: LT
00001349: ISZERO
0000134a: PUSH2 0x1372
0000134d: JUMPI
0000134e: DUP2
0000134f: MLOAD
00001350: PUSH2 0x1359
00001353: DUP9
00001354: DUP3
00001355: PUSH2 0x12fc
00001358: JUMP
00001359: JUMPDEST
0000135a: SWAP8
0000135b: POP
0000135c: PUSH2 0x1364
0000135f: DUP4
00001360: PUSH2 0x1314
00001363: JUMP
00001364: JUMPDEST
00001365: SWAP3
00001366: POP
00001367: POP
00001368: PUSH1 0x01
0000136a: DUP2
0000136b: ADD
0000136c: SWAP1
0000136d: POP
0000136e: PUSH2 0x1345
00001371: JUMP
00001372: JUMPDEST
00001373: POP
00001374: DUP6
00001375: SWAP4
00001376: POP
00001377: POP
00001378: POP
00001379: POP
0000137a: SWAP3
0000137b: SWAP2
0000137c: POP
0000137d: POP
0000137e: JUMP
0000137f: JUMPDEST
00001380: PUSH1 0x00
00001382: PUSH1 0x20
00001384: DUP3
00001385: ADD
00001386: SWAP1
00001387: POP
00001388: DUP2
00001389: DUP2
0000138a: SUB
0000138b: PUSH1 0x00
0000138d: DUP4
0000138e: ADD
0000138f: MSTORE
00001390: PUSH2 0x1399
00001393: DUP2
00001394: DUP5
00001395: PUSH2 0x1321
00001398: JUMP
00001399: JUMPDEST
0000139a: SWAP1
0000139b: POP
0000139c: SWAP3
0000139d: SWAP2
0000139e: POP
0000139f: POP
000013a0: JUMP
000013a1: JUMPDEST
000013a2: PUSH1 0x00
000013a4: DUP1
000013a5: PUSH1 0x00
000013a7: DUP1
000013a8: PUSH1 0x00
000013aa: DUP1
000013ab: PUSH1 0xa0
000013ad: DUP8
000013ae: DUP10
000013af: SUB
000013b0: SLT
000013b1: ISZERO
000013b2: PUSH2 0x13be
000013b5: JUMPI
000013b6: PUSH2 0x13bd
000013b9: PUSH2 0x0d6b
000013bc: JUMP
000013bd: JUMPDEST
000013be: JUMPDEST
000013bf: PUSH1 0x00
000013c1: PUSH2 0x13cc
000013c4: DUP10
000013c5: DUP3
000013c6: DUP11
000013c7: ADD
000013c8: PUSH2 0x0d8c
000013cb: JUMP
000013cc: JUMPDEST
000013cd: SWAP7
000013ce: POP
000013cf: POP
000013d0: PUSH1 0x20
000013d2: PUSH2 0x13dd
000013d5: DUP10
000013d6: DUP3
000013d7: DUP11
000013d8: ADD
000013d9: PUSH2 0x0d8c
000013dc: JUMP
000013dd: JUMPDEST
000013de: SWAP6
000013df: POP
000013e0: POP
000013e1: PUSH1 0x40
000013e3: PUSH2 0x13ee
000013e6: DUP10
000013e7: DUP3
000013e8: DUP11
000013e9: ADD
000013ea: PUSH2 0x0db8
000013ed: JUMP
000013ee: JUMPDEST
000013ef: SWAP5
000013f0: POP
000013f1: POP
000013f2: PUSH1 0x60
000013f4: PUSH2 0x13ff
000013f7: DUP10
000013f8: DUP3
000013f9: DUP11
000013fa: ADD
000013fb: PUSH2 0x0db8
000013fe: JUMP
000013ff: JUMPDEST
00001400: SWAP4
00001401: POP
00001402: POP
00001403: PUSH1 0x80
00001405: DUP8
00001406: ADD
00001407: CALLDATALOAD
00001408: PUSH8 0xffffffffffffffff
00001411: DUP2
00001412: GT
00001413: ISZERO
00001414: PUSH2 0x1420
00001417: JUMPI
00001418: PUSH2 0x141f
0000141b: PUSH2 0x0d70
0000141e: JUMP
0000141f: JUMPDEST
00001420: JUMPDEST
00001421: PUSH2 0x142c
00001424: DUP10
00001425: DUP3
00001426: DUP11
00001427: ADD
00001428: PUSH2 0x0ddc
0000142b: JUMP
0000142c: JUMPDEST
0000142d: SWAP3
0000142e: POP
0000142f: SWAP3
00001430: POP
00001431: POP
00001432: SWAP3
00001433: SWAP6
00001434: POP
00001435: SWAP3
00001436: SWAP6
00001437: POP
00001438: SWAP3
00001439: SWAP6
0000143a: JUMP
0000143b: JUMPDEST
0000143c: PUSH1 0x00
0000143e: DUP3
0000143f: DUP3
00001440: MSTORE
00001441: PUSH1 0x20
00001443: DUP3
00001444: ADD
00001445: SWAP1
00001446: POP
00001447: SWAP3
00001448: SWAP2
00001449: POP
0000144a: POP
0000144b: JUMP
0000144c: JUMPDEST
0000144d: PUSH32 0x4e6f7420616e206f776e65720000000000000000000000000000000000000000
0000146e: PUSH1 0x00
00001470: DUP3
00001471: ADD
00001472: MSTORE
00001473: POP
00001474: JUMP
00001475: JUMPDEST
00001476: PUSH1 0x00
00001478: PUSH2 0x1482
0000147b: PUSH1 0x0c
0000147d: DUP4
0000147e: PUSH2 0x143b
00001481: JUMP
00001482: JUMPDEST
00001483: SWAP2
00001484: POP
00001485: PUSH2 0x148d
00001488: DUP3
00001489: PUSH2 0x144c
0000148c: JUMP
0000148d: JUMPDEST
0000148e: PUSH1 0x20
00001490: DUP3
00001491: ADD
00001492: SWAP1
00001493: POP
00001494: SWAP2
00001495: SWAP1
00001496: POP
00001497: JUMP
00001498: JUMPDEST
00001499: PUSH1 0x00
0000149b: PUSH1 0x20
0000149d: DUP3
0000149e: ADD
0000149f: SWAP1
000014a0: POP
000014a1: DUP2
000014a2: DUP2
000014a3: SUB
000014a4: PUSH1 0x00
000014a6: DUP4
000014a7: ADD
000014a8: MSTORE
000014a9: PUSH2 0x14b1
000014ac: DUP2
000014ad: PUSH2 0x1475
000014b0: JUMP
000014b1: JUMPDEST
000014b2: SWAP1
000014b3: POP
000014b4: SWAP2
000014b5: SWAP1
000014b6: POP
000014b7: JUMP
000014b8: JUMPDEST
000014b9: PUSH32 0x4e6f7420616c6c6f772073656e64696e6720746f20796f757273656c66000000
000014da: PUSH1 0x00
000014dc: DUP3
000014dd: ADD
000014de: MSTORE
000014df: POP
000014e0: JUMP
000014e1: JUMPDEST
000014e2: PUSH1 0x00
000014e4: PUSH2 0x14ee
000014e7: PUSH1 0x1d
000014e9: DUP4
000014ea: PUSH2 0x143b
000014ed: JUMP
000014ee: JUMPDEST
000014ef: SWAP2
000014f0: POP
000014f1: PUSH2 0x14f9
000014f4: DUP3
000014f5: PUSH2 0x14b8
000014f8: JUMP
000014f9: JUMPDEST
000014fa: PUSH1 0x20
000014fc: DUP3
000014fd: ADD
000014fe: SWAP1
000014ff: POP
00001500: SWAP2
00001501: SWAP1
00001502: POP
00001503: JUMP
00001504: JUMPDEST
00001505: PUSH1 0x00
00001507: PUSH1 0x20
00001509: DUP3
0000150a: ADD
0000150b: SWAP1
0000150c: POP
0000150d: DUP2
0000150e: DUP2
0000150f: SUB
00001510: PUSH1 0x00
00001512: DUP4
00001513: ADD
00001514: MSTORE
00001515: PUSH2 0x151d
00001518: DUP2
00001519: PUSH2 0x14e1
0000151c: JUMP
0000151d: JUMPDEST
0000151e: SWAP1
0000151f: POP
00001520: SWAP2
00001521: SWAP1
00001522: POP
00001523: JUMP
00001524: JUMPDEST
00001525: PUSH32 0x696e76616c6964207369676e6174757265730000000000000000000000000000
00001546: PUSH1 0x00
00001548: DUP3
00001549: ADD
0000154a: MSTORE
0000154b: POP
0000154c: JUMP
0000154d: JUMPDEST
0000154e: PUSH1 0x00
00001550: PUSH2 0x155a
00001553: PUSH1 0x12
00001555: DUP4
00001556: PUSH2 0x143b
00001559: JUMP
0000155a: JUMPDEST
0000155b: SWAP2
0000155c: POP
0000155d: PUSH2 0x1565
00001560: DUP3
00001561: PUSH2 0x1524
00001564: JUMP
00001565: JUMPDEST
00001566: PUSH1 0x20
00001568: DUP3
00001569: ADD
0000156a: SWAP1
0000156b: POP
0000156c: SWAP2
0000156d: SWAP1
0000156e: POP
0000156f: JUMP
00001570: JUMPDEST
00001571: PUSH1 0x00
00001573: PUSH1 0x20
00001575: DUP3
00001576: ADD
00001577: SWAP1
00001578: POP
00001579: DUP2
0000157a: DUP2
0000157b: SUB
0000157c: PUSH1 0x00
0000157e: DUP4
0000157f: ADD
00001580: MSTORE
00001581: PUSH2 0x1589
00001584: DUP2
00001585: PUSH2 0x154d
00001588: JUMP
00001589: JUMPDEST
0000158a: SWAP1
0000158b: POP
0000158c: SWAP2
0000158d: SWAP1
0000158e: POP
0000158f: JUMP
00001590: JUMPDEST
00001591: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000015b2: PUSH1 0x00
000015b4: MSTORE
000015b5: PUSH1 0x11
000015b7: PUSH1 0x04
000015b9: MSTORE
000015ba: PUSH1 0x24
000015bc: PUSH1 0x00
000015be: REVERT
000015bf: JUMPDEST
000015c0: PUSH1 0x00
000015c2: PUSH2 0x15ca
000015c5: DUP3
000015c6: PUSH2 0x0d04
000015c9: JUMP
000015ca: JUMPDEST
000015cb: SWAP2
000015cc: POP
000015cd: PUSH2 0x15d5
000015d0: DUP4
000015d1: PUSH2 0x0d04
000015d4: JUMP
000015d5: JUMPDEST
000015d6: SWAP3
000015d7: POP
000015d8: DUP3
000015d9: DUP3
000015da: ADD
000015db: SWAP1
000015dc: POP
000015dd: DUP1
000015de: DUP3
000015df: GT
000015e0: ISZERO
000015e1: PUSH2 0x15ed
000015e4: JUMPI
000015e5: PUSH2 0x15ec
000015e8: PUSH2 0x1590
000015eb: JUMP
000015ec: JUMPDEST
000015ed: JUMPDEST
000015ee: SWAP3
000015ef: SWAP2
000015f0: POP
000015f1: POP
000015f2: JUMP
000015f3: JUMPDEST
000015f4: PUSH1 0x00
000015f6: DUP2
000015f7: SWAP1
000015f8: POP
000015f9: SWAP3
000015fa: SWAP2
000015fb: POP
000015fc: POP
000015fd: JUMP
000015fe: JUMPDEST
000015ff: DUP3
00001600: DUP2
00001601: DUP4
00001602: CALLDATACOPY
00001603: PUSH1 0x00
00001605: DUP4
00001606: DUP4
00001607: ADD
00001608: MSTORE
00001609: POP
0000160a: POP
0000160b: POP
0000160c: JUMP
0000160d: JUMPDEST
0000160e: PUSH1 0x00
00001610: PUSH2 0x1619
00001613: DUP4
00001614: DUP6
00001615: PUSH2 0x15f3
00001618: JUMP
00001619: JUMPDEST
0000161a: SWAP4
0000161b: POP
0000161c: PUSH2 0x1626
0000161f: DUP4
00001620: DUP6
00001621: DUP5
00001622: PUSH2 0x15fe
00001625: JUMP
00001626: JUMPDEST
00001627: DUP3
00001628: DUP5
00001629: ADD
0000162a: SWAP1
0000162b: POP
0000162c: SWAP4
0000162d: SWAP3
0000162e: POP
0000162f: POP
00001630: POP
00001631: JUMP
00001632: JUMPDEST
00001633: PUSH1 0x00
00001635: PUSH2 0x163f
00001638: DUP3
00001639: DUP5
0000163a: DUP7
0000163b: PUSH2 0x160d
0000163e: JUMP
0000163f: JUMPDEST
00001640: SWAP2
00001641: POP
00001642: DUP2
00001643: SWAP1
00001644: POP
00001645: SWAP4
00001646: SWAP3
00001647: POP
00001648: POP
00001649: POP
0000164a: JUMP
0000164b: JUMPDEST
0000164c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
0000166d: PUSH1 0x00
0000166f: MSTORE
00001670: PUSH1 0x32
00001672: PUSH1 0x04
00001674: MSTORE
00001675: PUSH1 0x24
00001677: PUSH1 0x00
00001679: REVERT
0000167a: JUMPDEST
0000167b: PUSH1 0x00
0000167d: PUSH2 0x1685
00001680: DUP3
00001681: PUSH2 0x0d04
00001684: JUMP
00001685: JUMPDEST
00001686: SWAP2
00001687: POP
00001688: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000016a9: DUP3
000016aa: SUB
000016ab: PUSH2 0x16b7
000016ae: JUMPI
000016af: PUSH2 0x16b6
000016b2: PUSH2 0x1590
000016b5: JUMP
000016b6: JUMPDEST
000016b7: JUMPDEST
000016b8: PUSH1 0x01
000016ba: DUP3
000016bb: ADD
000016bc: SWAP1
000016bd: POP
000016be: SWAP2
000016bf: SWAP1
000016c0: POP
000016c1: JUMP
000016c2: JUMPDEST
000016c3: PUSH1 0x00
000016c5: PUSH2 0x16cd
000016c8: DUP3
000016c9: PUSH2 0x0ff5
000016cc: JUMP
000016cd: JUMPDEST
000016ce: SWAP2
000016cf: POP
000016d0: PUSH2 0x16d8
000016d3: DUP4
000016d4: PUSH2 0x0ff5
000016d7: JUMP
000016d8: JUMPDEST
000016d9: SWAP3
000016da: POP
000016db: DUP3
000016dc: DUP3
000016dd: ADD
000016de: SWAP1
000016df: POP
000016e0: PUSH1 0xff
000016e2: DUP2
000016e3: GT
000016e4: ISZERO
000016e5: PUSH2 0x16f1
000016e8: JUMPI
000016e9: PUSH2 0x16f0
000016ec: PUSH2 0x1590
000016ef: JUMP
000016f0: JUMPDEST
000016f1: JUMPDEST
000016f2: SWAP3
000016f3: SWAP2
000016f4: POP
000016f5: POP
000016f6: JUMP
000016f7: JUMPDEST
000016f8: PUSH2 0x1700
000016fb: DUP2
000016fc: PUSH2 0x10f1
000016ff: JUMP
00001700: JUMPDEST
00001701: DUP3
00001702: MSTORE
00001703: POP
00001704: POP
00001705: JUMP
00001706: JUMPDEST
00001707: PUSH2 0x170f
0000170a: DUP2
0000170b: PUSH2 0x0ff5
0000170e: JUMP
0000170f: JUMPDEST
00001710: DUP3
00001711: MSTORE
00001712: POP
00001713: POP
00001714: JUMP
00001715: JUMPDEST
00001716: PUSH1 0x00
00001718: PUSH1 0x80
0000171a: DUP3
0000171b: ADD
0000171c: SWAP1
0000171d: POP
0000171e: PUSH2 0x172a
00001721: PUSH1 0x00
00001723: DUP4
00001724: ADD
00001725: DUP8
00001726: PUSH2 0x16f7
00001729: JUMP
0000172a: JUMPDEST
0000172b: PUSH2 0x1737
0000172e: PUSH1 0x20
00001730: DUP4
00001731: ADD
00001732: DUP7
00001733: PUSH2 0x1706
00001736: JUMP
00001737: JUMPDEST
00001738: PUSH2 0x1744
0000173b: PUSH1 0x40
0000173d: DUP4
0000173e: ADD
0000173f: DUP6
00001740: PUSH2 0x16f7
00001743: JUMP
00001744: JUMPDEST
00001745: PUSH2 0x1751
00001748: PUSH1 0x60
0000174a: DUP4
0000174b: ADD
0000174c: DUP5
0000174d: PUSH2 0x16f7
00001750: JUMP
00001751: JUMPDEST
00001752: SWAP6
00001753: SWAP5
00001754: POP
00001755: POP
00001756: POP
00001757: POP
00001758: POP
00001759: JUMP
0000175a: JUMPDEST
0000175b: PUSH32 0x416374697665206f776e65727320757064617465642061667465722074686520
0000177c: PUSH1 0x00
0000177e: DUP3
0000177f: ADD
00001780: MSTORE
00001781: PUSH32 0x63616c6c2c20706c656173652063616c6c206163746976652829206265666f72
000017a2: PUSH1 0x20
000017a4: DUP3
000017a5: ADD
000017a6: MSTORE
000017a7: PUSH32 0x652063616c6c696e67207370656e642e00000000000000000000000000000000
000017c8: PUSH1 0x40
000017ca: DUP3
000017cb: ADD
000017cc: MSTORE
000017cd: POP
000017ce: JUMP
000017cf: JUMPDEST
000017d0: PUSH1 0x00
000017d2: PUSH2 0x17dc
000017d5: PUSH1 0x50
000017d7: DUP4
000017d8: PUSH2 0x143b
000017db: JUMP
000017dc: JUMPDEST
000017dd: SWAP2
000017de: POP
000017df: PUSH2 0x17e7
000017e2: DUP3
000017e3: PUSH2 0x175a
000017e6: JUMP
000017e7: JUMPDEST
000017e8: PUSH1 0x60
000017ea: DUP3
000017eb: ADD
000017ec: SWAP1
000017ed: POP
000017ee: SWAP2
000017ef: SWAP1
000017f0: POP
000017f1: JUMP
000017f2: JUMPDEST
000017f3: PUSH1 0x00
000017f5: PUSH1 0x20
000017f7: DUP3
000017f8: ADD
000017f9: SWAP1
000017fa: POP
000017fb: DUP2
000017fc: DUP2
000017fd: SUB
000017fe: PUSH1 0x00
00001800: DUP4
00001801: ADD
00001802: MSTORE
00001803: PUSH2 0x180b
00001806: DUP2
00001807: PUSH2 0x17cf
0000180a: JUMP
0000180b: JUMPDEST
0000180c: SWAP1
0000180d: POP
0000180e: SWAP2
0000180f: SWAP1
00001810: POP
00001811: JUMP
00001812: JUMPDEST
00001813: PUSH1 0x00
00001815: DUP2
00001816: MLOAD
00001817: SWAP1
00001818: POP
00001819: SWAP2
0000181a: SWAP1
0000181b: POP
0000181c: JUMP
0000181d: JUMPDEST
0000181e: PUSH1 0x00
00001820: JUMPDEST
00001821: DUP4
00001822: DUP2
00001823: LT
00001824: ISZERO
00001825: PUSH2 0x183b
00001828: JUMPI
00001829: DUP1
0000182a: DUP3
0000182b: ADD
0000182c: MLOAD
0000182d: DUP2
0000182e: DUP5
0000182f: ADD
00001830: MSTORE
00001831: PUSH1 0x20
00001833: DUP2
00001834: ADD
00001835: SWAP1
00001836: POP
00001837: PUSH2 0x1820
0000183a: JUMP
0000183b: JUMPDEST
0000183c: PUSH1 0x00
0000183e: DUP5
0000183f: DUP5
00001840: ADD
00001841: MSTORE
00001842: POP
00001843: POP
00001844: POP
00001845: POP
00001846: JUMP
00001847: JUMPDEST
00001848: PUSH1 0x00
0000184a: PUSH2 0x1852
0000184d: DUP3
0000184e: PUSH2 0x1812
00001851: JUMP
00001852: JUMPDEST
00001853: PUSH2 0x185c
00001856: DUP2
00001857: DUP6
00001858: PUSH2 0x15f3
0000185b: JUMP
0000185c: JUMPDEST
0000185d: SWAP4
0000185e: POP
0000185f: PUSH2 0x186c
00001862: DUP2
00001863: DUP6
00001864: PUSH1 0x20
00001866: DUP7
00001867: ADD
00001868: PUSH2 0x181d
0000186b: JUMP
0000186c: JUMPDEST
0000186d: DUP1
0000186e: DUP5
0000186f: ADD
00001870: SWAP2
00001871: POP
00001872: POP
00001873: SWAP3
00001874: SWAP2
00001875: POP
00001876: POP
00001877: JUMP
00001878: JUMPDEST
00001879: PUSH1 0x00
0000187b: DUP2
0000187c: SWAP1
0000187d: POP
0000187e: SWAP2
0000187f: SWAP1
00001880: POP
00001881: JUMP
00001882: JUMPDEST
00001883: PUSH2 0x1893
00001886: PUSH2 0x188e
00001889: DUP3
0000188a: PUSH2 0x10f1
0000188d: JUMP
0000188e: JUMPDEST
0000188f: PUSH2 0x1878
00001892: JUMP
00001893: JUMPDEST
00001894: DUP3
00001895: MSTORE
00001896: POP
00001897: POP
00001898: JUMP
00001899: JUMPDEST
0000189a: PUSH1 0x00
0000189c: PUSH2 0x18a5
0000189f: DUP3
000018a0: DUP6
000018a1: PUSH2 0x1847
000018a4: JUMP
000018a5: JUMPDEST
000018a6: SWAP2
000018a7: POP
000018a8: PUSH2 0x18b1
000018ab: DUP3
000018ac: DUP5
000018ad: PUSH2 0x1882
000018b0: JUMP
000018b1: JUMPDEST
000018b2: PUSH1 0x20
000018b4: DUP3
000018b5: ADD
000018b6: SWAP2
000018b7: POP
000018b8: DUP2
000018b9: SWAP1
000018ba: POP
000018bb: SWAP4
000018bc: SWAP3
000018bd: POP
000018be: POP
000018bf: POP
000018c0: JUMP
000018c1: JUMPDEST
000018c2: PUSH1 0x00
000018c4: DUP2
000018c5: PUSH1 0x60
000018c7: SHL
000018c8: SWAP1
000018c9: POP
000018ca: SWAP2
000018cb: SWAP1
000018cc: POP
000018cd: JUMP
000018ce: JUMPDEST
000018cf: PUSH1 0x00
000018d1: PUSH2 0x18d9
000018d4: DUP3
000018d5: PUSH2 0x18c1
000018d8: JUMP
000018d9: JUMPDEST
000018da: SWAP1
000018db: POP
000018dc: SWAP2
000018dd: SWAP1
000018de: POP
000018df: JUMP
000018e0: JUMPDEST
000018e1: PUSH1 0x00
000018e3: PUSH2 0x18eb
000018e6: DUP3
000018e7: PUSH2 0x18ce
000018ea: JUMP
000018eb: JUMPDEST
000018ec: SWAP1
000018ed: POP
000018ee: SWAP2
000018ef: SWAP1
000018f0: POP
000018f1: JUMP
000018f2: JUMPDEST
000018f3: PUSH2 0x1903
000018f6: PUSH2 0x18fe
000018f9: DUP3
000018fa: PUSH2 0x0ce3
000018fd: JUMP
000018fe: JUMPDEST
000018ff: PUSH2 0x18e0
00001902: JUMP
00001903: JUMPDEST
00001904: DUP3
00001905: MSTORE
00001906: POP
00001907: POP
00001908: JUMP
00001909: JUMPDEST
0000190a: PUSH1 0x00
0000190c: DUP2
0000190d: SWAP1
0000190e: POP
0000190f: SWAP2
00001910: SWAP1
00001911: POP
00001912: JUMP
00001913: JUMPDEST
00001914: PUSH2 0x1924
00001917: PUSH2 0x191f
0000191a: DUP3
0000191b: PUSH2 0x0d04
0000191e: JUMP
0000191f: JUMPDEST
00001920: PUSH2 0x1909
00001923: JUMP
00001924: JUMPDEST
00001925: DUP3
00001926: MSTORE
00001927: POP
00001928: POP
00001929: JUMP
0000192a: JUMPDEST
0000192b: PUSH1 0x00
0000192d: PUSH2 0x1936
00001930: DUP3
00001931: DUP9
00001932: PUSH2 0x18f2
00001935: JUMP
00001936: JUMPDEST
00001937: PUSH1 0x14
00001939: DUP3
0000193a: ADD
0000193b: SWAP2
0000193c: POP
0000193d: PUSH2 0x1946
00001940: DUP3
00001941: DUP8
00001942: PUSH2 0x18f2
00001945: JUMP
00001946: JUMPDEST
00001947: PUSH1 0x14
00001949: DUP3
0000194a: ADD
0000194b: SWAP2
0000194c: POP
0000194d: PUSH2 0x1956
00001950: DUP3
00001951: DUP7
00001952: PUSH2 0x1913
00001955: JUMP
00001956: JUMPDEST
00001957: PUSH1 0x20
00001959: DUP3
0000195a: ADD
0000195b: SWAP2
0000195c: POP
0000195d: PUSH2 0x1966
00001960: DUP3
00001961: DUP6
00001962: PUSH2 0x1847
00001965: JUMP
00001966: JUMPDEST
00001967: SWAP2
00001968: POP
00001969: PUSH2 0x1972
0000196c: DUP3
0000196d: DUP5
0000196e: PUSH2 0x1913
00001971: JUMP
00001972: JUMPDEST
00001973: PUSH1 0x20
00001975: DUP3
00001976: ADD
00001977: SWAP2
00001978: POP
00001979: DUP2
0000197a: SWAP1
0000197b: POP
0000197c: SWAP7
0000197d: SWAP6
0000197e: POP
0000197f: POP
00001980: POP
00001981: POP
00001982: POP
00001983: POP
00001984: JUMP
00001985: INVALID
00001986: LOG2
00001987: PUSH5 0x6970667358
0000198d: UNKNOWN(0x22)
0000198e: SLT
0000198f: KECCAK256
00001990: SHR
00001991: UNKNOWN(0xDE)
00001992: SWAP7
00001993: DUP2
00001994: ORIGIN
00001995: AND
00001996: DUP5
00001997: UNKNOWN(0xB6)
00001998: UNKNOWN(0xD8)
00001999: UNKNOWN(0xD0)
0000199a: JUMPDEST
0000199b: CALLDATACOPY
0000199c: CALLVALUE
0000199d: UNKNOWN(0xC1)
0000199e: CREATE
0000199f: UNKNOWN(0x2D)
000019a0: UNKNOWN(0xCD)
000019a1: UNKNOWN(0xBE)
000019a2: UNKNOWN(0xEB)
000019a3: CALL
000019a4: NOT
000019a5: DUP6
000019a6: UNKNOWN(0xE4)
000019a7: DUP8
000019a8: UNKNOWN(0xD8)
000019a9: REVERT
000019aa: UNKNOWN(0x23)
000019ab: TIMESTAMP
000019ac: BYTE
000019ad: CALLER
000019ae: PUSH20

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other slither OwnbitMultiSig.spend(address,uint256,uint8[],bytes32[],bytes32[],bytes) (contracts/Contract.sol#116-123) sends eth to arbitrary user 85 no
view
evidence_json
{
    "impact": "High",
    "detector": "arbitrary-send-eth",
    "elements": [
        {
            "name": "spend",
            "type": "function",
            "source_mapping": {
                "lines": [
                    116,
                    117,
                    118,
                    119,
                    120,
                    121,
                    122,
                    123
                ],
                "start": 5206,
                "length": 551,
                "ending_column": 19,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 176,
                "filename_absolute": "/tmp/slither-1amkpmi8/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "OwnbitMultiSig",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30,
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40,
                            41,
                            42,
                            43,
                            44,
                            45,
                            46,
                            47,
                            48,
                            49,
                            50,
                            51,
                            52,
                            53,
                            54,
                            55,
                            56,
                            57,
                            58,
                            59,
                            60,
                            61,
                            62,
                            63,
                            64,
                            65,
                            66,
                            67,
                            68,
                            69,
                            70,
                            71,
                            72,
                            73,
                            74,
                            75,
                            76,
                            77,
                            78,
                            79,
                            80,
                            81,
                            82,
                            83,
                            84,
                            85,
                            86,
                            87,
                            88,
                            89,
                            90,
                            91,
                            92,
                            93,
                            94,
                            95,
                            96,
                            97,
                            98,
                            99,
                            100,
                            101,
                            102,
                            103,
                            104,
                            105,
                            106,
                            107,
                            108,
                            109,
                            110,
                            111,
                            112,
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125,
                            126,
                            127,
                            128,
                            129,
                            130,
                            131,
                            132,
                            133,
                            134,
                            135,
                            136,
                            137,
                            138,
                            139,
                            140,
                            141,
                            142,
                            143,
                            144,
                            145,
                            146,
                            147,
                            148,
                            149,
                            150,
                            151,
                            152,
                            153,
                            154,
                            155,
                            156,
                            157,
                            158,
                            159,
                            160,
                            161,
                            162,
                            163,
                            164,
                            165,
                            166,
                            167,
                            168,
                            169,
                            170,
                            171,
                            172,
                            173,
                            174,
                            175,
                            176,
                            177,
                            178,
                            179,
                            180,
                            181,
                            182,
                            183,
                            184,
                            185,
                            186,
                            187,
                            188,
                            189,
                            190,
                            191,
                            192,
                            193,
                            194,
                            195,
                            196,
                            197,
                            198,
                            199,
                            200,
                            201,
                            202,
                            203,
                            204,
                            205,
                            206,
                            207,
                            208,
                            209,
                            210,
                            211,
                            212,
                            213
                        ],
                        "start": 1236,
                        "length": 8017,
                        "ending_column": 27,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 2,
                        "filename_absolute": "/tmp/slither-1amkpmi8/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    }
                },
                "signature": "spend(address,uint256,uint8[],bytes32[],bytes32[],bytes)"
            }
        },
        {
            "name": "(sent,_ret) = destination.call{value: value}(data)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    120,
                    121,
                    122
                ],
                "start": 5621,
                "length": 69,
                "ending_column": 21,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 77,
                "filename_absolute": "/tmp/slither-1amkpmi8/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "spend",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123
                        ],
                        "start": 5206,
                        "length": 551,
                        "ending_column": 19,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 176,
                        "filename_absolute": "/tmp/slither-1amkpmi8/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "OwnbitMultiSig",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    24,
                                    25,
                                    26,
                                    27,
                                    28,
                                    29,
                                    30,
                                    31,
                                    32,
                                    33,
                                    34,
                                    35,
                                    36,
                                    37,
                                    38,
                                    39,
                                    40,
                                    41,
                                    42,
                                    43,
                                    44,
                                    45,
                                    46,
                                    47,
                                    48,
                                    49,
                                    50,
                                    51,
                                    52,
                                    53,
                                    54,
                                    55,
                                    56,
                                    57,
                                    58,
                                    59,
                                    60,
                                    61,
                                    62,
                                    63,
                                    64,
                                    65,
                                    66,
                                    67,
                                    68,
                                    69,
                                    70,
                                    71,
                                    72,
                                    73,
                                    74,
                                    75,
                                    76,
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122,
                                    123,
                                    124,
                                    125,
                                    126,
                                    127,
                                    128,
                                    129,
                                    130,
                                    131,
                                    132,
                                    133,
                                    134,
                                    135,
                                    136,
                                    137,
                                    138,
                                    139,
                                    140,
                                    141,
                                    142,
                                    143,
                                    144,
                                    145,
                                    146,
                                    147,
                                    148,
                                    149,
                                    150,
                                    151,
                                    152,
                                    153,
                                    154,
                                    155,
                                    156,
                                    157,
                                    158,
                                    159,
                                    160,
                                    161,
                                    162,
                                    163,
                                    164,
                                    165,
                                    166,
                                    167,
                                    168,
                                    169,
                                    170,
                                    171,
                                    172,
                                    173,
                                    174,
                                    175,
                                    176,
                                    177,
                                    178,
                                    179,
                                    180,
                                    181,
                                    182,
                                    183,
                                    184,
                                    185,
                                    186,
                                    187,
                                    188,
                                    189,
                                    190,
                                    191,
                                    192,
                                    193,
                                    194,
                                    195,
                                    196,
                                    197,
                                    198,
                                    199,
                                    200,
                                    201,
                                    202,
                                    203,
                                    204,
                                    205,
                                    206,
                                    207,
                                    208,
                                    209,
                                    210,
                                    211,
                                    212,
                                    213
                                ],
                                "start": 1236,
                                "length": 8017,
                                "ending_column": 27,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 2,
                                "filename_absolute": "/tmp/slither-1amkpmi8/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "spend(address,uint256,uint8[],bytes32[],bytes32[],bytes)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "contracts/Contract.sol",
            "name": "spend",
            "type": "function",
            "lines": [
                116,
                117,
                118,
                119,
                120,
                121,
                122,
                123
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "(sent,_ret) = destination.call{value: value}(data)",
            "type": "node",
            "lines": [
                120,
                121,
                122
            ]
        }
    ],
    "description": "OwnbitMultiSig.spend(address,uint256,uint8[],bytes32[],bytes32[],bytes) (contracts/Contract.sol#116-123) sends eth to arbitrary user\n\tDangerous calls:\n\t- (sent,_ret) = destination.call{value: value}(data) (contracts/Contract.sol#120-122)"
}
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x7c99df4a",
            "selector": "0x7c99df4a",
            "calldata_variants": [
                "0x7c99df4a",
                "0x7c99df4a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0e67e2b",
            "selector": "0xa0e67e2b",
            "calldata_variants": [
                "0xa0e67e2b",
                "0xa0e67e2b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc6a2a9f1",
            "selector": "0xc6a2a9f1",
            "calldata_variants": [
                "0xc6a2a9f1",
                "0xc6a2a9f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd74f8edd",
            "selector": "0xd74f8edd",
            "calldata_variants": [
                "0xd74f8edd",
                "0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf23a6e61",
            "selector": "0xf23a6e61",
            "calldata_variants": [
                "0xf23a6e61",
                "0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3acb258",
            "selector": "0xf3acb258",
            "calldata_variants": [
                "0xf3acb258",
                "0xf3acb2580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x02fb0c5e",
            "selector": "0x02fb0c5e",
            "calldata_variants": [
                "0x02fb0c5e",
                "0x02fb0c5e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1398a5f6",
            "selector": "0x1398a5f6",
            "calldata_variants": [
                "0x1398a5f6",
                "0x1398a5f60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 6548,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x53d72b4b7f1da11f71a14bf699aa936b2f56df286432b202782f5b827fab9fc3
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 22,
    "trace_id": "0x53d72b4b7f1da11f71a14bf699aa936b2f56df286432b202782f5b827fab9fc3",
    "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": "0x7c99df4a",
            "selector": "0x7c99df4a",
            "calldata_variants": [
                "0x7c99df4a",
                "0x7c99df4a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0e67e2b",
            "selector": "0xa0e67e2b",
            "calldata_variants": [
                "0xa0e67e2b",
                "0xa0e67e2b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc6a2a9f1",
            "selector": "0xc6a2a9f1",
            "calldata_variants": [
                "0xc6a2a9f1",
                "0xc6a2a9f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd74f8edd",
            "selector": "0xd74f8edd",
            "calldata_variants": [
                "0xd74f8edd",
                "0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf23a6e61",
            "selector": "0xf23a6e61",
            "calldata_variants": [
                "0xf23a6e61",
                "0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3acb258",
            "selector": "0xf3acb258",
            "calldata_variants": [
                "0xf3acb258",
                "0xf3acb2580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x02fb0c5e",
            "selector": "0x02fb0c5e",
            "calldata_variants": [
                "0x02fb0c5e",
                "0x02fb0c5e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1398a5f6",
            "selector": "0x1398a5f6",
            "calldata_variants": [
                "0x1398a5f6",
                "0x1398a5f60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x923ccc44cf404223315e78396ac44e7e4c27418d71cb8c7c96b8bb026477eeaf
call_targets: 0xb916796bacee1d6553b86ae05d9dd4c5e8d0b057
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x923ccc44cf404223315e78396ac44e7e4c27418d71cb8c7c96b8bb026477eeaf",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb916796bacee1d6553b86ae05d9dd4c5e8d0b057"
    ],
    "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": "0x7c99df4a",
            "selector": "0x7c99df4a",
            "calldata_variants": [
                "0x7c99df4a",
                "0x7c99df4a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0e67e2b",
            "selector": "0xa0e67e2b",
            "calldata_variants": [
                "0xa0e67e2b",
                "0xa0e67e2b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc6a2a9f1",
            "selector": "0xc6a2a9f1",
            "calldata_variants": [
                "0xc6a2a9f1",
                "0xc6a2a9f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd74f8edd",
            "selector": "0xd74f8edd",
            "calldata_variants": [
                "0xd74f8edd",
                "0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf23a6e61",
            "selector": "0xf23a6e61",
            "calldata_variants": [
                "0xf23a6e61",
                "0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3acb258",
            "selector": "0xf3acb258",
            "calldata_variants": [
                "0xf3acb258",
                "0xf3acb2580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x02fb0c5e",
            "selector": "0x02fb0c5e",
            "calldata_variants": [
                "0x02fb0c5e",
                "0x02fb0c5e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1398a5f6",
            "selector": "0x1398a5f6",
            "calldata_variants": [
                "0x1398a5f6",
                "0x1398a5f60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1387,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6563,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [
        {
            "pc": 6548,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 2
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x923ccc44cf404223315e78396ac44e7e4c27418d71cb8c7c96b8bb026477eeaf
call_targets: 0xb916796bacee1d6553b86ae05d9dd4c5e8d0b057
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x923ccc44cf404223315e78396ac44e7e4c27418d71cb8c7c96b8bb026477eeaf",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb916796bacee1d6553b86ae05d9dd4c5e8d0b057"
    ],
    "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": "0x7c99df4a",
            "selector": "0x7c99df4a",
            "calldata_variants": [
                "0x7c99df4a",
                "0x7c99df4a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0e67e2b",
            "selector": "0xa0e67e2b",
            "calldata_variants": [
                "0xa0e67e2b",
                "0xa0e67e2b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc6a2a9f1",
            "selector": "0xc6a2a9f1",
            "calldata_variants": [
                "0xc6a2a9f1",
                "0xc6a2a9f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd74f8edd",
            "selector": "0xd74f8edd",
            "calldata_variants": [
                "0xd74f8edd",
                "0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf23a6e61",
            "selector": "0xf23a6e61",
            "calldata_variants": [
                "0xf23a6e61",
                "0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3acb258",
            "selector": "0xf3acb258",
            "calldata_variants": [
                "0xf3acb258",
                "0xf3acb2580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x02fb0c5e",
            "selector": "0x02fb0c5e",
            "calldata_variants": [
                "0x02fb0c5e",
                "0x02fb0c5e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1398a5f6",
            "selector": "0x1398a5f6",
            "calldata_variants": [
                "0x1398a5f6",
                "0x1398a5f60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1387,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6563,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": [
        {
            "pc": 6548,
            "type": "tx_origin_used"
        }
    ]
}
low other codex External call result ignored; nonce advances even on failed transfer 65 no
view
evidence_json
{
    "evidence": "spend() increments spendNonce before executing destination.call and ignores _ret; it does not revert when sent is false.",
    "locations": [
        "contracts/Contract.sol:spend"
    ],
    "recommendation": "Require the call to succeed and validate ERC20 return data when calling token contracts; revert on failure so the nonce is not consumed and no misleading event is emitted.",
    "exploit_scenario": "A signed spend can fail (e.g., destination reverts or ERC20 returns false without reverting). The contract still increments spendNonce and may emit Spent, consuming the signed nonce and forcing owners to re-sign; for ERC20s that return false, observers may think the transfer succeeded even though it did not."
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}
info auth codex Signed message lacks chain-id domain separation 60 no
view
evidence_json
{
    "evidence": "generateMessageToSign hashes address(this), destination, value, data, spendNonce only.",
    "locations": [
        "contracts/Contract.sol:generateMessageToSign"
    ],
    "recommendation": "Include block.chainid in the signed message (or use EIP-712 domain separation) to prevent cross-chain replay.",
    "exploit_scenario": "If the multisig is deployed at the same address on another chain (e.g., via CREATE2), a valid signature on one chain can be replayed on the other because the signed digest does not include chain-id."
}