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

Analysis Run

3f64d8b1-7867-4b19-ac8a-e7491ef06aa9

failed
Chain ID
1
Address
Block Number
Created
Sun, Dec 28, 2025 5:04 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
Unrestricted dispatcher initialize allows sub-contract takeover and arbitrary delegatecall
crit 0 high 0 proxy context implementation known
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30334 report.consolidate complete 1 / 1 3 months ago
74188 artifact.fetch failed 1 / 3 1 week ago
74189 tool.cast_disasm complete 1 / 3 1 week ago
74190 analysis.bundle complete 1 / 3 1 week ago
74191 capability.graph complete 1 / 3 1 week ago
74192 detector.run complete 1 / 3 1 week ago
74193 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Found 1 critical upgradeability/access-control issue: the dispatcher initializer is callable by any proxy caller and can rewrite sub-contract routing or delegatecall arbitrary initializer code.
View stderr
[codex:718012] OpenAI Codex v0.77.0 (research preview)
[codex:718012] --------
[codex:718012] workdir: /tmp/codex-multi-34vp6iro
[codex:718012] model: gpt-5.2-codex
[codex:718012] provider: openai
[codex:718012] approval: never
[codex:718012] sandbox: read-only
[codex:718012] reasoning effort: xhigh
[codex:718012] reasoning summaries: auto
[codex:718012] session id: 019b65e8-7b8b-7a11-9642-a0618f0788a6
[codex:718012] --------
[codex:718012] user
[codex:718012] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:718012] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:718012] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:718012] 
[codex:718012] Scope rules:
[codex:718012] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:718012] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:718012] 
[codex:718012] Output MUST be valid JSON matching the provided schema.
[codex:718012] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:718012] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:718012] 
[codex:718012] Output constraints (IMPORTANT):
[codex:718012] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:718012] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:718012] mcp startup: no servers
[codex:718012] 
[codex:718012] thinking
[codex:718012] **Reading AUDIT_BUNDLE.txt**
[codex:718012] exec
[codex:718012] /bin/bash -lc ls in /tmp/codex-multi-34vp6iro succeeded in 5ms:
[codex:718012] AUDIT_BUNDLE.txt
[codex:718012] codex-output-schema.json
[codex:718012] contracts
[codex:718012] 
[codex:718012] thinking
[codex:718012] **Opening AUDIT_BUNDLE.txt**
[codex:718012] exec
[codex:718012] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-34vp6iro succeeded in 6ms:
[codex:718012] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:718012] 
[codex:718012] ================================================================================
[codex:718012] FILE: contracts/src/components/Governance.sol
[codex:718012] ================================================================================
[codex:718012] /*
[codex:718012]   Copyright 2019-2024 StarkWare Industries Ltd.
[codex:718012] 
[codex:718012]   Licensed under the Apache License, Version 2.0 (the "License").
[codex:718012]   You may not use this file except in compliance with the License.
[codex:718012]   You may obtain a copy of the License at
[codex:718012] 
[codex:718012]   https://www.starkware.co/open-source-license/
[codex:718012] 
[codex:718012]   Unless required by applicable law or agreed to in writing,
[codex:718012]   software distributed under the License is distributed on an "AS IS" BASIS,
[codex:718012]   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:718012]   See the License for the specific language governing permissions
[codex:718012]   and limitations under the License.
[codex:718012] */
[codex:718012] 
[codex:718012] thinking
[codex:718012] **Preparing to fully read audit bundle**
[codex:718012] exec
[codex:718012] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-34vp6iro succeeded in 6ms:
[codex:718012] 4:FILE: contracts/src/components/Governance.sol
[codex:718012] 131:FILE: contracts/src/components/GovernanceStorage.sol
[codex:718012] 161:FILE: contracts/src/components/MainStorage.sol
[codex:718012] 301:FILE: contracts/src/interfaces/BlockDirectCall.sol
[codex:718012] 341:FILE: contracts/src/interfaces/IDispatcherBase.sol
[codex:718012] 382:FILE: contracts/src/interfaces/Identity.sol
[codex:718012] 410:FILE: contracts/src/interfaces/MGovernance.sol
[codex:718012] 443:FILE: contracts/src/interfaces/MainDispatcher.sol
[codex:718012] 531:FILE: contracts/src/interfaces/MainDispatcherBase.sol
[codex:718012] 767:FILE: contracts/src/interfaces/SubContractor.sol
[codex:718012] 804:FILE: contracts/src/libraries/Addresses.sol
[codex:718012] 866:FILE: contracts/src/libraries/StarkExTypes.sol
[codex:718012] 902:FILE: contracts/src/perpetual/StarkPerpetual.sol
[codex:718012] 984:FILE: contracts/src/perpetual/components/PerpetualStorage.sol
[codex:718012] 1034:FILE: contracts/src/upgrade/ProxyStorage.sol
[codex:718012] 
[codex:718012] thinking
[codex:718012] **Preparing to read MainDispatcherBase file**
[codex:718012] exec
[codex:718012] /bin/bash -lc "sed -n '430,620p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-34vp6iro succeeded in 5ms:
[codex:718012] abstract contract MGovernance {
[codex:718012]     function _isGovernor(address user) internal view virtual returns (bool);
[codex:718012] 
[codex:718012]     /*
[codex:718012]       Allows calling the function only by a Governor.
[codex:718012]     */
[codex:718012]     modifier onlyGovernance() {
[codex:718012]         require(_isGovernor(msg.sender), "ONLY_GOVERNANCE");
[codex:718012]         _;
[codex:718012]     }
[codex:718012] }
[codex:718012] 
[codex:718012] ================================================================================
[codex:718012] FILE: contracts/src/interfaces/MainDispatcher.sol
[codex:718012] ================================================================================
[codex:718012] /*
[codex:718012]   Copyright 2019-2024 StarkWare Industries Ltd.
[codex:718012] 
[codex:718012]   Licensed under the Apache License, Version 2.0 (the "License").
[codex:718012]   You may not use this file except in compliance with the License.
[codex:718012] 
[codex:718012] thinking
[codex:718012] **Continuing file reading**
[codex:718012] exec
[codex:718012] /bin/bash -lc "sed -n '620,860p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-34vp6iro succeeded in 6ms:
[codex:718012]       may corrupt it.
[codex:718012] 
[codex:718012]       In the event that some state initialization is required, the EIC is a hook that allows this.
[codex:718012]       It may be deployed and called specifically for this purpose.
[codex:718012] 
[codex:718012]       The address of the EIC must be provided (if at all) when a new implementation is added to
[codex:718012]       a Proxy contract (as part of the initialization vector).
[codex:718012]       Hence, it is considered part of the code open to reviewers prior to a time-locked upgrade.
[codex:718012] 
[codex:718012]       When a custom initialization is performed using an EIC,
[codex:718012]       the main dispatcher initialize extracts and stores the sub-contracts addresses, and then
[codex:718012]       yields to the EIC, skipping the rest of its initialization code.
[codex:718012] 
[codex:718012] 
[codex:718012]       Flow of MainDispatcher initialize
[codex:718012]       ---------------------------------
[codex:718012]       1. Extraction and assignment of subcontracts addresses
[codex:718012]          Main dispatcher expects a valid and consistent set of addresses in the passed data.
[codex:718012]          It validates that, extracts the addresses from the data, and validates that the addresses
[codex:718012]          are of the expected type and order. Then those addresses are stored.
[codex:718012] 
[codex:718012] 
[codex:718012] thinking
[codex:718012] **Identifying initialization and upgrade vulnerabilities**
[codex:718012] 
[codex:718012] I'm analyzing the MainDispatcherBase's initialize function and governance components to spot security risks, focusing on access control and proxy upgrade patterns. It looks like initialize is externally callable via proxy fallback without explicit restrictions, potentially allowing anyone to reset subContracts or trigger delegatecalls to arbitrary external initializers. The lack of strong one-time initialization guards or governance checks in this code raises serious upgradeability and reentrancy concerns, though proxy-level protections might exist externally but aren't visible here. I want to explore how this could be exploited and recommend tighter access control within initialize or at least rigorous sentinel checks.
[codex:718012] thinking
[codex:718012] **Verifying arithmetic checks and fallback behavior**
[codex:718012] 
[codex:718012] I'm examining the arithmetic overflow protections in totalInitSizes calculations and confirming that delegatecalls in the fallback function properly handle value and reentrancy concerns. The size overflow risk seems negligible due to calldata and gas limits, and delegatecall properly preserves msg.value. I’m making sure no overlooked issues remain by scanning earlier parts of the audit bundle and other governance files.
[codex:718012] exec
[codex:718012] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-34vp6iro succeeded in 5ms:
[codex:718012] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:718012] 
[codex:718012] ================================================================================
[codex:718012] FILE: contracts/src/components/Governance.sol
[codex:718012] ================================================================================
[codex:718012] /*
[codex:718012]   Copyright 2019-2024 StarkWare Industries Ltd.
[codex:718012] 
[codex:718012]   Licensed under the Apache License, Version 2.0 (the "License").
[codex:718012]   You may not use this file except in compliance with the License.
[codex:718012]   You may obtain a copy of the License at
[codex:718012] 
[codex:718012]   https://www.starkware.co/open-source-license/
[codex:718012] 
[codex:718012]   Unless required by applicable law or agreed to in writing,
[codex:718012]   software distributed under the License is distributed on an "AS IS" BASIS,
[codex:718012]   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:718012]   See the License for the specific language governing permissions
[codex:718012]   and limitations under the License.
[codex:718012] */
[codex:718012] 
[codex:718012] thinking
[codex:718012] **Assessing critical initialize vulnerability**
[codex:718012] exec
[codex:718012] /bin/bash -lc "nl -ba contracts/src/interfaces/MainDispatcherBase.sol | sed -n '1,220p'" in /tmp/codex-multi-34vp6iro succeeded in 6ms:
[codex:718012]      1	/*
[codex:718012]      2	  Copyright 2019-2024 StarkWare Industries Ltd.
[codex:718012]      3	
[codex:718012]      4	  Licensed under the Apache License, Version 2.0 (the "License").
[codex:718012]      5	  You may not use this file except in compliance with the License.
[codex:718012]      6	  You may obtain a copy of the License at
[codex:718012]      7	
[codex:718012]      8	  https://www.starkware.co/open-source-license/
[codex:718012]      9	
[codex:718012]     10	  Unless required by applicable law or agreed to in writing,
[codex:718012]     11	  software distributed under the License is distributed on an "AS IS" BASIS,
[codex:718012]     12	  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:718012]     13	  See the License for the specific language governing permissions
[codex:718012]     14	  and limitations under the License.
[codex:718012]     15	*/
[codex:718012]     16	// SPDX-License-Identifier: Apache-2.0.
[codex:718012]     17	pragma solidity ^0.6.12;
[codex:718012]     18	
[codex:718012]     19	import "./SubContractor.sol";
[codex:718012]     20	import "./IDispatcherBase.sol";
[codex:718012] 
[codex:718012] thinking
[codex:718012] **Displaying callExternalInitializer line numbers**
[codex:718012] exec
[codex:718012] /bin/bash -lc "nl -ba contracts/src/interfaces/MainDispatcherBase.sol | sed -n '220,320p'" in /tmp/codex-multi-34vp6iro succeeded in 6ms:
[codex:718012]    220	    function callExternalInitializer(address externalInitializerAddr, bytes calldata extInitData)
[codex:718012]    221	        private
[codex:718012]    222	    {
[codex:718012]    223	        require(externalInitializerAddr.isContract(), "NOT_A_CONTRACT");
[codex:718012]    224	
[codex:718012]    225	        // NOLINTNEXTLINE: low-level-calls, controlled-delegatecall.
[codex:718012]    226	        (bool success, bytes memory returndata) = externalInitializerAddr.delegatecall(
[codex:718012]    227	            abi.encodeWithSelector(this.initialize.selector, extInitData)
[codex:718012]    228	        );
[codex:718012]    229	        require(success, string(returndata));
[codex:718012]    230	        require(returndata.length == 0, string(returndata));
[codex:718012]    231	    }
[codex:718012]    232	}
[codex:718012] 
[codex:718012] thinking
[codex:718012] **Preparing detailed upgradeability finding**
[codex:718012] codex
[codex:718012] {"no_findings":false,"summary":"Found 1 critical upgradeability/access-control issue: the dispatcher initializer is callable by any proxy caller and can rewrite sub-contract routing or delegatecall arbitrary initializer code.","findings":[{"severity":"critical","category":"upgradeability","title":"Unrestricted dispatcher initialize allows sub-contract takeover and arbitrary delegatecall","exploit_scenario":"An attacker calls `initialize(bytes)` through the proxy (passes `notCalledDirectly`) with crafted calldata. Because there is no access control or one-time guard at the entry, they can replace `subContracts` with malicious contracts (or supply a malicious external initializer) and thus seize control of all delegated logic, drain funds, or corrupt state.","recommendation":"Restrict `initialize` to governance/proxy admin only, and enforce a one-time or upgrade-only guard before writing `subContracts` (e.g., require an initialized flag or an upgrade context set by the proxy). Consider validating/whitelisting the external initializer and removing the `additionalDataSize==0` early return unless explicitly authorized by the upgrade mechanism.","evidence":"`initialize` is external and only gated by `notCalledDirectly`, yet it overwrites `subContracts` and can delegatecall an arbitrary external initializer without any governance check.","locations":["contracts/src/interfaces/MainDispatcherBase.sol:124","contracts/src/interfaces/MainDispatcherBase.sol:144","contracts/src/interfaces/MainDispatcherBase.sol:165","contracts/src/interfaces/MainDispatcherBase.sol:172","contracts/src/interfaces/MainDispatcherBase.sol:226"]}]}
[codex:718012] tokens used
[codex:718012] 34,885
[codex:718012] {"no_findings":false,"summary":"Found 1 critical upgradeability/access-control issue: the dispatcher initializer is callable by any proxy caller and can rewrite sub-contract routing or delegatecall arbitrary initializer code.","findings":[{"severity":"critical","category":"upgradeability","title":"Unrestricted dispatcher initialize allows sub-contract takeover and arbitrary delegatecall","exploit_scenario":"An attacker calls `initialize(bytes)` through the proxy (passes `notCalledDirectly`) with crafted calldata. Because there is no access control or one-time guard at the entry, they can replace `subContracts` with malicious contracts (or supply a malicious external initializer) and thus seize control of all delegated logic, drain funds, or corrupt state.","recommendation":"Restrict `initialize` to governance/proxy admin only, and enforce a one-time or upgrade-only guard before writing `subContracts` (e.g., require an initialized flag or an upgrade context set by the proxy). Consider validating/whitelisting the external initializer and removing the `additionalDataSize==0` early return unless explicitly authorized by the upgrade mechanism.","evidence":"`initialize` is external and only gated by `notCalledDirectly`, yet it overwrites `subContracts` and can delegatecall an arbitrary external initializer without any governance check.","locations":["contracts/src/interfaces/MainDispatcherBase.sol:124","contracts/src/interfaces/MainDispatcherBase.sol:144","contracts/src/interfaces/MainDispatcherBase.sol:165","contracts/src/interfaces/MainDispatcherBase.sol:172","contracts/src/interfaces/MainDispatcherBase.sol:226"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-28T17:04:08.911638+00:00",
        "returncode": 0
    },
    "summary": "Found 1 critical upgradeability/access-control issue: the dispatcher initializer is callable by any proxy caller and can rewrite sub-contract routing or delegatecall arbitrary initializer code.",
    "raw_final": {
        "summary": "Found 1 critical upgradeability/access-control issue: the dispatcher initializer is callable by any proxy caller and can rewrite sub-contract routing or delegatecall arbitrary initializer code.",
        "findings": [
            {
                "title": "Unrestricted dispatcher initialize allows sub-contract takeover and arbitrary delegatecall",
                "category": "upgradeability",
                "evidence": "`initialize` is external and only gated by `notCalledDirectly`, yet it overwrites `subContracts` and can delegatecall an arbitrary external initializer without any governance check.",
                "severity": "critical",
                "locations": [
                    "contracts/src/interfaces/MainDispatcherBase.sol:124",
                    "contracts/src/interfaces/MainDispatcherBase.sol:144",
                    "contracts/src/interfaces/MainDispatcherBase.sol:165",
                    "contracts/src/interfaces/MainDispatcherBase.sol:172",
                    "contracts/src/interfaces/MainDispatcherBase.sol:226"
                ],
                "recommendation": "Restrict `initialize` to governance/proxy admin only, and enforce a one-time or upgrade-only guard before writing `subContracts` (e.g., require an initialized flag or an upgrade context set by the proxy). Consider validating/whitelisting the external initializer and removing the `additionalDataSize==0` early return unless explicitly authorized by the upgrade mechanism.",
                "exploit_scenario": "An attacker calls `initialize(bytes)` through the proxy (passes `notCalledDirectly`) with crafted calldata. Because there is no access control or one-time guard at the entry, they can replace `subContracts` with malicious contracts (or supply a malicious external initializer) and thus seize control of all delegated logic, drain funds, or corrupt state."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
4
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
3
Total opcodes
3594
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0064
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x2f9014b4
00000019: EQ
0000001a: PUSH2 0x0149
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x439fab91
00000024: EQ
00000025: PUSH2 0x0199
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xadac3e15
0000002f: EQ
00000030: PUSH2 0x0216
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xc1a85130
0000003a: EQ
0000003b: PUSH2 0x023d
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xd4e878e8
00000045: EQ
00000046: PUSH2 0x0252
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf2011f66
00000050: EQ
00000051: PUSH2 0x02fb
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xffa1ad74
0000005b: EQ
0000005c: PUSH2 0x0325
0000005f: JUMPI
00000060: PUSH2 0x00b6
00000063: JUMP
00000064: JUMPDEST
00000065: CALLDATASIZE
00000066: PUSH2 0x00b6
00000069: JUMPI
0000006a: PUSH1 0x40
0000006c: DUP1
0000006d: MLOAD
0000006e: PUSH3 0x461bcd
00000072: PUSH1 0xe5
00000074: SHL
00000075: DUP2
00000076: MSTORE
00000077: PUSH1 0x20
00000079: PUSH1 0x04
0000007b: DUP3
0000007c: ADD
0000007d: DUP2
0000007e: SWAP1
0000007f: MSTORE
00000080: PUSH1 0x24
00000082: DUP3
00000083: ADD
00000084: MSTORE
00000085: PUSH32 0x434f4e54524143545f4e4f545f45585045435445445f544f5f52454345495645
000000a6: PUSH1 0x44
000000a8: DUP3
000000a9: ADD
000000aa: MSTORE
000000ab: SWAP1
000000ac: MLOAD
000000ad: SWAP1
000000ae: DUP2
000000af: SWAP1
000000b0: SUB
000000b1: PUSH1 0x64
000000b3: ADD
000000b4: SWAP1
000000b5: REVERT
000000b6: JUMPDEST
000000b7: PUSH1 0x00
000000b9: PUSH2 0x00cd
000000bc: PUSH1 0x00
000000be: CALLDATALOAD
000000bf: PUSH1 0x01
000000c1: PUSH1 0x01
000000c3: PUSH1 0xe0
000000c5: SHL
000000c6: SUB
000000c7: NOT
000000c8: AND
000000c9: PUSH2 0x033a
000000cc: JUMP
000000cd: JUMPDEST
000000ce: SWAP1
000000cf: POP
000000d0: PUSH1 0x01
000000d2: PUSH1 0x01
000000d4: PUSH1 0xa0
000000d6: SHL
000000d7: SUB
000000d8: DUP2
000000d9: AND
000000da: PUSH2 0x0125
000000dd: JUMPI
000000de: PUSH1 0x40
000000e0: DUP1
000000e1: MLOAD
000000e2: PUSH3 0x461bcd
000000e6: PUSH1 0xe5
000000e8: SHL
000000e9: DUP2
000000ea: MSTORE
000000eb: PUSH1 0x20
000000ed: PUSH1 0x04
000000ef: DUP3
000000f0: ADD
000000f1: MSTORE
000000f2: PUSH1 0x18
000000f4: PUSH1 0x24
000000f6: DUP3
000000f7: ADD
000000f8: MSTORE
000000f9: PUSH24 0x2727afa1a7a72a2920a1aa2fa327a92fa32aa721aa24a7a7
00000112: PUSH1 0x41
00000114: SHL
00000115: PUSH1 0x44
00000117: DUP3
00000118: ADD
00000119: MSTORE
0000011a: SWAP1
0000011b: MLOAD
0000011c: SWAP1
0000011d: DUP2
0000011e: SWAP1
0000011f: SUB
00000120: PUSH1 0x64
00000122: ADD
00000123: SWAP1
00000124: REVERT
00000125: JUMPDEST
00000126: CALLDATASIZE
00000127: PUSH1 0x00
00000129: DUP1
0000012a: CALLDATACOPY
0000012b: PUSH1 0x00
0000012d: DUP1
0000012e: CALLDATASIZE
0000012f: PUSH1 0x00
00000131: DUP5
00000132: GAS
00000133: DELEGATECALL
00000134: RETURNDATASIZE
00000135: PUSH1 0x00
00000137: DUP1
00000138: RETURNDATACOPY
00000139: DUP1
0000013a: DUP1
0000013b: ISZERO
0000013c: PUSH2 0x0144
0000013f: JUMPI
00000140: RETURNDATASIZE
00000141: PUSH1 0x00
00000143: RETURN
00000144: JUMPDEST
00000145: RETURNDATASIZE
00000146: PUSH1 0x00
00000148: REVERT
00000149: JUMPDEST
0000014a: CALLVALUE
0000014b: DUP1
0000014c: ISZERO
0000014d: PUSH2 0x0155
00000150: JUMPI
00000151: PUSH1 0x00
00000153: DUP1
00000154: REVERT
00000155: JUMPDEST
00000156: POP
00000157: PUSH2 0x017d
0000015a: PUSH1 0x04
0000015c: DUP1
0000015d: CALLDATASIZE
0000015e: SUB
0000015f: PUSH1 0x20
00000161: DUP2
00000162: LT
00000163: ISZERO
00000164: PUSH2 0x016c
00000167: JUMPI
00000168: PUSH1 0x00
0000016a: DUP1
0000016b: REVERT
0000016c: JUMPDEST
0000016d: POP
0000016e: CALLDATALOAD
0000016f: PUSH1 0x01
00000171: PUSH1 0x01
00000173: PUSH1 0xe0
00000175: SHL
00000176: SUB
00000177: NOT
00000178: AND
00000179: PUSH2 0x033a
0000017c: JUMP
0000017d: JUMPDEST
0000017e: PUSH1 0x40
00000180: DUP1
00000181: MLOAD
00000182: PUSH1 0x01
00000184: PUSH1 0x01
00000186: PUSH1 0xa0
00000188: SHL
00000189: SUB
0000018a: SWAP1
0000018b: SWAP3
0000018c: AND
0000018d: DUP3
0000018e: MSTORE
0000018f: MLOAD
00000190: SWAP1
00000191: DUP2
00000192: SWAP1
00000193: SUB
00000194: PUSH1 0x20
00000196: ADD
00000197: SWAP1
00000198: RETURN
00000199: JUMPDEST
0000019a: CALLVALUE
0000019b: DUP1
0000019c: ISZERO
0000019d: PUSH2 0x01a5
000001a0: JUMPI
000001a1: PUSH1 0x00
000001a3: DUP1
000001a4: REVERT
000001a5: JUMPDEST
000001a6: POP
000001a7: PUSH2 0x0214
000001aa: PUSH1 0x04
000001ac: DUP1
000001ad: CALLDATASIZE
000001ae: SUB
000001af: PUSH1 0x20
000001b1: DUP2
000001b2: LT
000001b3: ISZERO
000001b4: PUSH2 0x01bc
000001b7: JUMPI
000001b8: PUSH1 0x00
000001ba: DUP1
000001bb: REVERT
000001bc: JUMPDEST
000001bd: DUP2
000001be: ADD
000001bf: SWAP1
000001c0: PUSH1 0x20
000001c2: DUP2
000001c3: ADD
000001c4: DUP2
000001c5: CALLDATALOAD
000001c6: PUSH1 0x01
000001c8: PUSH1 0x20
000001ca: SHL
000001cb: DUP2
000001cc: GT
000001cd: ISZERO
000001ce: PUSH2 0x01d6
000001d1: JUMPI
000001d2: PUSH1 0x00
000001d4: DUP1
000001d5: REVERT
000001d6: JUMPDEST
000001d7: DUP3
000001d8: ADD
000001d9: DUP4
000001da: PUSH1 0x20
000001dc: DUP3
000001dd: ADD
000001de: GT
000001df: ISZERO
000001e0: PUSH2 0x01e8
000001e3: JUMPI
000001e4: PUSH1 0x00
000001e6: DUP1
000001e7: REVERT
000001e8: JUMPDEST
000001e9: DUP1
000001ea: CALLDATALOAD
000001eb: SWAP1
000001ec: PUSH1 0x20
000001ee: ADD
000001ef: SWAP2
000001f0: DUP5
000001f1: PUSH1 0x01
000001f3: DUP4
000001f4: MUL
000001f5: DUP5
000001f6: ADD
000001f7: GT
000001f8: PUSH1 0x01
000001fa: PUSH1 0x20
000001fc: SHL
000001fd: DUP4
000001fe: GT
000001ff: OR
00000200: ISZERO
00000201: PUSH2 0x0209
00000204: JUMPI
00000205: PUSH1 0x00
00000207: DUP1
00000208: REVERT
00000209: JUMPDEST
0000020a: POP
0000020b: SWAP1
0000020c: SWAP3
0000020d: POP
0000020e: SWAP1
0000020f: POP
00000210: PUSH2 0x036b
00000213: JUMP
00000214: JUMPDEST
00000215: STOP
00000216: JUMPDEST
00000217: CALLVALUE
00000218: DUP1
00000219: ISZERO
0000021a: PUSH2 0x0222
0000021d: JUMPI
0000021e: PUSH1 0x00
00000220: DUP1
00000221: REVERT
00000222: JUMPDEST
00000223: POP
00000224: PUSH2 0x022b
00000227: PUSH2 0x09bc
0000022a: JUMP
0000022b: JUMPDEST
0000022c: PUSH1 0x40
0000022e: DUP1
0000022f: MLOAD
00000230: SWAP2
00000231: DUP3
00000232: MSTORE
00000233: MLOAD
00000234: SWAP1
00000235: DUP2
00000236: SWAP1
00000237: SUB
00000238: PUSH1 0x20
0000023a: ADD
0000023b: SWAP1
0000023c: RETURN
0000023d: JUMPDEST
0000023e: CALLVALUE
0000023f: DUP1
00000240: ISZERO
00000241: PUSH2 0x0249
00000244: JUMPI
00000245: PUSH1 0x00
00000247: DUP1
00000248: REVERT
00000249: JUMPDEST
0000024a: POP
0000024b: PUSH2 0x022b
0000024e: PUSH2 0x09ca
00000251: JUMP
00000252: JUMPDEST
00000253: CALLVALUE
00000254: DUP1
00000255: ISZERO
00000256: PUSH2 0x025e
00000259: JUMPI
0000025a: PUSH1 0x00
0000025c: DUP1
0000025d: REVERT
0000025e: JUMPDEST
0000025f: POP
00000260: PUSH2 0x0286
00000263: PUSH1 0x04
00000265: DUP1
00000266: CALLDATASIZE
00000267: SUB
00000268: PUSH1 0x20
0000026a: DUP2
0000026b: LT
0000026c: ISZERO
0000026d: PUSH2 0x0275
00000270: JUMPI
00000271: PUSH1 0x00
00000273: DUP1
00000274: REVERT
00000275: JUMPDEST
00000276: POP
00000277: CALLDATALOAD
00000278: PUSH1 0x01
0000027a: PUSH1 0x01
0000027c: PUSH1 0xe0
0000027e: SHL
0000027f: SUB
00000280: NOT
00000281: AND
00000282: PUSH2 0x09d8
00000285: JUMP
00000286: JUMPDEST
00000287: PUSH1 0x40
00000289: DUP1
0000028a: MLOAD
0000028b: PUSH1 0x20
0000028d: DUP1
0000028e: DUP3
0000028f: MSTORE
00000290: DUP4
00000291: MLOAD
00000292: DUP2
00000293: DUP4
00000294: ADD
00000295: MSTORE
00000296: DUP4
00000297: MLOAD
00000298: SWAP2
00000299: SWAP3
0000029a: DUP4
0000029b: SWAP3
0000029c: SWAP1
0000029d: DUP4
0000029e: ADD
0000029f: SWAP2
000002a0: DUP6
000002a1: ADD
000002a2: SWAP1
000002a3: DUP1
000002a4: DUP4
000002a5: DUP4
000002a6: PUSH1 0x00
000002a8: JUMPDEST
000002a9: DUP4
000002aa: DUP2
000002ab: LT
000002ac: ISZERO
000002ad: PUSH2 0x02c0
000002b0: JUMPI
000002b1: DUP2
000002b2: DUP2
000002b3: ADD
000002b4: MLOAD
000002b5: DUP4
000002b6: DUP3
000002b7: ADD
000002b8: MSTORE
000002b9: PUSH1 0x20
000002bb: ADD
000002bc: PUSH2 0x02a8
000002bf: JUMP
000002c0: JUMPDEST
000002c1: POP
000002c2: POP
000002c3: POP
000002c4: POP
000002c5: SWAP1
000002c6: POP
000002c7: SWAP1
000002c8: DUP2
000002c9: ADD
000002ca: SWAP1
000002cb: PUSH1 0x1f
000002cd: AND
000002ce: DUP1
000002cf: ISZERO
000002d0: PUSH2 0x02ed
000002d3: JUMPI
000002d4: DUP1
000002d5: DUP3
000002d6: SUB
000002d7: DUP1
000002d8: MLOAD
000002d9: PUSH1 0x01
000002db: DUP4
000002dc: PUSH1 0x20
000002de: SUB
000002df: PUSH2 0x0100
000002e2: EXP
000002e3: SUB
000002e4: NOT
000002e5: AND
000002e6: DUP2
000002e7: MSTORE
000002e8: PUSH1 0x20
000002ea: ADD
000002eb: SWAP2
000002ec: POP
000002ed: JUMPDEST
000002ee: POP
000002ef: SWAP3
000002f0: POP
000002f1: POP
000002f2: POP
000002f3: PUSH1 0x40
000002f5: MLOAD
000002f6: DUP1
000002f7: SWAP2
000002f8: SUB
000002f9: SWAP1
000002fa: RETURN
000002fb: JUMPDEST
000002fc: CALLVALUE
000002fd: DUP1
000002fe: ISZERO
000002ff: PUSH2 0x0307
00000302: JUMPI
00000303: PUSH1 0x00
00000305: DUP1
00000306: REVERT
00000307: JUMPDEST
00000308: POP
00000309: PUSH2 0x022b
0000030c: PUSH1 0x04
0000030e: DUP1
0000030f: CALLDATASIZE
00000310: SUB
00000311: PUSH1 0x20
00000313: DUP2
00000314: LT
00000315: ISZERO
00000316: PUSH2 0x031e
00000319: JUMPI
0000031a: PUSH1 0x00
0000031c: DUP1
0000031d: REVERT
0000031e: JUMPDEST
0000031f: POP
00000320: CALLDATALOAD
00000321: PUSH2 0x09f7
00000324: JUMP
00000325: JUMPDEST
00000326: CALLVALUE
00000327: DUP1
00000328: ISZERO
00000329: PUSH2 0x0331
0000032c: JUMPI
0000032d: PUSH1 0x00
0000032f: DUP1
00000330: REVERT
00000331: JUMPDEST
00000332: POP
00000333: PUSH2 0x0286
00000336: PUSH2 0x0a11
00000339: JUMP
0000033a: JUMPDEST
0000033b: PUSH1 0x00
0000033d: PUSH1 0x1e
0000033f: PUSH1 0x00
00000341: PUSH2 0x0349
00000344: DUP5
00000345: PUSH2 0x0a32
00000348: JUMP
00000349: JUMPDEST
0000034a: DUP2
0000034b: MSTORE
0000034c: PUSH1 0x20
0000034e: DUP2
0000034f: ADD
00000350: SWAP2
00000351: SWAP1
00000352: SWAP2
00000353: MSTORE
00000354: PUSH1 0x40
00000356: ADD
00000357: PUSH1 0x00
00000359: KECCAK256
0000035a: SLOAD
0000035b: PUSH1 0x01
0000035d: PUSH1 0x01
0000035f: PUSH1 0xa0
00000361: SHL
00000362: SUB
00000363: AND
00000364: SWAP1
00000365: POP
00000366: JUMPDEST
00000367: SWAP2
00000368: SWAP1
00000369: POP
0000036a: JUMP
0000036b: JUMPDEST
0000036c: PUSH32 0x0000000000000000000000008c43c9bec15d82d153c52518030e0a9590abd35d
0000038d: PUSH1 0x01
0000038f: PUSH1 0x01
00000391: PUSH1 0xa0
00000393: SHL
00000394: SUB
00000395: AND
00000396: ADDRESS
00000397: EQ
00000398: ISZERO
00000399: PUSH2 0x03e2
0000039c: JUMPI
0000039d: PUSH1 0x40
0000039f: DUP1
000003a0: MLOAD
000003a1: PUSH3 0x461bcd
000003a5: PUSH1 0xe5
000003a7: SHL
000003a8: DUP2
000003a9: MSTORE
000003aa: PUSH1 0x20
000003ac: PUSH1 0x04
000003ae: DUP3
000003af: ADD
000003b0: MSTORE
000003b1: PUSH1 0x16
000003b3: PUSH1 0x24
000003b5: DUP3
000003b6: ADD
000003b7: MSTORE
000003b8: PUSH22 0x1112549150d517d0d0531317d11254d0531313d5d151
000003cf: PUSH1 0x52
000003d1: SHL
000003d2: PUSH1 0x44
000003d4: DUP3
000003d5: ADD
000003d6: MSTORE
000003d7: SWAP1
000003d8: MLOAD
000003d9: SWAP1
000003da: DUP2
000003db: SWAP1
000003dc: SUB
000003dd: PUSH1 0x64
000003df: ADD
000003e0: SWAP1
000003e1: REVERT
000003e2: JUMPDEST
000003e3: PUSH1 0x00
000003e5: PUSH2 0x03ec
000003e8: PUSH2 0x0aab
000003eb: JUMP
000003ec: JUMPDEST
000003ed: SWAP1
000003ee: POP
000003ef: PUSH1 0x0f
000003f1: DUP2
000003f2: GT
000003f3: ISZERO
000003f4: PUSH2 0x043d
000003f7: JUMPI
000003f8: PUSH1 0x40
000003fa: DUP1
000003fb: MLOAD
000003fc: PUSH3 0x461bcd
00000400: PUSH1 0xe5
00000402: SHL
00000403: DUP2
00000404: MSTORE
00000405: PUSH1 0x20
00000407: PUSH1 0x04
00000409: DUP3
0000040a: ADD
0000040b: MSTORE
0000040c: PUSH1 0x16
0000040e: PUSH1 0x24
00000410: DUP3
00000411: ADD
00000412: MSTORE
00000413: PUSH22 0x544f4f5f4d414e595f5355425f434f4e545241435453
0000042a: PUSH1 0x50
0000042c: SHL
0000042d: PUSH1 0x44
0000042f: DUP3
00000430: ADD
00000431: MSTORE
00000432: SWAP1
00000433: MLOAD
00000434: SWAP1
00000435: DUP2
00000436: SWAP1
00000437: SUB
00000438: PUSH1 0x64
0000043a: ADD
0000043b: SWAP1
0000043c: REVERT
0000043d: JUMPDEST
0000043e: PUSH1 0x00
00000440: PUSH1 0x20
00000442: PUSH1 0x01
00000444: DUP4
00000445: ADD
00000446: MUL
00000447: DUP1
00000448: DUP5
00000449: LT
0000044a: ISZERO
0000044b: PUSH2 0x049b
0000044e: JUMPI
0000044f: PUSH1 0x40
00000451: DUP1
00000452: MLOAD
00000453: PUSH3 0x461bcd
00000457: PUSH1 0xe5
00000459: SHL
0000045a: DUP2
0000045b: MSTORE
0000045c: PUSH1 0x20
0000045e: PUSH1 0x04
00000460: DUP3
00000461: ADD
00000462: MSTORE
00000463: PUSH1 0x1a
00000465: PUSH1 0x24
00000467: DUP3
00000468: ADD
00000469: MSTORE
0000046a: PUSH32 0x5355425f434f4e5452414354535f4e4f545f50524f5649444544000000000000
0000048b: PUSH1 0x44
0000048d: DUP3
0000048e: ADD
0000048f: MSTORE
00000490: SWAP1
00000491: MLOAD
00000492: SWAP1
00000493: DUP2
00000494: SWAP1
00000495: SUB
00000496: PUSH1 0x64
00000498: ADD
00000499: SWAP1
0000049a: REVERT
0000049b: JUMPDEST
0000049c: DUP1
0000049d: DUP5
0000049e: SUB
0000049f: PUSH1 0x01
000004a1: JUMPDEST
000004a2: DUP5
000004a3: DUP2
000004a4: GT
000004a5: PUSH2 0x04f8
000004a8: JUMPI
000004a9: PUSH1 0x00
000004ab: PUSH2 0x04c0
000004ae: PUSH1 0x20
000004b0: DUP1
000004b1: DUP5
000004b2: MUL
000004b3: SWAP1
000004b4: PUSH1 0x00
000004b6: NOT
000004b7: DUP6
000004b8: ADD
000004b9: MUL
000004ba: DUP10
000004bb: DUP12
000004bc: PUSH2 0x1424
000004bf: JUMP
000004c0: JUMPDEST
000004c1: PUSH1 0x20
000004c3: DUP2
000004c4: LT
000004c5: ISZERO
000004c6: PUSH2 0x04ce
000004c9: JUMPI
000004ca: PUSH1 0x00
000004cc: DUP1
000004cd: REVERT
000004ce: JUMPDEST
000004cf: POP
000004d0: CALLDATALOAD
000004d1: PUSH1 0x01
000004d3: PUSH1 0x01
000004d5: PUSH1 0xa0
000004d7: SHL
000004d8: SUB
000004d9: AND
000004da: SWAP1
000004db: POP
000004dc: PUSH2 0x04e5
000004df: DUP3
000004e0: DUP3
000004e1: PUSH2 0x0ab0
000004e4: JUMP
000004e5: JUMPDEST
000004e6: PUSH2 0x04ef
000004e9: DUP3
000004ea: DUP3
000004eb: PUSH2 0x0e8c
000004ee: JUMP
000004ef: JUMPDEST
000004f0: POP
000004f1: PUSH1 0x01
000004f3: ADD
000004f4: PUSH2 0x04a1
000004f7: JUMP
000004f8: JUMPDEST
000004f9: POP
000004fa: PUSH1 0x00
000004fc: PUSH2 0x050b
000004ff: DUP4
00000500: PUSH1 0x1f
00000502: NOT
00000503: DUP2
00000504: ADD
00000505: DUP9
00000506: DUP11
00000507: PUSH2 0x1424
0000050a: JUMP
0000050b: JUMPDEST
0000050c: PUSH1 0x20
0000050e: DUP2
0000050f: LT
00000510: ISZERO
00000511: PUSH2 0x0519
00000514: JUMPI
00000515: PUSH1 0x00
00000517: DUP1
00000518: REVERT
00000519: JUMPDEST
0000051a: POP
0000051b: CALLDATALOAD
0000051c: PUSH1 0x01
0000051e: PUSH1 0x01
00000520: PUSH1 0xa0
00000522: SHL
00000523: SUB
00000524: AND
00000525: SWAP1
00000526: POP
00000527: DUP1
00000528: ISZERO
00000529: PUSH2 0x054b
0000052c: JUMPI
0000052d: PUSH2 0x0541
00000530: DUP2
00000531: PUSH2 0x053c
00000534: DUP9
00000535: DUP7
00000536: DUP2
00000537: DUP13
00000538: PUSH2 0x1424
0000053b: JUMP
0000053c: JUMPDEST
0000053d: PUSH2 0x0eba
00000540: JUMP
00000541: JUMPDEST
00000542: POP
00000543: POP
00000544: POP
00000545: POP
00000546: POP
00000547: PUSH2 0x09b8
0000054a: JUMP
0000054b: JUMPDEST
0000054c: DUP2
0000054d: PUSH2 0x055a
00000550: JUMPI
00000551: POP
00000552: POP
00000553: POP
00000554: POP
00000555: POP
00000556: PUSH2 0x09b8
00000559: JUMP
0000055a: JUMPDEST
0000055b: PUSH1 0x01
0000055d: PUSH1 0x01
0000055f: PUSH1 0xa0
00000561: SHL
00000562: SUB
00000563: DUP2
00000564: AND
00000565: ISZERO
00000566: PUSH2 0x056b
00000569: JUMPI
0000056a: INVALID
0000056b: JUMPDEST
0000056c: PUSH2 0x0573
0000056f: PUSH2 0x10c8
00000572: JUMP
00000573: JUMPDEST
00000574: PUSH1 0x01
00000576: JUMPDEST
00000577: DUP6
00000578: DUP2
00000579: GT
0000057a: PUSH2 0x095d
0000057d: JUMPI
0000057e: PUSH1 0x00
00000580: PUSH2 0x0595
00000583: PUSH1 0x20
00000585: DUP1
00000586: DUP5
00000587: MUL
00000588: SWAP1
00000589: PUSH1 0x00
0000058b: NOT
0000058c: DUP6
0000058d: ADD
0000058e: MUL
0000058f: DUP11
00000590: DUP13
00000591: PUSH2 0x1424
00000594: JUMP
00000595: JUMPDEST
00000596: PUSH1 0x20
00000598: DUP2
00000599: LT
0000059a: ISZERO
0000059b: PUSH2 0x05a3
0000059e: JUMPI
0000059f: PUSH1 0x00
000005a1: DUP1
000005a2: REVERT
000005a3: JUMPDEST
000005a4: POP
000005a5: PUSH1 0x40
000005a7: DUP1
000005a8: MLOAD
000005a9: PUSH1 0x04
000005ab: DUP2
000005ac: MSTORE
000005ad: PUSH1 0x24
000005af: DUP2
000005b0: ADD
000005b1: DUP3
000005b2: MSTORE
000005b3: PUSH1 0x20
000005b5: DUP2
000005b6: ADD
000005b7: DUP1
000005b8: MLOAD
000005b9: PUSH4 0x3cc660ad
000005be: PUSH1 0xe0
000005c0: SHL
000005c1: PUSH1 0x01
000005c3: PUSH1 0x01
000005c5: PUSH1 0xe0
000005c7: SHL
000005c8: SUB
000005c9: SWAP1
000005ca: SWAP2
000005cb: AND
000005cc: OR
000005cd: DUP2
000005ce: MSTORE
000005cf: SWAP2
000005d0: MLOAD
000005d1: DUP2
000005d2: MLOAD
000005d3: SWAP4
000005d4: CALLDATALOAD
000005d5: PUSH1 0x01
000005d7: PUSH1 0x01
000005d9: PUSH1 0xa0
000005db: SHL
000005dc: SUB
000005dd: AND
000005de: SWAP5
000005df: POP
000005e0: PUSH1 0x00
000005e2: SWAP4
000005e3: PUSH1 0x60
000005e5: SWAP4
000005e6: DUP7
000005e7: SWAP4
000005e8: SWAP3
000005e9: SWAP2
000005ea: DUP3
000005eb: SWAP2
000005ec: SWAP1
000005ed: DUP1
000005ee: DUP4
000005ef: DUP4
000005f0: JUMPDEST
000005f1: PUSH1 0x20
000005f3: DUP4
000005f4: LT
000005f5: PUSH2 0x060f
000005f8: JUMPI
000005f9: DUP1
000005fa: MLOAD
000005fb: DUP3
000005fc: MSTORE
000005fd: PUSH1 0x1f
000005ff: NOT
00000600: SWAP1
00000601: SWAP3
00000602: ADD
00000603: SWAP2
00000604: PUSH1 0x20
00000606: SWAP2
00000607: DUP3
00000608: ADD
00000609: SWAP2
0000060a: ADD
0000060b: PUSH2 0x05f0
0000060e: JUMP
0000060f: JUMPDEST
00000610: PUSH1 0x01
00000612: DUP4
00000613: PUSH1 0x20
00000615: SUB
00000616: PUSH2 0x0100
00000619: EXP
0000061a: SUB
0000061b: DUP1
0000061c: NOT
0000061d: DUP3
0000061e: MLOAD
0000061f: AND
00000620: DUP2
00000621: DUP5
00000622: MLOAD
00000623: AND
00000624: DUP1
00000625: DUP3
00000626: OR
00000627: DUP6
00000628: MSTORE
00000629: POP
0000062a: POP
0000062b: POP
0000062c: POP
0000062d: POP
0000062e: POP
0000062f: SWAP1
00000630: POP
00000631: ADD
00000632: SWAP2
00000633: POP
00000634: POP
00000635: PUSH1 0x00
00000637: PUSH1 0x40
00000639: MLOAD
0000063a: DUP1
0000063b: DUP4
0000063c: SUB
0000063d: DUP2
0000063e: DUP6
0000063f: GAS
00000640: DELEGATECALL
00000641: SWAP2
00000642: POP
00000643: POP
00000644: RETURNDATASIZE
00000645: DUP1
00000646: PUSH1 0x00
00000648: DUP2
00000649: EQ
0000064a: PUSH2 0x066f
0000064d: JUMPI
0000064e: PUSH1 0x40
00000650: MLOAD
00000651: SWAP2
00000652: POP
00000653: PUSH1 0x1f
00000655: NOT
00000656: PUSH1 0x3f
00000658: RETURNDATASIZE
00000659: ADD
0000065a: AND
0000065b: DUP3
0000065c: ADD
0000065d: PUSH1 0x40
0000065f: MSTORE
00000660: RETURNDATASIZE
00000661: DUP3
00000662: MSTORE
00000663: RETURNDATASIZE
00000664: PUSH1 0x00
00000666: PUSH1 0x20
00000668: DUP5
00000669: ADD
0000066a: RETURNDATACOPY
0000066b: PUSH2 0x0674
0000066e: JUMP
0000066f: JUMPDEST
00000670: PUSH1 0x60
00000672: SWAP2
00000673: POP
00000674: JUMPDEST
00000675: POP
00000676: SWAP2
00000677: POP
00000678: SWAP2
00000679: POP
0000067a: DUP2
0000067b: DUP2
0000067c: SWAP1
0000067d: PUSH2 0x0704
00000680: JUMPI
00000681: PUSH1 0x40
00000683: MLOAD
00000684: PUSH3 0x461bcd
00000688: PUSH1 0xe5
0000068a: SHL
0000068b: DUP2
0000068c: MSTORE
0000068d: PUSH1 0x04
0000068f: ADD
00000690: DUP1
00000691: DUP1
00000692: PUSH1 0x20
00000694: ADD
00000695: DUP3
00000696: DUP2
00000697: SUB
00000698: DUP3
00000699: MSTORE
0000069a: DUP4
0000069b: DUP2
0000069c: DUP2
0000069d: MLOAD
0000069e: DUP2
0000069f: MSTORE
000006a0: PUSH1 0x20
000006a2: ADD
000006a3: SWAP2
000006a4: POP
000006a5: DUP1
000006a6: MLOAD
000006a7: SWAP1
000006a8: PUSH1 0x20
000006aa: ADD
000006ab: SWAP1
000006ac: DUP1
000006ad: DUP4
000006ae: DUP4
000006af: PUSH1 0x00
000006b1: JUMPDEST
000006b2: DUP4
000006b3: DUP2
000006b4: LT
000006b5: ISZERO
000006b6: PUSH2 0x06c9
000006b9: JUMPI
000006ba: DUP2
000006bb: DUP2
000006bc: ADD
000006bd: MLOAD
000006be: DUP4
000006bf: DUP3
000006c0: ADD
000006c1: MSTORE
000006c2: PUSH1 0x20
000006c4: ADD
000006c5: PUSH2 0x06b1
000006c8: JUMP
000006c9: JUMPDEST
000006ca: POP
000006cb: POP
000006cc: POP
000006cd: POP
000006ce: SWAP1
000006cf: POP
000006d0: SWAP1
000006d1: DUP2
000006d2: ADD
000006d3: SWAP1
000006d4: PUSH1 0x1f
000006d6: AND
000006d7: DUP1
000006d8: ISZERO
000006d9: PUSH2 0x06f6
000006dc: JUMPI
000006dd: DUP1
000006de: DUP3
000006df: SUB
000006e0: DUP1
000006e1: MLOAD
000006e2: PUSH1 0x01
000006e4: DUP4
000006e5: PUSH1 0x20
000006e7: SUB
000006e8: PUSH2 0x0100
000006eb: EXP
000006ec: SUB
000006ed: NOT
000006ee: AND
000006ef: DUP2
000006f0: MSTORE
000006f1: PUSH1 0x20
000006f3: ADD
000006f4: SWAP2
000006f5: POP
000006f6: JUMPDEST
000006f7: POP
000006f8: SWAP3
000006f9: POP
000006fa: POP
000006fb: POP
000006fc: PUSH1 0x40
000006fe: MLOAD
000006ff: DUP1
00000700: SWAP2
00000701: SUB
00000702: SWAP1
00000703: REVERT
00000704: JUMPDEST
00000705: POP
00000706: PUSH1 0x00
00000708: DUP2
00000709: DUP1
0000070a: PUSH1 0x20
0000070c: ADD
0000070d: SWAP1
0000070e: MLOAD
0000070f: PUSH1 0x20
00000711: DUP2
00000712: LT
00000713: ISZERO
00000714: PUSH2 0x071c
00000717: JUMPI
00000718: PUSH1 0x00
0000071a: DUP1
0000071b: REVERT
0000071c: JUMPDEST
0000071d: POP
0000071e: MLOAD
0000071f: SWAP1
00000720: POP
00000721: DUP7
00000722: DUP2
00000723: GT
00000724: ISZERO
00000725: PUSH2 0x0770
00000728: JUMPI
00000729: PUSH1 0x40
0000072b: DUP1
0000072c: MLOAD
0000072d: PUSH3 0x461bcd
00000731: PUSH1 0xe5
00000733: SHL
00000734: DUP2
00000735: MSTORE
00000736: PUSH1 0x20
00000738: PUSH1 0x04
0000073a: DUP3
0000073b: ADD
0000073c: MSTORE
0000073d: PUSH1 0x18
0000073f: PUSH1 0x24
00000741: DUP3
00000742: ADD
00000743: MSTORE
00000744: PUSH24 0x494e56414c49445f494e495449414c495a45525f53495a45
0000075d: PUSH1 0x40
0000075f: SHL
00000760: PUSH1 0x44
00000762: DUP3
00000763: ADD
00000764: MSTORE
00000765: SWAP1
00000766: MLOAD
00000767: SWAP1
00000768: DUP2
00000769: SWAP1
0000076a: SUB
0000076b: PUSH1 0x64
0000076d: ADD
0000076e: SWAP1
0000076f: REVERT
00000770: JUMPDEST
00000771: DUP7
00000772: DUP2
00000773: DUP11
00000774: ADD
00000775: GT
00000776: ISZERO
00000777: PUSH2 0x07c2
0000077a: JUMPI
0000077b: PUSH1 0x40
0000077d: DUP1
0000077e: MLOAD
0000077f: PUSH3 0x461bcd
00000783: PUSH1 0xe5
00000785: SHL
00000786: DUP2
00000787: MSTORE
00000788: PUSH1 0x20
0000078a: PUSH1 0x04
0000078c: DUP3
0000078d: ADD
0000078e: MSTORE
0000078f: PUSH1 0x18
00000791: PUSH1 0x24
00000793: DUP3
00000794: ADD
00000795: MSTORE
00000796: PUSH24 0x494e56414c49445f494e495449414c495a45525f53495a45
000007af: PUSH1 0x40
000007b1: SHL
000007b2: PUSH1 0x44
000007b4: DUP3
000007b5: ADD
000007b6: MSTORE
000007b7: SWAP1
000007b8: MLOAD
000007b9: SWAP1
000007ba: DUP2
000007bb: SWAP1
000007bc: SUB
000007bd: PUSH1 0x64
000007bf: ADD
000007c0: SWAP1
000007c1: REVERT
000007c2: JUMPDEST
000007c3: DUP1
000007c4: PUSH2 0x07d0
000007c7: JUMPI
000007c8: POP
000007c9: POP
000007ca: POP
000007cb: POP
000007cc: PUSH2 0x0955
000007cf: JUMP
000007d0: JUMPDEST
000007d1: DUP4
000007d2: PUSH1 0x01
000007d4: PUSH1 0x01
000007d6: PUSH1 0xa0
000007d8: SHL
000007d9: SUB
000007da: AND
000007db: PUSH4 0x439fab91
000007e0: PUSH1 0xe0
000007e2: SHL
000007e3: DUP14
000007e4: DUP14
000007e5: DUP12
000007e6: SWAP1
000007e7: DUP6
000007e8: DUP14
000007e9: ADD
000007ea: SWAP3
000007eb: PUSH2 0x07f6
000007ee: SWAP4
000007ef: SWAP3
000007f0: SWAP2
000007f1: SWAP1
000007f2: PUSH2 0x1424
000007f5: JUMP
000007f6: JUMPDEST
000007f7: PUSH1 0x40
000007f9: MLOAD
000007fa: PUSH1 0x20
000007fc: PUSH1 0x24
000007fe: DUP3
000007ff: ADD
00000800: SWAP1
00000801: DUP2
00000802: MSTORE
00000803: PUSH1 0x44
00000805: DUP3
00000806: ADD
00000807: DUP4
00000808: SWAP1
00000809: MSTORE
0000080a: SWAP1
0000080b: DUP2
0000080c: SWAP1
0000080d: PUSH1 0x64
0000080f: ADD
00000810: DUP5
00000811: DUP5
00000812: DUP1
00000813: DUP3
00000814: DUP5
00000815: CALLDATACOPY
00000816: PUSH1 0x00
00000818: DUP4
00000819: DUP3
0000081a: ADD
0000081b: MSTORE
0000081c: PUSH1 0x40
0000081e: DUP1
0000081f: MLOAD
00000820: PUSH1 0x1f
00000822: SWAP1
00000823: SWAP3
00000824: ADD
00000825: PUSH1 0x1f
00000827: NOT
00000828: SWAP1
00000829: DUP2
0000082a: AND
0000082b: SWAP1
0000082c: SWAP5
0000082d: ADD
0000082e: DUP3
0000082f: DUP2
00000830: SUB
00000831: SWAP1
00000832: SWAP5
00000833: ADD
00000834: DUP3
00000835: MSTORE
00000836: SWAP3
00000837: DUP4
00000838: MSTORE
00000839: PUSH1 0x20
0000083b: DUP2
0000083c: ADD
0000083d: DUP1
0000083e: MLOAD
0000083f: PUSH1 0x01
00000841: PUSH1 0x01
00000843: PUSH1 0xe0
00000845: SHL
00000846: SUB
00000847: AND
00000848: PUSH1 0x01
0000084a: PUSH1 0x01
0000084c: PUSH1 0xe0
0000084e: SHL
0000084f: SUB
00000850: NOT
00000851: SWAP1
00000852: SWAP10
00000853: AND
00000854: SWAP9
00000855: SWAP1
00000856: SWAP9
00000857: OR
00000858: DUP9
00000859: MSTORE
0000085a: SWAP2
0000085b: MLOAD
0000085c: DUP3
0000085d: MLOAD
0000085e: SWAP3
0000085f: SWAP8
00000860: SWAP1
00000861: SWAP7
00000862: POP
00000863: DUP7
00000864: SWAP6
00000865: POP
00000866: SWAP4
00000867: POP
00000868: SWAP1
00000869: SWAP2
0000086a: POP
0000086b: DUP2
0000086c: SWAP1
0000086d: POP
0000086e: DUP4
0000086f: DUP4
00000870: JUMPDEST
00000871: PUSH1 0x20
00000873: DUP4
00000874: LT
00000875: PUSH2 0x088f
00000878: JUMPI
00000879: DUP1
0000087a: MLOAD
0000087b: DUP3
0000087c: MSTORE
0000087d: PUSH1 0x1f
0000087f: NOT
00000880: SWAP1
00000881: SWAP3
00000882: ADD
00000883: SWAP2
00000884: PUSH1 0x20
00000886: SWAP2
00000887: DUP3
00000888: ADD
00000889: SWAP2
0000088a: ADD
0000088b: PUSH2 0x0870
0000088e: JUMP
0000088f: JUMPDEST
00000890: PUSH1 0x01
00000892: DUP4
00000893: PUSH1 0x20
00000895: SUB
00000896: PUSH2 0x0100
00000899: EXP
0000089a: SUB
0000089b: DUP1
0000089c: NOT
0000089d: DUP3
0000089e: MLOAD
0000089f: AND
000008a0: DUP2
000008a1: DUP5
000008a2: MLOAD
000008a3: AND
000008a4: DUP1
000008a5: DUP3
000008a6: OR
000008a7: DUP6
000008a8: MSTORE
000008a9: POP
000008aa: POP
000008ab: POP
000008ac: POP
000008ad: POP
000008ae: POP
000008af: SWAP1
000008b0: POP
000008b1: ADD
000008b2: SWAP2
000008b3: POP
000008b4: POP
000008b5: PUSH1 0x00
000008b7: PUSH1 0x40
000008b9: MLOAD
000008ba: DUP1
000008bb: DUP4
000008bc: SUB
000008bd: DUP2
000008be: DUP6
000008bf: GAS
000008c0: DELEGATECALL
000008c1: SWAP2
000008c2: POP
000008c3: POP
000008c4: RETURNDATASIZE
000008c5: DUP1
000008c6: PUSH1 0x00
000008c8: DUP2
000008c9: EQ
000008ca: PUSH2 0x08ef
000008cd: JUMPI
000008ce: PUSH1 0x40
000008d0: MLOAD
000008d1: SWAP2
000008d2: POP
000008d3: PUSH1 0x1f
000008d5: NOT
000008d6: PUSH1 0x3f
000008d8: RETURNDATASIZE
000008d9: ADD
000008da: AND
000008db: DUP3
000008dc: ADD
000008dd: PUSH1 0x40
000008df: MSTORE
000008e0: RETURNDATASIZE
000008e1: DUP3
000008e2: MSTORE
000008e3: RETURNDATASIZE
000008e4: PUSH1 0x00
000008e6: PUSH1 0x20
000008e8: DUP5
000008e9: ADD
000008ea: RETURNDATACOPY
000008eb: PUSH2 0x08f4
000008ee: JUMP
000008ef: JUMPDEST
000008f0: PUSH1 0x60
000008f2: SWAP2
000008f3: POP
000008f4: JUMPDEST
000008f5: POP
000008f6: SWAP1
000008f7: SWAP4
000008f8: POP
000008f9: SWAP2
000008fa: POP
000008fb: DUP2
000008fc: DUP4
000008fd: PUSH2 0x0947
00000900: JUMPI
00000901: PUSH1 0x40
00000903: MLOAD
00000904: PUSH3 0x461bcd
00000908: PUSH1 0xe5
0000090a: SHL
0000090b: DUP2
0000090c: MSTORE
0000090d: PUSH1 0x20
0000090f: PUSH1 0x04
00000911: DUP3
00000912: ADD
00000913: DUP2
00000914: DUP2
00000915: MSTORE
00000916: DUP4
00000917: MLOAD
00000918: PUSH1 0x24
0000091a: DUP5
0000091b: ADD
0000091c: MSTORE
0000091d: DUP4
0000091e: MLOAD
0000091f: SWAP1
00000920: SWAP3
00000921: DUP4
00000922: SWAP3
00000923: PUSH1 0x44
00000925: SWAP1
00000926: SWAP2
00000927: ADD
00000928: SWAP2
00000929: SWAP1
0000092a: DUP6
0000092b: ADD
0000092c: SWAP1
0000092d: DUP1
0000092e: DUP4
0000092f: DUP4
00000930: PUSH1 0x00
00000932: DUP4
00000933: ISZERO
00000934: PUSH2 0x06c9
00000937: JUMPI
00000938: DUP2
00000939: DUP2
0000093a: ADD
0000093b: MLOAD
0000093c: DUP4
0000093d: DUP3
0000093e: ADD
0000093f: MSTORE
00000940: PUSH1 0x20
00000942: ADD
00000943: PUSH2 0x06b1
00000946: JUMP
00000947: JUMPDEST
00000948: POP
00000949: SWAP8
0000094a: DUP9
0000094b: ADD
0000094c: SWAP8
0000094d: SWAP7
0000094e: SWAP1
0000094f: SWAP7
00000950: ADD
00000951: SWAP6
00000952: POP
00000953: POP
00000954: POP
00000955: JUMPDEST
00000956: PUSH1 0x01
00000958: ADD
00000959: PUSH2 0x0576
0000095c: JUMP
0000095d: JUMPDEST
0000095e: POP
0000095f: DUP4
00000960: DUP3
00000961: EQ
00000962: PUSH2 0x09b2
00000965: JUMPI
00000966: PUSH1 0x40
00000968: DUP1
00000969: MLOAD
0000096a: PUSH3 0x461bcd
0000096e: PUSH1 0xe5
00000970: SHL
00000971: DUP2
00000972: MSTORE
00000973: PUSH1 0x20
00000975: PUSH1 0x04
00000977: DUP3
00000978: ADD
00000979: MSTORE
0000097a: PUSH1 0x1a
0000097c: PUSH1 0x24
0000097e: DUP3
0000097f: ADD
00000980: MSTORE
00000981: PUSH32 0x4d49534d41544348494e475f494e49545f444154415f53495a45000000000000
000009a2: PUSH1 0x44
000009a4: DUP3
000009a5: ADD
000009a6: MSTORE
000009a7: SWAP1
000009a8: MLOAD
000009a9: SWAP1
000009aa: DUP2
000009ab: SWAP1
000009ac: SUB
000009ad: PUSH1 0x64
000009af: ADD
000009b0: SWAP1
000009b1: REVERT
000009b2: JUMPDEST
000009b3: POP
000009b4: POP
000009b5: POP
000009b6: POP
000009b7: POP
000009b8: JUMPDEST
000009b9: POP
000009ba: POP
000009bb: JUMP
000009bc: JUMPDEST
000009bd: PUSH9 0x010000000000000001
000009c7: SLOAD
000009c8: DUP2
000009c9: JUMP
000009ca: JUMPDEST
000009cb: PUSH9 0x010000000000000004
000009d5: SLOAD
000009d6: DUP2
000009d7: JUMP
000009d8: JUMPDEST
000009d9: PUSH1 0x60
000009db: PUSH1 0x00
000009dd: PUSH2 0x09e5
000009e0: DUP4
000009e1: PUSH2 0x0a32
000009e4: JUMP
000009e5: JUMPDEST
000009e6: SWAP1
000009e7: POP
000009e8: PUSH2 0x09f0
000009eb: DUP2
000009ec: PUSH2 0x11fd
000009ef: JUMP
000009f0: JUMPDEST
000009f1: SWAP4
000009f2: SWAP3
000009f3: POP
000009f4: POP
000009f5: POP
000009f6: JUMP
000009f7: JUMPDEST
000009f8: PUSH9 0x010000000000000002
00000a02: PUSH1 0x20
00000a04: MSTORE
00000a05: PUSH1 0x00
00000a07: SWAP1
00000a08: DUP2
00000a09: MSTORE
00000a0a: PUSH1 0x40
00000a0c: SWAP1
00000a0d: KECCAK256
00000a0e: SLOAD
00000a0f: DUP2
00000a10: JUMP
00000a11: JUMPDEST
00000a12: PUSH1 0x40
00000a14: MLOAD
00000a15: DUP1
00000a16: PUSH1 0x40
00000a18: ADD
00000a19: PUSH1 0x40
00000a1b: MSTORE
00000a1c: DUP1
00000a1d: PUSH1 0x05
00000a1f: DUP2
00000a20: MSTORE
00000a21: PUSH1 0x20
00000a23: ADD
00000a24: PUSH5 0x0332e322e3
00000a2a: PUSH1 0xdc
00000a2c: SHL
00000a2d: DUP2
00000a2e: MSTORE
00000a2f: POP
00000a30: DUP2
00000a31: JUMP
00000a32: JUMPDEST
00000a33: PUSH1 0x00
00000a35: DUP1
00000a36: DUP3
00000a37: PUSH2 0x0a3e
00000a3a: PUSH2 0x1317
00000a3d: JUMP
00000a3e: JUMPDEST
00000a3f: PUSH1 0x40
00000a41: MLOAD
00000a42: PUSH1 0x20
00000a44: ADD
00000a45: DUP1
00000a46: DUP4
00000a47: PUSH1 0x01
00000a49: PUSH1 0x01
00000a4b: PUSH1 0xe0
00000a4d: SHL
00000a4e: SUB
00000a4f: NOT
00000a50: AND
00000a51: DUP2
00000a52: MSTORE
00000a53: PUSH1 0x04
00000a55: ADD
00000a56: DUP3
00000a57: DUP2
00000a58: MSTORE
00000a59: PUSH1 0x20
00000a5b: ADD
00000a5c: SWAP3
00000a5d: POP
00000a5e: POP
00000a5f: POP
00000a60: PUSH1 0x40
00000a62: MLOAD
00000a63: PUSH1 0x20
00000a65: DUP2
00000a66: DUP4
00000a67: SUB
00000a68: SUB
00000a69: DUP2
00000a6a: MSTORE
00000a6b: SWAP1
00000a6c: PUSH1 0x40
00000a6e: MSTORE
00000a6f: DUP1
00000a70: MLOAD
00000a71: SWAP1
00000a72: PUSH1 0x20
00000a74: ADD
00000a75: KECCAK256
00000a76: PUSH1 0x00
00000a78: SHR
00000a79: PUSH1 0xff
00000a7b: AND
00000a7c: SWAP1
00000a7d: POP
00000a7e: PUSH1 0x00
00000a80: PUSH2 0x0100
00000a83: DUP3
00000a84: PUSH1 0x04
00000a86: MUL
00000a87: DUP2
00000a88: PUSH2 0x0a8d
00000a8b: JUMPI
00000a8c: INVALID
00000a8d: JUMPDEST
00000a8e: MOD
00000a8f: SWAP1
00000a90: POP
00000a91: DUP1
00000a92: PUSH2 0x0a9e
00000a95: PUSH1 0x06
00000a97: DUP5
00000a98: SWAP1
00000a99: SHR
00000a9a: PUSH2 0x131e
00000a9d: JUMP
00000a9e: JUMPDEST
00000a9f: PUSH1 0x0f
00000aa1: SWAP2
00000aa2: SHR
00000aa3: AND
00000aa4: SWAP5
00000aa5: SWAP4
00000aa6: POP
00000aa7: POP
00000aa8: POP
00000aa9: POP
00000aaa: JUMP
00000aab: JUMPDEST
00000aac: PUSH1 0x04
00000aae: SWAP1
00000aaf: JUMP
00000ab0: JUMPDEST
00000ab1: PUSH1 0x60
00000ab3: DUP2
00000ab4: PUSH1 0x01
00000ab6: PUSH1 0x01
00000ab8: PUSH1 0xa0
00000aba: SHL
00000abb: SUB
00000abc: AND
00000abd: PUSH4 0xeeb72866
00000ac2: PUSH1 0x40
00000ac4: MLOAD
00000ac5: DUP2
00000ac6: PUSH4 0xffffffff
00000acb: AND
00000acc: PUSH1 0xe0
00000ace: SHL
00000acf: DUP2
00000ad0: MSTORE
00000ad1: PUSH1 0x04
00000ad3: ADD
00000ad4: PUSH1 0x00
00000ad6: PUSH1 0x40
00000ad8: MLOAD
00000ad9: DUP1
00000ada: DUP4
00000adb: SUB
00000adc: DUP2
00000add: DUP7
00000ade: DUP1
00000adf: EXTCODESIZE
00000ae0: ISZERO
00000ae1: DUP1
00000ae2: ISZERO
00000ae3: PUSH2 0x0aeb
00000ae6: JUMPI
00000ae7: PUSH1 0x00
00000ae9: DUP1
00000aea: REVERT
00000aeb: JUMPDEST
00000aec: POP
00000aed: GAS
00000aee: STATICCALL
00000aef: ISZERO
00000af0: DUP1
00000af1: ISZERO
00000af2: PUSH2 0x0aff
00000af5: JUMPI
00000af6: RETURNDATASIZE
00000af7: PUSH1 0x00
00000af9: DUP1
00000afa: RETURNDATACOPY
00000afb: RETURNDATASIZE
00000afc: PUSH1 0x00
00000afe: REVERT
00000aff: JUMPDEST
00000b00: POP
00000b01: POP
00000b02: POP
00000b03: POP
00000b04: PUSH1 0x40
00000b06: MLOAD
00000b07: RETURNDATASIZE
00000b08: PUSH1 0x00
00000b0a: DUP3
00000b0b: RETURNDATACOPY
00000b0c: PUSH1 0x1f
00000b0e: RETURNDATASIZE
00000b0f: SWAP1
00000b10: DUP2
00000b11: ADD
00000b12: PUSH1 0x1f
00000b14: NOT
00000b15: AND
00000b16: DUP3
00000b17: ADD
00000b18: PUSH1 0x40
00000b1a: MSTORE
00000b1b: PUSH1 0x20
00000b1d: DUP2
00000b1e: LT
00000b1f: ISZERO
00000b20: PUSH2 0x0b28
00000b23: JUMPI
00000b24: PUSH1 0x00
00000b26: DUP1
00000b27: REVERT
00000b28: JUMPDEST
00000b29: DUP2
00000b2a: ADD
00000b2b: SWAP1
00000b2c: DUP1
00000b2d: DUP1
00000b2e: MLOAD
00000b2f: PUSH1 0x40
00000b31: MLOAD
00000b32: SWAP4
00000b33: SWAP3
00000b34: SWAP2
00000b35: SWAP1
00000b36: DUP5
00000b37: PUSH1 0x01
00000b39: PUSH1 0x20
00000b3b: SHL
00000b3c: DUP3
00000b3d: GT
00000b3e: ISZERO
00000b3f: PUSH2 0x0b47
00000b42: JUMPI
00000b43: PUSH1 0x00
00000b45: DUP1
00000b46: REVERT
00000b47: JUMPDEST
00000b48: SWAP1
00000b49: DUP4
00000b4a: ADD
00000b4b: SWAP1
00000b4c: PUSH1 0x20
00000b4e: DUP3
00000b4f: ADD
00000b50: DUP6
00000b51: DUP2
00000b52: GT
00000b53: ISZERO
00000b54: PUSH2 0x0b5c
00000b57: JUMPI
00000b58: PUSH1 0x00
00000b5a: DUP1
00000b5b: REVERT
00000b5c: JUMPDEST
00000b5d: DUP3
00000b5e: MLOAD
00000b5f: PUSH1 0x01
00000b61: PUSH1 0x20
00000b63: SHL
00000b64: DUP2
00000b65: GT
00000b66: DUP3
00000b67: DUP3
00000b68: ADD
00000b69: DUP9
00000b6a: LT
00000b6b: OR
00000b6c: ISZERO
00000b6d: PUSH2 0x0b75
00000b70: JUMPI
00000b71: PUSH1 0x00
00000b73: DUP1
00000b74: REVERT
00000b75: JUMPDEST
00000b76: DUP3
00000b77: MSTORE
00000b78: POP
00000b79: DUP2
00000b7a: MLOAD
00000b7b: PUSH1 0x20
00000b7d: SWAP2
00000b7e: DUP3
00000b7f: ADD
00000b80: SWAP3
00000b81: SWAP1
00000b82: SWAP2
00000b83: ADD
00000b84: SWAP1
00000b85: DUP1
00000b86: DUP4
00000b87: DUP4
00000b88: PUSH1 0x00
00000b8a: JUMPDEST
00000b8b: DUP4
00000b8c: DUP2
00000b8d: LT
00000b8e: ISZERO
00000b8f: PUSH2 0x0ba2
00000b92: JUMPI
00000b93: DUP2
00000b94: DUP2
00000b95: ADD
00000b96: MLOAD
00000b97: DUP4
00000b98: DUP3
00000b99: ADD
00000b9a: MSTORE
00000b9b: PUSH1 0x20
00000b9d: ADD
00000b9e: PUSH2 0x0b8a
00000ba1: JUMP
00000ba2: JUMPDEST
00000ba3: POP
00000ba4: POP
00000ba5: POP
00000ba6: POP
00000ba7: SWAP1
00000ba8: POP
00000ba9: SWAP1
00000baa: DUP2
00000bab: ADD
00000bac: SWAP1
00000bad: PUSH1 0x1f
00000baf: AND
00000bb0: DUP1
00000bb1: ISZERO
00000bb2: PUSH2 0x0bcf
00000bb5: JUMPI
00000bb6: DUP1
00000bb7: DUP3
00000bb8: SUB
00000bb9: DUP1
00000bba: MLOAD
00000bbb: PUSH1 0x01
00000bbd: DUP4
00000bbe: PUSH1 0x20
00000bc0: SUB
00000bc1: PUSH2 0x0100
00000bc4: EXP
00000bc5: SUB
00000bc6: NOT
00000bc7: AND
00000bc8: DUP2
00000bc9: MSTORE
00000bca: PUSH1 0x20
00000bcc: ADD
00000bcd: SWAP2
00000bce: POP
00000bcf: JUMPDEST
00000bd0: POP
00000bd1: PUSH1 0x40
00000bd3: MSTORE
00000bd4: POP
00000bd5: POP
00000bd6: POP
00000bd7: SWAP1
00000bd8: POP
00000bd9: PUSH1 0x00
00000bdb: PUSH2 0x0be3
00000bde: DUP5
00000bdf: PUSH2 0x11fd
00000be2: JUMP
00000be3: JUMPDEST
00000be4: PUSH1 0x40
00000be6: MLOAD
00000be7: PUSH1 0x20
00000be9: ADD
00000bea: DUP1
00000beb: DUP3
00000bec: DUP1
00000bed: MLOAD
00000bee: SWAP1
00000bef: PUSH1 0x20
00000bf1: ADD
00000bf2: SWAP1
00000bf3: DUP1
00000bf4: DUP4
00000bf5: DUP4
00000bf6: JUMPDEST
00000bf7: PUSH1 0x20
00000bf9: DUP4
00000bfa: LT
00000bfb: PUSH2 0x0c15
00000bfe: JUMPI
00000bff: DUP1
00000c00: MLOAD
00000c01: DUP3
00000c02: MSTORE
00000c03: PUSH1 0x1f
00000c05: NOT
00000c06: SWAP1
00000c07: SWAP3
00000c08: ADD
00000c09: SWAP2
00000c0a: PUSH1 0x20
00000c0c: SWAP2
00000c0d: DUP3
00000c0e: ADD
00000c0f: SWAP2
00000c10: ADD
00000c11: PUSH2 0x0bf6
00000c14: JUMP
00000c15: JUMPDEST
00000c16: PUSH1 0x01
00000c18: DUP4
00000c19: PUSH1 0x20
00000c1b: SUB
00000c1c: PUSH2 0x0100
00000c1f: EXP
00000c20: SUB
00000c21: DUP1
00000c22: NOT
00000c23: DUP3
00000c24: MLOAD
00000c25: AND
00000c26: DUP2
00000c27: DUP5
00000c28: MLOAD
00000c29: AND
00000c2a: DUP1
00000c2b: DUP3
00000c2c: OR
00000c2d: DUP6
00000c2e: MSTORE
00000c2f: POP
00000c30: POP
00000c31: POP
00000c32: POP
00000c33: POP
00000c34: POP
00000c35: SWAP1
00000c36: POP
00000c37: ADD
00000c38: SWAP2
00000c39: POP
00000c3a: POP
00000c3b: PUSH1 0x40
00000c3d: MLOAD
00000c3e: PUSH1 0x20
00000c40: DUP2
00000c41: DUP4
00000c42: SUB
00000c43: SUB
00000c44: DUP2
00000c45: MSTORE
00000c46: SWAP1
00000c47: PUSH1 0x40
00000c49: MSTORE
00000c4a: DUP1
00000c4b: MLOAD
00000c4c: SWAP1
00000c4d: PUSH1 0x20
00000c4f: ADD
00000c50: KECCAK256
00000c51: SWAP1
00000c52: POP
00000c53: DUP2
00000c54: PUSH1 0x40
00000c56: MLOAD
00000c57: PUSH1 0x20
00000c59: ADD
00000c5a: DUP1
00000c5b: DUP3
00000c5c: DUP1
00000c5d: MLOAD
00000c5e: SWAP1
00000c5f: PUSH1 0x20
00000c61: ADD
00000c62: SWAP1
00000c63: DUP1
00000c64: DUP4
00000c65: DUP4
00000c66: JUMPDEST
00000c67: PUSH1 0x20
00000c69: DUP4
00000c6a: LT
00000c6b: PUSH2 0x0c85
00000c6e: JUMPI
00000c6f: DUP1
00000c70: MLOAD
00000c71: DUP3
00000c72: MSTORE
00000c73: PUSH1 0x1f
00000c75: NOT
00000c76: SWAP1
00000c77: SWAP3
00000c78: ADD
00000c79: SWAP2
00000c7a: PUSH1 0x20
00000c7c: SWAP2
00000c7d: DUP3
00000c7e: ADD
00000c7f: SWAP2
00000c80: ADD
00000c81: PUSH2 0x0c66
00000c84: JUMP
00000c85: JUMPDEST
00000c86: PUSH1 0x01
00000c88: DUP4
00000c89: PUSH1 0x20
00000c8b: SUB
00000c8c: PUSH2 0x0100
00000c8f: EXP
00000c90: SUB
00000c91: DUP1
00000c92: NOT
00000c93: DUP3
00000c94: MLOAD
00000c95: AND
00000c96: DUP2
00000c97: DUP5
00000c98: MLOAD
00000c99: AND
00000c9a: DUP1
00000c9b: DUP3
00000c9c: OR
00000c9d: DUP6
00000c9e: MSTORE
00000c9f: POP
00000ca0: POP
00000ca1: POP
00000ca2: POP
00000ca3: POP
00000ca4: POP
00000ca5: SWAP1
00000ca6: POP
00000ca7: ADD
00000ca8: SWAP2
00000ca9: POP
00000caa: POP
00000cab: PUSH1 0x40
00000cad: MLOAD
00000cae: PUSH1 0x20
00000cb0: DUP2
00000cb1: DUP4
00000cb2: SUB
00000cb3: SUB
00000cb4: DUP2
00000cb5: MSTORE
00000cb6: SWAP1
00000cb7: PUSH1 0x40
00000cb9: MSTORE
00000cba: DUP1
00000cbb: MLOAD
00000cbc: SWAP1
00000cbd: PUSH1 0x20
00000cbf: ADD
00000cc0: KECCAK256
00000cc1: DUP2
00000cc2: EQ
00000cc3: PUSH2 0x0cfd
00000cc6: JUMPI
00000cc7: PUSH1 0x40
00000cc9: MLOAD
00000cca: PUSH3 0x461bcd
00000cce: PUSH1 0xe5
00000cd0: SHL
00000cd1: DUP2
00000cd2: MSTORE
00000cd3: PUSH1 0x04
00000cd5: ADD
00000cd6: DUP1
00000cd7: DUP1
00000cd8: PUSH1 0x20
00000cda: ADD
00000cdb: DUP3
00000cdc: DUP2
00000cdd: SUB
00000cde: DUP3
00000cdf: MSTORE
00000ce0: PUSH1 0x22
00000ce2: DUP2
00000ce3: MSTORE
00000ce4: PUSH1 0x20
00000ce6: ADD
00000ce7: DUP1
00000ce8: PUSH2 0x1477
00000ceb: PUSH1 0x22
00000ced: SWAP2
00000cee: CODECOPY
00000cef: PUSH1 0x40
00000cf1: ADD
00000cf2: SWAP2
00000cf3: POP
00000cf4: POP
00000cf5: PUSH1 0x40
00000cf7: MLOAD
00000cf8: DUP1
00000cf9: SWAP2
00000cfa: SUB
00000cfb: SWAP1
00000cfc: REVERT
00000cfd: JUMPDEST
00000cfe: PUSH1 0x60
00000d00: DUP4
00000d01: PUSH1 0x01
00000d03: PUSH1 0x01
00000d05: PUSH1 0xa0
00000d07: SHL
00000d08: SUB
00000d09: AND
00000d0a: PUSH4 0x0ebdac03
00000d0f: PUSH1 0x40
00000d11: MLOAD
00000d12: DUP2
00000d13: PUSH4 0xffffffff
00000d18: AND
00000d19: PUSH1 0xe0
00000d1b: SHL
00000d1c: DUP2
00000d1d: MSTORE
00000d1e: PUSH1 0x04
00000d20: ADD
00000d21: PUSH1 0x00
00000d23: PUSH1 0x40
00000d25: MLOAD
00000d26: DUP1
00000d27: DUP4
00000d28: SUB
00000d29: DUP2
00000d2a: DUP7
00000d2b: DUP1
00000d2c: EXTCODESIZE
00000d2d: ISZERO
00000d2e: DUP1
00000d2f: ISZERO
00000d30: PUSH2 0x0d38
00000d33: JUMPI
00000d34: PUSH1 0x00
00000d36: DUP1
00000d37: REVERT
00000d38: JUMPDEST
00000d39: POP
00000d3a: GAS
00000d3b: STATICCALL
00000d3c: ISZERO
00000d3d: DUP1
00000d3e: ISZERO
00000d3f: PUSH2 0x0d4c
00000d42: JUMPI
00000d43: RETURNDATASIZE
00000d44: PUSH1 0x00
00000d46: DUP1
00000d47: RETURNDATACOPY
00000d48: RETURNDATASIZE
00000d49: PUSH1 0x00
00000d4b: REVERT
00000d4c: JUMPDEST
00000d4d: POP
00000d4e: POP
00000d4f: POP
00000d50: POP
00000d51: PUSH1 0x40
00000d53: MLOAD
00000d54: RETURNDATASIZE
00000d55: PUSH1 0x00
00000d57: DUP3
00000d58: RETURNDATACOPY
00000d59: PUSH1 0x1f
00000d5b: RETURNDATASIZE
00000d5c: SWAP1
00000d5d: DUP2
00000d5e: ADD
00000d5f: PUSH1 0x1f
00000d61: NOT
00000d62: AND
00000d63: DUP3
00000d64: ADD
00000d65: PUSH1 0x40
00000d67: MSTORE
00000d68: PUSH1 0x20
00000d6a: DUP2
00000d6b: LT
00000d6c: ISZERO
00000d6d: PUSH2 0x0d75
00000d70: JUMPI
00000d71: PUSH1 0x00
00000d73: DUP1
00000d74: REVERT
00000d75: JUMPDEST
00000d76: DUP2
00000d77: ADD
00000d78: SWAP1
00000d79: DUP1
00000d7a: DUP1
00000d7b: MLOAD
00000d7c: PUSH1 0x40
00000d7e: MLOAD
00000d7f: SWAP4
00000d80: SWAP3
00000d81: SWAP2
00000d82: SWAP1
00000d83: DUP5
00000d84: PUSH1 0x01
00000d86: PUSH1 0x20
00000d88: SHL
00000d89: DUP3
00000d8a: GT
00000d8b: ISZERO
00000d8c: PUSH2 0x0d94
00000d8f: JUMPI
00000d90: PUSH1 0x00
00000d92: DUP1
00000d93: REVERT
00000d94: JUMPDEST
00000d95: SWAP1
00000d96: DUP4
00000d97: ADD
00000d98: SWAP1
00000d99: PUSH1 0x20
00000d9b: DUP3
00000d9c: ADD
00000d9d: DUP6
00000d9e: DUP2
00000d9f: GT
00000da0: ISZERO
00000da1: PUSH2 0x0da9
00000da4: JUMPI
00000da5: PUSH1 0x00
00000da7: DUP1
00000da8: REVERT
00000da9: JUMPDEST
00000daa: DUP3
00000dab: MLOAD
00000dac: DUP7
00000dad: PUSH1 0x20
00000daf: DUP3
00000db0: MUL
00000db1: DUP4
00000db2: ADD
00000db3: GT
00000db4: PUSH1 0x01
00000db6: PUSH1 0x20
00000db8: SHL
00000db9: DUP3
00000dba: GT
00000dbb: OR
00000dbc: ISZERO
00000dbd: PUSH2 0x0dc5
00000dc0: JUMPI
00000dc1: PUSH1 0x00
00000dc3: DUP1
00000dc4: REVERT
00000dc5: JUMPDEST
00000dc6: DUP3
00000dc7: MSTORE
00000dc8: POP
00000dc9: DUP2
00000dca: MLOAD
00000dcb: PUSH1 0x20
00000dcd: SWAP2
00000dce: DUP3
00000dcf: ADD
00000dd0: SWAP3
00000dd1: DUP3
00000dd2: ADD
00000dd3: SWAP2
00000dd4: MUL
00000dd5: DUP1
00000dd6: DUP4
00000dd7: DUP4
00000dd8: PUSH1 0x00
00000dda: JUMPDEST
00000ddb: DUP4
00000ddc: DUP2
00000ddd: LT
00000dde: ISZERO
00000ddf: PUSH2 0x0df2
00000de2: JUMPI
00000de3: DUP2
00000de4: DUP2
00000de5: ADD
00000de6: MLOAD
00000de7: DUP4
00000de8: DUP3
00000de9: ADD
00000dea: MSTORE
00000deb: PUSH1 0x20
00000ded: ADD
00000dee: PUSH2 0x0dda
00000df1: JUMP
00000df2: JUMPDEST
00000df3: POP
00000df4: POP
00000df5: POP
00000df6: POP
00000df7: SWAP1
00000df8: POP
00000df9: ADD
00000dfa: PUSH1 0x40
00000dfc: MSTORE
00000dfd: POP
00000dfe: POP
00000dff: POP
00000e00: SWAP1
00000e01: POP
00000e02: PUSH1 0x00
00000e04: JUMPDEST
00000e05: DUP2
00000e06: MLOAD
00000e07: DUP2
00000e08: LT
00000e09: ISZERO
00000e0a: PUSH2 0x0e84
00000e0d: JUMPI
00000e0e: DUP6
00000e0f: PUSH2 0x0e2a
00000e12: DUP4
00000e13: DUP4
00000e14: DUP2
00000e15: MLOAD
00000e16: DUP2
00000e17: LT
00000e18: PUSH2 0x0e1d
00000e1b: JUMPI
00000e1c: INVALID
00000e1d: JUMPDEST
00000e1e: PUSH1 0x20
00000e20: MUL
00000e21: PUSH1 0x20
00000e23: ADD
00000e24: ADD
00000e25: MLOAD
00000e26: PUSH2 0x0a32
00000e29: JUMP
00000e2a: JUMPDEST
00000e2b: EQ
00000e2c: PUSH2 0x0e7c
00000e2f: JUMPI
00000e30: PUSH1 0x40
00000e32: DUP1
00000e33: MLOAD
00000e34: PUSH3 0x461bcd
00000e38: PUSH1 0xe5
00000e3a: SHL
00000e3b: DUP2
00000e3c: MSTORE
00000e3d: PUSH1 0x20
00000e3f: PUSH1 0x04
00000e41: DUP3
00000e42: ADD
00000e43: MSTORE
00000e44: PUSH1 0x1b
00000e46: PUSH1 0x24
00000e48: DUP3
00000e49: ADD
00000e4a: MSTORE
00000e4b: PUSH32 0x494e434f4e53495354454e545f444953504154434845525f4d41500000000000
00000e6c: PUSH1 0x44
00000e6e: DUP3
00000e6f: ADD
00000e70: MSTORE
00000e71: SWAP1
00000e72: MLOAD
00000e73: SWAP1
00000e74: DUP2
00000e75: SWAP1
00000e76: SUB
00000e77: PUSH1 0x64
00000e79: ADD
00000e7a: SWAP1
00000e7b: REVERT
00000e7c: JUMPDEST
00000e7d: PUSH1 0x01
00000e7f: ADD
00000e80: PUSH2 0x0e04
00000e83: JUMP
00000e84: JUMPDEST
00000e85: POP
00000e86: POP
00000e87: POP
00000e88: POP
00000e89: POP
00000e8a: POP
00000e8b: JUMP
00000e8c: JUMPDEST
00000e8d: PUSH1 0x00
00000e8f: SWAP2
00000e90: DUP3
00000e91: MSTORE
00000e92: PUSH1 0x1e
00000e94: PUSH1 0x20
00000e96: MSTORE
00000e97: PUSH1 0x40
00000e99: SWAP1
00000e9a: SWAP2
00000e9b: KECCAK256
00000e9c: DUP1
00000e9d: SLOAD
00000e9e: PUSH1 0x01
00000ea0: PUSH1 0x01
00000ea2: PUSH1 0xa0
00000ea4: SHL
00000ea5: SUB
00000ea6: NOT
00000ea7: AND
00000ea8: PUSH1 0x01
00000eaa: PUSH1 0x01
00000eac: PUSH1 0xa0
00000eae: SHL
00000eaf: SUB
00000eb0: SWAP1
00000eb1: SWAP3
00000eb2: AND
00000eb3: SWAP2
00000eb4: SWAP1
00000eb5: SWAP2
00000eb6: OR
00000eb7: SWAP1
00000eb8: SSTORE
00000eb9: JUMP
00000eba: JUMPDEST
00000ebb: PUSH2 0x0ecc
00000ebe: DUP4
00000ebf: PUSH1 0x01
00000ec1: PUSH1 0x01
00000ec3: PUSH1 0xa0
00000ec5: SHL
00000ec6: SUB
00000ec7: AND
00000ec8: PUSH2 0x141e
00000ecb: JUMP
00000ecc: JUMPDEST
00000ecd: PUSH2 0x0f0e
00000ed0: JUMPI
00000ed1: PUSH1 0x40
00000ed3: DUP1
00000ed4: MLOAD
00000ed5: PUSH3 0x461bcd
00000ed9: PUSH1 0xe5
00000edb: SHL
00000edc: DUP2
00000edd: MSTORE
00000ede: PUSH1 0x20
00000ee0: PUSH1 0x04
00000ee2: DUP3
00000ee3: ADD
00000ee4: MSTORE
00000ee5: PUSH1 0x0e
00000ee7: PUSH1 0x24
00000ee9: DUP3
00000eea: ADD
00000eeb: MSTORE
00000eec: PUSH14 0x1393d517d057d0d3d395149050d5
00000efb: PUSH1 0x92
00000efd: SHL
00000efe: PUSH1 0x44
00000f00: DUP3
00000f01: ADD
00000f02: MSTORE
00000f03: SWAP1
00000f04: MLOAD
00000f05: SWAP1
00000f06: DUP2
00000f07: SWAP1
00000f08: SUB
00000f09: PUSH1 0x64
00000f0b: ADD
00000f0c: SWAP1
00000f0d: REVERT
00000f0e: JUMPDEST
00000f0f: PUSH1 0x00
00000f11: PUSH1 0x60
00000f13: DUP5
00000f14: PUSH1 0x01
00000f16: PUSH1 0x01
00000f18: PUSH1 0xa0
00000f1a: SHL
00000f1b: SUB
00000f1c: AND
00000f1d: PUSH4 0x439fab91
00000f22: PUSH1 0xe0
00000f24: SHL
00000f25: DUP6
00000f26: DUP6
00000f27: PUSH1 0x40
00000f29: MLOAD
00000f2a: PUSH1 0x24
00000f2c: ADD
00000f2d: DUP1
00000f2e: DUP1
00000f2f: PUSH1 0x20
00000f31: ADD
00000f32: DUP3
00000f33: DUP2
00000f34: SUB
00000f35: DUP3
00000f36: MSTORE
00000f37: DUP5
00000f38: DUP5
00000f39: DUP3
00000f3a: DUP2
00000f3b: DUP2
00000f3c: MSTORE
00000f3d: PUSH1 0x20
00000f3f: ADD
00000f40: SWAP3
00000f41: POP
00000f42: DUP1
00000f43: DUP3
00000f44: DUP5
00000f45: CALLDATACOPY
00000f46: PUSH1 0x00
00000f48: DUP4
00000f49: DUP3
00000f4a: ADD
00000f4b: MSTORE
00000f4c: PUSH1 0x40
00000f4e: DUP1
00000f4f: MLOAD
00000f50: PUSH1 0x1f
00000f52: SWAP1
00000f53: SWAP3
00000f54: ADD
00000f55: PUSH1 0x1f
00000f57: NOT
00000f58: SWAP1
00000f59: DUP2
00000f5a: AND
00000f5b: SWAP1
00000f5c: SWAP5
00000f5d: ADD
00000f5e: DUP3
00000f5f: DUP2
00000f60: SUB
00000f61: SWAP1
00000f62: SWAP5
00000f63: ADD
00000f64: DUP3
00000f65: MSTORE
00000f66: SWAP3
00000f67: DUP4
00000f68: MSTORE
00000f69: PUSH1 0x20
00000f6b: DUP2
00000f6c: ADD
00000f6d: DUP1
00000f6e: MLOAD
00000f6f: PUSH1 0x01
00000f71: PUSH1 0x01
00000f73: PUSH1 0xe0
00000f75: SHL
00000f76: SUB
00000f77: AND
00000f78: PUSH1 0x01
00000f7a: PUSH1 0x01
00000f7c: PUSH1 0xe0
00000f7e: SHL
00000f7f: SUB
00000f80: NOT
00000f81: SWAP1
00000f82: SWAP10
00000f83: AND
00000f84: SWAP9
00000f85: SWAP1
00000f86: SWAP9
00000f87: OR
00000f88: DUP9
00000f89: MSTORE
00000f8a: SWAP2
00000f8b: MLOAD
00000f8c: DUP3
00000f8d: MLOAD
00000f8e: SWAP3
00000f8f: SWAP8
00000f90: SWAP1
00000f91: SWAP7
00000f92: POP
00000f93: DUP7
00000f94: SWAP6
00000f95: POP
00000f96: SWAP4
00000f97: POP
00000f98: SWAP1
00000f99: SWAP2
00000f9a: POP
00000f9b: DUP2
00000f9c: SWAP1
00000f9d: POP
00000f9e: DUP4
00000f9f: DUP4
00000fa0: JUMPDEST
00000fa1: PUSH1 0x20
00000fa3: DUP4
00000fa4: LT
00000fa5: PUSH2 0x0fbf
00000fa8: JUMPI
00000fa9: DUP1
00000faa: MLOAD
00000fab: DUP3
00000fac: MSTORE
00000fad: PUSH1 0x1f
00000faf: NOT
00000fb0: SWAP1
00000fb1: SWAP3
00000fb2: ADD
00000fb3: SWAP2
00000fb4: PUSH1 0x20
00000fb6: SWAP2
00000fb7: DUP3
00000fb8: ADD
00000fb9: SWAP2
00000fba: ADD
00000fbb: PUSH2 0x0fa0
00000fbe: JUMP
00000fbf: JUMPDEST
00000fc0: PUSH1 0x01
00000fc2: DUP4
00000fc3: PUSH1 0x20
00000fc5: SUB
00000fc6: PUSH2 0x0100
00000fc9: EXP
00000fca: SUB
00000fcb: DUP1
00000fcc: NOT
00000fcd: DUP3
00000fce: MLOAD
00000fcf: AND
00000fd0: DUP2
00000fd1: DUP5
00000fd2: MLOAD
00000fd3: AND
00000fd4: DUP1
00000fd5: DUP3
00000fd6: OR
00000fd7: DUP6
00000fd8: MSTORE
00000fd9: POP
00000fda: POP
00000fdb: POP
00000fdc: POP
00000fdd: POP
00000fde: POP
00000fdf: SWAP1
00000fe0: POP
00000fe1: ADD
00000fe2: SWAP2
00000fe3: POP
00000fe4: POP
00000fe5: PUSH1 0x00
00000fe7: PUSH1 0x40
00000fe9: MLOAD
00000fea: DUP1
00000feb: DUP4
00000fec: SUB
00000fed: DUP2
00000fee: DUP6
00000fef: GAS
00000ff0: DELEGATECALL
00000ff1: SWAP2
00000ff2: POP
00000ff3: POP
00000ff4: RETURNDATASIZE
00000ff5: DUP1
00000ff6: PUSH1 0x00
00000ff8: DUP2
00000ff9: EQ
00000ffa: PUSH2 0x101f
00000ffd: JUMPI
00000ffe: PUSH1 0x40
00001000: MLOAD
00001001: SWAP2
00001002: POP
00001003: PUSH1 0x1f
00001005: NOT
00001006: PUSH1 0x3f
00001008: RETURNDATASIZE
00001009: ADD
0000100a: AND
0000100b: DUP3
0000100c: ADD
0000100d: PUSH1 0x40
0000100f: MSTORE
00001010: RETURNDATASIZE
00001011: DUP3
00001012: MSTORE
00001013: RETURNDATASIZE
00001014: PUSH1 0x00
00001016: PUSH1 0x20
00001018: DUP5
00001019: ADD
0000101a: RETURNDATACOPY
0000101b: PUSH2 0x1024
0000101e: JUMP
0000101f: JUMPDEST
00001020: PUSH1 0x60
00001022: SWAP2
00001023: POP
00001024: JUMPDEST
00001025: POP
00001026: SWAP2
00001027: POP
00001028: SWAP2
00001029: POP
0000102a: DUP2
0000102b: DUP2
0000102c: SWAP1
0000102d: PUSH2 0x1077
00001030: JUMPI
00001031: PUSH1 0x40
00001033: MLOAD
00001034: PUSH3 0x461bcd
00001038: PUSH1 0xe5
0000103a: SHL
0000103b: DUP2
0000103c: MSTORE
0000103d: PUSH1 0x20
0000103f: PUSH1 0x04
00001041: DUP3
00001042: ADD
00001043: DUP2
00001044: DUP2
00001045: MSTORE
00001046: DUP4
00001047: MLOAD
00001048: PUSH1 0x24
0000104a: DUP5
0000104b: ADD
0000104c: MSTORE
0000104d: DUP4
0000104e: MLOAD
0000104f: SWAP1
00001050: SWAP3
00001051: DUP4
00001052: SWAP3
00001053: PUSH1 0x44
00001055: SWAP1
00001056: SWAP2
00001057: ADD
00001058: SWAP2
00001059: SWAP1
0000105a: DUP6
0000105b: ADD
0000105c: SWAP1
0000105d: DUP1
0000105e: DUP4
0000105f: DUP4
00001060: PUSH1 0x00
00001062: DUP4
00001063: ISZERO
00001064: PUSH2 0x06c9
00001067: JUMPI
00001068: DUP2
00001069: DUP2
0000106a: ADD
0000106b: MLOAD
0000106c: DUP4
0000106d: DUP3
0000106e: ADD
0000106f: MSTORE
00001070: PUSH1 0x20
00001072: ADD
00001073: PUSH2 0x06b1
00001076: JUMP
00001077: JUMPDEST
00001078: POP
00001079: DUP1
0000107a: MLOAD
0000107b: DUP2
0000107c: SWAP1
0000107d: ISZERO
0000107e: PUSH2 0x0e84
00001081: JUMPI
00001082: PUSH1 0x40
00001084: MLOAD
00001085: PUSH3 0x461bcd
00001089: PUSH1 0xe5
0000108b: SHL
0000108c: DUP2
0000108d: MSTORE
0000108e: PUSH1 0x20
00001090: PUSH1 0x04
00001092: DUP3
00001093: ADD
00001094: DUP2
00001095: DUP2
00001096: MSTORE
00001097: DUP4
00001098: MLOAD
00001099: PUSH1 0x24
0000109b: DUP5
0000109c: ADD
0000109d: MSTORE
0000109e: DUP4
0000109f: MLOAD
000010a0: SWAP1
000010a1: SWAP3
000010a2: DUP4
000010a3: SWAP3
000010a4: PUSH1 0x44
000010a6: SWAP1
000010a7: SWAP2
000010a8: ADD
000010a9: SWAP2
000010aa: SWAP1
000010ab: DUP6
000010ac: ADD
000010ad: SWAP1
000010ae: DUP1
000010af: DUP4
000010b0: DUP4
000010b1: PUSH1 0x00
000010b3: DUP4
000010b4: ISZERO
000010b5: PUSH2 0x06c9
000010b8: JUMPI
000010b9: DUP2
000010ba: DUP2
000010bb: ADD
000010bc: MLOAD
000010bd: DUP4
000010be: DUP3
000010bf: ADD
000010c0: MSTORE
000010c1: PUSH1 0x20
000010c3: ADD
000010c4: PUSH2 0x06b1
000010c7: JUMP
000010c8: JUMPDEST
000010c9: PUSH1 0x40
000010cb: DUP1
000010cc: MLOAD
000010cd: DUP1
000010ce: DUP3
000010cf: ADD
000010d0: SWAP1
000010d1: SWAP2
000010d2: MSTORE
000010d3: PUSH1 0x16
000010d5: DUP2
000010d6: MSTORE
000010d7: PUSH22 0x12539255125053125690551253d397d09313d0d2d151
000010ee: PUSH1 0x52
000010f0: SHL
000010f1: PUSH1 0x20
000010f3: DUP3
000010f4: ADD
000010f5: MSTORE
000010f6: PUSH9 0x010000000000000003
00001100: SLOAD
00001101: DUP2
00001102: SWAP1
00001103: ISZERO
00001104: PUSH2 0x114e
00001107: JUMPI
00001108: PUSH1 0x40
0000110a: MLOAD
0000110b: PUSH3 0x461bcd
0000110f: PUSH1 0xe5
00001111: SHL
00001112: DUP2
00001113: MSTORE
00001114: PUSH1 0x20
00001116: PUSH1 0x04
00001118: DUP3
00001119: ADD
0000111a: DUP2
0000111b: DUP2
0000111c: MSTORE
0000111d: DUP4
0000111e: MLOAD
0000111f: PUSH1 0x24
00001121: DUP5
00001122: ADD
00001123: MSTORE
00001124: DUP4
00001125: MLOAD
00001126: SWAP1
00001127: SWAP3
00001128: DUP4
00001129: SWAP3
0000112a: PUSH1 0x44
0000112c: SWAP1
0000112d: SWAP2
0000112e: ADD
0000112f: SWAP2
00001130: SWAP1
00001131: DUP6
00001132: ADD
00001133: SWAP1
00001134: DUP1
00001135: DUP4
00001136: DUP4
00001137: PUSH1 0x00
00001139: DUP4
0000113a: ISZERO
0000113b: PUSH2 0x06c9
0000113e: JUMPI
0000113f: DUP2
00001140: DUP2
00001141: ADD
00001142: MLOAD
00001143: DUP4
00001144: DUP3
00001145: ADD
00001146: MSTORE
00001147: PUSH1 0x20
00001149: ADD
0000114a: PUSH2 0x06b1
0000114d: JUMP
0000114e: JUMPDEST
0000114f: POP
00001150: PUSH9 0x010000000000000001
0000115a: SLOAD
0000115b: DUP2
0000115c: SWAP1
0000115d: ISZERO
0000115e: PUSH2 0x11a8
00001161: JUMPI
00001162: PUSH1 0x40
00001164: MLOAD
00001165: PUSH3 0x461bcd
00001169: PUSH1 0xe5
0000116b: SHL
0000116c: DUP2
0000116d: MSTORE
0000116e: PUSH1 0x20
00001170: PUSH1 0x04
00001172: DUP3
00001173: ADD
00001174: DUP2
00001175: DUP2
00001176: MSTORE
00001177: DUP4
00001178: MLOAD
00001179: PUSH1 0x24
0000117b: DUP5
0000117c: ADD
0000117d: MSTORE
0000117e: DUP4
0000117f: MLOAD
00001180: SWAP1
00001181: SWAP3
00001182: DUP4
00001183: SWAP3
00001184: PUSH1 0x44
00001186: SWAP1
00001187: SWAP2
00001188: ADD
00001189: SWAP2
0000118a: SWAP1
0000118b: DUP6
0000118c: ADD
0000118d: SWAP1
0000118e: DUP1
0000118f: DUP4
00001190: DUP4
00001191: PUSH1 0x00
00001193: DUP4
00001194: ISZERO
00001195: PUSH2 0x06c9
00001198: JUMPI
00001199: DUP2
0000119a: DUP2
0000119b: ADD
0000119c: MLOAD
0000119d: DUP4
0000119e: DUP3
0000119f: ADD
000011a0: MSTORE
000011a1: PUSH1 0x20
000011a3: ADD
000011a4: PUSH2 0x06b1
000011a7: JUMP
000011a8: JUMPDEST
000011a9: POP
000011aa: PUSH1 0x01
000011ac: PUSH1 0x40
000011ae: SHL
000011af: SLOAD
000011b0: DUP2
000011b1: SWAP1
000011b2: ISZERO
000011b3: PUSH2 0x09b8
000011b6: JUMPI
000011b7: PUSH1 0x40
000011b9: MLOAD
000011ba: PUSH3 0x461bcd
000011be: PUSH1 0xe5
000011c0: SHL
000011c1: DUP2
000011c2: MSTORE
000011c3: PUSH1 0x20
000011c5: PUSH1 0x04
000011c7: DUP3
000011c8: ADD
000011c9: DUP2
000011ca: DUP2
000011cb: MSTORE
000011cc: DUP4
000011cd: MLOAD
000011ce: PUSH1 0x24
000011d0: DUP5
000011d1: ADD
000011d2: MSTORE
000011d3: DUP4
000011d4: MLOAD
000011d5: SWAP1
000011d6: SWAP3
000011d7: DUP4
000011d8: SWAP3
000011d9: PUSH1 0x44
000011db: SWAP1
000011dc: SWAP2
000011dd: ADD
000011de: SWAP2
000011df: SWAP1
000011e0: DUP6
000011e1: ADD
000011e2: SWAP1
000011e3: DUP1
000011e4: DUP4
000011e5: DUP4
000011e6: PUSH1 0x00
000011e8: DUP4
000011e9: ISZERO
000011ea: PUSH2 0x06c9
000011ed: JUMPI
000011ee: DUP2
000011ef: DUP2
000011f0: ADD
000011f1: MLOAD
000011f2: DUP4
000011f3: DUP3
000011f4: ADD
000011f5: MSTORE
000011f6: PUSH1 0x20
000011f8: ADD
000011f9: PUSH2 0x06b1
000011fc: JUMP
000011fd: JUMPDEST
000011fe: PUSH1 0x60
00001200: DUP2
00001201: PUSH1 0x01
00001203: EQ
00001204: ISZERO
00001205: PUSH2 0x1242
00001208: JUMPI
00001209: POP
0000120a: PUSH1 0x40
0000120c: DUP1
0000120d: MLOAD
0000120e: DUP1
0000120f: DUP3
00001210: ADD
00001211: SWAP1
00001212: SWAP2
00001213: MSTORE
00001214: PUSH1 0x1d
00001216: DUP2
00001217: MSTORE
00001218: PUSH32 0x537461726b576172655f416c6c5665726966696572735f323032325f32000000
00001239: PUSH1 0x20
0000123b: DUP3
0000123c: ADD
0000123d: MSTORE
0000123e: PUSH2 0x0366
00001241: JUMP
00001242: JUMPDEST
00001243: DUP2
00001244: PUSH1 0x02
00001246: EQ
00001247: ISZERO
00001248: PUSH2 0x126b
0000124b: JUMPI
0000124c: PUSH1 0x40
0000124e: MLOAD
0000124f: DUP1
00001250: PUSH1 0x60
00001252: ADD
00001253: PUSH1 0x40
00001255: MSTORE
00001256: DUP1
00001257: PUSH1 0x2a
00001259: DUP2
0000125a: MSTORE
0000125b: PUSH1 0x20
0000125d: ADD
0000125e: PUSH2 0x144d
00001261: PUSH1 0x2a
00001263: SWAP2
00001264: CODECOPY
00001265: SWAP1
00001266: POP
00001267: PUSH2 0x0366
0000126a: JUMP
0000126b: JUMPDEST
0000126c: DUP2
0000126d: PUSH1 0x03
0000126f: EQ
00001270: ISZERO
00001271: PUSH2 0x12ae
00001274: JUMPI
00001275: POP
00001276: PUSH1 0x40
00001278: DUP1
00001279: MLOAD
0000127a: DUP1
0000127b: DUP3
0000127c: ADD
0000127d: SWAP1
0000127e: SWAP2
0000127f: MSTORE
00001280: PUSH1 0x1f
00001282: DUP2
00001283: MSTORE
00001284: PUSH32 0x537461726b576172655f50657270657475616c53746174655f323032335f3400
000012a5: PUSH1 0x20
000012a7: DUP3
000012a8: ADD
000012a9: MSTORE
000012aa: PUSH2 0x0366
000012ad: JUMP
000012ae: JUMPDEST
000012af: DUP2
000012b0: PUSH1 0x04
000012b2: EQ
000012b3: ISZERO
000012b4: PUSH2 0x12d7
000012b7: JUMPI
000012b8: PUSH1 0x40
000012ba: MLOAD
000012bb: DUP1
000012bc: PUSH1 0x60
000012be: ADD
000012bf: PUSH1 0x40
000012c1: MSTORE
000012c2: DUP1
000012c3: PUSH1 0x27
000012c5: DUP2
000012c6: MSTORE
000012c7: PUSH1 0x20
000012c9: ADD
000012ca: PUSH2 0x1499
000012cd: PUSH1 0x27
000012cf: SWAP2
000012d0: CODECOPY
000012d1: SWAP1
000012d2: POP
000012d3: PUSH2 0x0366
000012d6: JUMP
000012d7: JUMPDEST
000012d8: PUSH1 0x40
000012da: DUP1
000012db: MLOAD
000012dc: PUSH3 0x461bcd
000012e0: PUSH1 0xe5
000012e2: SHL
000012e3: DUP2
000012e4: MSTORE
000012e5: PUSH1 0x20
000012e7: PUSH1 0x04
000012e9: DUP3
000012ea: ADD
000012eb: MSTORE
000012ec: PUSH1 0x10
000012ee: PUSH1 0x24
000012f0: DUP3
000012f1: ADD
000012f2: MSTORE
000012f3: PUSH16 0x0aa9c8ab0a08a86a88a88be929c888ab
00001304: PUSH1 0x83
00001306: SHL
00001307: PUSH1 0x44
00001309: DUP3
0000130a: ADD
0000130b: MSTORE
0000130c: SWAP1
0000130d: MLOAD
0000130e: SWAP1
0000130f: DUP2
00001310: SWAP1
00001311: SUB
00001312: PUSH1 0x64
00001314: ADD
00001315: SWAP1
00001316: REVERT
00001317: JUMPDEST
00001318: PUSH3 0x05556c
0000131c: SWAP1
0000131d: JUMP
0000131e: JUMPDEST
0000131f: PUSH1 0x00
00001321: DUP2
00001322: PUSH2 0x134c
00001325: JUMPI
00001326: POP
00001327: PUSH32 0x2124100000000202022040002000000020022010011100002003000001000000
00001348: PUSH2 0x0366
0000134b: JUMP
0000134c: JUMPDEST
0000134d: DUP2
0000134e: PUSH1 0x01
00001350: EQ
00001351: ISZERO
00001352: PUSH2 0x137b
00001355: JUMPI
00001356: POP
00001357: PUSH31 0x10003203010020002002200030330000100020300002001003030000100202
00001377: PUSH2 0x0366
0000137a: JUMP
0000137b: JUMPDEST
0000137c: DUP2
0000137d: PUSH1 0x02
0000137f: EQ
00001380: ISZERO
00001381: PUSH2 0x13ab
00001384: JUMPI
00001385: POP
00001386: PUSH32 0x3000002000310000040022000010000000100013430002033100300200000302
000013a7: PUSH2 0x0366
000013aa: JUMP
000013ab: JUMPDEST
000013ac: DUP2
000013ad: PUSH1 0x03
000013af: EQ
000013b0: ISZERO
000013b1: PUSH2 0x13db
000013b4: JUMPI
000013b5: POP
000013b6: PUSH32 0x1103103010020000102000000400320031030100023000004000300000000000
000013d7: PUSH2 0x0366
000013da: JUMP
000013db: JUMPDEST
000013dc: PUSH1 0x40
000013de: DUP1
000013df: MLOAD
000013e0: PUSH3 0x461bcd
000013e4: PUSH1 0xe5
000013e6: SHL
000013e7: DUP2
000013e8: MSTORE
000013e9: PUSH1 0x20
000013eb: PUSH1 0x04
000013ed: DUP3
000013ee: ADD
000013ef: MSTORE
000013f0: PUSH1 0x13
000013f2: PUSH1 0x24
000013f4: DUP3
000013f5: ADD
000013f6: MSTORE
000013f7: PUSH19 0x2120a22fa4a22c2fa6a0a82fa9a2a1aa24a7a7
0000140b: PUSH1 0x69
0000140d: SHL
0000140e: PUSH1 0x44
00001410: DUP3
00001411: ADD
00001412: MSTORE
00001413: SWAP1
00001414: MLOAD
00001415: SWAP1
00001416: DUP2
00001417: SWAP1
00001418: SUB
00001419: PUSH1 0x64
0000141b: ADD
0000141c: SWAP1
0000141d: REVERT
0000141e: JUMPDEST
0000141f: EXTCODESIZE
00001420: ISZERO
00001421: ISZERO
00001422: SWAP1
00001423: JUMP
00001424: JUMPDEST
00001425: PUSH1 0x00
00001427: DUP1
00001428: DUP6
00001429: DUP6
0000142a: GT
0000142b: ISZERO
0000142c: PUSH2 0x1433
0000142f: JUMPI
00001430: DUP2
00001431: DUP3
00001432: REVERT
00001433: JUMPDEST
00001434: DUP4
00001435: DUP7
00001436: GT
00001437: ISZERO
00001438: PUSH2 0x143f
0000143b: JUMPI
0000143c: DUP2
0000143d: DUP3
0000143e: REVERT
0000143f: JUMPDEST
00001440: POP
00001441: POP
00001442: DUP3
00001443: ADD
00001444: SWAP4
00001445: SWAP2
00001446: SWAP1
00001447: SWAP3
00001448: SUB
00001449: SWAP2
0000144a: POP
0000144b: JUMP
0000144c: INVALID
0000144d: MSTORE8
0000144e: PUSH21 0x61726b576172655f50657270657475616c546f6b65
00001464: PUSH15 0x73416e6452616d70696e675f323032
00001474: ORIGIN
00001475: PUSH0
00001476: ORIGIN
00001477: UNKNOWN(0x4D)
00001478: BLOBHASH
00001479: MSTORE8
0000147a: POP
0000147b: UNKNOWN(0x4C)
0000147c: COINBASE
0000147d: NUMBER
0000147e: GASLIMIT
0000147f: DIFFICULTY
00001480: PUSH0
00001481: BLOBHASH
00001482: UNKNOWN(0x4E)
00001483: DIFFICULTY
00001484: GASLIMIT
00001485: PC
00001486: PUSH0
00001487: UNKNOWN(0x4F)
00001488: MSTORE
00001489: PUSH0
0000148a: TIMESTAMP
0000148b: COINBASE
0000148c: DIFFICULTY
0000148d: PUSH0
0000148e: NUMBER
0000148f: UNKNOWN(0x4F)
00001490: UNKNOWN(0x4E)
00001491: SLOAD
00001492: MSTORE
00001493: COINBASE
00001494: NUMBER
00001495: SLOAD
00001496: PUSH0
00001497: BLOBHASH
00001498: DIFFICULTY
00001499: MSTORE8
0000149a: PUSH21 0x61726b576172655f50657270657475616c466f7263
000014b0: PUSH6 0x64416374696f
000014b7: PUSH15 0x735f323032325f32a2646970667358
000014c7: UNKNOWN(0x22)
000014c8: SLT
000014c9: KECCAK256
000014ca: UNKNOWN(0xCE)
000014cb: UNKNOWN(0xC3)
000014cc: UNKNOWN(0x22)
000014cd: UNKNOWN(0xC2)
000014ce: UNKNOWN(0xD0)
000014cf: RETURN
000014d0: NUMBER
000014d1: PUSH3 0x372972
000014d5: MSTORE8
000014d6: SWAP5
000014d7: PUSH29 0x655fd7ef44eed69e5aa4f5783518c3e5316c64736f6c634300060c0033

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability codex Unrestricted dispatcher initialize allows sub-contract takeover and arbitrary delegatecall 90 no
view
evidence_json
{
    "evidence": "`initialize` is external and only gated by `notCalledDirectly`, yet it overwrites `subContracts` and can delegatecall an arbitrary external initializer without any governance check.",
    "locations": [
        "contracts/src/interfaces/MainDispatcherBase.sol:124",
        "contracts/src/interfaces/MainDispatcherBase.sol:144",
        "contracts/src/interfaces/MainDispatcherBase.sol:165",
        "contracts/src/interfaces/MainDispatcherBase.sol:172",
        "contracts/src/interfaces/MainDispatcherBase.sol:226"
    ],
    "recommendation": "Restrict `initialize` to governance/proxy admin only, and enforce a one-time or upgrade-only guard before writing `subContracts` (e.g., require an initialized flag or an upgrade context set by the proxy). Consider validating/whitelisting the external initializer and removing the `additionalDataSize==0` early return unless explicitly authorized by the upgrade mechanism.",
    "exploit_scenario": "An attacker calls `initialize(bytes)` through the proxy (passes `notCalledDirectly`) with crafted calldata. Because there is no access control or one-time guard at the entry, they can replace `subContracts` with malicious contracts (or supply a malicious external initializer) and thus seize control of all delegated logic, drain funds, or corrupt state."
}
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0xabeab3354616435143810209afdb6cae043d50a3e2c8669136e3a4b15f82d29d
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 84,
    "trace_id": "0xabeab3354616435143810209afdb6cae043d50a3e2c8669136e3a4b15f82d29d",
    "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": "0x2f9014b4",
            "selector": "0x2f9014b4",
            "calldata_variants": [
                "0x2f9014b4",
                "0x2f9014b40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x439fab91",
            "selector": "0x439fab91",
            "calldata_variants": [
                "0x439fab91",
                "0x439fab910000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xadac3e15",
            "selector": "0xadac3e15",
            "calldata_variants": [
                "0xadac3e15",
                "0xadac3e150000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc1a85130",
            "selector": "0xc1a85130",
            "calldata_variants": [
                "0xc1a85130",
                "0xc1a851300000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd4e878e8",
            "selector": "0xd4e878e8",
            "calldata_variants": [
                "0xd4e878e8",
                "0xd4e878e80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2011f66",
            "selector": "0xf2011f66",
            "calldata_variants": [
                "0xf2011f66",
                "0xf2011f660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffa1ad74",
            "selector": "0xffa1ad74",
            "calldata_variants": [
                "0xffa1ad74",
                "0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 307,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 1600,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 2240,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 5236,
            "type": "tx_origin_used"
        },
        {
            "pc": 5238,
            "type": "tx_origin_used"
        }
    ],
    "delegatecall_count": 4,
    "untrusted_delegatecall_count": 4
}
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": "0x2f9014b4",
            "selector": "0x2f9014b4",
            "calldata_variants": [
                "0x2f9014b4",
                "0x2f9014b40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x439fab91",
            "selector": "0x439fab91",
            "calldata_variants": [
                "0x439fab91",
                "0x439fab910000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xadac3e15",
            "selector": "0xadac3e15",
            "calldata_variants": [
                "0xadac3e15",
                "0xadac3e150000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc1a85130",
            "selector": "0xc1a85130",
            "calldata_variants": [
                "0xc1a85130",
                "0xc1a851300000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd4e878e8",
            "selector": "0xd4e878e8",
            "calldata_variants": [
                "0xd4e878e8",
                "0xd4e878e80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2011f66",
            "selector": "0xf2011f66",
            "calldata_variants": [
                "0xf2011f66",
                "0xf2011f660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffa1ad74",
            "selector": "0xffa1ad74",
            "calldata_variants": [
                "0xffa1ad74",
                "0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 5236,
            "type": "tx_origin_used"
        },
        {
            "pc": 5238,
            "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": 4
}