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

Analysis Run

019bb491-169f-736c-a71d-6f79af8f0433

complete
Chain ID
1
Address
Block Number
Created
Mon, Jan 12, 2026 11:36 PM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Unprotected initializer allows operator takeover
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
40176 artifact.fetch complete 1 / 3 3 months ago
40177 proxy.resolve complete 1 / 3 3 months ago
40178 tool.cast_disasm complete 1 / 3 3 months ago
40179 analysis.bundle complete 1 / 3 3 months ago
40180 capability.graph complete 1 / 3 3 months ago
40181 detector.run complete 1 / 3 3 months ago
40182 validation.fork complete 1 / 3 3 months ago
40264 report.consolidate complete 1 / 6 3 months ago
40265 tool.slither complete 1 / 2 3 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
0
Solc
0.7.6 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-iuywm5je)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-iuywm5je)

Multicall.multicall(bytes[],bool) (contracts/utils/Multicall.sol#9-35) has external calls inside a loop: (success,result) = address(this).delegatecall(data[i]) (contracts/utils/Multicall.sol#13)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop

Reentrancy in Multicall.multicall(bytes[],bool) (contracts/utils/Multicall.sol#9-35):
	External calls:
	- (success,result) = address(this).delegatecall(data[i]) (contracts/utils/Multicall.sol#13)
	Event emitted after the call(s):
	- MulticallFailure(i,revertReason) (contracts/utils/Multicall.sol#32)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3

UserProxy.toAMM(bytes) (contracts/UserProxy.sol#191-204) uses assembly
	- INLINE ASM (contracts/UserProxy.sol#197-202)
UserProxy.toPMM(bytes) (contracts/UserProxy.sol#209-223) uses assembly
	- INLINE ASM (contracts/UserProxy.sol#216-221)
UserProxy.toRFQ(bytes) (contracts/UserProxy.sol#228-242) uses assembly
	- INLINE ASM (contracts/UserProxy.sol#235-240)
UserProxy.toRFQv2(bytes) (contracts/UserProxy.sol#247-261) uses assembly
	- INLINE ASM (contracts/UserProxy.sol#254-259)
UserProxy.toLimitOrder(bytes) (contracts/UserProxy.sol#266-280) uses assembly
	- INLINE ASM (contracts/UserProxy.sol#273-278)
Multicall.multicall(bytes[],bool) (contracts/utils/Multicall.sol#9-35) uses assembly
	- INLINE ASM (contracts/utils/Multicall.sol#23-25)
AMMWrapperStorage.getStorage() (contracts/utils/UserProxyStorage.sol#16-26) uses assembly
	- INLINE ASM (contracts/utils/UserProxyStorage.sol#23-25)
PMMStorage.getStorage() (contracts/utils/UserProxyStorage.sol#41-51) uses assembly
	- INLINE ASM (contracts/utils/UserProxyStorage.sol#48-50)
RFQStorage.getStorage() (contracts/utils/UserProxyStorage.sol#66-76) uses assembly
	- INLINE ASM (contracts/utils/UserProxyStorage.sol#73-75)
RFQv2Storage.getStorage() (contracts/utils/UserProxyStorage.sol#91-101) uses assembly
	- INLINE ASM (contracts/utils/UserProxyStorage.sol#98-100)
LimitOrderStorage.getStorage() (contracts/utils/UserProxyStorage.sol#116-126) uses assembly
	- INLINE ASM (contracts/utils/UserProxyStorage.sol#123-125)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

3 different versions of Solidity are used:
	- Version constraint 0.7.6 is used by:
		-0.7.6 (contracts/UserProxy.sol#2)
		-0.7.6 (contracts/utils/Multicall.sol#2)
	- Version constraint >=0.7.0 is used by:
		->=0.7.0 (contracts/interfaces/IMulticall.sol#2)
	- Version constraint ^0.7.6 is used by:
		-^0.7.6 (contracts/utils/UserProxyStorage.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used

Version constraint 0.7.6 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation
	- SignedImmutables
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching.
It is used by:
	- 0.7.6 (contracts/UserProxy.sol#2)
	- 0.7.6 (contracts/utils/Multicall.sol#2)
Version constraint >=0.7.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation
	- SignedImmutables
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup.
It is used by:
	- >=0.7.0 (contracts/interfaces/IMulticall.sol#2)
Version constraint ^0.7.6 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation
	- SignedImmutables
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching.
It is used by:
	- ^0.7.6 (contracts/utils/UserProxyStorage.sol#2)
solc-0.7.6 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible.
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Low level call in UserProxy.toAMM(bytes) (contracts/UserProxy.sol#191-204):
	- (callSucceed,None) = ammWrapperAddr().call{value: msg.value}(_payload) (contracts/UserProxy.sol#194)
Low level call in UserProxy.toPMM(bytes) (contracts/UserProxy.sol#209-223):
	- (callSucceed,None) = pmmAddr().call{value: msg.value}(_payload) (contracts/UserProxy.sol#213)
Low level call in UserProxy.toRFQ(bytes) (contracts/UserProxy.sol#228-242):
	- (callSucceed,None) = rfqAddr().call{value: msg.value}(_payload) (contracts/UserProxy.sol#232)
Low level call in UserProxy.toRFQv2(bytes) (contracts/UserProxy.sol#247-261):
	- (callSucceed,None) = rfqv2Addr().call{value: msg.value}(_payload) (contracts/UserProxy.sol#251)
Low level call in UserProxy.toLimitOrder(bytes) (contracts/UserProxy.sol#266-280):
	- (callSucceed,None) = limitOrderAddr().call(_payload) (contracts/UserProxy.sol#270)
Low level call in Multicall.multicall(bytes[],bool) (contracts/utils/Multicall.sol#9-35):
	- (success,result) = address(this).delegatecall(data[i]) (contracts/utils/Multicall.sol#13)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls

Parameter UserProxy.nominateNewOperator(address)._newOperator (contracts/UserProxy.sol#41) is not in mixedCase
Parameter UserProxy.initialize(address)._operator (contracts/UserProxy.sol#60) is not in mixedCase
Parameter UserProxy.setAMMStatus(bool)._enable (contracts/UserProxy.sol#115) is not in mixedCase
Parameter UserProxy.upgradeAMMWrapper(address,bool)._newAMMWrapperAddr (contracts/UserProxy.sol#121) is not in mixedCase
Parameter UserProxy.upgradeAMMWrapper(address,bool)._enable (contracts/UserProxy.sol#121) is not in mixedCase
Parameter UserProxy.setPMMStatus(bool)._enable (contracts/UserProxy.sol#129) is not in mixedCase
Parameter UserProxy.upgradePMM(address,bool)._newPMMAddr (contracts/UserProxy.sol#135) is not in mixedCase
Parameter UserProxy.upgradePMM(address,bool)._enable (contracts/UserProxy.sol#135) is not in mixedCase
Parameter UserProxy.setRFQStatus(bool)._enable (contracts/UserProxy.sol#143) is not in mixedCase
Parameter UserProxy.upgradeRFQ(address,bool)._newRFQAddr (contracts/UserProxy.sol#149) is not in mixedCase
Parameter UserProxy.upgradeRFQ(address,bool)._enable (contracts/UserProxy.sol#149) is not in mixedCase
Parameter UserProxy.setRFQv2Status(bool)._enable (contracts/UserProxy.sol#157) is not in mixedCase
Parameter UserProxy.upgradeRFQv2(address,bool)._newRFQv2Addr (contracts/UserProxy.sol#163) is not in mixedCase
Parameter UserProxy.upgradeRFQv2(address,bool)._enable (contracts/UserProxy.sol#163) is not in mixedCase
Parameter UserProxy.setLimitOrderStatus(bool)._enable (contracts/UserProxy.sol#171) is not in mixedCase
Parameter UserProxy.upgradeLimitOrder(address,bool)._newLimitOrderAddr (contracts/UserProxy.sol#177) is not in mixedCase
Parameter UserProxy.upgradeLimitOrder(address,bool)._enable (contracts/UserProxy.sol#177) is not in mixedCase
Parameter UserProxy.toAMM(bytes)._payload (contracts/UserProxy.sol#191) is not in mixedCase
Parameter UserProxy.toPMM(bytes)._payload (contracts/UserProxy.sol#209) is not in mixedCase
Parameter UserProxy.toRFQ(bytes)._payload (contracts/UserProxy.sol#228) is not in mixedCase
Parameter UserProxy.toRFQv2(bytes)._payload (contracts/UserProxy.sol#247) is not in mixedCase
Parameter UserProxy.toLimitOrder(bytes)._payload (contracts/UserProxy.sol#266) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
. analyzed (8 contracts with 100 detectors), 46 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.7.6",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.7.6",
        "install_stderr": null,
        "install_stdout": "Version '0.7.6' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-iuywm5je --allow-paths /tmp/slither-iuywm5je,/tmp/slither-iuywm5je/lib,/tmp/slither-iuywm5je/src",
    "remappings": [
        "@openzeppelin/=lib/openzeppelin-contracts/",
        "ds-test/=lib/forge-std/lib/ds-test/src/",
        "forge-std/=lib/forge-std/src/",
        "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/"
    ],
    "source_files": [
        "contracts/UserProxy.sol",
        "contracts/utils/UserProxyStorage.sol",
        "contracts/utils/Multicall.sol",
        "contracts/interfaces/IMulticall.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 46,
    "workspace_hash": "1e13b0ed3684860de1abb09c39a7ee185cf0e9a2ababdfc3bbe5d474909caa98",
    "duration_seconds": 0.6302456855773926,
    "solc_version_requested": "0.7.6"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
Summary
One high-severity access control issue: the initializer is publicly callable and can be seized if deployment is not atomically initialized.
View stdout
{"no_findings":false,"summary":"One high-severity access control issue: the initializer is publicly callable and can be seized if deployment is not atomically initialized.","findings":[{"severity":"high","category":"access_control","title":"Unprotected initializer allows operator takeover","exploit_scenario":"If the contract is deployed without immediately calling `initialize`, any account can call it first and set themselves as `operator`. The attacker can then upgrade AMM/PMM/RFQ/LimitOrder addresses to malicious contracts or disable routes, potentially redirecting user calls and funds.","recommendation":"Protect `initialize` with an access control mechanism (e.g., only deployer or a trusted factory), or use a constructor-based initialization in non-proxy deployments. For proxies, adopt OpenZeppelin Initializable and restrict initialization to the admin, ensuring it is called in the same transaction as deployment.","evidence":"`initialize` is `external` with only a version-empty check and no access control.","locations":["contracts/UserProxy.sol:60"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-_bqayh9j
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb4c5-4a09-7453-87d3-8d6f4ca1d6b4
--------
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

thinking
**Reading AUDIT_BUNDLE.txt with shell**
exec
/bin/bash -lc ls in /tmp/codex-_bqayh9j succeeded in 9ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-_bqayh9j succeeded in 6ms:
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/UserProxy.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;
pragma abicoder v2;

import "./utils/UserProxyStorage.sol";
import "./utils/Multicall.sol";

/**
 * @dev UserProxy contract
 */
contract UserProxy is Multicall {
    // Below are the variables which consume storage slots.
    address public operator;
    string public version; // Current version of the contract

thinking
**Analyzing contract for unprotected initialization vulnerability**

I'm auditing the UserProxy contract for security issues and found a high-severity risk: the initialize function lacks access control and can be called by anyone if the version string is empty, allowing operator takeover. The contract seems to behave like a proxy but without proper protection in initialize, exposing it to hijack if not initialized immediately after deployment. Other areas like multicall’s delegatecall and reentrancy appear safe, and tx.origin use is a restriction rather than a vulnerability. Overall, unprotected initialization is the main concern, matching access control risk, and I'll identify code locations with best-guess line numbers if possible.
exec
/bin/bash -lc "nl -ba contracts/UserProxy.sol | sed -n '1,200p'" in /tmp/codex-_bqayh9j succeeded in 6ms:
     1	// SPDX-License-Identifier: MIT
     2	pragma solidity 0.7.6;
     3	pragma abicoder v2;
     4	
     5	import "./utils/UserProxyStorage.sol";
     6	import "./utils/Multicall.sol";
     7	
     8	/**
     9	 * @dev UserProxy contract
    10	 */
    11	contract UserProxy is Multicall {
    12	    // Below are the variables which consume storage slots.
    13	    address public operator;
    14	    string public version; // Current version of the contract
    15	    address private nominatedOperator;
    16	
    17	    // Operator events
    18	    event OperatorNominated(address indexed newOperator);
    19	    event OperatorChanged(address indexed oldOperator, address indexed newOperator);
    20	    event SetAMMStatus(bool enable);
exec
/bin/bash -lc "nl -ba contracts/UserProxy.sol | sed -n '200,400p'" in /tmp/codex-_bqayh9j succeeded in 7ms:
   200	                returndatacopy(ptr, 0, size)
   201	                revert(ptr, size)
   202	            }
   203	        }
   204	    }
   205	
   206	    /**
   207	     * @dev proxy the call to PMM
   208	     */
   209	    function toPMM(bytes calldata _payload) external payable {
   210	        require(isPMMEnabled(), "UserProxy: PMM is disabled");
   211	        require(msg.sender == tx.origin, "UserProxy: only EOA");
   212	
   213	        (bool callSucceed, ) = pmmAddr().call{ value: msg.value }(_payload);
   214	        if (!callSucceed) {
   215	            // revert with data from last call
   216	            assembly {
   217	                let ptr := mload(0x40)
   218	                let size := returndatasize()
   219	                returndatacopy(ptr, 0, size)

thinking
**Composing detailed JSON schema output**

I’m putting together a JSON schema for the codex output including a high-severity finding about an initialization vulnerability in `contracts/UserProxy.sol` at line 60. I’ll include a concise summary, exploit scenario, recommendation, and evidence with exact locations, making sure the JSON is valid and covers no findings if applicable.
codex
{"no_findings":false,"summary":"One high-severity access control issue: the initializer is publicly callable and can be seized if deployment is not atomically initialized.","findings":[{"severity":"high","category":"access_control","title":"Unprotected initializer allows operator takeover","exploit_scenario":"If the contract is deployed without immediately calling `initialize`, any account can call it first and set themselves as `operator`. The attacker can then upgrade AMM/PMM/RFQ/LimitOrder addresses to malicious contracts or disable routes, potentially redirecting user calls and funds.","recommendation":"Protect `initialize` with an access control mechanism (e.g., only deployer or a trusted factory), or use a constructor-based initialization in non-proxy deployments. For proxies, adopt OpenZeppelin Initializable and restrict initialization to the admin, ensuring it is called in the same transaction as deployment.","evidence":"`initialize` is `external` with only a version-empty check and no access control.","locations":["contracts/UserProxy.sol:60"]}]}
tokens used
10,554
Metadata
{
    "codex": {
        "ran_at": "2026-01-13T00:33:48.505052+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 4,
        "import_count": 3,
        "first_party_contracts_count": 4
    },
    "summary": "One high-severity access control issue: the initializer is publicly callable and can be seized if deployment is not atomically initialized.",
    "raw_final": {
        "summary": "One high-severity access control issue: the initializer is publicly callable and can be seized if deployment is not atomically initialized.",
        "findings": [
            {
                "title": "Unprotected initializer allows operator takeover",
                "category": "access_control",
                "evidence": "`initialize` is `external` with only a version-empty check and no access control.",
                "severity": "high",
                "locations": [
                    "contracts/UserProxy.sol:60"
                ],
                "recommendation": "Protect `initialize` with an access control mechanism (e.g., only deployer or a trusted factory), or use a constructor-based initialization in non-proxy deployments. For proxies, adopt OpenZeppelin Initializable and restrict initialization to the admin, ensuring it is called in the same transaction as deployment.",
                "exploit_scenario": "If the contract is deployed without immediately calling `initialize`, any account can call it first and set themselves as `operator`. The attacker can then upgrade AMM/PMM/RFQ/LimitOrder addresses to malicious contracts or disable routes, potentially redirecting user calls and funds."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
0
Total opcodes
4112
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x01dc
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x8014bd97
00000019: GT
0000001a: PUSH2 0x0102
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xbbd3f638
00000024: GT
00000025: PUSH2 0x0095
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xde83cd54
0000002f: GT
00000030: PUSH2 0x0064
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xde83cd54
0000003a: EQ
0000003b: PUSH2 0x04dd
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xe47d166c
00000045: EQ
00000046: PUSH2 0x04fd
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xe5f23b16
00000050: EQ
00000051: PUSH2 0x0510
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xec559084
0000005b: EQ
0000005c: PUSH2 0x0530
0000005f: JUMPI
00000060: PUSH2 0x01e3
00000063: JUMP
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0xbbd3f638
0000006b: EQ
0000006c: PUSH2 0x0468
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xc37197d3
00000076: EQ
00000077: PUSH2 0x047d
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xc3e92075
00000081: EQ
00000082: PUSH2 0x049d
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xc4d66de8
0000008c: EQ
0000008d: PUSH2 0x04bd
00000090: JUMPI
00000091: PUSH2 0x01e3
00000094: JUMP
00000095: JUMPDEST
00000096: DUP1
00000097: PUSH4 0xa32fe0a1
0000009c: GT
0000009d: PUSH2 0x00d1
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xa32fe0a1
000000a7: EQ
000000a8: PUSH2 0x040b
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xa9204ecf
000000b2: EQ
000000b3: PUSH2 0x041e
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xa9dc9f69
000000bd: EQ
000000be: PUSH2 0x043e
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0xb6f732ae
000000c8: EQ
000000c9: PUSH2 0x0453
000000cc: JUMPI
000000cd: PUSH2 0x01e3
000000d0: JUMP
000000d1: JUMPDEST
000000d2: DUP1
000000d3: PUSH4 0x8014bd97
000000d8: EQ
000000d9: PUSH2 0x03b9
000000dc: JUMPI
000000dd: DUP1
000000de: PUSH4 0x93811c8a
000000e3: EQ
000000e4: PUSH2 0x03ce
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0x994dd72e
000000ee: EQ
000000ef: PUSH2 0x03e3
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0xa1728b0d
000000f9: EQ
000000fa: PUSH2 0x03f8
000000fd: JUMPI
000000fe: PUSH2 0x01e3
00000101: JUMP
00000102: JUMPDEST
00000103: DUP1
00000104: PUSH4 0x4ff62bf5
00000109: GT
0000010a: PUSH2 0x017a
0000010d: JUMPI
0000010e: DUP1
0000010f: PUSH4 0x706b4eb8
00000114: GT
00000115: PUSH2 0x0149
00000118: JUMPI
00000119: DUP1
0000011a: PUSH4 0x706b4eb8
0000011f: EQ
00000120: PUSH2 0x034f
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x79ba5097
0000012a: EQ
0000012b: PUSH2 0x036f
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0x7c305b1d
00000135: EQ
00000136: PUSH2 0x0384
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0x7f54479a
00000140: EQ
00000141: PUSH2 0x03a4
00000144: JUMPI
00000145: PUSH2 0x01e3
00000148: JUMP
00000149: JUMPDEST
0000014a: DUP1
0000014b: PUSH4 0x4ff62bf5
00000150: EQ
00000151: PUSH2 0x02e3
00000154: JUMPI
00000155: DUP1
00000156: PUSH4 0x54fd4d50
0000015b: EQ
0000015c: PUSH2 0x0305
0000015f: JUMPI
00000160: DUP1
00000161: PUSH4 0x570ca735
00000166: EQ
00000167: PUSH2 0x0327
0000016a: JUMPI
0000016b: DUP1
0000016c: PUSH4 0x628930b9
00000171: EQ
00000172: PUSH2 0x033c
00000175: JUMPI
00000176: PUSH2 0x01e3
00000179: JUMP
0000017a: JUMPDEST
0000017b: DUP1
0000017c: PUSH4 0x298a91fd
00000181: GT
00000182: PUSH2 0x01b6
00000185: JUMPI
00000186: DUP1
00000187: PUSH4 0x298a91fd
0000018c: EQ
0000018d: PUSH2 0x0261
00000190: JUMPI
00000191: DUP1
00000192: PUSH4 0x41fc048d
00000197: EQ
00000198: PUSH2 0x0283
0000019b: JUMPI
0000019c: DUP1
0000019d: PUSH4 0x46f04170
000001a2: EQ
000001a3: PUSH2 0x02a3
000001a6: JUMPI
000001a7: DUP1
000001a8: PUSH4 0x4daadf12
000001ad: EQ
000001ae: PUSH2 0x02c3
000001b1: JUMPI
000001b2: PUSH2 0x01e3
000001b5: JUMP
000001b6: JUMPDEST
000001b7: DUP1
000001b8: PUSH4 0x0d6274ac
000001bd: EQ
000001be: PUSH2 0x01e8
000001c1: JUMPI
000001c2: DUP1
000001c3: PUSH4 0x1e9701d4
000001c8: EQ
000001c9: PUSH2 0x020a
000001cc: JUMPI
000001cd: DUP1
000001ce: PUSH4 0x223196b3
000001d3: EQ
000001d4: PUSH2 0x0241
000001d7: JUMPI
000001d8: PUSH2 0x01e3
000001db: JUMP
000001dc: JUMPDEST
000001dd: CALLDATASIZE
000001de: PUSH2 0x01e3
000001e1: JUMPI
000001e2: STOP
000001e3: JUMPDEST
000001e4: PUSH1 0x00
000001e6: DUP1
000001e7: REVERT
000001e8: JUMPDEST
000001e9: CALLVALUE
000001ea: DUP1
000001eb: ISZERO
000001ec: PUSH2 0x01f4
000001ef: JUMPI
000001f0: PUSH1 0x00
000001f2: DUP1
000001f3: REVERT
000001f4: JUMPDEST
000001f5: POP
000001f6: PUSH2 0x0208
000001f9: PUSH2 0x0203
000001fc: CALLDATASIZE
000001fd: PUSH1 0x04
000001ff: PUSH2 0x1546
00000202: JUMP
00000203: JUMPDEST
00000204: PUSH2 0x0545
00000207: JUMP
00000208: JUMPDEST
00000209: STOP
0000020a: JUMPDEST
0000020b: CALLVALUE
0000020c: DUP1
0000020d: ISZERO
0000020e: PUSH2 0x0216
00000211: JUMPI
00000212: PUSH1 0x00
00000214: DUP1
00000215: REVERT
00000216: JUMPDEST
00000217: POP
00000218: PUSH2 0x022a
0000021b: PUSH2 0x0225
0000021e: CALLDATASIZE
0000021f: PUSH1 0x04
00000221: PUSH2 0x1578
00000224: JUMP
00000225: JUMPDEST
00000226: PUSH2 0x0635
00000229: JUMP
0000022a: JUMPDEST
0000022b: PUSH1 0x40
0000022d: MLOAD
0000022e: PUSH2 0x0238
00000231: SWAP3
00000232: SWAP2
00000233: SWAP1
00000234: PUSH2 0x17d7
00000237: JUMP
00000238: JUMPDEST
00000239: PUSH1 0x40
0000023b: MLOAD
0000023c: DUP1
0000023d: SWAP2
0000023e: SUB
0000023f: SWAP1
00000240: RETURN
00000241: JUMPDEST
00000242: CALLVALUE
00000243: DUP1
00000244: ISZERO
00000245: PUSH2 0x024d
00000248: JUMPI
00000249: PUSH1 0x00
0000024b: DUP1
0000024c: REVERT
0000024d: JUMPDEST
0000024e: POP
0000024f: PUSH2 0x0208
00000252: PUSH2 0x025c
00000255: CALLDATASIZE
00000256: PUSH1 0x04
00000258: PUSH2 0x1525
0000025b: JUMP
0000025c: JUMPDEST
0000025d: PUSH2 0x0857
00000260: JUMP
00000261: JUMPDEST
00000262: CALLVALUE
00000263: DUP1
00000264: ISZERO
00000265: PUSH2 0x026d
00000268: JUMPI
00000269: PUSH1 0x00
0000026b: DUP1
0000026c: REVERT
0000026d: JUMPDEST
0000026e: POP
0000026f: PUSH2 0x0276
00000272: PUSH2 0x08f1
00000275: JUMP
00000276: JUMPDEST
00000277: PUSH1 0x40
00000279: MLOAD
0000027a: PUSH2 0x0238
0000027d: SWAP2
0000027e: SWAP1
0000027f: PUSH2 0x17c3
00000282: JUMP
00000283: JUMPDEST
00000284: CALLVALUE
00000285: DUP1
00000286: ISZERO
00000287: PUSH2 0x028f
0000028a: JUMPI
0000028b: PUSH1 0x00
0000028d: DUP1
0000028e: REVERT
0000028f: JUMPDEST
00000290: POP
00000291: PUSH2 0x0208
00000294: PUSH2 0x029e
00000297: CALLDATASIZE
00000298: PUSH1 0x04
0000029a: PUSH2 0x15f6
0000029d: JUMP
0000029e: JUMPDEST
0000029f: PUSH2 0x090a
000002a2: JUMP
000002a3: JUMPDEST
000002a4: CALLVALUE
000002a5: DUP1
000002a6: ISZERO
000002a7: PUSH2 0x02af
000002aa: JUMPI
000002ab: PUSH1 0x00
000002ad: DUP1
000002ae: REVERT
000002af: JUMPDEST
000002b0: POP
000002b1: PUSH2 0x0208
000002b4: PUSH2 0x02be
000002b7: CALLDATASIZE
000002b8: PUSH1 0x04
000002ba: PUSH2 0x1546
000002bd: JUMP
000002be: JUMPDEST
000002bf: PUSH2 0x0992
000002c2: JUMP
000002c3: JUMPDEST
000002c4: CALLVALUE
000002c5: DUP1
000002c6: ISZERO
000002c7: PUSH2 0x02cf
000002ca: JUMPI
000002cb: PUSH1 0x00
000002cd: DUP1
000002ce: REVERT
000002cf: JUMPDEST
000002d0: POP
000002d1: PUSH2 0x0208
000002d4: PUSH2 0x02de
000002d7: CALLDATASIZE
000002d8: PUSH1 0x04
000002da: PUSH2 0x15f6
000002dd: JUMP
000002de: JUMPDEST
000002df: PUSH2 0x0a6d
000002e2: JUMP
000002e3: JUMPDEST
000002e4: CALLVALUE
000002e5: DUP1
000002e6: ISZERO
000002e7: PUSH2 0x02ef
000002ea: JUMPI
000002eb: PUSH1 0x00
000002ed: DUP1
000002ee: REVERT
000002ef: JUMPDEST
000002f0: POP
000002f1: PUSH2 0x02f8
000002f4: PUSH2 0x0aea
000002f7: JUMP
000002f8: JUMPDEST
000002f9: PUSH1 0x40
000002fb: MLOAD
000002fc: PUSH2 0x0238
000002ff: SWAP2
00000300: SWAP1
00000301: PUSH2 0x186e
00000304: JUMP
00000305: JUMPDEST
00000306: CALLVALUE
00000307: DUP1
00000308: ISZERO
00000309: PUSH2 0x0311
0000030c: JUMPI
0000030d: PUSH1 0x00
0000030f: DUP1
00000310: REVERT
00000311: JUMPDEST
00000312: POP
00000313: PUSH2 0x031a
00000316: PUSH2 0x0b04
00000319: JUMP
0000031a: JUMPDEST
0000031b: PUSH1 0x40
0000031d: MLOAD
0000031e: PUSH2 0x0238
00000321: SWAP2
00000322: SWAP1
00000323: PUSH2 0x1879
00000326: JUMP
00000327: JUMPDEST
00000328: CALLVALUE
00000329: DUP1
0000032a: ISZERO
0000032b: PUSH2 0x0333
0000032e: JUMPI
0000032f: PUSH1 0x00
00000331: DUP1
00000332: REVERT
00000333: JUMPDEST
00000334: POP
00000335: PUSH2 0x0276
00000338: PUSH2 0x0b91
0000033b: JUMP
0000033c: JUMPDEST
0000033d: PUSH2 0x0208
00000340: PUSH2 0x034a
00000343: CALLDATASIZE
00000344: PUSH1 0x04
00000346: PUSH2 0x1610
00000349: JUMP
0000034a: JUMPDEST
0000034b: PUSH2 0x0ba0
0000034e: JUMP
0000034f: JUMPDEST
00000350: CALLVALUE
00000351: DUP1
00000352: ISZERO
00000353: PUSH2 0x035b
00000356: JUMPI
00000357: PUSH1 0x00
00000359: DUP1
0000035a: REVERT
0000035b: JUMPDEST
0000035c: POP
0000035d: PUSH2 0x0208
00000360: PUSH2 0x036a
00000363: CALLDATASIZE
00000364: PUSH1 0x04
00000366: PUSH2 0x1610
00000369: JUMP
0000036a: JUMPDEST
0000036b: PUSH2 0x0c64
0000036e: JUMP
0000036f: JUMPDEST
00000370: CALLVALUE
00000371: DUP1
00000372: ISZERO
00000373: PUSH2 0x037b
00000376: JUMPI
00000377: PUSH1 0x00
00000379: DUP1
0000037a: REVERT
0000037b: JUMPDEST
0000037c: POP
0000037d: PUSH2 0x0208
00000380: PUSH2 0x0d07
00000383: JUMP
00000384: JUMPDEST
00000385: CALLVALUE
00000386: DUP1
00000387: ISZERO
00000388: PUSH2 0x0390
0000038b: JUMPI
0000038c: PUSH1 0x00
0000038e: DUP1
0000038f: REVERT
00000390: JUMPDEST
00000391: POP
00000392: PUSH2 0x0208
00000395: PUSH2 0x039f
00000398: CALLDATASIZE
00000399: PUSH1 0x04
0000039b: PUSH2 0x1546
0000039e: JUMP
0000039f: JUMPDEST
000003a0: PUSH2 0x0d95
000003a3: JUMP
000003a4: JUMPDEST
000003a5: CALLVALUE
000003a6: DUP1
000003a7: ISZERO
000003a8: PUSH2 0x03b0
000003ab: JUMPI
000003ac: PUSH1 0x00
000003ae: DUP1
000003af: REVERT
000003b0: JUMPDEST
000003b1: POP
000003b2: PUSH2 0x02f8
000003b5: PUSH2 0x0e70
000003b8: JUMP
000003b9: JUMPDEST
000003ba: CALLVALUE
000003bb: DUP1
000003bc: ISZERO
000003bd: PUSH2 0x03c5
000003c0: JUMPI
000003c1: PUSH1 0x00
000003c3: DUP1
000003c4: REVERT
000003c5: JUMPDEST
000003c6: POP
000003c7: PUSH2 0x0276
000003ca: PUSH2 0x0e7a
000003cd: JUMP
000003ce: JUMPDEST
000003cf: CALLVALUE
000003d0: DUP1
000003d1: ISZERO
000003d2: PUSH2 0x03da
000003d5: JUMPI
000003d6: PUSH1 0x00
000003d8: DUP1
000003d9: REVERT
000003da: JUMPDEST
000003db: POP
000003dc: PUSH2 0x0276
000003df: PUSH2 0x0e84
000003e2: JUMP
000003e3: JUMPDEST
000003e4: CALLVALUE
000003e5: DUP1
000003e6: ISZERO
000003e7: PUSH2 0x03ef
000003ea: JUMPI
000003eb: PUSH1 0x00
000003ed: DUP1
000003ee: REVERT
000003ef: JUMPDEST
000003f0: POP
000003f1: PUSH2 0x0276
000003f4: PUSH2 0x0e8e
000003f7: JUMP
000003f8: JUMPDEST
000003f9: PUSH2 0x0208
000003fc: PUSH2 0x0406
000003ff: CALLDATASIZE
00000400: PUSH1 0x04
00000402: PUSH2 0x1610
00000405: JUMP
00000406: JUMPDEST
00000407: PUSH2 0x0e98
0000040a: JUMP
0000040b: JUMPDEST
0000040c: PUSH2 0x0208
0000040f: PUSH2 0x0419
00000412: CALLDATASIZE
00000413: PUSH1 0x04
00000415: PUSH2 0x1610
00000418: JUMP
00000419: JUMPDEST
0000041a: PUSH2 0x0ee5
0000041d: JUMP
0000041e: JUMPDEST
0000041f: CALLVALUE
00000420: DUP1
00000421: ISZERO
00000422: PUSH2 0x042a
00000425: JUMPI
00000426: PUSH1 0x00
00000428: DUP1
00000429: REVERT
0000042a: JUMPDEST
0000042b: POP
0000042c: PUSH2 0x0208
0000042f: PUSH2 0x0439
00000432: CALLDATASIZE
00000433: PUSH1 0x04
00000435: PUSH2 0x15f6
00000438: JUMP
00000439: JUMPDEST
0000043a: PUSH2 0x0f32
0000043d: JUMP
0000043e: JUMPDEST
0000043f: CALLVALUE
00000440: DUP1
00000441: ISZERO
00000442: PUSH2 0x044a
00000445: JUMPI
00000446: PUSH1 0x00
00000448: DUP1
00000449: REVERT
0000044a: JUMPDEST
0000044b: POP
0000044c: PUSH2 0x02f8
0000044f: PUSH2 0x0faf
00000452: JUMP
00000453: JUMPDEST
00000454: CALLVALUE
00000455: DUP1
00000456: ISZERO
00000457: PUSH2 0x045f
0000045a: JUMPI
0000045b: PUSH1 0x00
0000045d: DUP1
0000045e: REVERT
0000045f: JUMPDEST
00000460: POP
00000461: PUSH2 0x0276
00000464: PUSH2 0x0fb9
00000467: JUMP
00000468: JUMPDEST
00000469: CALLVALUE
0000046a: DUP1
0000046b: ISZERO
0000046c: PUSH2 0x0474
0000046f: JUMPI
00000470: PUSH1 0x00
00000472: DUP1
00000473: REVERT
00000474: JUMPDEST
00000475: POP
00000476: PUSH2 0x02f8
00000479: PUSH2 0x0fc3
0000047c: JUMP
0000047d: JUMPDEST
0000047e: CALLVALUE
0000047f: DUP1
00000480: ISZERO
00000481: PUSH2 0x0489
00000484: JUMPI
00000485: PUSH1 0x00
00000487: DUP1
00000488: REVERT
00000489: JUMPDEST
0000048a: POP
0000048b: PUSH2 0x0208
0000048e: PUSH2 0x0498
00000491: CALLDATASIZE
00000492: PUSH1 0x04
00000494: PUSH2 0x1546
00000497: JUMP
00000498: JUMPDEST
00000499: PUSH2 0x0fcd
0000049c: JUMP
0000049d: JUMPDEST
0000049e: CALLVALUE
0000049f: DUP1
000004a0: ISZERO
000004a1: PUSH2 0x04a9
000004a4: JUMPI
000004a5: PUSH1 0x00
000004a7: DUP1
000004a8: REVERT
000004a9: JUMPDEST
000004aa: POP
000004ab: PUSH2 0x0208
000004ae: PUSH2 0x04b8
000004b1: CALLDATASIZE
000004b2: PUSH1 0x04
000004b4: PUSH2 0x1546
000004b7: JUMP
000004b8: JUMPDEST
000004b9: PUSH2 0x10a8
000004bc: JUMP
000004bd: JUMPDEST
000004be: CALLVALUE
000004bf: DUP1
000004c0: ISZERO
000004c1: PUSH2 0x04c9
000004c4: JUMPI
000004c5: PUSH1 0x00
000004c7: DUP1
000004c8: REVERT
000004c9: JUMPDEST
000004ca: POP
000004cb: PUSH2 0x0208
000004ce: PUSH2 0x04d8
000004d1: CALLDATASIZE
000004d2: PUSH1 0x04
000004d4: PUSH2 0x1525
000004d7: JUMP
000004d8: JUMPDEST
000004d9: PUSH2 0x1183
000004dc: JUMP
000004dd: JUMPDEST
000004de: CALLVALUE
000004df: DUP1
000004e0: ISZERO
000004e1: PUSH2 0x04e9
000004e4: JUMPI
000004e5: PUSH1 0x00
000004e7: DUP1
000004e8: REVERT
000004e9: JUMPDEST
000004ea: POP
000004eb: PUSH2 0x0208
000004ee: PUSH2 0x04f8
000004f1: CALLDATASIZE
000004f2: PUSH1 0x04
000004f4: PUSH2 0x15f6
000004f7: JUMP
000004f8: JUMPDEST
000004f9: PUSH2 0x1276
000004fc: JUMP
000004fd: JUMPDEST
000004fe: PUSH2 0x0208
00000501: PUSH2 0x050b
00000504: CALLDATASIZE
00000505: PUSH1 0x04
00000507: PUSH2 0x1610
0000050a: JUMP
0000050b: JUMPDEST
0000050c: PUSH2 0x12f3
0000050f: JUMP
00000510: JUMPDEST
00000511: CALLVALUE
00000512: DUP1
00000513: ISZERO
00000514: PUSH2 0x051c
00000517: JUMPI
00000518: PUSH1 0x00
0000051a: DUP1
0000051b: REVERT
0000051c: JUMPDEST
0000051d: POP
0000051e: PUSH2 0x0208
00000521: PUSH2 0x052b
00000524: CALLDATASIZE
00000525: PUSH1 0x04
00000527: PUSH2 0x15f6
0000052a: JUMP
0000052b: JUMPDEST
0000052c: PUSH2 0x1321
0000052f: JUMP
00000530: JUMPDEST
00000531: CALLVALUE
00000532: DUP1
00000533: ISZERO
00000534: PUSH2 0x053c
00000537: JUMPI
00000538: PUSH1 0x00
0000053a: DUP1
0000053b: REVERT
0000053c: JUMPDEST
0000053d: POP
0000053e: PUSH2 0x02f8
00000541: PUSH2 0x139e
00000544: JUMP
00000545: JUMPDEST
00000546: PUSH1 0x00
00000548: SLOAD
00000549: PUSH1 0x01
0000054b: PUSH1 0x01
0000054d: PUSH1 0xa0
0000054f: SHL
00000550: SUB
00000551: AND
00000552: CALLER
00000553: EQ
00000554: PUSH2 0x0578
00000557: JUMPI
00000558: PUSH1 0x40
0000055a: MLOAD
0000055b: PUSH3 0x461bcd
0000055f: PUSH1 0xe5
00000561: SHL
00000562: DUP2
00000563: MSTORE
00000564: PUSH1 0x04
00000566: ADD
00000567: PUSH2 0x056f
0000056a: SWAP1
0000056b: PUSH2 0x1a59
0000056e: JUMP
0000056f: JUMPDEST
00000570: PUSH1 0x40
00000572: MLOAD
00000573: DUP1
00000574: SWAP2
00000575: SUB
00000576: SWAP1
00000577: REVERT
00000578: JUMPDEST
00000579: DUP2
0000057a: PUSH2 0x0581
0000057d: PUSH2 0x13a4
00000580: JUMP
00000581: JUMPDEST
00000582: DUP1
00000583: SLOAD
00000584: PUSH1 0x01
00000586: PUSH1 0x01
00000588: PUSH1 0xa0
0000058a: SHL
0000058b: SUB
0000058c: NOT
0000058d: AND
0000058e: PUSH1 0x01
00000590: PUSH1 0x01
00000592: PUSH1 0xa0
00000594: SHL
00000595: SUB
00000596: SWAP3
00000597: SWAP1
00000598: SWAP3
00000599: AND
0000059a: SWAP2
0000059b: SWAP1
0000059c: SWAP2
0000059d: OR
0000059e: SWAP1
0000059f: SSTORE
000005a0: DUP1
000005a1: PUSH2 0x05a8
000005a4: PUSH2 0x13a4
000005a7: JUMP
000005a8: JUMPDEST
000005a9: DUP1
000005aa: SLOAD
000005ab: SWAP2
000005ac: ISZERO
000005ad: ISZERO
000005ae: PUSH1 0x01
000005b0: PUSH1 0xa0
000005b2: SHL
000005b3: MUL
000005b4: PUSH1 0xff
000005b6: PUSH1 0xa0
000005b8: SHL
000005b9: NOT
000005ba: SWAP1
000005bb: SWAP3
000005bc: AND
000005bd: SWAP2
000005be: SWAP1
000005bf: SWAP2
000005c0: OR
000005c1: SWAP1
000005c2: SSTORE
000005c3: PUSH1 0x40
000005c5: MLOAD
000005c6: PUSH32 0x28e34087108910d7a3d1de15bdebe33e9b7ce4be78c6987103983875f4fbb903
000005e7: SWAP1
000005e8: PUSH2 0x05f2
000005eb: SWAP1
000005ec: DUP5
000005ed: SWAP1
000005ee: PUSH2 0x17c3
000005f1: JUMP
000005f2: JUMPDEST
000005f3: PUSH1 0x40
000005f5: MLOAD
000005f6: DUP1
000005f7: SWAP2
000005f8: SUB
000005f9: SWAP1
000005fa: LOG1
000005fb: PUSH32 0x85600615329dbd38415d95ab88a1870aa23283ed03ea8339bbaf7c53cb6889eb
0000061c: DUP2
0000061d: PUSH1 0x40
0000061f: MLOAD
00000620: PUSH2 0x0629
00000623: SWAP2
00000624: SWAP1
00000625: PUSH2 0x186e
00000628: JUMP
00000629: JUMPDEST
0000062a: PUSH1 0x40
0000062c: MLOAD
0000062d: DUP1
0000062e: SWAP2
0000062f: SUB
00000630: SWAP1
00000631: LOG1
00000632: POP
00000633: POP
00000634: JUMP
00000635: JUMPDEST
00000636: PUSH1 0x60
00000638: DUP1
00000639: DUP4
0000063a: PUSH8 0xffffffffffffffff
00000643: DUP2
00000644: GT
00000645: DUP1
00000646: ISZERO
00000647: PUSH2 0x064f
0000064a: JUMPI
0000064b: PUSH1 0x00
0000064d: DUP1
0000064e: REVERT
0000064f: JUMPDEST
00000650: POP
00000651: PUSH1 0x40
00000653: MLOAD
00000654: SWAP1
00000655: DUP1
00000656: DUP3
00000657: MSTORE
00000658: DUP1
00000659: PUSH1 0x20
0000065b: MUL
0000065c: PUSH1 0x20
0000065e: ADD
0000065f: DUP3
00000660: ADD
00000661: PUSH1 0x40
00000663: MSTORE
00000664: DUP1
00000665: ISZERO
00000666: PUSH2 0x0679
00000669: JUMPI
0000066a: DUP2
0000066b: PUSH1 0x20
0000066d: ADD
0000066e: PUSH1 0x20
00000670: DUP3
00000671: MUL
00000672: DUP1
00000673: CALLDATASIZE
00000674: DUP4
00000675: CALLDATACOPY
00000676: ADD
00000677: SWAP1
00000678: POP
00000679: JUMPDEST
0000067a: POP
0000067b: SWAP2
0000067c: POP
0000067d: DUP4
0000067e: PUSH8 0xffffffffffffffff
00000687: DUP2
00000688: GT
00000689: DUP1
0000068a: ISZERO
0000068b: PUSH2 0x0693
0000068e: JUMPI
0000068f: PUSH1 0x00
00000691: DUP1
00000692: REVERT
00000693: JUMPDEST
00000694: POP
00000695: PUSH1 0x40
00000697: MLOAD
00000698: SWAP1
00000699: DUP1
0000069a: DUP3
0000069b: MSTORE
0000069c: DUP1
0000069d: PUSH1 0x20
0000069f: MUL
000006a0: PUSH1 0x20
000006a2: ADD
000006a3: DUP3
000006a4: ADD
000006a5: PUSH1 0x40
000006a7: MSTORE
000006a8: DUP1
000006a9: ISZERO
000006aa: PUSH2 0x06c7
000006ad: JUMPI
000006ae: DUP2
000006af: PUSH1 0x20
000006b1: ADD
000006b2: JUMPDEST
000006b3: PUSH1 0x60
000006b5: DUP2
000006b6: MSTORE
000006b7: PUSH1 0x20
000006b9: ADD
000006ba: SWAP1
000006bb: PUSH1 0x01
000006bd: SWAP1
000006be: SUB
000006bf: SWAP1
000006c0: DUP2
000006c1: PUSH2 0x06b2
000006c4: JUMPI
000006c5: SWAP1
000006c6: POP
000006c7: JUMPDEST
000006c8: POP
000006c9: SWAP1
000006ca: POP
000006cb: PUSH1 0x00
000006cd: JUMPDEST
000006ce: DUP5
000006cf: DUP2
000006d0: LT
000006d1: ISZERO
000006d2: PUSH2 0x084e
000006d5: JUMPI
000006d6: PUSH1 0x00
000006d8: DUP1
000006d9: ADDRESS
000006da: DUP9
000006db: DUP9
000006dc: DUP6
000006dd: DUP2
000006de: DUP2
000006df: LT
000006e0: PUSH2 0x06e5
000006e3: JUMPI
000006e4: INVALID
000006e5: JUMPDEST
000006e6: SWAP1
000006e7: POP
000006e8: PUSH1 0x20
000006ea: MUL
000006eb: DUP2
000006ec: ADD
000006ed: SWAP1
000006ee: PUSH2 0x06f7
000006f1: SWAP2
000006f2: SWAP1
000006f3: PUSH2 0x1b45
000006f6: JUMP
000006f7: JUMPDEST
000006f8: PUSH1 0x40
000006fa: MLOAD
000006fb: PUSH2 0x0705
000006fe: SWAP3
000006ff: SWAP2
00000700: SWAP1
00000701: PUSH2 0x1740
00000704: JUMP
00000705: JUMPDEST
00000706: PUSH1 0x00
00000708: PUSH1 0x40
0000070a: MLOAD
0000070b: DUP1
0000070c: DUP4
0000070d: SUB
0000070e: DUP2
0000070f: DUP6
00000710: GAS
00000711: DELEGATECALL
00000712: SWAP2
00000713: POP
00000714: POP
00000715: RETURNDATASIZE
00000716: DUP1
00000717: PUSH1 0x00
00000719: DUP2
0000071a: EQ
0000071b: PUSH2 0x0740
0000071e: JUMPI
0000071f: PUSH1 0x40
00000721: MLOAD
00000722: SWAP2
00000723: POP
00000724: PUSH1 0x1f
00000726: NOT
00000727: PUSH1 0x3f
00000729: RETURNDATASIZE
0000072a: ADD
0000072b: AND
0000072c: DUP3
0000072d: ADD
0000072e: PUSH1 0x40
00000730: MSTORE
00000731: RETURNDATASIZE
00000732: DUP3
00000733: MSTORE
00000734: RETURNDATASIZE
00000735: PUSH1 0x00
00000737: PUSH1 0x20
00000739: DUP5
0000073a: ADD
0000073b: RETURNDATACOPY
0000073c: PUSH2 0x0745
0000073f: JUMP
00000740: JUMPDEST
00000741: PUSH1 0x60
00000743: SWAP2
00000744: POP
00000745: JUMPDEST
00000746: POP
00000747: SWAP2
00000748: POP
00000749: SWAP2
0000074a: POP
0000074b: DUP2
0000074c: DUP6
0000074d: DUP5
0000074e: DUP2
0000074f: MLOAD
00000750: DUP2
00000751: LT
00000752: PUSH2 0x0757
00000755: JUMPI
00000756: INVALID
00000757: JUMPDEST
00000758: PUSH1 0x20
0000075a: MUL
0000075b: PUSH1 0x20
0000075d: ADD
0000075e: ADD
0000075f: SWAP1
00000760: ISZERO
00000761: ISZERO
00000762: SWAP1
00000763: DUP2
00000764: ISZERO
00000765: ISZERO
00000766: DUP2
00000767: MSTORE
00000768: POP
00000769: POP
0000076a: DUP1
0000076b: DUP5
0000076c: DUP5
0000076d: DUP2
0000076e: MLOAD
0000076f: DUP2
00000770: LT
00000771: PUSH2 0x0776
00000774: JUMPI
00000775: INVALID
00000776: JUMPDEST
00000777: PUSH1 0x20
00000779: MUL
0000077a: PUSH1 0x20
0000077c: ADD
0000077d: ADD
0000077e: DUP2
0000077f: SWAP1
00000780: MSTORE
00000781: POP
00000782: DUP2
00000783: PUSH2 0x0844
00000786: JUMPI
00000787: PUSH1 0x60
00000789: PUSH1 0x44
0000078b: DUP3
0000078c: MLOAD
0000078d: LT
0000078e: ISZERO
0000078f: PUSH2 0x07cc
00000792: JUMPI
00000793: POP
00000794: PUSH1 0x40
00000796: DUP1
00000797: MLOAD
00000798: DUP1
00000799: DUP3
0000079a: ADD
0000079b: SWAP1
0000079c: SWAP2
0000079d: MSTORE
0000079e: PUSH1 0x13
000007a0: DUP2
000007a1: MSTORE
000007a2: PUSH32 0x44656c656761746563616c6c206661696c656400000000000000000000000000
000007c3: PUSH1 0x20
000007c5: DUP3
000007c6: ADD
000007c7: MSTORE
000007c8: PUSH2 0x07e9
000007cb: JUMP
000007cc: JUMPDEST
000007cd: PUSH1 0x04
000007cf: DUP3
000007d0: ADD
000007d1: SWAP2
000007d2: POP
000007d3: DUP2
000007d4: DUP1
000007d5: PUSH1 0x20
000007d7: ADD
000007d8: SWAP1
000007d9: MLOAD
000007da: DUP2
000007db: ADD
000007dc: SWAP1
000007dd: PUSH2 0x07e6
000007e0: SWAP2
000007e1: SWAP1
000007e2: PUSH2 0x167d
000007e5: JUMP
000007e6: JUMPDEST
000007e7: SWAP1
000007e8: POP
000007e9: JUMPDEST
000007ea: DUP7
000007eb: ISZERO
000007ec: PUSH2 0x0809
000007ef: JUMPI
000007f0: DUP1
000007f1: PUSH1 0x40
000007f3: MLOAD
000007f4: PUSH3 0x461bcd
000007f8: PUSH1 0xe5
000007fa: SHL
000007fb: DUP2
000007fc: MSTORE
000007fd: PUSH1 0x04
000007ff: ADD
00000800: PUSH2 0x056f
00000803: SWAP2
00000804: SWAP1
00000805: PUSH2 0x1879
00000808: JUMP
00000809: JUMPDEST
0000080a: PUSH32 0x8227e69dc43e5a3dff3c9e10930295a5383b9e7736b0508e15d46d05efecb4a6
0000082b: DUP5
0000082c: DUP3
0000082d: PUSH1 0x40
0000082f: MLOAD
00000830: PUSH2 0x083a
00000833: SWAP3
00000834: SWAP2
00000835: SWAP1
00000836: PUSH2 0x1b24
00000839: JUMP
0000083a: JUMPDEST
0000083b: PUSH1 0x40
0000083d: MLOAD
0000083e: DUP1
0000083f: SWAP2
00000840: SUB
00000841: SWAP1
00000842: LOG1
00000843: POP
00000844: JUMPDEST
00000845: POP
00000846: POP
00000847: PUSH1 0x01
00000849: ADD
0000084a: PUSH2 0x06cd
0000084d: JUMP
0000084e: JUMPDEST
0000084f: POP
00000850: SWAP4
00000851: POP
00000852: SWAP4
00000853: SWAP2
00000854: POP
00000855: POP
00000856: JUMP
00000857: JUMPDEST
00000858: PUSH1 0x00
0000085a: SLOAD
0000085b: PUSH1 0x01
0000085d: PUSH1 0x01
0000085f: PUSH1 0xa0
00000861: SHL
00000862: SUB
00000863: AND
00000864: CALLER
00000865: EQ
00000866: PUSH2 0x0881
00000869: JUMPI
0000086a: PUSH1 0x40
0000086c: MLOAD
0000086d: PUSH3 0x461bcd
00000871: PUSH1 0xe5
00000873: SHL
00000874: DUP2
00000875: MSTORE
00000876: PUSH1 0x04
00000878: ADD
00000879: PUSH2 0x056f
0000087c: SWAP1
0000087d: PUSH2 0x1a59
00000880: JUMP
00000881: JUMPDEST
00000882: PUSH1 0x01
00000884: PUSH1 0x01
00000886: PUSH1 0xa0
00000888: SHL
00000889: SUB
0000088a: DUP2
0000088b: AND
0000088c: PUSH2 0x08a7
0000088f: JUMPI
00000890: PUSH1 0x40
00000892: MLOAD
00000893: PUSH3 0x461bcd
00000897: PUSH1 0xe5
00000899: SHL
0000089a: DUP2
0000089b: MSTORE
0000089c: PUSH1 0x04
0000089e: ADD
0000089f: PUSH2 0x056f
000008a2: SWAP1
000008a3: PUSH2 0x188c
000008a6: JUMP
000008a7: JUMPDEST
000008a8: PUSH1 0x02
000008aa: DUP1
000008ab: SLOAD
000008ac: PUSH1 0x01
000008ae: PUSH1 0x01
000008b0: PUSH1 0xa0
000008b2: SHL
000008b3: SUB
000008b4: NOT
000008b5: AND
000008b6: PUSH1 0x01
000008b8: PUSH1 0x01
000008ba: PUSH1 0xa0
000008bc: SHL
000008bd: SUB
000008be: DUP4
000008bf: AND
000008c0: SWAP1
000008c1: DUP2
000008c2: OR
000008c3: SWAP1
000008c4: SWAP2
000008c5: SSTORE
000008c6: PUSH1 0x40
000008c8: MLOAD
000008c9: PUSH32 0x8cc0f93a743dada018f348511be65ee8585206ca96e058f4d70c41f276e57bde
000008ea: SWAP1
000008eb: PUSH1 0x00
000008ed: SWAP1
000008ee: LOG2
000008ef: POP
000008f0: JUMP
000008f1: JUMPDEST
000008f2: PUSH1 0x00
000008f4: PUSH2 0x08fb
000008f7: PUSH2 0x13a4
000008fa: JUMP
000008fb: JUMPDEST
000008fc: SLOAD
000008fd: PUSH1 0x01
000008ff: PUSH1 0x01
00000901: PUSH1 0xa0
00000903: SHL
00000904: SUB
00000905: AND
00000906: SWAP1
00000907: POP
00000908: SWAP1
00000909: JUMP
0000090a: JUMPDEST
0000090b: PUSH1 0x00
0000090d: SLOAD
0000090e: PUSH1 0x01
00000910: PUSH1 0x01
00000912: PUSH1 0xa0
00000914: SHL
00000915: SUB
00000916: AND
00000917: CALLER
00000918: EQ
00000919: PUSH2 0x0934
0000091c: JUMPI
0000091d: PUSH1 0x40
0000091f: MLOAD
00000920: PUSH3 0x461bcd
00000924: PUSH1 0xe5
00000926: SHL
00000927: DUP2
00000928: MSTORE
00000929: PUSH1 0x04
0000092b: ADD
0000092c: PUSH2 0x056f
0000092f: SWAP1
00000930: PUSH2 0x1a59
00000933: JUMP
00000934: JUMPDEST
00000935: DUP1
00000936: PUSH2 0x093d
00000939: PUSH2 0x13c8
0000093c: JUMP
0000093d: JUMPDEST
0000093e: DUP1
0000093f: SLOAD
00000940: SWAP2
00000941: ISZERO
00000942: ISZERO
00000943: PUSH1 0x01
00000945: PUSH1 0xa0
00000947: SHL
00000948: MUL
00000949: PUSH1 0xff
0000094b: PUSH1 0xa0
0000094d: SHL
0000094e: NOT
0000094f: SWAP1
00000950: SWAP3
00000951: AND
00000952: SWAP2
00000953: SWAP1
00000954: SWAP2
00000955: OR
00000956: SWAP1
00000957: SSTORE
00000958: PUSH1 0x40
0000095a: MLOAD
0000095b: PUSH32 0x69013db8b04c8782a3bfb1988607e4cb48e1476125c4a9f2e08199916281becf
0000097c: SWAP1
0000097d: PUSH2 0x0987
00000980: SWAP1
00000981: DUP4
00000982: SWAP1
00000983: PUSH2 0x186e
00000986: JUMP
00000987: JUMPDEST
00000988: PUSH1 0x40
0000098a: MLOAD
0000098b: DUP1
0000098c: SWAP2
0000098d: SUB
0000098e: SWAP1
0000098f: LOG1
00000990: POP
00000991: JUMP
00000992: JUMPDEST
00000993: PUSH1 0x00
00000995: SLOAD
00000996: PUSH1 0x01
00000998: PUSH1 0x01
0000099a: PUSH1 0xa0
0000099c: SHL
0000099d: SUB
0000099e: AND
0000099f: CALLER
000009a0: EQ
000009a1: PUSH2 0x09bc
000009a4: JUMPI
000009a5: PUSH1 0x40
000009a7: MLOAD
000009a8: PUSH3 0x461bcd
000009ac: PUSH1 0xe5
000009ae: SHL
000009af: DUP2
000009b0: MSTORE
000009b1: PUSH1 0x04
000009b3: ADD
000009b4: PUSH2 0x056f
000009b7: SWAP1
000009b8: PUSH2 0x1a59
000009bb: JUMP
000009bc: JUMPDEST
000009bd: DUP2
000009be: PUSH2 0x09c5
000009c1: PUSH2 0x13ec
000009c4: JUMP
000009c5: JUMPDEST
000009c6: DUP1
000009c7: SLOAD
000009c8: PUSH1 0x01
000009ca: PUSH1 0x01
000009cc: PUSH1 0xa0
000009ce: SHL
000009cf: SUB
000009d0: NOT
000009d1: AND
000009d2: PUSH1 0x01
000009d4: PUSH1 0x01
000009d6: PUSH1 0xa0
000009d8: SHL
000009d9: SUB
000009da: SWAP3
000009db: SWAP1
000009dc: SWAP3
000009dd: AND
000009de: SWAP2
000009df: SWAP1
000009e0: SWAP2
000009e1: OR
000009e2: SWAP1
000009e3: SSTORE
000009e4: DUP1
000009e5: PUSH2 0x09ec
000009e8: PUSH2 0x13ec
000009eb: JUMP
000009ec: JUMPDEST
000009ed: DUP1
000009ee: SLOAD
000009ef: SWAP2
000009f0: ISZERO
000009f1: ISZERO
000009f2: PUSH1 0x01
000009f4: PUSH1 0xa0
000009f6: SHL
000009f7: MUL
000009f8: PUSH1 0xff
000009fa: PUSH1 0xa0
000009fc: SHL
000009fd: NOT
000009fe: SWAP1
000009ff: SWAP3
00000a00: AND
00000a01: SWAP2
00000a02: SWAP1
00000a03: SWAP2
00000a04: OR
00000a05: SWAP1
00000a06: SSTORE
00000a07: PUSH1 0x40
00000a09: MLOAD
00000a0a: PUSH32 0x474dbe0e44f4b1a24e66b1a543293f696f5f72651de8895adf45233e3c6948bb
00000a2b: SWAP1
00000a2c: PUSH2 0x0a36
00000a2f: SWAP1
00000a30: DUP5
00000a31: SWAP1
00000a32: PUSH2 0x17c3
00000a35: JUMP
00000a36: JUMPDEST
00000a37: PUSH1 0x40
00000a39: MLOAD
00000a3a: DUP1
00000a3b: SWAP2
00000a3c: SUB
00000a3d: SWAP1
00000a3e: LOG1
00000a3f: PUSH32 0x75f3afb50142265ab5ffa96a1281463cb3a39821dfcafd44d5bcda0dbf1c4825
00000a60: DUP2
00000a61: PUSH1 0x40
00000a63: MLOAD
00000a64: PUSH2 0x0629
00000a67: SWAP2
00000a68: SWAP1
00000a69: PUSH2 0x186e
00000a6c: JUMP
00000a6d: JUMPDEST
00000a6e: PUSH1 0x00
00000a70: SLOAD
00000a71: PUSH1 0x01
00000a73: PUSH1 0x01
00000a75: PUSH1 0xa0
00000a77: SHL
00000a78: SUB
00000a79: AND
00000a7a: CALLER
00000a7b: EQ
00000a7c: PUSH2 0x0a97
00000a7f: JUMPI
00000a80: PUSH1 0x40
00000a82: MLOAD
00000a83: PUSH3 0x461bcd
00000a87: PUSH1 0xe5
00000a89: SHL
00000a8a: DUP2
00000a8b: MSTORE
00000a8c: PUSH1 0x04
00000a8e: ADD
00000a8f: PUSH2 0x056f
00000a92: SWAP1
00000a93: PUSH2 0x1a59
00000a96: JUMP
00000a97: JUMPDEST
00000a98: DUP1
00000a99: PUSH2 0x0aa0
00000a9c: PUSH2 0x13ec
00000a9f: JUMP
00000aa0: JUMPDEST
00000aa1: DUP1
00000aa2: SLOAD
00000aa3: SWAP2
00000aa4: ISZERO
00000aa5: ISZERO
00000aa6: PUSH1 0x01
00000aa8: PUSH1 0xa0
00000aaa: SHL
00000aab: MUL
00000aac: PUSH1 0xff
00000aae: PUSH1 0xa0
00000ab0: SHL
00000ab1: NOT
00000ab2: SWAP1
00000ab3: SWAP3
00000ab4: AND
00000ab5: SWAP2
00000ab6: SWAP1
00000ab7: SWAP2
00000ab8: OR
00000ab9: SWAP1
00000aba: SSTORE
00000abb: PUSH1 0x40
00000abd: MLOAD
00000abe: PUSH32 0x75f3afb50142265ab5ffa96a1281463cb3a39821dfcafd44d5bcda0dbf1c4825
00000adf: SWAP1
00000ae0: PUSH2 0x0987
00000ae3: SWAP1
00000ae4: DUP4
00000ae5: SWAP1
00000ae6: PUSH2 0x186e
00000ae9: JUMP
00000aea: JUMPDEST
00000aeb: PUSH1 0x00
00000aed: PUSH2 0x0af4
00000af0: PUSH2 0x1410
00000af3: JUMP
00000af4: JUMPDEST
00000af5: SLOAD
00000af6: PUSH1 0x01
00000af8: PUSH1 0xa0
00000afa: SHL
00000afb: SWAP1
00000afc: DIV
00000afd: PUSH1 0xff
00000aff: AND
00000b00: SWAP2
00000b01: SWAP1
00000b02: POP
00000b03: JUMP
00000b04: JUMPDEST
00000b05: PUSH1 0x01
00000b07: DUP1
00000b08: SLOAD
00000b09: PUSH1 0x40
00000b0b: DUP1
00000b0c: MLOAD
00000b0d: PUSH1 0x20
00000b0f: PUSH1 0x02
00000b11: DUP5
00000b12: DUP7
00000b13: AND
00000b14: ISZERO
00000b15: PUSH2 0x0100
00000b18: MUL
00000b19: PUSH1 0x00
00000b1b: NOT
00000b1c: ADD
00000b1d: SWAP1
00000b1e: SWAP5
00000b1f: AND
00000b20: SWAP4
00000b21: SWAP1
00000b22: SWAP4
00000b23: DIV
00000b24: PUSH1 0x1f
00000b26: DUP2
00000b27: ADD
00000b28: DUP5
00000b29: SWAP1
00000b2a: DIV
00000b2b: DUP5
00000b2c: MUL
00000b2d: DUP3
00000b2e: ADD
00000b2f: DUP5
00000b30: ADD
00000b31: SWAP1
00000b32: SWAP3
00000b33: MSTORE
00000b34: DUP2
00000b35: DUP2
00000b36: MSTORE
00000b37: SWAP3
00000b38: SWAP2
00000b39: DUP4
00000b3a: ADD
00000b3b: DUP3
00000b3c: DUP3
00000b3d: DUP1
00000b3e: ISZERO
00000b3f: PUSH2 0x0b89
00000b42: JUMPI
00000b43: DUP1
00000b44: PUSH1 0x1f
00000b46: LT
00000b47: PUSH2 0x0b5e
00000b4a: JUMPI
00000b4b: PUSH2 0x0100
00000b4e: DUP1
00000b4f: DUP4
00000b50: SLOAD
00000b51: DIV
00000b52: MUL
00000b53: DUP4
00000b54: MSTORE
00000b55: SWAP2
00000b56: PUSH1 0x20
00000b58: ADD
00000b59: SWAP2
00000b5a: PUSH2 0x0b89
00000b5d: JUMP
00000b5e: JUMPDEST
00000b5f: DUP3
00000b60: ADD
00000b61: SWAP2
00000b62: SWAP1
00000b63: PUSH1 0x00
00000b65: MSTORE
00000b66: PUSH1 0x20
00000b68: PUSH1 0x00
00000b6a: KECCAK256
00000b6b: SWAP1
00000b6c: JUMPDEST
00000b6d: DUP2
00000b6e: SLOAD
00000b6f: DUP2
00000b70: MSTORE
00000b71: SWAP1
00000b72: PUSH1 0x01
00000b74: ADD
00000b75: SWAP1
00000b76: PUSH1 0x20
00000b78: ADD
00000b79: DUP1
00000b7a: DUP4
00000b7b: GT
00000b7c: PUSH2 0x0b6c
00000b7f: JUMPI
00000b80: DUP3
00000b81: SWAP1
00000b82: SUB
00000b83: PUSH1 0x1f
00000b85: AND
00000b86: DUP3
00000b87: ADD
00000b88: SWAP2
00000b89: JUMPDEST
00000b8a: POP
00000b8b: POP
00000b8c: POP
00000b8d: POP
00000b8e: POP
00000b8f: DUP2
00000b90: JUMP
00000b91: JUMPDEST
00000b92: PUSH1 0x00
00000b94: SLOAD
00000b95: PUSH1 0x01
00000b97: PUSH1 0x01
00000b99: PUSH1 0xa0
00000b9b: SHL
00000b9c: SUB
00000b9d: AND
00000b9e: DUP2
00000b9f: JUMP
00000ba0: JUMPDEST
00000ba1: PUSH2 0x0ba8
00000ba4: PUSH2 0x0aea
00000ba7: JUMP
00000ba8: JUMPDEST
00000ba9: PUSH2 0x0bc4
00000bac: JUMPI
00000bad: PUSH1 0x40
00000baf: MLOAD
00000bb0: PUSH3 0x461bcd
00000bb4: PUSH1 0xe5
00000bb6: SHL
00000bb7: DUP2
00000bb8: MSTORE
00000bb9: PUSH1 0x04
00000bbb: ADD
00000bbc: PUSH2 0x056f
00000bbf: SWAP1
00000bc0: PUSH2 0x197d
00000bc3: JUMP
00000bc4: JUMPDEST
00000bc5: CALLER
00000bc6: ORIGIN
00000bc7: EQ
00000bc8: PUSH2 0x0be3
00000bcb: JUMPI
00000bcc: PUSH1 0x40
00000bce: MLOAD
00000bcf: PUSH3 0x461bcd
00000bd3: PUSH1 0xe5
00000bd5: SHL
00000bd6: DUP2
00000bd7: MSTORE
00000bd8: PUSH1 0x04
00000bda: ADD
00000bdb: PUSH2 0x056f
00000bde: SWAP1
00000bdf: PUSH2 0x1946
00000be2: JUMP
00000be3: JUMPDEST
00000be4: PUSH1 0x00
00000be6: PUSH2 0x0bed
00000be9: PUSH2 0x0e84
00000bec: JUMP
00000bed: JUMPDEST
00000bee: PUSH1 0x01
00000bf0: PUSH1 0x01
00000bf2: PUSH1 0xa0
00000bf4: SHL
00000bf5: SUB
00000bf6: AND
00000bf7: CALLVALUE
00000bf8: DUP5
00000bf9: DUP5
00000bfa: PUSH1 0x40
00000bfc: MLOAD
00000bfd: PUSH2 0x0c07
00000c00: SWAP3
00000c01: SWAP2
00000c02: SWAP1
00000c03: PUSH2 0x1740
00000c06: JUMP
00000c07: JUMPDEST
00000c08: PUSH1 0x00
00000c0a: PUSH1 0x40
00000c0c: MLOAD
00000c0d: DUP1
00000c0e: DUP4
00000c0f: SUB
00000c10: DUP2
00000c11: DUP6
00000c12: DUP8
00000c13: GAS
00000c14: CALL
00000c15: SWAP3
00000c16: POP
00000c17: POP
00000c18: POP
00000c19: RETURNDATASIZE
00000c1a: DUP1
00000c1b: PUSH1 0x00
00000c1d: DUP2
00000c1e: EQ
00000c1f: PUSH2 0x0c44
00000c22: JUMPI
00000c23: PUSH1 0x40
00000c25: MLOAD
00000c26: SWAP2
00000c27: POP
00000c28: PUSH1 0x1f
00000c2a: NOT
00000c2b: PUSH1 0x3f
00000c2d: RETURNDATASIZE
00000c2e: ADD
00000c2f: AND
00000c30: DUP3
00000c31: ADD
00000c32: PUSH1 0x40
00000c34: MSTORE
00000c35: RETURNDATASIZE
00000c36: DUP3
00000c37: MSTORE
00000c38: RETURNDATASIZE
00000c39: PUSH1 0x00
00000c3b: PUSH1 0x20
00000c3d: DUP5
00000c3e: ADD
00000c3f: RETURNDATACOPY
00000c40: PUSH2 0x0c49
00000c43: JUMP
00000c44: JUMPDEST
00000c45: PUSH1 0x60
00000c47: SWAP2
00000c48: POP
00000c49: JUMPDEST
00000c4a: POP
00000c4b: POP
00000c4c: SWAP1
00000c4d: POP
00000c4e: DUP1
00000c4f: PUSH2 0x0c5f
00000c52: JUMPI
00000c53: PUSH1 0x40
00000c55: MLOAD
00000c56: RETURNDATASIZE
00000c57: DUP1
00000c58: PUSH1 0x00
00000c5a: DUP4
00000c5b: RETURNDATACOPY
00000c5c: DUP1
00000c5d: DUP3
00000c5e: REVERT
00000c5f: JUMPDEST
00000c60: POP
00000c61: POP
00000c62: POP
00000c63: JUMP
00000c64: JUMPDEST
00000c65: PUSH2 0x0c6c
00000c68: PUSH2 0x0faf
00000c6b: JUMP
00000c6c: JUMPDEST
00000c6d: PUSH2 0x0c88
00000c70: JUMPI
00000c71: PUSH1 0x40
00000c73: MLOAD
00000c74: PUSH3 0x461bcd
00000c78: PUSH1 0xe5
00000c7a: SHL
00000c7b: DUP2
00000c7c: MSTORE
00000c7d: PUSH1 0x04
00000c7f: ADD
00000c80: PUSH2 0x056f
00000c83: SWAP1
00000c84: PUSH2 0x18e9
00000c87: JUMP
00000c88: JUMPDEST
00000c89: CALLER
00000c8a: ORIGIN
00000c8b: EQ
00000c8c: PUSH2 0x0ca7
00000c8f: JUMPI
00000c90: PUSH1 0x40
00000c92: MLOAD
00000c93: PUSH3 0x461bcd
00000c97: PUSH1 0xe5
00000c99: SHL
00000c9a: DUP2
00000c9b: MSTORE
00000c9c: PUSH1 0x04
00000c9e: ADD
00000c9f: PUSH2 0x056f
00000ca2: SWAP1
00000ca3: PUSH2 0x1946
00000ca6: JUMP
00000ca7: JUMPDEST
00000ca8: PUSH1 0x00
00000caa: PUSH2 0x0cb1
00000cad: PUSH2 0x0e8e
00000cb0: JUMP
00000cb1: JUMPDEST
00000cb2: PUSH1 0x01
00000cb4: PUSH1 0x01
00000cb6: PUSH1 0xa0
00000cb8: SHL
00000cb9: SUB
00000cba: AND
00000cbb: DUP4
00000cbc: DUP4
00000cbd: PUSH1 0x40
00000cbf: MLOAD
00000cc0: PUSH2 0x0cca
00000cc3: SWAP3
00000cc4: SWAP2
00000cc5: SWAP1
00000cc6: PUSH2 0x1740
00000cc9: JUMP
00000cca: JUMPDEST
00000ccb: PUSH1 0x00
00000ccd: PUSH1 0x40
00000ccf: MLOAD
00000cd0: DUP1
00000cd1: DUP4
00000cd2: SUB
00000cd3: DUP2
00000cd4: PUSH1 0x00
00000cd6: DUP7
00000cd7: GAS
00000cd8: CALL
00000cd9: SWAP2
00000cda: POP
00000cdb: POP
00000cdc: RETURNDATASIZE
00000cdd: DUP1
00000cde: PUSH1 0x00
00000ce0: DUP2
00000ce1: EQ
00000ce2: PUSH2 0x0c44
00000ce5: JUMPI
00000ce6: PUSH1 0x40
00000ce8: MLOAD
00000ce9: SWAP2
00000cea: POP
00000ceb: PUSH1 0x1f
00000ced: NOT
00000cee: PUSH1 0x3f
00000cf0: RETURNDATASIZE
00000cf1: ADD
00000cf2: AND
00000cf3: DUP3
00000cf4: ADD
00000cf5: PUSH1 0x40
00000cf7: MSTORE
00000cf8: RETURNDATASIZE
00000cf9: DUP3
00000cfa: MSTORE
00000cfb: RETURNDATASIZE
00000cfc: PUSH1 0x00
00000cfe: PUSH1 0x20
00000d00: DUP5
00000d01: ADD
00000d02: RETURNDATACOPY
00000d03: PUSH2 0x0c49
00000d06: JUMP
00000d07: JUMPDEST
00000d08: PUSH1 0x02
00000d0a: SLOAD
00000d0b: PUSH1 0x01
00000d0d: PUSH1 0x01
00000d0f: PUSH1 0xa0
00000d11: SHL
00000d12: SUB
00000d13: AND
00000d14: CALLER
00000d15: EQ
00000d16: PUSH2 0x0d31
00000d19: JUMPI
00000d1a: PUSH1 0x40
00000d1c: MLOAD
00000d1d: PUSH3 0x461bcd
00000d21: PUSH1 0xe5
00000d23: SHL
00000d24: DUP2
00000d25: MSTORE
00000d26: PUSH1 0x04
00000d28: ADD
00000d29: PUSH2 0x056f
00000d2c: SWAP1
00000d2d: PUSH2 0x19eb
00000d30: JUMP
00000d31: JUMPDEST
00000d32: PUSH1 0x02
00000d34: SLOAD
00000d35: PUSH1 0x00
00000d37: DUP1
00000d38: SLOAD
00000d39: PUSH1 0x40
00000d3b: MLOAD
00000d3c: PUSH1 0x01
00000d3e: PUSH1 0x01
00000d40: PUSH1 0xa0
00000d42: SHL
00000d43: SUB
00000d44: SWAP4
00000d45: DUP5
00000d46: AND
00000d47: SWAP4
00000d48: SWAP1
00000d49: SWAP2
00000d4a: AND
00000d4b: SWAP2
00000d4c: PUSH32 0xd58299b712891143e76310d5e664c4203c940a67db37cf856bdaa3c5c76a802c
00000d6d: SWAP2
00000d6e: LOG3
00000d6f: PUSH1 0x02
00000d71: DUP1
00000d72: SLOAD
00000d73: PUSH1 0x00
00000d75: DUP1
00000d76: SLOAD
00000d77: PUSH1 0x01
00000d79: PUSH1 0x01
00000d7b: PUSH1 0xa0
00000d7d: SHL
00000d7e: SUB
00000d7f: NOT
00000d80: SWAP1
00000d81: DUP2
00000d82: AND
00000d83: PUSH1 0x01
00000d85: PUSH1 0x01
00000d87: PUSH1 0xa0
00000d89: SHL
00000d8a: SUB
00000d8b: DUP5
00000d8c: AND
00000d8d: OR
00000d8e: SWAP1
00000d8f: SWAP2
00000d90: SSTORE
00000d91: AND
00000d92: SWAP1
00000d93: SSTORE
00000d94: JUMP
00000d95: JUMPDEST
00000d96: PUSH1 0x00
00000d98: SLOAD
00000d99: PUSH1 0x01
00000d9b: PUSH1 0x01
00000d9d: PUSH1 0xa0
00000d9f: SHL
00000da0: SUB
00000da1: AND
00000da2: CALLER
00000da3: EQ
00000da4: PUSH2 0x0dbf
00000da7: JUMPI
00000da8: PUSH1 0x40
00000daa: MLOAD
00000dab: PUSH3 0x461bcd
00000daf: PUSH1 0xe5
00000db1: SHL
00000db2: DUP2
00000db3: MSTORE
00000db4: PUSH1 0x04
00000db6: ADD
00000db7: PUSH2 0x056f
00000dba: SWAP1
00000dbb: PUSH2 0x1a59
00000dbe: JUMP
00000dbf: JUMPDEST
00000dc0: DUP2
00000dc1: PUSH2 0x0dc8
00000dc4: PUSH2 0x1434
00000dc7: JUMP
00000dc8: JUMPDEST
00000dc9: DUP1
00000dca: SLOAD
00000dcb: PUSH1 0x01
00000dcd: PUSH1 0x01
00000dcf: PUSH1 0xa0
00000dd1: SHL
00000dd2: SUB
00000dd3: NOT
00000dd4: AND
00000dd5: PUSH1 0x01
00000dd7: PUSH1 0x01
00000dd9: PUSH1 0xa0
00000ddb: SHL
00000ddc: SUB
00000ddd: SWAP3
00000dde: SWAP1
00000ddf: SWAP3
00000de0: AND
00000de1: SWAP2
00000de2: SWAP1
00000de3: SWAP2
00000de4: OR
00000de5: SWAP1
00000de6: SSTORE
00000de7: DUP1
00000de8: PUSH2 0x0def
00000deb: PUSH2 0x1434
00000dee: JUMP
00000def: JUMPDEST
00000df0: DUP1
00000df1: SLOAD
00000df2: SWAP2
00000df3: ISZERO
00000df4: ISZERO
00000df5: PUSH1 0x01
00000df7: PUSH1 0xa0
00000df9: SHL
00000dfa: MUL
00000dfb: PUSH1 0xff
00000dfd: PUSH1 0xa0
00000dff: SHL
00000e00: NOT
00000e01: SWAP1
00000e02: SWAP3
00000e03: AND
00000e04: SWAP2
00000e05: SWAP1
00000e06: SWAP2
00000e07: OR
00000e08: SWAP1
00000e09: SSTORE
00000e0a: PUSH1 0x40
00000e0c: MLOAD
00000e0d: PUSH32 0xc4b713388b13f13226268ec85c363aa606bfc124242892bef245909669b35d0c
00000e2e: SWAP1
00000e2f: PUSH2 0x0e39
00000e32: SWAP1
00000e33: DUP5
00000e34: SWAP1
00000e35: PUSH2 0x17c3
00000e38: JUMP
00000e39: JUMPDEST
00000e3a: PUSH1 0x40
00000e3c: MLOAD
00000e3d: DUP1
00000e3e: SWAP2
00000e3f: SUB
00000e40: SWAP1
00000e41: LOG1
00000e42: PUSH32 0x77a57cd075e1e4d27ea05938d55fc48c8967f71d9edeeb249010daccce25e45b
00000e63: DUP2
00000e64: PUSH1 0x40
00000e66: MLOAD
00000e67: PUSH2 0x0629
00000e6a: SWAP2
00000e6b: SWAP1
00000e6c: PUSH2 0x186e
00000e6f: JUMP
00000e70: JUMPDEST
00000e71: PUSH1 0x00
00000e73: PUSH2 0x0af4
00000e76: PUSH2 0x13ec
00000e79: JUMP
00000e7a: JUMPDEST
00000e7b: PUSH1 0x00
00000e7d: PUSH2 0x08fb
00000e80: PUSH2 0x13ec
00000e83: JUMP
00000e84: JUMPDEST
00000e85: PUSH1 0x00
00000e87: PUSH2 0x08fb
00000e8a: PUSH2 0x1410
00000e8d: JUMP
00000e8e: JUMPDEST
00000e8f: PUSH1 0x00
00000e91: PUSH2 0x08fb
00000e94: PUSH2 0x1434
00000e97: JUMP
00000e98: JUMPDEST
00000e99: PUSH2 0x0ea0
00000e9c: PUSH2 0x139e
00000e9f: JUMP
00000ea0: JUMPDEST
00000ea1: PUSH2 0x0ebc
00000ea4: JUMPI
00000ea5: PUSH1 0x40
00000ea7: MLOAD
00000ea8: PUSH3 0x461bcd
00000eac: PUSH1 0xe5
00000eae: SHL
00000eaf: DUP2
00000eb0: MSTORE
00000eb1: PUSH1 0x04
00000eb3: ADD
00000eb4: PUSH2 0x056f
00000eb7: SWAP1
00000eb8: PUSH2 0x1a22
00000ebb: JUMP
00000ebc: JUMPDEST
00000ebd: CALLER
00000ebe: ORIGIN
00000ebf: EQ
00000ec0: PUSH2 0x0edb
00000ec3: JUMPI
00000ec4: PUSH1 0x40
00000ec6: MLOAD
00000ec7: PUSH3 0x461bcd
00000ecb: PUSH1 0xe5
00000ecd: SHL
00000ece: DUP2
00000ecf: MSTORE
00000ed0: PUSH1 0x04
00000ed2: ADD
00000ed3: PUSH2 0x056f
00000ed6: SWAP1
00000ed7: PUSH2 0x1946
00000eda: JUMP
00000edb: JUMPDEST
00000edc: PUSH1 0x00
00000ede: PUSH2 0x0bed
00000ee1: PUSH2 0x08f1
00000ee4: JUMP
00000ee5: JUMPDEST
00000ee6: PUSH2 0x0eed
00000ee9: PUSH2 0x0e70
00000eec: JUMP
00000eed: JUMPDEST
00000eee: PUSH2 0x0f09
00000ef1: JUMPI
00000ef2: PUSH1 0x40
00000ef4: MLOAD
00000ef5: PUSH3 0x461bcd
00000ef9: PUSH1 0xe5
00000efb: SHL
00000efc: DUP2
00000efd: MSTORE
00000efe: PUSH1 0x04
00000f00: ADD
00000f01: PUSH2 0x056f
00000f04: SWAP1
00000f05: PUSH2 0x19b4
00000f08: JUMP
00000f09: JUMPDEST
00000f0a: CALLER
00000f0b: ORIGIN
00000f0c: EQ
00000f0d: PUSH2 0x0f28
00000f10: JUMPI
00000f11: PUSH1 0x40
00000f13: MLOAD
00000f14: PUSH3 0x461bcd
00000f18: PUSH1 0xe5
00000f1a: SHL
00000f1b: DUP2
00000f1c: MSTORE
00000f1d: PUSH1 0x04
00000f1f: ADD
00000f20: PUSH2 0x056f
00000f23: SWAP1
00000f24: PUSH2 0x1946
00000f27: JUMP
00000f28: JUMPDEST
00000f29: PUSH1 0x00
00000f2b: PUSH2 0x0bed
00000f2e: PUSH2 0x0e7a
00000f31: JUMP
00000f32: JUMPDEST
00000f33: PUSH1 0x00
00000f35: SLOAD
00000f36: PUSH1 0x01
00000f38: PUSH1 0x01
00000f3a: PUSH1 0xa0
00000f3c: SHL
00000f3d: SUB
00000f3e: AND
00000f3f: CALLER
00000f40: EQ
00000f41: PUSH2 0x0f5c
00000f44: JUMPI
00000f45: PUSH1 0x40
00000f47: MLOAD
00000f48: PUSH3 0x461bcd
00000f4c: PUSH1 0xe5
00000f4e: SHL
00000f4f: DUP2
00000f50: MSTORE
00000f51: PUSH1 0x04
00000f53: ADD
00000f54: PUSH2 0x056f
00000f57: SWAP1
00000f58: PUSH2 0x1a59
00000f5b: JUMP
00000f5c: JUMPDEST
00000f5d: DUP1
00000f5e: PUSH2 0x0f65
00000f61: PUSH2 0x1434
00000f64: JUMP
00000f65: JUMPDEST
00000f66: DUP1
00000f67: SLOAD
00000f68: SWAP2
00000f69: ISZERO
00000f6a: ISZERO
00000f6b: PUSH1 0x01
00000f6d: PUSH1 0xa0
00000f6f: SHL
00000f70: MUL
00000f71: PUSH1 0xff
00000f73: PUSH1 0xa0
00000f75: SHL
00000f76: NOT
00000f77: SWAP1
00000f78: SWAP3
00000f79: AND
00000f7a: SWAP2
00000f7b: SWAP1
00000f7c: SWAP2
00000f7d: OR
00000f7e: SWAP1
00000f7f: SSTORE
00000f80: PUSH1 0x40
00000f82: MLOAD
00000f83: PUSH32 0x77a57cd075e1e4d27ea05938d55fc48c8967f71d9edeeb249010daccce25e45b
00000fa4: SWAP1
00000fa5: PUSH2 0x0987
00000fa8: SWAP1
00000fa9: DUP4
00000faa: SWAP1
00000fab: PUSH2 0x186e
00000fae: JUMP
00000faf: JUMPDEST
00000fb0: PUSH1 0x00
00000fb2: PUSH2 0x0af4
00000fb5: PUSH2 0x1434
00000fb8: JUMP
00000fb9: JUMPDEST
00000fba: PUSH1 0x00
00000fbc: PUSH2 0x08fb
00000fbf: PUSH2 0x13c8
00000fc2: JUMP
00000fc3: JUMPDEST
00000fc4: PUSH1 0x00
00000fc6: PUSH2 0x0af4
00000fc9: PUSH2 0x13c8
00000fcc: JUMP
00000fcd: JUMPDEST
00000fce: PUSH1 0x00
00000fd0: SLOAD
00000fd1: PUSH1 0x01
00000fd3: PUSH1 0x01
00000fd5: PUSH1 0xa0
00000fd7: SHL
00000fd8: SUB
00000fd9: AND
00000fda: CALLER
00000fdb: EQ
00000fdc: PUSH2 0x0ff7
00000fdf: JUMPI
00000fe0: PUSH1 0x40
00000fe2: MLOAD
00000fe3: PUSH3 0x461bcd
00000fe7: PUSH1 0xe5
00000fe9: SHL
00000fea: DUP2
00000feb: MSTORE
00000fec: PUSH1 0x04
00000fee: ADD
00000fef: PUSH2 0x056f
00000ff2: SWAP1
00000ff3: PUSH2 0x1a59
00000ff6: JUMP
00000ff7: JUMPDEST
00000ff8: DUP2
00000ff9: PUSH2 0x1000
00000ffc: PUSH2 0x1410
00000fff: JUMP
00001000: JUMPDEST
00001001: DUP1
00001002: SLOAD
00001003: PUSH1 0x01
00001005: PUSH1 0x01
00001007: PUSH1 0xa0
00001009: SHL
0000100a: SUB
0000100b: NOT
0000100c: AND
0000100d: PUSH1 0x01
0000100f: PUSH1 0x01
00001011: PUSH1 0xa0
00001013: SHL
00001014: SUB
00001015: SWAP3
00001016: SWAP1
00001017: SWAP3
00001018: AND
00001019: SWAP2
0000101a: SWAP1
0000101b: SWAP2
0000101c: OR
0000101d: SWAP1
0000101e: SSTORE
0000101f: DUP1
00001020: PUSH2 0x1027
00001023: PUSH2 0x1410
00001026: JUMP
00001027: JUMPDEST
00001028: DUP1
00001029: SLOAD
0000102a: SWAP2
0000102b: ISZERO
0000102c: ISZERO
0000102d: PUSH1 0x01
0000102f: PUSH1 0xa0
00001031: SHL
00001032: MUL
00001033: PUSH1 0xff
00001035: PUSH1 0xa0
00001037: SHL
00001038: NOT
00001039: SWAP1
0000103a: SWAP3
0000103b: AND
0000103c: SWAP2
0000103d: SWAP1
0000103e: SWAP2
0000103f: OR
00001040: SWAP1
00001041: SSTORE
00001042: PUSH1 0x40
00001044: MLOAD
00001045: PUSH32 0xed44209623383e0a37e30095e7056f3e879411ab3edf075836dd94a2f4973580
00001066: SWAP1
00001067: PUSH2 0x1071
0000106a: SWAP1
0000106b: DUP5
0000106c: SWAP1
0000106d: PUSH2 0x17c3
00001070: JUMP
00001071: JUMPDEST
00001072: PUSH1 0x40
00001074: MLOAD
00001075: DUP1
00001076: SWAP2
00001077: SUB
00001078: SWAP1
00001079: LOG1
0000107a: PUSH32 0xf39273fb8850aade529594fa8aa09c79be1dd5d16a8cff2c20496e048539e418
0000109b: DUP2
0000109c: PUSH1 0x40
0000109e: MLOAD
0000109f: PUSH2 0x0629
000010a2: SWAP2
000010a3: SWAP1
000010a4: PUSH2 0x186e
000010a7: JUMP
000010a8: JUMPDEST
000010a9: PUSH1 0x00
000010ab: SLOAD
000010ac: PUSH1 0x01
000010ae: PUSH1 0x01
000010b0: PUSH1 0xa0
000010b2: SHL
000010b3: SUB
000010b4: AND
000010b5: CALLER
000010b6: EQ
000010b7: PUSH2 0x10d2
000010ba: JUMPI
000010bb: PUSH1 0x40
000010bd: MLOAD
000010be: PUSH3 0x461bcd
000010c2: PUSH1 0xe5
000010c4: SHL
000010c5: DUP2
000010c6: MSTORE
000010c7: PUSH1 0x04
000010c9: ADD
000010ca: PUSH2 0x056f
000010cd: SWAP1
000010ce: PUSH2 0x1a59
000010d1: JUMP
000010d2: JUMPDEST
000010d3: DUP2
000010d4: PUSH2 0x10db
000010d7: PUSH2 0x13c8
000010da: JUMP
000010db: JUMPDEST
000010dc: DUP1
000010dd: SLOAD
000010de: PUSH1 0x01
000010e0: PUSH1 0x01
000010e2: PUSH1 0xa0
000010e4: SHL
000010e5: SUB
000010e6: NOT
000010e7: AND
000010e8: PUSH1 0x01
000010ea: PUSH1 0x01
000010ec: PUSH1 0xa0
000010ee: SHL
000010ef: SUB
000010f0: SWAP3
000010f1: SWAP1
000010f2: SWAP3
000010f3: AND
000010f4: SWAP2
000010f5: SWAP1
000010f6: SWAP2
000010f7: OR
000010f8: SWAP1
000010f9: SSTORE
000010fa: DUP1
000010fb: PUSH2 0x1102
000010fe: PUSH2 0x13c8
00001101: JUMP
00001102: JUMPDEST
00001103: DUP1
00001104: SLOAD
00001105: SWAP2
00001106: ISZERO
00001107: ISZERO
00001108: PUSH1 0x01
0000110a: PUSH1 0xa0
0000110c: SHL
0000110d: MUL
0000110e: PUSH1 0xff
00001110: PUSH1 0xa0
00001112: SHL
00001113: NOT
00001114: SWAP1
00001115: SWAP3
00001116: AND
00001117: SWAP2
00001118: SWAP1
00001119: SWAP2
0000111a: OR
0000111b: SWAP1
0000111c: SSTORE
0000111d: PUSH1 0x40
0000111f: MLOAD
00001120: PUSH32 0xe3f9ba76e59e03b4e1255783bc2d5340338b8bc071086d3e32e5ddff4fc85553
00001141: SWAP1
00001142: PUSH2 0x114c
00001145: SWAP1
00001146: DUP5
00001147: SWAP1
00001148: PUSH2 0x17c3
0000114b: JUMP
0000114c: JUMPDEST
0000114d: PUSH1 0x40
0000114f: MLOAD
00001150: DUP1
00001151: SWAP2
00001152: SUB
00001153: SWAP1
00001154: LOG1
00001155: PUSH32 0x69013db8b04c8782a3bfb1988607e4cb48e1476125c4a9f2e08199916281becf
00001176: DUP2
00001177: PUSH1 0x40
00001179: MLOAD
0000117a: PUSH2 0x0629
0000117d: SWAP2
0000117e: SWAP1
0000117f: PUSH2 0x186e
00001182: JUMP
00001183: JUMPDEST
00001184: PUSH1 0x40
00001186: MLOAD
00001187: PUSH1 0x20
00001189: ADD
0000118a: PUSH2 0x1192
0000118d: SWAP1
0000118e: PUSH2 0x17c0
00001191: JUMP
00001192: JUMPDEST
00001193: PUSH1 0x40
00001195: MLOAD
00001196: PUSH1 0x20
00001198: DUP2
00001199: DUP4
0000119a: SUB
0000119b: SUB
0000119c: DUP2
0000119d: MSTORE
0000119e: SWAP1
0000119f: PUSH1 0x40
000011a1: MSTORE
000011a2: DUP1
000011a3: MLOAD
000011a4: SWAP1
000011a5: PUSH1 0x20
000011a7: ADD
000011a8: KECCAK256
000011a9: PUSH1 0x01
000011ab: PUSH1 0x40
000011ad: MLOAD
000011ae: PUSH1 0x20
000011b0: ADD
000011b1: PUSH2 0x11ba
000011b4: SWAP2
000011b5: SWAP1
000011b6: PUSH2 0x1750
000011b9: JUMP
000011ba: JUMPDEST
000011bb: PUSH1 0x40
000011bd: MLOAD
000011be: PUSH1 0x20
000011c0: DUP2
000011c1: DUP4
000011c2: SUB
000011c3: SUB
000011c4: DUP2
000011c5: MSTORE
000011c6: SWAP1
000011c7: PUSH1 0x40
000011c9: MSTORE
000011ca: DUP1
000011cb: MLOAD
000011cc: SWAP1
000011cd: PUSH1 0x20
000011cf: ADD
000011d0: KECCAK256
000011d1: EQ
000011d2: PUSH2 0x11ed
000011d5: JUMPI
000011d6: PUSH1 0x40
000011d8: MLOAD
000011d9: PUSH3 0x461bcd
000011dd: PUSH1 0xe5
000011df: SHL
000011e0: DUP2
000011e1: MSTORE
000011e2: PUSH1 0x04
000011e4: ADD
000011e5: PUSH2 0x056f
000011e8: SWAP1
000011e9: PUSH2 0x1ac7
000011ec: JUMP
000011ed: JUMPDEST
000011ee: PUSH1 0x01
000011f0: PUSH1 0x01
000011f2: PUSH1 0xa0
000011f4: SHL
000011f5: SUB
000011f6: DUP2
000011f7: AND
000011f8: PUSH2 0x1213
000011fb: JUMPI
000011fc: PUSH1 0x40
000011fe: MLOAD
000011ff: PUSH3 0x461bcd
00001203: PUSH1 0xe5
00001205: SHL
00001206: DUP2
00001207: MSTORE
00001208: PUSH1 0x04
0000120a: ADD
0000120b: PUSH2 0x056f
0000120e: SWAP1
0000120f: PUSH2 0x188c
00001212: JUMP
00001213: JUMPDEST
00001214: PUSH1 0x00
00001216: DUP1
00001217: SLOAD
00001218: PUSH1 0x01
0000121a: PUSH1 0x01
0000121c: PUSH1 0xa0
0000121e: SHL
0000121f: SUB
00001220: NOT
00001221: AND
00001222: PUSH1 0x01
00001224: PUSH1 0x01
00001226: PUSH1 0xa0
00001228: SHL
00001229: SUB
0000122a: DUP4
0000122b: AND
0000122c: OR
0000122d: SWAP1
0000122e: SSTORE
0000122f: PUSH1 0x40
00001231: DUP1
00001232: MLOAD
00001233: DUP1
00001234: DUP3
00001235: ADD
00001236: SWAP1
00001237: SWAP2
00001238: MSTORE
00001239: PUSH1 0x05
0000123b: DUP1
0000123c: DUP3
0000123d: MSTORE
0000123e: PUSH32 0x352e332e30000000000000000000000000000000000000000000000000000000
0000125f: PUSH1 0x20
00001261: SWAP1
00001262: SWAP3
00001263: ADD
00001264: SWAP2
00001265: DUP3
00001266: MSTORE
00001267: PUSH2 0x1272
0000126a: SWAP2
0000126b: PUSH1 0x01
0000126d: SWAP2
0000126e: PUSH2 0x1458
00001271: JUMP
00001272: JUMPDEST
00001273: POP
00001274: POP
00001275: JUMP
00001276: JUMPDEST
00001277: PUSH1 0x00
00001279: SLOAD
0000127a: PUSH1 0x01
0000127c: PUSH1 0x01
0000127e: PUSH1 0xa0
00001280: SHL
00001281: SUB
00001282: AND
00001283: CALLER
00001284: EQ
00001285: PUSH2 0x12a0
00001288: JUMPI
00001289: PUSH1 0x40
0000128b: MLOAD
0000128c: PUSH3 0x461bcd
00001290: PUSH1 0xe5
00001292: SHL
00001293: DUP2
00001294: MSTORE
00001295: PUSH1 0x04
00001297: ADD
00001298: PUSH2 0x056f
0000129b: SWAP1
0000129c: PUSH2 0x1a59
0000129f: JUMP
000012a0: JUMPDEST
000012a1: DUP1
000012a2: PUSH2 0x12a9
000012a5: PUSH2 0x13a4
000012a8: JUMP
000012a9: JUMPDEST
000012aa: DUP1
000012ab: SLOAD
000012ac: SWAP2
000012ad: ISZERO
000012ae: ISZERO
000012af: PUSH1 0x01
000012b1: PUSH1 0xa0
000012b3: SHL
000012b4: MUL
000012b5: PUSH1 0xff
000012b7: PUSH1 0xa0
000012b9: SHL
000012ba: NOT
000012bb: SWAP1
000012bc: SWAP3
000012bd: AND
000012be: SWAP2
000012bf: SWAP1
000012c0: SWAP2
000012c1: OR
000012c2: SWAP1
000012c3: SSTORE
000012c4: PUSH1 0x40
000012c6: MLOAD
000012c7: PUSH32 0x85600615329dbd38415d95ab88a1870aa23283ed03ea8339bbaf7c53cb6889eb
000012e8: SWAP1
000012e9: PUSH2 0x0987
000012ec: SWAP1
000012ed: DUP4
000012ee: SWAP1
000012ef: PUSH2 0x186e
000012f2: JUMP
000012f3: JUMPDEST
000012f4: PUSH2 0x12fb
000012f7: PUSH2 0x0fc3
000012fa: JUMP
000012fb: JUMPDEST
000012fc: PUSH2 0x1317
000012ff: JUMPI
00001300: PUSH1 0x40
00001302: MLOAD
00001303: PUSH3 0x461bcd
00001307: PUSH1 0xe5
00001309: SHL
0000130a: DUP2
0000130b: MSTORE
0000130c: PUSH1 0x04
0000130e: ADD
0000130f: PUSH2 0x056f
00001312: SWAP1
00001313: PUSH2 0x1a90
00001316: JUMP
00001317: JUMPDEST
00001318: PUSH1 0x00
0000131a: PUSH2 0x0bed
0000131d: PUSH2 0x0fb9
00001320: JUMP
00001321: JUMPDEST
00001322: PUSH1 0x00
00001324: SLOAD
00001325: PUSH1 0x01
00001327: PUSH1 0x01
00001329: PUSH1 0xa0
0000132b: SHL
0000132c: SUB
0000132d: AND
0000132e: CALLER
0000132f: EQ
00001330: PUSH2 0x134b
00001333: JUMPI
00001334: PUSH1 0x40
00001336: MLOAD
00001337: PUSH3 0x461bcd
0000133b: PUSH1 0xe5
0000133d: SHL
0000133e: DUP2
0000133f: MSTORE
00001340: PUSH1 0x04
00001342: ADD
00001343: PUSH2 0x056f
00001346: SWAP1
00001347: PUSH2 0x1a59
0000134a: JUMP
0000134b: JUMPDEST
0000134c: DUP1
0000134d: PUSH2 0x1354
00001350: PUSH2 0x1410
00001353: JUMP
00001354: JUMPDEST
00001355: DUP1
00001356: SLOAD
00001357: SWAP2
00001358: ISZERO
00001359: ISZERO
0000135a: PUSH1 0x01
0000135c: PUSH1 0xa0
0000135e: SHL
0000135f: MUL
00001360: PUSH1 0xff
00001362: PUSH1 0xa0
00001364: SHL
00001365: NOT
00001366: SWAP1
00001367: SWAP3
00001368: AND
00001369: SWAP2
0000136a: SWAP1
0000136b: SWAP2
0000136c: OR
0000136d: SWAP1
0000136e: SSTORE
0000136f: PUSH1 0x40
00001371: MLOAD
00001372: PUSH32 0xf39273fb8850aade529594fa8aa09c79be1dd5d16a8cff2c20496e048539e418
00001393: SWAP1
00001394: PUSH2 0x0987
00001397: SWAP1
00001398: DUP4
00001399: SWAP1
0000139a: PUSH2 0x186e
0000139d: JUMP
0000139e: JUMPDEST
0000139f: PUSH1 0x00
000013a1: PUSH2 0x0af4
000013a4: JUMPDEST
000013a5: PUSH32 0x857df08bd185dc66e3cc5e11acb4e1dd65290f3fee6426f52f84e8faccf229cf
000013c6: SWAP1
000013c7: JUMP
000013c8: JUMPDEST
000013c9: PUSH32 0xbf49677e3150252dfa801a673d2d5ec21eaa360a4674864e55e79041e3f65a6b
000013ea: SWAP1
000013eb: JUMP
000013ec: JUMPDEST
000013ed: PUSH32 0x8f135983375ba6442123d61647e7325c1753eabc2e038e44d3b888a970def89a
0000140e: SWAP1
0000140f: JUMP
00001410: JUMPDEST
00001411: PUSH32 0xd5f1768ede616e352f32123fd6fe01064898ae4e55a2678c79b8ad79680ff744
00001432: SWAP1
00001433: JUMP
00001434: JUMPDEST
00001435: PUSH32 0xf1a59a985b4002cdf0db464f05bed7182ee06372a999d820ea1883b8bf067ce5
00001456: SWAP1
00001457: JUMP
00001458: JUMPDEST
00001459: DUP3
0000145a: DUP1
0000145b: SLOAD
0000145c: PUSH1 0x01
0000145e: DUP2
0000145f: PUSH1 0x01
00001461: AND
00001462: ISZERO
00001463: PUSH2 0x0100
00001466: MUL
00001467: SUB
00001468: AND
00001469: PUSH1 0x02
0000146b: SWAP1
0000146c: DIV
0000146d: SWAP1
0000146e: PUSH1 0x00
00001470: MSTORE
00001471: PUSH1 0x20
00001473: PUSH1 0x00
00001475: KECCAK256
00001476: SWAP1
00001477: PUSH1 0x1f
00001479: ADD
0000147a: PUSH1 0x20
0000147c: SWAP1
0000147d: DIV
0000147e: DUP2
0000147f: ADD
00001480: SWAP3
00001481: DUP3
00001482: PUSH2 0x148e
00001485: JUMPI
00001486: PUSH1 0x00
00001488: DUP6
00001489: SSTORE
0000148a: PUSH2 0x14d4
0000148d: JUMP
0000148e: JUMPDEST
0000148f: DUP3
00001490: PUSH1 0x1f
00001492: LT
00001493: PUSH2 0x14a7
00001496: JUMPI
00001497: DUP1
00001498: MLOAD
00001499: PUSH1 0xff
0000149b: NOT
0000149c: AND
0000149d: DUP4
0000149e: DUP1
0000149f: ADD
000014a0: OR
000014a1: DUP6
000014a2: SSTORE
000014a3: PUSH2 0x14d4
000014a6: JUMP
000014a7: JUMPDEST
000014a8: DUP3
000014a9: DUP1
000014aa: ADD
000014ab: PUSH1 0x01
000014ad: ADD
000014ae: DUP6
000014af: SSTORE
000014b0: DUP3
000014b1: ISZERO
000014b2: PUSH2 0x14d4
000014b5: JUMPI
000014b6: SWAP2
000014b7: DUP3
000014b8: ADD
000014b9: JUMPDEST
000014ba: DUP3
000014bb: DUP2
000014bc: GT
000014bd: ISZERO
000014be: PUSH2 0x14d4
000014c1: JUMPI
000014c2: DUP3
000014c3: MLOAD
000014c4: DUP3
000014c5: SSTORE
000014c6: SWAP2
000014c7: PUSH1 0x20
000014c9: ADD
000014ca: SWAP2
000014cb: SWAP1
000014cc: PUSH1 0x01
000014ce: ADD
000014cf: SWAP1
000014d0: PUSH2 0x14b9
000014d3: JUMP
000014d4: JUMPDEST
000014d5: POP
000014d6: PUSH2 0x14e0
000014d9: SWAP3
000014da: SWAP2
000014db: POP
000014dc: PUSH2 0x14e4
000014df: JUMP
000014e0: JUMPDEST
000014e1: POP
000014e2: SWAP1
000014e3: JUMP
000014e4: JUMPDEST
000014e5: JUMPDEST
000014e6: DUP1
000014e7: DUP3
000014e8: GT
000014e9: ISZERO
000014ea: PUSH2 0x14e0
000014ed: JUMPI
000014ee: PUSH1 0x00
000014f0: DUP2
000014f1: SSTORE
000014f2: PUSH1 0x01
000014f4: ADD
000014f5: PUSH2 0x14e5
000014f8: JUMP
000014f9: JUMPDEST
000014fa: DUP1
000014fb: CALLDATALOAD
000014fc: PUSH1 0x01
000014fe: PUSH1 0x01
00001500: PUSH1 0xa0
00001502: SHL
00001503: SUB
00001504: DUP2
00001505: AND
00001506: DUP2
00001507: EQ
00001508: PUSH2 0x1510
0000150b: JUMPI
0000150c: PUSH1 0x00
0000150e: DUP1
0000150f: REVERT
00001510: JUMPDEST
00001511: SWAP2
00001512: SWAP1
00001513: POP
00001514: JUMP
00001515: JUMPDEST
00001516: DUP1
00001517: CALLDATALOAD
00001518: DUP1
00001519: ISZERO
0000151a: ISZERO
0000151b: DUP2
0000151c: EQ
0000151d: PUSH2 0x1510
00001520: JUMPI
00001521: PUSH1 0x00
00001523: DUP1
00001524: REVERT
00001525: JUMPDEST
00001526: PUSH1 0x00
00001528: PUSH1 0x20
0000152a: DUP3
0000152b: DUP5
0000152c: SUB
0000152d: SLT
0000152e: ISZERO
0000152f: PUSH2 0x1536
00001532: JUMPI
00001533: DUP1
00001534: DUP2
00001535: REVERT
00001536: JUMPDEST
00001537: PUSH2 0x153f
0000153a: DUP3
0000153b: PUSH2 0x14f9
0000153e: JUMP
0000153f: JUMPDEST
00001540: SWAP4
00001541: SWAP3
00001542: POP
00001543: POP
00001544: POP
00001545: JUMP
00001546: JUMPDEST
00001547: PUSH1 0x00
00001549: DUP1
0000154a: PUSH1 0x40
0000154c: DUP4
0000154d: DUP6
0000154e: SUB
0000154f: SLT
00001550: ISZERO
00001551: PUSH2 0x1558
00001554: JUMPI
00001555: DUP1
00001556: DUP2
00001557: REVERT
00001558: JUMPDEST
00001559: PUSH2 0x1561
0000155c: DUP4
0000155d: PUSH2 0x14f9
00001560: JUMP
00001561: JUMPDEST
00001562: SWAP2
00001563: POP
00001564: PUSH2 0x156f
00001567: PUSH1 0x20
00001569: DUP5
0000156a: ADD
0000156b: PUSH2 0x1515
0000156e: JUMP
0000156f: JUMPDEST
00001570: SWAP1
00001571: POP
00001572: SWAP3
00001573: POP
00001574: SWAP3
00001575: SWAP1
00001576: POP
00001577: JUMP
00001578: JUMPDEST
00001579: PUSH1 0x00
0000157b: DUP1
0000157c: PUSH1 0x00
0000157e: PUSH1 0x40
00001580: DUP5
00001581: DUP7
00001582: SUB
00001583: SLT
00001584: ISZERO
00001585: PUSH2 0x158c
00001588: JUMPI
00001589: DUP1
0000158a: DUP2
0000158b: REVERT
0000158c: JUMPDEST
0000158d: DUP4
0000158e: CALLDATALOAD
0000158f: PUSH8 0xffffffffffffffff
00001598: DUP1
00001599: DUP3
0000159a: GT
0000159b: ISZERO
0000159c: PUSH2 0x15a3
0000159f: JUMPI
000015a0: DUP3
000015a1: DUP4
000015a2: REVERT
000015a3: JUMPDEST
000015a4: DUP2
000015a5: DUP7
000015a6: ADD
000015a7: SWAP2
000015a8: POP
000015a9: DUP7
000015aa: PUSH1 0x1f
000015ac: DUP4
000015ad: ADD
000015ae: SLT
000015af: PUSH2 0x15b6
000015b2: JUMPI
000015b3: DUP3
000015b4: DUP4
000015b5: REVERT
000015b6: JUMPDEST
000015b7: DUP2
000015b8: CALLDATALOAD
000015b9: DUP2
000015ba: DUP2
000015bb: GT
000015bc: ISZERO
000015bd: PUSH2 0x15c4
000015c0: JUMPI
000015c1: DUP4
000015c2: DUP5
000015c3: REVERT
000015c4: JUMPDEST
000015c5: DUP8
000015c6: PUSH1 0x20
000015c8: DUP1
000015c9: DUP4
000015ca: MUL
000015cb: DUP6
000015cc: ADD
000015cd: ADD
000015ce: GT
000015cf: ISZERO
000015d0: PUSH2 0x15d7
000015d3: JUMPI
000015d4: DUP4
000015d5: DUP5
000015d6: REVERT
000015d7: JUMPDEST
000015d8: PUSH1 0x20
000015da: SWAP3
000015db: DUP4
000015dc: ADD
000015dd: SWAP6
000015de: POP
000015df: SWAP4
000015e0: POP
000015e1: PUSH2 0x15ed
000015e4: SWAP2
000015e5: DUP7
000015e6: ADD
000015e7: SWAP1
000015e8: POP
000015e9: PUSH2 0x1515
000015ec: JUMP
000015ed: JUMPDEST
000015ee: SWAP1
000015ef: POP
000015f0: SWAP3
000015f1: POP
000015f2: SWAP3
000015f3: POP
000015f4: SWAP3
000015f5: JUMP
000015f6: JUMPDEST
000015f7: PUSH1 0x00
000015f9: PUSH1 0x20
000015fb: DUP3
000015fc: DUP5
000015fd: SUB
000015fe: SLT
000015ff: ISZERO
00001600: PUSH2 0x1607
00001603: JUMPI
00001604: DUP1
00001605: DUP2
00001606: REVERT
00001607: JUMPDEST
00001608: PUSH2 0x153f
0000160b: DUP3
0000160c: PUSH2 0x1515
0000160f: JUMP
00001610: JUMPDEST
00001611: PUSH1 0x00
00001613: DUP1
00001614: PUSH1 0x20
00001616: DUP4
00001617: DUP6
00001618: SUB
00001619: SLT
0000161a: ISZERO
0000161b: PUSH2 0x1622
0000161e: JUMPI
0000161f: DUP2
00001620: DUP3
00001621: REVERT
00001622: JUMPDEST
00001623: DUP3
00001624: CALLDATALOAD
00001625: PUSH8 0xffffffffffffffff
0000162e: DUP1
0000162f: DUP3
00001630: GT
00001631: ISZERO
00001632: PUSH2 0x1639
00001635: JUMPI
00001636: DUP4
00001637: DUP5
00001638: REVERT
00001639: JUMPDEST
0000163a: DUP2
0000163b: DUP6
0000163c: ADD
0000163d: SWAP2
0000163e: POP
0000163f: DUP6
00001640: PUSH1 0x1f
00001642: DUP4
00001643: ADD
00001644: SLT
00001645: PUSH2 0x164c
00001648: JUMPI
00001649: DUP4
0000164a: DUP5
0000164b: REVERT
0000164c: JUMPDEST
0000164d: DUP2
0000164e: CALLDATALOAD
0000164f: DUP2
00001650: DUP2
00001651: GT
00001652: ISZERO
00001653: PUSH2 0x165a
00001656: JUMPI
00001657: DUP5
00001658: DUP6
00001659: REVERT
0000165a: JUMPDEST
0000165b: DUP7
0000165c: PUSH1 0x20
0000165e: DUP3
0000165f: DUP6
00001660: ADD
00001661: ADD
00001662: GT
00001663: ISZERO
00001664: PUSH2 0x166b
00001667: JUMPI
00001668: DUP5
00001669: DUP6
0000166a: REVERT
0000166b: JUMPDEST
0000166c: PUSH1 0x20
0000166e: SWAP3
0000166f: SWAP1
00001670: SWAP3
00001671: ADD
00001672: SWAP7
00001673: SWAP2
00001674: SWAP6
00001675: POP
00001676: SWAP1
00001677: SWAP4
00001678: POP
00001679: POP
0000167a: POP
0000167b: POP
0000167c: JUMP
0000167d: JUMPDEST
0000167e: PUSH1 0x00
00001680: PUSH1 0x20
00001682: DUP3
00001683: DUP5
00001684: SUB
00001685: SLT
00001686: ISZERO
00001687: PUSH2 0x168e
0000168a: JUMPI
0000168b: DUP1
0000168c: DUP2
0000168d: REVERT
0000168e: JUMPDEST
0000168f: DUP2
00001690: MLOAD
00001691: PUSH8 0xffffffffffffffff
0000169a: DUP1
0000169b: DUP3
0000169c: GT
0000169d: ISZERO
0000169e: PUSH2 0x16a5
000016a1: JUMPI
000016a2: DUP3
000016a3: DUP4
000016a4: REVERT
000016a5: JUMPDEST
000016a6: DUP2
000016a7: DUP5
000016a8: ADD
000016a9: SWAP2
000016aa: POP
000016ab: DUP5
000016ac: PUSH1 0x1f
000016ae: DUP4
000016af: ADD
000016b0: SLT
000016b1: PUSH2 0x16b8
000016b4: JUMPI
000016b5: DUP3
000016b6: DUP4
000016b7: REVERT
000016b8: JUMPDEST
000016b9: DUP2
000016ba: MLOAD
000016bb: DUP2
000016bc: DUP2
000016bd: GT
000016be: ISZERO
000016bf: PUSH2 0x16c4
000016c2: JUMPI
000016c3: INVALID
000016c4: JUMPDEST
000016c5: PUSH1 0x40
000016c7: MLOAD
000016c8: PUSH1 0x1f
000016ca: DUP3
000016cb: ADD
000016cc: PUSH1 0x1f
000016ce: NOT
000016cf: AND
000016d0: DUP2
000016d1: ADD
000016d2: PUSH1 0x20
000016d4: ADD
000016d5: DUP4
000016d6: DUP2
000016d7: GT
000016d8: DUP3
000016d9: DUP3
000016da: LT
000016db: OR
000016dc: ISZERO
000016dd: PUSH2 0x16e2
000016e0: JUMPI
000016e1: INVALID
000016e2: JUMPDEST
000016e3: PUSH1 0x40
000016e5: MSTORE
000016e6: DUP2
000016e7: DUP2
000016e8: MSTORE
000016e9: DUP4
000016ea: DUP3
000016eb: ADD
000016ec: PUSH1 0x20
000016ee: ADD
000016ef: DUP8
000016f0: LT
000016f1: ISZERO
000016f2: PUSH2 0x16f9
000016f5: JUMPI
000016f6: DUP5
000016f7: DUP6
000016f8: REVERT
000016f9: JUMPDEST
000016fa: PUSH2 0x170a
000016fd: DUP3
000016fe: PUSH1 0x20
00001700: DUP4
00001701: ADD
00001702: PUSH1 0x20
00001704: DUP8
00001705: ADD
00001706: PUSH2 0x1b91
00001709: JUMP
0000170a: JUMPDEST
0000170b: SWAP7
0000170c: SWAP6
0000170d: POP
0000170e: POP
0000170f: POP
00001710: POP
00001711: POP
00001712: POP
00001713: JUMP
00001714: JUMPDEST
00001715: PUSH1 0x00
00001717: DUP2
00001718: MLOAD
00001719: DUP1
0000171a: DUP5
0000171b: MSTORE
0000171c: PUSH2 0x172c
0000171f: DUP2
00001720: PUSH1 0x20
00001722: DUP7
00001723: ADD
00001724: PUSH1 0x20
00001726: DUP7
00001727: ADD
00001728: PUSH2 0x1b91
0000172b: JUMP
0000172c: JUMPDEST
0000172d: PUSH1 0x1f
0000172f: ADD
00001730: PUSH1 0x1f
00001732: NOT
00001733: AND
00001734: SWAP3
00001735: SWAP1
00001736: SWAP3
00001737: ADD
00001738: PUSH1 0x20
0000173a: ADD
0000173b: SWAP3
0000173c: SWAP2
0000173d: POP
0000173e: POP
0000173f: JUMP
00001740: JUMPDEST
00001741: PUSH1 0x00
00001743: DUP3
00001744: DUP5
00001745: DUP4
00001746: CALLDATACOPY
00001747: SWAP2
00001748: ADD
00001749: SWAP1
0000174a: DUP2
0000174b: MSTORE
0000174c: SWAP2
0000174d: SWAP1
0000174e: POP
0000174f: JUMP
00001750: JUMPDEST
00001751: PUSH1 0x00
00001753: DUP1
00001754: DUP4
00001755: SLOAD
00001756: PUSH1 0x01
00001758: DUP1
00001759: DUP3
0000175a: AND
0000175b: PUSH1 0x00
0000175d: DUP2
0000175e: EQ
0000175f: PUSH2 0x176f
00001762: JUMPI
00001763: PUSH1 0x01
00001765: DUP2
00001766: EQ
00001767: PUSH2 0x1786
0000176a: JUMPI
0000176b: PUSH2 0x17b5
0000176e: JUMP
0000176f: JUMPDEST
00001770: PUSH1 0xff
00001772: NOT
00001773: DUP4
00001774: AND
00001775: DUP7
00001776: MSTORE
00001777: PUSH1 0x02
00001779: DUP4
0000177a: DIV
0000177b: PUSH1 0x7f
0000177d: AND
0000177e: DUP7
0000177f: ADD
00001780: SWAP4
00001781: POP
00001782: PUSH2 0x17b5
00001785: JUMP
00001786: JUMPDEST
00001787: PUSH1 0x02
00001789: DUP4
0000178a: DIV
0000178b: DUP8
0000178c: DUP7
0000178d: MSTORE
0000178e: PUSH1 0x20
00001790: DUP1
00001791: DUP8
00001792: KECCAK256
00001793: DUP8
00001794: JUMPDEST
00001795: DUP4
00001796: DUP2
00001797: LT
00001798: ISZERO
00001799: PUSH2 0x17ad
0000179c: JUMPI
0000179d: DUP2
0000179e: SLOAD
0000179f: DUP11
000017a0: DUP3
000017a1: ADD
000017a2: MSTORE
000017a3: SWAP1
000017a4: DUP6
000017a5: ADD
000017a6: SWAP1
000017a7: DUP3
000017a8: ADD
000017a9: PUSH2 0x1794
000017ac: JUMP
000017ad: JUMPDEST
000017ae: POP
000017af: POP
000017b0: POP
000017b1: DUP7
000017b2: ADD
000017b3: SWAP4
000017b4: POP
000017b5: JUMPDEST
000017b6: POP
000017b7: SWAP2
000017b8: SWAP6
000017b9: SWAP5
000017ba: POP
000017bb: POP
000017bc: POP
000017bd: POP
000017be: POP
000017bf: JUMP
000017c0: JUMPDEST
000017c1: SWAP1
000017c2: JUMP
000017c3: JUMPDEST
000017c4: PUSH1 0x01
000017c6: PUSH1 0x01
000017c8: PUSH1 0xa0
000017ca: SHL
000017cb: SUB
000017cc: SWAP2
000017cd: SWAP1
000017ce: SWAP2
000017cf: AND
000017d0: DUP2
000017d1: MSTORE
000017d2: PUSH1 0x20
000017d4: ADD
000017d5: SWAP1
000017d6: JUMP
000017d7: JUMPDEST
000017d8: PUSH1 0x40
000017da: DUP1
000017db: DUP3
000017dc: MSTORE
000017dd: DUP4
000017de: MLOAD
000017df: SWAP1
000017e0: DUP3
000017e1: ADD
000017e2: DUP2
000017e3: SWAP1
000017e4: MSTORE
000017e5: PUSH1 0x00
000017e7: SWAP1
000017e8: PUSH1 0x20
000017ea: SWAP1
000017eb: PUSH1 0x60
000017ed: DUP5
000017ee: ADD
000017ef: SWAP1
000017f0: DUP3
000017f1: DUP8
000017f2: ADD
000017f3: DUP5
000017f4: JUMPDEST
000017f5: DUP3
000017f6: DUP2
000017f7: LT
000017f8: ISZERO
000017f9: PUSH2 0x1812
000017fc: JUMPI
000017fd: DUP2
000017fe: MLOAD
000017ff: ISZERO
00001800: ISZERO
00001801: DUP5
00001802: MSTORE
00001803: SWAP3
00001804: DUP5
00001805: ADD
00001806: SWAP3
00001807: SWAP1
00001808: DUP5
00001809: ADD
0000180a: SWAP1
0000180b: PUSH1 0x01
0000180d: ADD
0000180e: PUSH2 0x17f4
00001811: JUMP
00001812: JUMPDEST
00001813: POP
00001814: POP
00001815: POP
00001816: DUP4
00001817: DUP2
00001818: SUB
00001819: DUP3
0000181a: DUP6
0000181b: ADD
0000181c: MSTORE
0000181d: DUP5
0000181e: MLOAD
0000181f: DUP1
00001820: DUP3
00001821: MSTORE
00001822: DUP3
00001823: DUP3
00001824: ADD
00001825: SWAP1
00001826: DUP1
00001827: DUP5
00001828: MUL
00001829: DUP4
0000182a: ADD
0000182b: DUP5
0000182c: ADD
0000182d: DUP8
0000182e: DUP6
0000182f: ADD
00001830: DUP7
00001831: JUMPDEST
00001832: DUP4
00001833: DUP2
00001834: LT
00001835: ISZERO
00001836: PUSH2 0x185f
00001839: JUMPI
0000183a: PUSH1 0x1f
0000183c: NOT
0000183d: DUP7
0000183e: DUP5
0000183f: SUB
00001840: ADD
00001841: DUP6
00001842: MSTORE
00001843: PUSH2 0x184d
00001846: DUP4
00001847: DUP4
00001848: MLOAD
00001849: PUSH2 0x1714
0000184c: JUMP
0000184d: JUMPDEST
0000184e: SWAP5
0000184f: DUP8
00001850: ADD
00001851: SWAP5
00001852: SWAP3
00001853: POP
00001854: SWAP1
00001855: DUP7
00001856: ADD
00001857: SWAP1
00001858: PUSH1 0x01
0000185a: ADD
0000185b: PUSH2 0x1831
0000185e: JUMP
0000185f: JUMPDEST
00001860: POP
00001861: SWAP1
00001862: SWAP10
00001863: SWAP9
00001864: POP
00001865: POP
00001866: POP
00001867: POP
00001868: POP
00001869: POP
0000186a: POP
0000186b: POP
0000186c: POP
0000186d: JUMP
0000186e: JUMPDEST
0000186f: SWAP1
00001870: ISZERO
00001871: ISZERO
00001872: DUP2
00001873: MSTORE
00001874: PUSH1 0x20
00001876: ADD
00001877: SWAP1
00001878: JUMP
00001879: JUMPDEST
0000187a: PUSH1 0x00
0000187c: PUSH1 0x20
0000187e: DUP3
0000187f: MSTORE
00001880: PUSH2 0x153f
00001883: PUSH1 0x20
00001885: DUP4
00001886: ADD
00001887: DUP5
00001888: PUSH2 0x1714
0000188b: JUMP
0000188c: JUMPDEST
0000188d: PUSH1 0x20
0000188f: DUP1
00001890: DUP3
00001891: MSTORE
00001892: PUSH1 0x2b
00001894: SWAP1
00001895: DUP3
00001896: ADD
00001897: MSTORE
00001898: PUSH32 0x5573657250726f78793a206f70657261746f722063616e206e6f74206265207a
000018b9: PUSH1 0x40
000018bb: DUP3
000018bc: ADD
000018bd: MSTORE
000018be: PUSH32 0x65726f2061646472657373000000000000000000000000000000000000000000
000018df: PUSH1 0x60
000018e1: DUP3
000018e2: ADD
000018e3: MSTORE
000018e4: PUSH1 0x80
000018e6: ADD
000018e7: SWAP1
000018e8: JUMP
000018e9: JUMPDEST
000018ea: PUSH1 0x20
000018ec: DUP1
000018ed: DUP3
000018ee: MSTORE
000018ef: PUSH1 0x22
000018f1: SWAP1
000018f2: DUP3
000018f3: ADD
000018f4: MSTORE
000018f5: PUSH32 0x5573657250726f78793a204c696d6974204f726465722069732064697361626c
00001916: PUSH1 0x40
00001918: DUP3
00001919: ADD
0000191a: MSTORE
0000191b: PUSH32 0x6564000000000000000000000000000000000000000000000000000000000000
0000193c: PUSH1 0x60
0000193e: DUP3
0000193f: ADD
00001940: MSTORE
00001941: PUSH1 0x80
00001943: ADD
00001944: SWAP1
00001945: JUMP
00001946: JUMPDEST
00001947: PUSH1 0x20
00001949: DUP1
0000194a: DUP3
0000194b: MSTORE
0000194c: PUSH1 0x13
0000194e: SWAP1
0000194f: DUP3
00001950: ADD
00001951: MSTORE
00001952: PUSH32 0x5573657250726f78793a206f6e6c7920454f4100000000000000000000000000
00001973: PUSH1 0x40
00001975: DUP3
00001976: ADD
00001977: MSTORE
00001978: PUSH1 0x60
0000197a: ADD
0000197b: SWAP1
0000197c: JUMP
0000197d: JUMPDEST
0000197e: PUSH1 0x20
00001980: DUP1
00001981: DUP3
00001982: MSTORE
00001983: PUSH1 0x1c
00001985: SWAP1
00001986: DUP3
00001987: ADD
00001988: MSTORE
00001989: PUSH32 0x5573657250726f78793a2052465176322069732064697361626c656400000000
000019aa: PUSH1 0x40
000019ac: DUP3
000019ad: ADD
000019ae: MSTORE
000019af: PUSH1 0x60
000019b1: ADD
000019b2: SWAP1
000019b3: JUMP
000019b4: JUMPDEST
000019b5: PUSH1 0x20
000019b7: DUP1
000019b8: DUP3
000019b9: MSTORE
000019ba: PUSH1 0x1a
000019bc: SWAP1
000019bd: DUP3
000019be: ADD
000019bf: MSTORE
000019c0: PUSH32 0x5573657250726f78793a20504d4d2069732064697361626c6564000000000000
000019e1: PUSH1 0x40
000019e3: DUP3
000019e4: ADD
000019e5: MSTORE
000019e6: PUSH1 0x60
000019e8: ADD
000019e9: SWAP1
000019ea: JUMP
000019eb: JUMPDEST
000019ec: PUSH1 0x20
000019ee: DUP1
000019ef: DUP3
000019f0: MSTORE
000019f1: PUSH1 0x18
000019f3: SWAP1
000019f4: DUP3
000019f5: ADD
000019f6: MSTORE
000019f7: PUSH32 0x5573657250726f78793a206e6f74206e6f6d696e617465640000000000000000
00001a18: PUSH1 0x40
00001a1a: DUP3
00001a1b: ADD
00001a1c: MSTORE
00001a1d: PUSH1 0x60
00001a1f: ADD
00001a20: SWAP1
00001a21: JUMP
00001a22: JUMPDEST
00001a23: PUSH1 0x20
00001a25: DUP1
00001a26: DUP3
00001a27: MSTORE
00001a28: PUSH1 0x1a
00001a2a: SWAP1
00001a2b: DUP3
00001a2c: ADD
00001a2d: MSTORE
00001a2e: PUSH32 0x5573657250726f78793a205246512069732064697361626c6564000000000000
00001a4f: PUSH1 0x40
00001a51: DUP3
00001a52: ADD
00001a53: MSTORE
00001a54: PUSH1 0x60
00001a56: ADD
00001a57: SWAP1
00001a58: JUMP
00001a59: JUMPDEST
00001a5a: PUSH1 0x20
00001a5c: DUP1
00001a5d: DUP3
00001a5e: MSTORE
00001a5f: PUSH1 0x1b
00001a61: SWAP1
00001a62: DUP3
00001a63: ADD
00001a64: MSTORE
00001a65: PUSH32 0x5573657250726f78793a206e6f7420746865206f70657261746f720000000000
00001a86: PUSH1 0x40
00001a88: DUP3
00001a89: ADD
00001a8a: MSTORE
00001a8b: PUSH1 0x60
00001a8d: ADD
00001a8e: SWAP1
00001a8f: JUMP
00001a90: JUMPDEST
00001a91: PUSH1 0x20
00001a93: DUP1
00001a94: DUP3
00001a95: MSTORE
00001a96: PUSH1 0x1a
00001a98: SWAP1
00001a99: DUP3
00001a9a: ADD
00001a9b: MSTORE
00001a9c: PUSH32 0x5573657250726f78793a20414d4d2069732064697361626c6564000000000000
00001abd: PUSH1 0x40
00001abf: DUP3
00001ac0: ADD
00001ac1: MSTORE
00001ac2: PUSH1 0x60
00001ac4: ADD
00001ac5: SWAP1
00001ac6: JUMP
00001ac7: JUMPDEST
00001ac8: PUSH1 0x20
00001aca: DUP1
00001acb: DUP3
00001acc: MSTORE
00001acd: PUSH1 0x23
00001acf: SWAP1
00001ad0: DUP3
00001ad1: ADD
00001ad2: MSTORE
00001ad3: PUSH32 0x5573657250726f78793a206e6f7420757067726164696e672066726f6d20656d
00001af4: PUSH1 0x40
00001af6: DUP3
00001af7: ADD
00001af8: MSTORE
00001af9: PUSH32 0x7074790000000000000000000000000000000000000000000000000000000000
00001b1a: PUSH1 0x60
00001b1c: DUP3
00001b1d: ADD
00001b1e: MSTORE
00001b1f: PUSH1 0x80
00001b21: ADD
00001b22: SWAP1
00001b23: JUMP
00001b24: JUMPDEST
00001b25: PUSH1 0x00
00001b27: DUP4
00001b28: DUP3
00001b29: MSTORE
00001b2a: PUSH1 0x40
00001b2c: PUSH1 0x20
00001b2e: DUP4
00001b2f: ADD
00001b30: MSTORE
00001b31: PUSH2 0x1b3d
00001b34: PUSH1 0x40
00001b36: DUP4
00001b37: ADD
00001b38: DUP5
00001b39: PUSH2 0x1714
00001b3c: JUMP
00001b3d: JUMPDEST
00001b3e: SWAP5
00001b3f: SWAP4
00001b40: POP
00001b41: POP
00001b42: POP
00001b43: POP
00001b44: JUMP
00001b45: JUMPDEST
00001b46: PUSH1 0x00
00001b48: DUP1
00001b49: DUP4
00001b4a: CALLDATALOAD
00001b4b: PUSH1 0x1e
00001b4d: NOT
00001b4e: DUP5
00001b4f: CALLDATASIZE
00001b50: SUB
00001b51: ADD
00001b52: DUP2
00001b53: SLT
00001b54: PUSH2 0x1b5b
00001b57: JUMPI
00001b58: DUP3
00001b59: DUP4
00001b5a: REVERT
00001b5b: JUMPDEST
00001b5c: DUP4
00001b5d: ADD
00001b5e: DUP1
00001b5f: CALLDATALOAD
00001b60: SWAP2
00001b61: POP
00001b62: PUSH8 0xffffffffffffffff
00001b6b: DUP3
00001b6c: GT
00001b6d: ISZERO
00001b6e: PUSH2 0x1b75
00001b71: JUMPI
00001b72: DUP3
00001b73: DUP4
00001b74: REVERT
00001b75: JUMPDEST
00001b76: PUSH1 0x20
00001b78: ADD
00001b79: SWAP2
00001b7a: POP
00001b7b: CALLDATASIZE
00001b7c: DUP2
00001b7d: SWAP1
00001b7e: SUB
00001b7f: DUP3
00001b80: SGT
00001b81: ISZERO
00001b82: PUSH2 0x1b8a
00001b85: JUMPI
00001b86: PUSH1 0x00
00001b88: DUP1
00001b89: REVERT
00001b8a: JUMPDEST
00001b8b: SWAP3
00001b8c: POP
00001b8d: SWAP3
00001b8e: SWAP1
00001b8f: POP
00001b90: JUMP
00001b91: JUMPDEST
00001b92: PUSH1 0x00
00001b94: JUMPDEST
00001b95: DUP4
00001b96: DUP2
00001b97: LT
00001b98: ISZERO
00001b99: PUSH2 0x1bac
00001b9c: JUMPI
00001b9d: DUP2
00001b9e: DUP2
00001b9f: ADD
00001ba0: MLOAD
00001ba1: DUP4
00001ba2: DUP3
00001ba3: ADD
00001ba4: MSTORE
00001ba5: PUSH1 0x20
00001ba7: ADD
00001ba8: PUSH2 0x1b94
00001bab: JUMP
00001bac: JUMPDEST
00001bad: DUP4
00001bae: DUP2
00001baf: GT
00001bb0: ISZERO
00001bb1: PUSH2 0x1bbb
00001bb4: JUMPI
00001bb5: PUSH1 0x00
00001bb7: DUP5
00001bb8: DUP5
00001bb9: ADD
00001bba: MSTORE
00001bbb: JUMPDEST
00001bbc: POP
00001bbd: POP
00001bbe: POP
00001bbf: POP
00001bc0: JUMP
00001bc1: INVALID
00001bc2: LOG2
00001bc3: PUSH5 0x6970667358
00001bc9: UNKNOWN(0x22)
00001bca: SLT
00001bcb: KECCAK256
00001bcc: PUSH20 0x472f6f5e79471eeaf04b2ff08bab94017e08b9a3
00001be1: PUSH27

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high access_control codex Unprotected initializer allows operator takeover 85 no
view
evidence_json
{
    "evidence": "`initialize` is `external` with only a version-empty check and no access control.",
    "locations": [
        "contracts/UserProxy.sol:60"
    ],
    "recommendation": "Protect `initialize` with an access control mechanism (e.g., only deployer or a trusted factory), or use a constructor-based initialization in non-proxy deployments. For proxies, adopt OpenZeppelin Initializable and restrict initialization to the admin, ensuring it is called in the same transaction as deployment.",
    "exploit_scenario": "If the contract is deployed without immediately calling `initialize`, any account can call it first and set themselves as `operator`. The attacker can then upgrade AMM/PMM/RFQ/LimitOrder addresses to malicious contracts or disable routes, potentially redirecting user calls and funds."
}
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0x4ca2775f6cf5af1e438c26876afd0985b7f7e632ea10217742b182f11d2bafcf
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0x4ca2775f6cf5af1e438c26876afd0985b7f7e632ea10217742b182f11d2bafcf",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xde83cd54",
            "selector": "0xde83cd54",
            "calldata_variants": [
                "0xde83cd54",
                "0xde83cd540000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe47d166c",
            "selector": "0xe47d166c",
            "calldata_variants": [
                "0xe47d166c",
                "0xe47d166c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe5f23b16",
            "selector": "0xe5f23b16",
            "calldata_variants": [
                "0xe5f23b16",
                "0xe5f23b160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec559084",
            "selector": "0xec559084",
            "calldata_variants": [
                "0xec559084",
                "0xec5590840000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbbd3f638",
            "selector": "0xbbd3f638",
            "calldata_variants": [
                "0xbbd3f638",
                "0xbbd3f6380000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc37197d3",
            "selector": "0xc37197d3",
            "calldata_variants": [
                "0xc37197d3",
                "0xc37197d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc3e92075",
            "selector": "0xc3e92075",
            "calldata_variants": [
                "0xc3e92075",
                "0xc3e920750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc4d66de8",
            "selector": "0xc4d66de8",
            "calldata_variants": [
                "0xc4d66de8",
                "0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1809,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 3015,
            "type": "tx_origin_used"
        },
        {
            "pc": 3211,
            "type": "tx_origin_used"
        },
        {
            "pc": 3775,
            "type": "tx_origin_used"
        },
        {
            "pc": 3852,
            "type": "tx_origin_used"
        },
        {
            "pc": 3014,
            "type": "tx_origin_used"
        },
        {
            "pc": 3210,
            "type": "tx_origin_used"
        },
        {
            "pc": 3774,
            "type": "tx_origin_used"
        },
        {
            "pc": 3851,
            "type": "tx_origin_used"
        }
    ],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
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": "0xde83cd54",
            "selector": "0xde83cd54",
            "calldata_variants": [
                "0xde83cd54",
                "0xde83cd540000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe47d166c",
            "selector": "0xe47d166c",
            "calldata_variants": [
                "0xe47d166c",
                "0xe47d166c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe5f23b16",
            "selector": "0xe5f23b16",
            "calldata_variants": [
                "0xe5f23b16",
                "0xe5f23b160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec559084",
            "selector": "0xec559084",
            "calldata_variants": [
                "0xec559084",
                "0xec5590840000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbbd3f638",
            "selector": "0xbbd3f638",
            "calldata_variants": [
                "0xbbd3f638",
                "0xbbd3f6380000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc37197d3",
            "selector": "0xc37197d3",
            "calldata_variants": [
                "0xc37197d3",
                "0xc37197d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc3e92075",
            "selector": "0xc3e92075",
            "calldata_variants": [
                "0xc3e92075",
                "0xc3e920750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc4d66de8",
            "selector": "0xc4d66de8",
            "calldata_variants": [
                "0xc4d66de8",
                "0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 3015,
            "type": "tx_origin_used"
        },
        {
            "pc": 3211,
            "type": "tx_origin_used"
        },
        {
            "pc": 3775,
            "type": "tx_origin_used"
        },
        {
            "pc": 3852,
            "type": "tx_origin_used"
        },
        {
            "pc": 3014,
            "type": "tx_origin_used"
        },
        {
            "pc": 3210,
            "type": "tx_origin_used"
        },
        {
            "pc": 3774,
            "type": "tx_origin_used"
        },
        {
            "pc": 3851,
            "type": "tx_origin_used"
        }
    ]
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xb7d67c1756282b496e9f6176b3e5b9295889dcfc765403116c55383302b9a6ad
call_targets: 0x0b9f13ffab8448089f50073cf24bbe5c7bd8675a
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xb7d67c1756282b496e9f6176b3e5b9295889dcfc765403116c55383302b9a6ad",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0b9f13ffab8448089f50073cf24bbe5c7bd8675a"
    ],
    "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": "0xde83cd54",
            "selector": "0xde83cd54",
            "calldata_variants": [
                "0xde83cd54",
                "0xde83cd540000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe47d166c",
            "selector": "0xe47d166c",
            "calldata_variants": [
                "0xe47d166c",
                "0xe47d166c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe5f23b16",
            "selector": "0xe5f23b16",
            "calldata_variants": [
                "0xe5f23b16",
                "0xe5f23b160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec559084",
            "selector": "0xec559084",
            "calldata_variants": [
                "0xec559084",
                "0xec5590840000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbbd3f638",
            "selector": "0xbbd3f638",
            "calldata_variants": [
                "0xbbd3f638",
                "0xbbd3f6380000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc37197d3",
            "selector": "0xc37197d3",
            "calldata_variants": [
                "0xc37197d3",
                "0xc37197d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc3e92075",
            "selector": "0xc3e92075",
            "calldata_variants": [
                "0xc3e92075",
                "0xc3e920750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc4d66de8",
            "selector": "0xc4d66de8",
            "calldata_variants": [
                "0xc4d66de8",
                "0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3092,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3288,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [
        {
            "pc": 3015,
            "type": "tx_origin_used"
        },
        {
            "pc": 3211,
            "type": "tx_origin_used"
        },
        {
            "pc": 3775,
            "type": "tx_origin_used"
        },
        {
            "pc": 3852,
            "type": "tx_origin_used"
        },
        {
            "pc": 3014,
            "type": "tx_origin_used"
        },
        {
            "pc": 3210,
            "type": "tx_origin_used"
        },
        {
            "pc": 3774,
            "type": "tx_origin_used"
        },
        {
            "pc": 3851,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 2
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xb7d67c1756282b496e9f6176b3e5b9295889dcfc765403116c55383302b9a6ad
call_targets: 0x0b9f13ffab8448089f50073cf24bbe5c7bd8675a
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xb7d67c1756282b496e9f6176b3e5b9295889dcfc765403116c55383302b9a6ad",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0b9f13ffab8448089f50073cf24bbe5c7bd8675a"
    ],
    "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": "0xde83cd54",
            "selector": "0xde83cd54",
            "calldata_variants": [
                "0xde83cd54",
                "0xde83cd540000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe47d166c",
            "selector": "0xe47d166c",
            "calldata_variants": [
                "0xe47d166c",
                "0xe47d166c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe5f23b16",
            "selector": "0xe5f23b16",
            "calldata_variants": [
                "0xe5f23b16",
                "0xe5f23b160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec559084",
            "selector": "0xec559084",
            "calldata_variants": [
                "0xec559084",
                "0xec5590840000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbbd3f638",
            "selector": "0xbbd3f638",
            "calldata_variants": [
                "0xbbd3f638",
                "0xbbd3f6380000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc37197d3",
            "selector": "0xc37197d3",
            "calldata_variants": [
                "0xc37197d3",
                "0xc37197d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc3e92075",
            "selector": "0xc3e92075",
            "calldata_variants": [
                "0xc3e92075",
                "0xc3e920750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc4d66de8",
            "selector": "0xc4d66de8",
            "calldata_variants": [
                "0xc4d66de8",
                "0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3092,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3288,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": [
        {
            "pc": 3015,
            "type": "tx_origin_used"
        },
        {
            "pc": 3211,
            "type": "tx_origin_used"
        },
        {
            "pc": 3775,
            "type": "tx_origin_used"
        },
        {
            "pc": 3852,
            "type": "tx_origin_used"
        },
        {
            "pc": 3014,
            "type": "tx_origin_used"
        },
        {
            "pc": 3210,
            "type": "tx_origin_used"
        },
        {
            "pc": 3774,
            "type": "tx_origin_used"
        },
        {
            "pc": 3851,
            "type": "tx_origin_used"
        }
    ]
}