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

Analysis Run

86d4515f-6381-4ede-ac6f-89c32fe84757

failed
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 6:15 AM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted DELEGATECALL target reachable
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
30443 report.consolidate complete 1 / 1 3 months ago
108819 artifact.fetch failed 1 / 3 1 week ago
108820 tool.cast_disasm complete 1 / 3 1 week ago
108821 analysis.bundle complete 1 / 3 1 week ago
108822 capability.graph complete 1 / 3 1 week ago
108823 detector.run complete 1 / 3 1 week ago
108824 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
1 high severity issue found: TokenManager setup can be re-initialized on the proxy, enabling role takeover if the proxy does not enforce one-time initialization.
View stderr
[codex:1301083] OpenAI Codex v0.77.0 (research preview)
[codex:1301083] --------
[codex:1301083] workdir: /tmp/codex-multi-lso4tic8
[codex:1301083] model: gpt-5.2-codex
[codex:1301083] provider: openai
[codex:1301083] approval: never
[codex:1301083] sandbox: read-only
[codex:1301083] reasoning effort: xhigh
[codex:1301083] reasoning summaries: auto
[codex:1301083] session id: 019b68bb-b16a-7aa3-93d8-4d7aeb0012c6
[codex:1301083] --------
[codex:1301083] user
[codex:1301083] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1301083] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1301083] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1301083] 
[codex:1301083] Scope rules:
[codex:1301083] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1301083] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1301083] 
[codex:1301083] Output MUST be valid JSON matching the provided schema.
[codex:1301083] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1301083] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1301083] 
[codex:1301083] Output constraints (IMPORTANT):
[codex:1301083] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1301083] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1301083] mcp startup: no servers
[codex:1301083] 
[codex:1301083] thinking
[codex:1301083] **Reviewing AUDIT_BUNDLE file**
[codex:1301083] exec
[codex:1301083] /bin/bash -lc ls in /tmp/codex-multi-lso4tic8 succeeded in 5ms:
[codex:1301083] AUDIT_BUNDLE.txt
[codex:1301083] codex-output-schema.json
[codex:1301083] contracts
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-lso4tic8 succeeded in 5ms:
[codex:1301083] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1301083] 
[codex:1301083] ================================================================================
[codex:1301083] FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IContractIdentifier.sol
[codex:1301083] ================================================================================
[codex:1301083] // SPDX-License-Identifier: MIT
[codex:1301083] 
[codex:1301083] pragma solidity ^0.8.0;
[codex:1301083] 
[codex:1301083] // General interface for upgradable contracts
[codex:1301083] interface IContractIdentifier {
[codex:1301083]     /**
[codex:1301083]      * @notice Returns the contract ID. It can be used as a check during upgrades.
[codex:1301083]      * @dev Meant to be overridden in derived contracts.
[codex:1301083]      * @return bytes32 The contract ID
[codex:1301083]      */
[codex:1301083]     function contractId() external pure returns (bytes32);
[codex:1301083] }
[codex:1301083] 
[codex:1301083] ================================================================================
[codex:1301083] 
[codex:1301083] thinking
[codex:1301083] **Distinguishing first-party from third-party code**
[codex:1301083] exec
[codex:1301083] /bin/bash -lc 'rg "''^FILE:" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-lso4tic8 succeeded in 7ms:
[codex:1301083] 4:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IContractIdentifier.sol
[codex:1301083] 21:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IERC20.sol
[codex:1301083] 108:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IImplementation.sol
[codex:1301083] 123:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IMulticall.sol
[codex:1301083] 148:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IRolesBase.sol
[codex:1301083] 180:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/libs/AddressBytes.sol
[codex:1301083] 222:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/libs/SafeTransfer.sol
[codex:1301083] 294:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/upgradable/Implementation.sol
[codex:1301083] 336:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/utils/Multicall.sol
[codex:1301083] 378:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/utils/RolesBase.sol
[codex:1301083] 778:FILE: contracts/contracts/interfaces/IBaseTokenManager.sol
[codex:1301083] 808:FILE: contracts/contracts/interfaces/IERC20MintableBurnable.sol
[codex:1301083] 837:FILE: contracts/contracts/interfaces/IFlowLimit.sol
[codex:1301083] 874:FILE: contracts/contracts/interfaces/IOperator.sol
[codex:1301083] 918:FILE: contracts/contracts/interfaces/ITokenManager.sol
[codex:1301083] 1017:FILE: contracts/contracts/token-manager/TokenManager.sol
[codex:1301083] 1237:FILE: contracts/contracts/utils/FlowLimit.sol
[codex:1301083] 1386:FILE: contracts/contracts/utils/Operator.sol
[codex:1301083] 1452:FILE: contracts/contracts/utils/RolesConstants.sol
[codex:1301083] 
[codex:1301083] thinking
[codex:1301083] **Focusing on first-party contract files**
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "sed -n '760,1120p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-lso4tic8 succeeded in 5ms:
[codex:1301083]      * @dev Original account must have all the proposed roles.
[codex:1301083]      * @param fromAccount The address of the current role
[codex:1301083]      * @param toAccount The address to transfer role to
[codex:1301083]      * @param accountRoles The account roles to transfer
[codex:1301083]      */
[codex:1301083]     function _transferAccountRoles(
[codex:1301083]         address fromAccount,
[codex:1301083]         address toAccount,
[codex:1301083]         uint256 accountRoles
[codex:1301083]     ) internal {
[codex:1301083]         if (!_hasAllTheRoles(_getRoles(fromAccount), accountRoles)) revert MissingAllRoles(fromAccount, accountRoles);
[codex:1301083] 
[codex:1301083]         _removeAccountRoles(fromAccount, accountRoles);
[codex:1301083]         _addAccountRoles(toAccount, accountRoles);
[codex:1301083]     }
[codex:1301083] }
[codex:1301083] 
[codex:1301083] ================================================================================
[codex:1301083] FILE: contracts/contracts/interfaces/IBaseTokenManager.sol
[codex:1301083] ================================================================================
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "sed -n '1120,1560p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-lso4tic8 succeeded in 5ms:
[codex:1301083]         bytes memory operatorBytes = abi.decode(params_, (bytes));
[codex:1301083] 
[codex:1301083]         address operator = address(0);
[codex:1301083] 
[codex:1301083]         if (operatorBytes.length != 0) {
[codex:1301083]             operator = operatorBytes.toAddress();
[codex:1301083]         }
[codex:1301083] 
[codex:1301083]         // If an operator is not provided, set `address(0)` as the operator.
[codex:1301083]         // This allows anyone to easily check if a custom operator was set on the token manager.
[codex:1301083]         _addAccountRoles(operator, (1 << uint8(Roles.FLOW_LIMITER)) | (1 << uint8(Roles.OPERATOR)));
[codex:1301083]         // Add operator and flow limiter role to the service. The operator can remove the flow limiter role if they so chose and the service has no way to use the operator role for now.
[codex:1301083]         _addAccountRoles(interchainTokenService, (1 << uint8(Roles.FLOW_LIMITER)) | (1 << uint8(Roles.OPERATOR)));
[codex:1301083]     }
[codex:1301083] 
[codex:1301083]     function addFlowIn(uint256 amount) external onlyService {
[codex:1301083]         _addFlowIn(amount);
[codex:1301083]     }
[codex:1301083] 
[codex:1301083]     function addFlowOut(uint256 amount) external onlyService {
[codex:1301083] 
[codex:1301083] thinking
[codex:1301083] **Reviewing dependencies for potential vulnerabilities**
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "sed -n '180,520p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-lso4tic8 succeeded in 5ms:
[codex:1301083] FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/libs/AddressBytes.sol
[codex:1301083] ================================================================================
[codex:1301083] // SPDX-License-Identifier: MIT
[codex:1301083] 
[codex:1301083] pragma solidity ^0.8.0;
[codex:1301083] 
[codex:1301083] /**
[codex:1301083]  * @title AddressBytesUtils
[codex:1301083]  * @dev This library provides utility functions to convert between `address` and `bytes`.
[codex:1301083]  */
[codex:1301083] library AddressBytes {
[codex:1301083]     error InvalidBytesLength(bytes bytesAddress);
[codex:1301083] 
[codex:1301083]     /**
[codex:1301083]      * @dev Converts a bytes address to an address type.
[codex:1301083]      * @param bytesAddress The bytes representation of an address
[codex:1301083]      * @return addr The converted address
[codex:1301083]      */
[codex:1301083]     function toAddress(bytes memory bytesAddress) internal pure returns (address addr) {
[codex:1301083]         if (bytesAddress.length != 20) revert InvalidBytesLength(bytesAddress);
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "sed -n '520,760p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-lso4tic8 succeeded in 6ms:
[codex:1301083]         }
[codex:1301083]     }
[codex:1301083] 
[codex:1301083]     /**
[codex:1301083]      * @notice Internal function to add a role to an account.
[codex:1301083]      * @dev emits a RolesAdded event.
[codex:1301083]      * @param account The address to add the role to
[codex:1301083]      * @param role The role to add
[codex:1301083]      */
[codex:1301083]     function _addRole(address account, uint8 role) internal {
[codex:1301083]         _addAccountRoles(account, 1 << role);
[codex:1301083]     }
[codex:1301083] 
[codex:1301083]     /**
[codex:1301083]      * @notice Internal function to add roles to an account.
[codex:1301083]      * @dev emits a RolesAdded event.
[codex:1301083]      * @dev Called in the constructor to set the initial roles.
[codex:1301083]      * @param account The address to add roles to
[codex:1301083]      * @param roles The roles to add
[codex:1301083]      */
[codex:1301083] 
[codex:1301083] 
[codex:1301083] thinking
[codex:1301083] **Analyzing TokenManager initialization and access control risks**
[codex:1301083] 
[codex:1301083] I'm carefully reviewing TokenManager's setup method and access control patterns, noticing that setup lacks a proper initializer guard and can be called multiple times through the proxy, potentially allowing anyone to reassign critical roles. This raises risks around unprotected initialization, upgradeability, and operator role hijacking. I'm also evaluating multicall usage, external token interactions, flow limits, and the reliance on service trust, while considering how proxy storage and immutable variables are handled. There’s a lot to consider about role management and potential reentrancy, but the main concern is the missing setup guard that might allow privilege escalation if proxy restrictions aren't enforced elsewhere.
[codex:1301083] thinking
[codex:1301083] **Evaluating delegatecall and initialization protections**
[codex:1301083] 
[codex:1301083] I’m examining how the onlyProxy modifier works with delegatecalls, realizing that any delegatecall to the implementation passes it, which means malicious proxies could call setup for their own storage safely. The lack of an initializer guard in setup remains a big concern if proxies don’t block multiple calls. I’m also weighing subtle points like storage slot usage in FlowLimit, external calls in approveService, potential issues with repeated role assignments during reinitialization, and some nuanced memory layout details in address-byte conversions—though the latter is probably third-party and safe to skip here. Overall, the initialization and access controls keep standing out as the main risk.
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "rg \"toBytes\\(\" -n /tmp/codex-multi-lso4tic8" in /tmp/codex-multi-lso4tic8 succeeded in 10ms:
[codex:1301083] /tmp/codex-multi-lso4tic8/AUDIT_BUNDLE.txt:211:    function toBytes(address addr) internal pure returns (bytes memory bytesAddress) {
[codex:1301083] /tmp/codex-multi-lso4tic8/contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/libs/AddressBytes.sol:30:    function toBytes(address addr) internal pure returns (bytes memory bytesAddress) {
[codex:1301083] 
[codex:1301083] thinking
[codex:1301083] **Reviewing potential vulnerabilities in first-party code**
[codex:1301083] exec
[codex:1301083] /bin/bash -lc 'tail -n 20 AUDIT_BUNDLE.txt' in /tmp/codex-multi-lso4tic8 succeeded in 5ms:
[codex:1301083] 
[codex:1301083] ================================================================================
[codex:1301083] FILE: contracts/contracts/utils/RolesConstants.sol
[codex:1301083] ================================================================================
[codex:1301083] // SPDX-License-Identifier: MIT
[codex:1301083] 
[codex:1301083] pragma solidity ^0.8.0;
[codex:1301083] 
[codex:1301083] /**
[codex:1301083]  * @title RolesConstants
[codex:1301083]  * @notice This contract contains enum values representing different contract roles.
[codex:1301083]  */
[codex:1301083] contract RolesConstants {
[codex:1301083]     enum Roles {
[codex:1301083]         MINTER,
[codex:1301083]         OPERATOR,
[codex:1301083]         FLOW_LIMITER
[codex:1301083]     }
[codex:1301083] }
[codex:1301083] 
[codex:1301083] 
[codex:1301083] thinking
[codex:1301083] **Identifying potential subtle issues and preparing for audit output**
[codex:1301083] 
[codex:1301083] I'm analyzing various contract behaviors, focusing on proxy use, external calls, storage collisions, and access controls to spot subtle issues or risks. I'm gearing up to include file paths and approximate line numbers for these findings to align with the audit output format.
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "nl -ba contracts/contracts/token-manager/TokenManager.sol | sed -n '1,220p'" in /tmp/codex-multi-lso4tic8 succeeded in 7ms:
[codex:1301083]      1	// SPDX-License-Identifier: MIT
[codex:1301083]      2	
[codex:1301083]      3	pragma solidity ^0.8.0;
[codex:1301083]      4	
[codex:1301083]      5	import { IERC20 } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IERC20.sol';
[codex:1301083]      6	import { AddressBytes } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/libs/AddressBytes.sol';
[codex:1301083]      7	import { IImplementation } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IImplementation.sol';
[codex:1301083]      8	import { Implementation } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/upgradable/Implementation.sol';
[codex:1301083]      9	import { SafeTokenCall } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/libs/SafeTransfer.sol';
[codex:1301083]     10	import { Multicall } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/utils/Multicall.sol';
[codex:1301083]     11	
[codex:1301083]     12	import { ITokenManager } from '../interfaces/ITokenManager.sol';
[codex:1301083]     13	import { IERC20MintableBurnable } from '../interfaces/IERC20MintableBurnable.sol';
[codex:1301083]     14	
[codex:1301083]     15	import { Operator } from '../utils/Operator.sol';
[codex:1301083]     16	import { FlowLimit } from '../utils/FlowLimit.sol';
[codex:1301083]     17	
[codex:1301083]     18	/**
[codex:1301083]     19	 * @title TokenManager
[codex:1301083]     20	 * @notice This contract is responsible for managing tokens, such as setting locking token balances, or setting flow limits, for interchain transfers.
[codex:1301083] 
[codex:1301083] thinking
[codex:1301083] **Analyzing TokenManager security nuances**
[codex:1301083] exec
[codex:1301083] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-lso4tic8 succeeded in 7ms:
[codex:1301083] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:1301083] 
[codex:1301083] thinking
[codex:1301083] **Preparing JSON security finding**
[codex:1301083] codex
[codex:1301083] {"no_findings":false,"summary":"1 high severity issue found: TokenManager setup can be re-initialized on the proxy, enabling role takeover if the proxy does not enforce one-time initialization.","findings":[{"severity":"high","category":"upgradeability","title":"Re-initializable setup can grant operator/flow-limiter roles to an attacker","exploit_scenario":"If the proxy does not enforce a single initialization, any external caller can invoke `setup` on the proxy after deployment with their address encoded in `params_`. This grants them `OPERATOR` and `FLOW_LIMITER` roles, allowing them to change flow limiters and set the flow limit to 0 or an arbitrarily large value, potentially disabling rate limits relied on by the service.","recommendation":"Add an initialization guard in `TokenManager.setup` (e.g., an `initialized` flag in unstructured storage) or ensure the proxy constructor permanently disables further `setup` calls. Consider reverting if roles are already set to prevent role accumulation on re-init.","evidence":"`setup` is `external` and gated only by `onlyProxy`; it unconditionally calls `_addAccountRoles` for the supplied operator and the service, with no one-time initialization check, so repeated calls accumulate privileged roles.","locations":["contracts/contracts/token-manager/TokenManager.sol:101","contracts/contracts/token-manager/TokenManager.sol:110"]}]}
[codex:1301083] tokens used
[codex:1301083] 34,543
[codex:1301083] {"no_findings":false,"summary":"1 high severity issue found: TokenManager setup can be re-initialized on the proxy, enabling role takeover if the proxy does not enforce one-time initialization.","findings":[{"severity":"high","category":"upgradeability","title":"Re-initializable setup can grant operator/flow-limiter roles to an attacker","exploit_scenario":"If the proxy does not enforce a single initialization, any external caller can invoke `setup` on the proxy after deployment with their address encoded in `params_`. This grants them `OPERATOR` and `FLOW_LIMITER` roles, allowing them to change flow limiters and set the flow limit to 0 or an arbitrarily large value, potentially disabling rate limits relied on by the service.","recommendation":"Add an initialization guard in `TokenManager.setup` (e.g., an `initialized` flag in unstructured storage) or ensure the proxy constructor permanently disables further `setup` calls. Consider reverting if roles are already set to prevent role accumulation on re-init.","evidence":"`setup` is `external` and gated only by `onlyProxy`; it unconditionally calls `_addAccountRoles` for the supplied operator and the service, with no one-time initialization check, so repeated calls accumulate privileged roles.","locations":["contracts/contracts/token-manager/TokenManager.sol:101","contracts/contracts/token-manager/TokenManager.sol:110"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T06:15:19.600799+00:00",
        "returncode": 0
    },
    "summary": "1 high severity issue found: TokenManager setup can be re-initialized on the proxy, enabling role takeover if the proxy does not enforce one-time initialization.",
    "raw_final": {
        "summary": "1 high severity issue found: TokenManager setup can be re-initialized on the proxy, enabling role takeover if the proxy does not enforce one-time initialization.",
        "findings": [
            {
                "title": "Re-initializable setup can grant operator/flow-limiter roles to an attacker",
                "category": "upgradeability",
                "evidence": "`setup` is `external` and gated only by `onlyProxy`; it unconditionally calls `_addAccountRoles` for the supplied operator and the service, with no one-time initialization check, so repeated calls accumulate privileged roles.",
                "severity": "high",
                "locations": [
                    "contracts/contracts/token-manager/TokenManager.sol:101",
                    "contracts/contracts/token-manager/TokenManager.sol:110"
                ],
                "recommendation": "Add an initialization guard in `TokenManager.setup` (e.g., an `initialized` flag in unstructured storage) or ensure the proxy constructor permanently disables further `setup` calls. Consider reverting if roles are already set to prevent role accumulation on re-init.",
                "exploit_scenario": "If the proxy does not enforce a single initialization, any external caller can invoke `setup` on the proxy after deployment with their address encoded in `params_`. This grants them `OPERATOR` and `FLOW_LIMITER` roles, allowing them to change flow limiters and set the flow limit to 0 or an arbitrarily large value, potentially disabling rate limits relied on by the service."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
2
Total opcodes
4046
Flags
delegatecall_present create_opcodes_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x01ac
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x7dbab19b
00000019: GT
0000001a: PUSH2 0x00ec
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xac9650d8
00000024: GT
00000025: PUSH2 0x008a
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xdce29136
0000002f: GT
00000030: PUSH2 0x0064
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xdce29136
0000003a: EQ
0000003b: PUSH2 0x04bf
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xdeb11e78
00000045: EQ
00000046: PUSH2 0x04df
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xe915cfd1
00000050: EQ
00000051: PUSH2 0x04ff
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf5983e83
0000005b: EQ
0000005c: PUSH2 0x051f
0000005f: JUMPI
00000060: PUSH1 0x00
00000062: DUP1
00000063: REVERT
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0xac9650d8
0000006b: EQ
0000006c: PUSH2 0x045f
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xadc0dc3b
00000076: EQ
00000077: PUSH2 0x047f
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xda4886df
00000081: EQ
00000082: PUSH2 0x049f
00000085: JUMPI
00000086: PUSH1 0x00
00000088: DUP1
00000089: REVERT
0000008a: JUMPDEST
0000008b: DUP1
0000008c: PUSH4 0x95a8c58d
00000091: GT
00000092: PUSH2 0x00c6
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0x95a8c58d
0000009c: EQ
0000009d: PUSH2 0x03ea
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0x9d76ea58
000000a7: EQ
000000a8: PUSH2 0x040a
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0x9ded06df
000000b2: EQ
000000b3: PUSH2 0x041f
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xa56dbe63
000000bd: EQ
000000be: PUSH2 0x043f
000000c1: JUMPI
000000c2: PUSH1 0x00
000000c4: DUP1
000000c5: REVERT
000000c6: JUMPDEST
000000c7: DUP1
000000c8: PUSH4 0x7dbab19b
000000cd: EQ
000000ce: PUSH2 0x036e
000000d1: JUMPI
000000d2: DUP1
000000d3: PUSH4 0x8291286c
000000d8: EQ
000000d9: PUSH2 0x0383
000000dc: JUMPI
000000dd: DUP1
000000de: PUSH4 0x8b38b35d
000000e3: EQ
000000e4: PUSH2 0x03b6
000000e7: JUMPI
000000e8: PUSH1 0x00
000000ea: DUP1
000000eb: REVERT
000000ec: JUMPDEST
000000ed: DUP1
000000ee: PUSH4 0x2f3c7888
000000f3: GT
000000f4: PUSH2 0x0159
000000f7: JUMPI
000000f8: DUP1
000000f9: PUSH4 0x4fdf7cb5
000000fe: GT
000000ff: PUSH2 0x0133
00000102: JUMPI
00000103: DUP1
00000104: PUSH4 0x4fdf7cb5
00000109: EQ
0000010a: PUSH2 0x0244
0000010d: JUMPI
0000010e: DUP1
0000010f: PUSH4 0x6bec32da
00000114: EQ
00000115: PUSH2 0x02fe
00000118: JUMPI
00000119: DUP1
0000011a: PUSH4 0x6d70f7ae
0000011f: EQ
00000120: PUSH2 0x031e
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x6f3eef62
0000012a: EQ
0000012b: PUSH2 0x034e
0000012e: JUMPI
0000012f: PUSH1 0x00
00000131: DUP1
00000132: REVERT
00000133: JUMPDEST
00000134: DUP1
00000135: PUSH4 0x2f3c7888
0000013a: EQ
0000013b: PUSH2 0x02a9
0000013e: JUMPI
0000013f: DUP1
00000140: PUSH4 0x3416794d
00000145: EQ
00000146: PUSH2 0x02be
00000149: JUMPI
0000014a: DUP1
0000014b: PUSH4 0x4a6a42d8
00000150: EQ
00000151: PUSH2 0x02de
00000154: JUMPI
00000155: PUSH1 0x00
00000157: DUP1
00000158: REVERT
00000159: JUMPDEST
0000015a: DUP1
0000015b: PUSH4 0x129d8188
00000160: GT
00000161: PUSH2 0x018a
00000164: JUMPI
00000165: DUP1
00000166: PUSH4 0x129d8188
0000016b: EQ
0000016c: PUSH2 0x0244
0000016f: JUMPI
00000170: DUP1
00000171: PUSH4 0x1c53d265
00000176: EQ
00000177: PUSH2 0x0267
0000017a: JUMPI
0000017b: DUP1
0000017c: PUSH4 0x27415838
00000181: EQ
00000182: PUSH2 0x0294
00000185: JUMPI
00000186: PUSH1 0x00
00000188: DUP1
00000189: REVERT
0000018a: JUMPDEST
0000018b: DUP1
0000018c: PUSH4 0x09c6bed9
00000191: EQ
00000192: PUSH2 0x01b1
00000195: JUMPI
00000196: DUP1
00000197: PUSH4 0x10d8d8e3
0000019c: EQ
0000019d: PUSH2 0x0202
000001a0: JUMPI
000001a1: DUP1
000001a2: PUSH4 0x120a63b5
000001a7: EQ
000001a8: PUSH2 0x0224
000001ab: JUMPI
000001ac: JUMPDEST
000001ad: PUSH1 0x00
000001af: DUP1
000001b0: REVERT
000001b1: JUMPDEST
000001b2: CALLVALUE
000001b3: DUP1
000001b4: ISZERO
000001b5: PUSH2 0x01bd
000001b8: JUMPI
000001b9: PUSH1 0x00
000001bb: DUP1
000001bc: REVERT
000001bd: JUMPDEST
000001be: POP
000001bf: PUSH2 0x01e5
000001c2: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c
000001e3: DUP2
000001e4: JUMP
000001e5: JUMPDEST
000001e6: PUSH1 0x40
000001e8: MLOAD
000001e9: PUSH1 0x01
000001eb: PUSH1 0x01
000001ed: PUSH1 0xa0
000001ef: SHL
000001f0: SUB
000001f1: SWAP1
000001f2: SWAP2
000001f3: AND
000001f4: DUP2
000001f5: MSTORE
000001f6: PUSH1 0x20
000001f8: ADD
000001f9: JUMPDEST
000001fa: PUSH1 0x40
000001fc: MLOAD
000001fd: DUP1
000001fe: SWAP2
000001ff: SUB
00000200: SWAP1
00000201: RETURN
00000202: JUMPDEST
00000203: CALLVALUE
00000204: DUP1
00000205: ISZERO
00000206: PUSH2 0x020e
00000209: JUMPI
0000020a: PUSH1 0x00
0000020c: DUP1
0000020d: REVERT
0000020e: JUMPDEST
0000020f: POP
00000210: PUSH2 0x0222
00000213: PUSH2 0x021d
00000216: CALLDATASIZE
00000217: PUSH1 0x04
00000219: PUSH2 0x15d2
0000021c: JUMP
0000021d: JUMPDEST
0000021e: PUSH2 0x053f
00000221: JUMP
00000222: JUMPDEST
00000223: STOP
00000224: JUMPDEST
00000225: CALLVALUE
00000226: DUP1
00000227: ISZERO
00000228: PUSH2 0x0230
0000022b: JUMPI
0000022c: PUSH1 0x00
0000022e: DUP1
0000022f: REVERT
00000230: JUMPDEST
00000231: POP
00000232: PUSH2 0x0222
00000235: PUSH2 0x023f
00000238: CALLDATASIZE
00000239: PUSH1 0x04
0000023b: PUSH2 0x1600
0000023e: JUMP
0000023f: JUMPDEST
00000240: PUSH2 0x059b
00000243: JUMP
00000244: JUMPDEST
00000245: CALLVALUE
00000246: DUP1
00000247: ISZERO
00000248: PUSH2 0x0250
0000024b: JUMPI
0000024c: PUSH1 0x00
0000024e: DUP1
0000024f: REVERT
00000250: JUMPDEST
00000251: POP
00000252: PUSH2 0x0259
00000255: PUSH2 0x05ed
00000258: JUMP
00000259: JUMPDEST
0000025a: PUSH1 0x40
0000025c: MLOAD
0000025d: SWAP1
0000025e: DUP2
0000025f: MSTORE
00000260: PUSH1 0x20
00000262: ADD
00000263: PUSH2 0x01f9
00000266: JUMP
00000267: JUMPDEST
00000268: CALLVALUE
00000269: DUP1
0000026a: ISZERO
0000026b: PUSH2 0x0273
0000026e: JUMPI
0000026f: PUSH1 0x00
00000271: DUP1
00000272: REVERT
00000273: JUMPDEST
00000274: POP
00000275: PUSH2 0x0287
00000278: PUSH2 0x0282
0000027b: CALLDATASIZE
0000027c: PUSH1 0x04
0000027e: PUSH2 0x1666
00000281: JUMP
00000282: JUMPDEST
00000283: PUSH2 0x0621
00000286: JUMP
00000287: JUMPDEST
00000288: PUSH1 0x40
0000028a: MLOAD
0000028b: PUSH2 0x01f9
0000028e: SWAP2
0000028f: SWAP1
00000290: PUSH2 0x170d
00000293: JUMP
00000294: JUMPDEST
00000295: CALLVALUE
00000296: DUP1
00000297: ISZERO
00000298: PUSH2 0x02a0
0000029b: JUMPI
0000029c: PUSH1 0x00
0000029e: DUP1
0000029f: REVERT
000002a0: JUMPDEST
000002a1: POP
000002a2: PUSH2 0x0222
000002a5: PUSH2 0x0650
000002a8: JUMP
000002a9: JUMPDEST
000002aa: CALLVALUE
000002ab: DUP1
000002ac: ISZERO
000002ad: PUSH2 0x02b5
000002b0: JUMPI
000002b1: PUSH1 0x00
000002b3: DUP1
000002b4: REVERT
000002b5: JUMPDEST
000002b6: POP
000002b7: PUSH2 0x0259
000002ba: PUSH2 0x07bb
000002bd: JUMP
000002be: JUMPDEST
000002bf: CALLVALUE
000002c0: DUP1
000002c1: ISZERO
000002c2: PUSH2 0x02ca
000002c5: JUMPI
000002c6: PUSH1 0x00
000002c8: DUP1
000002c9: REVERT
000002ca: JUMPDEST
000002cb: POP
000002cc: PUSH2 0x0222
000002cf: PUSH2 0x02d9
000002d2: CALLDATASIZE
000002d3: PUSH1 0x04
000002d5: PUSH2 0x1720
000002d8: JUMP
000002d9: JUMPDEST
000002da: PUSH2 0x07df
000002dd: JUMP
000002de: JUMPDEST
000002df: CALLVALUE
000002e0: DUP1
000002e1: ISZERO
000002e2: PUSH2 0x02ea
000002e5: JUMPI
000002e6: PUSH1 0x00
000002e8: DUP1
000002e9: REVERT
000002ea: JUMPDEST
000002eb: POP
000002ec: PUSH2 0x0222
000002ef: PUSH2 0x02f9
000002f2: CALLDATASIZE
000002f3: PUSH1 0x04
000002f5: PUSH2 0x1600
000002f8: JUMP
000002f9: JUMPDEST
000002fa: PUSH2 0x08e1
000002fd: JUMP
000002fe: JUMPDEST
000002ff: CALLVALUE
00000300: DUP1
00000301: ISZERO
00000302: PUSH2 0x030a
00000305: JUMPI
00000306: PUSH1 0x00
00000308: DUP1
00000309: REVERT
0000030a: JUMPDEST
0000030b: POP
0000030c: PUSH2 0x0222
0000030f: PUSH2 0x0319
00000312: CALLDATASIZE
00000313: PUSH1 0x04
00000315: PUSH2 0x1720
00000318: JUMP
00000319: JUMPDEST
0000031a: PUSH2 0x0923
0000031d: JUMP
0000031e: JUMPDEST
0000031f: CALLVALUE
00000320: DUP1
00000321: ISZERO
00000322: PUSH2 0x032a
00000325: JUMPI
00000326: PUSH1 0x00
00000328: DUP1
00000329: REVERT
0000032a: JUMPDEST
0000032b: POP
0000032c: PUSH2 0x033e
0000032f: PUSH2 0x0339
00000332: CALLDATASIZE
00000333: PUSH1 0x04
00000335: PUSH2 0x1600
00000338: JUMP
00000339: JUMPDEST
0000033a: PUSH2 0x09b5
0000033d: JUMP
0000033e: JUMPDEST
0000033f: PUSH1 0x40
00000341: MLOAD
00000342: SWAP1
00000343: ISZERO
00000344: ISZERO
00000345: DUP2
00000346: MSTORE
00000347: PUSH1 0x20
00000349: ADD
0000034a: PUSH2 0x01f9
0000034d: JUMP
0000034e: JUMPDEST
0000034f: CALLVALUE
00000350: DUP1
00000351: ISZERO
00000352: PUSH2 0x035a
00000355: JUMPI
00000356: PUSH1 0x00
00000358: DUP1
00000359: REVERT
0000035a: JUMPDEST
0000035b: POP
0000035c: PUSH2 0x0222
0000035f: PUSH2 0x0369
00000362: CALLDATASIZE
00000363: PUSH1 0x04
00000365: PUSH2 0x1600
00000368: JUMP
00000369: JUMPDEST
0000036a: PUSH2 0x09c8
0000036d: JUMP
0000036e: JUMPDEST
0000036f: CALLVALUE
00000370: DUP1
00000371: ISZERO
00000372: PUSH2 0x037a
00000375: JUMPI
00000376: PUSH1 0x00
00000378: DUP1
00000379: REVERT
0000037a: JUMPDEST
0000037b: POP
0000037c: PUSH2 0x0259
0000037f: PUSH2 0x0a0a
00000382: JUMP
00000383: JUMPDEST
00000384: CALLVALUE
00000385: DUP1
00000386: ISZERO
00000387: PUSH2 0x038f
0000038a: JUMPI
0000038b: PUSH1 0x00
0000038d: DUP1
0000038e: REVERT
0000038f: JUMPDEST
00000390: POP
00000391: PUSH32 0xde5fa9c0ef6d18cdb8ef4461bfb45c94dc915629a2a1f311fb33838aff95436f
000003b2: PUSH2 0x0259
000003b5: JUMP
000003b6: JUMPDEST
000003b7: CALLVALUE
000003b8: DUP1
000003b9: ISZERO
000003ba: PUSH2 0x03c2
000003bd: JUMPI
000003be: PUSH1 0x00
000003c0: DUP1
000003c1: REVERT
000003c2: JUMPDEST
000003c3: POP
000003c4: PUSH32 0x201b7a0b7c19aaddc4ce9579b7df8d2db123805861bc7763627f13e04d8af42f
000003e5: SLOAD
000003e6: PUSH2 0x0259
000003e9: JUMP
000003ea: JUMPDEST
000003eb: CALLVALUE
000003ec: DUP1
000003ed: ISZERO
000003ee: PUSH2 0x03f6
000003f1: JUMPI
000003f2: PUSH1 0x00
000003f4: DUP1
000003f5: REVERT
000003f6: JUMPDEST
000003f7: POP
000003f8: PUSH2 0x033e
000003fb: PUSH2 0x0405
000003fe: CALLDATASIZE
000003ff: PUSH1 0x04
00000401: PUSH2 0x1761
00000404: JUMP
00000405: JUMPDEST
00000406: PUSH2 0x0a26
00000409: JUMP
0000040a: JUMPDEST
0000040b: CALLVALUE
0000040c: DUP1
0000040d: ISZERO
0000040e: PUSH2 0x0416
00000411: JUMPI
00000412: PUSH1 0x00
00000414: DUP1
00000415: REVERT
00000416: JUMPDEST
00000417: POP
00000418: PUSH2 0x01e5
0000041b: PUSH2 0x05ed
0000041e: JUMP
0000041f: JUMPDEST
00000420: CALLVALUE
00000421: DUP1
00000422: ISZERO
00000423: PUSH2 0x042b
00000426: JUMPI
00000427: PUSH1 0x00
00000429: DUP1
0000042a: REVERT
0000042b: JUMPDEST
0000042c: POP
0000042d: PUSH2 0x0222
00000430: PUSH2 0x043a
00000433: CALLDATASIZE
00000434: PUSH1 0x04
00000436: PUSH2 0x17a0
00000439: JUMP
0000043a: JUMPDEST
0000043b: PUSH2 0x0a48
0000043e: JUMP
0000043f: JUMPDEST
00000440: CALLVALUE
00000441: DUP1
00000442: ISZERO
00000443: PUSH2 0x044b
00000446: JUMPI
00000447: PUSH1 0x00
00000449: DUP1
0000044a: REVERT
0000044b: JUMPDEST
0000044c: POP
0000044d: PUSH2 0x0222
00000450: PUSH2 0x045a
00000453: CALLDATASIZE
00000454: PUSH1 0x04
00000456: PUSH2 0x15d2
00000459: JUMP
0000045a: JUMPDEST
0000045b: PUSH2 0x0b1a
0000045e: JUMP
0000045f: JUMPDEST
00000460: PUSH2 0x0472
00000463: PUSH2 0x046d
00000466: CALLDATASIZE
00000467: PUSH1 0x04
00000469: PUSH2 0x17e2
0000046c: JUMP
0000046d: JUMPDEST
0000046e: PUSH2 0x0bbb
00000471: JUMP
00000472: JUMPDEST
00000473: PUSH1 0x40
00000475: MLOAD
00000476: PUSH2 0x01f9
00000479: SWAP2
0000047a: SWAP1
0000047b: PUSH2 0x1859
0000047e: JUMP
0000047f: JUMPDEST
00000480: CALLVALUE
00000481: DUP1
00000482: ISZERO
00000483: PUSH2 0x048b
00000486: JUMPI
00000487: PUSH1 0x00
00000489: DUP1
0000048a: REVERT
0000048b: JUMPDEST
0000048c: POP
0000048d: PUSH2 0x0222
00000490: PUSH2 0x049a
00000493: CALLDATASIZE
00000494: PUSH1 0x04
00000496: PUSH2 0x18be
00000499: JUMP
0000049a: JUMPDEST
0000049b: PUSH2 0x0d0b
0000049e: JUMP
0000049f: JUMPDEST
000004a0: CALLVALUE
000004a1: DUP1
000004a2: ISZERO
000004a3: PUSH2 0x04ab
000004a6: JUMPI
000004a7: PUSH1 0x00
000004a9: DUP1
000004aa: REVERT
000004ab: JUMPDEST
000004ac: POP
000004ad: PUSH2 0x0222
000004b0: PUSH2 0x04ba
000004b3: CALLDATASIZE
000004b4: PUSH1 0x04
000004b6: PUSH2 0x1600
000004b9: JUMP
000004ba: JUMPDEST
000004bb: PUSH2 0x0d4d
000004be: JUMP
000004bf: JUMPDEST
000004c0: CALLVALUE
000004c1: DUP1
000004c2: ISZERO
000004c3: PUSH2 0x04cb
000004c6: JUMPI
000004c7: PUSH1 0x00
000004c9: DUP1
000004ca: REVERT
000004cb: JUMPDEST
000004cc: POP
000004cd: PUSH2 0x0222
000004d0: PUSH2 0x04da
000004d3: CALLDATASIZE
000004d4: PUSH1 0x04
000004d6: PUSH2 0x15d2
000004d9: JUMP
000004da: JUMPDEST
000004db: PUSH2 0x0d59
000004de: JUMP
000004df: JUMPDEST
000004e0: CALLVALUE
000004e1: DUP1
000004e2: ISZERO
000004e3: PUSH2 0x04eb
000004e6: JUMPI
000004e7: PUSH1 0x00
000004e9: DUP1
000004ea: REVERT
000004eb: JUMPDEST
000004ec: POP
000004ed: PUSH2 0x033e
000004f0: PUSH2 0x04fa
000004f3: CALLDATASIZE
000004f4: PUSH1 0x04
000004f6: PUSH2 0x1600
000004f9: JUMP
000004fa: JUMPDEST
000004fb: PUSH2 0x0dad
000004fe: JUMP
000004ff: JUMPDEST
00000500: CALLVALUE
00000501: DUP1
00000502: ISZERO
00000503: PUSH2 0x050b
00000506: JUMPI
00000507: PUSH1 0x00
00000509: DUP1
0000050a: REVERT
0000050b: JUMPDEST
0000050c: POP
0000050d: PUSH2 0x0222
00000510: PUSH2 0x051a
00000513: CALLDATASIZE
00000514: PUSH1 0x04
00000516: PUSH2 0x1600
00000519: JUMP
0000051a: JUMPDEST
0000051b: PUSH2 0x0dba
0000051e: JUMP
0000051f: JUMPDEST
00000520: CALLVALUE
00000521: DUP1
00000522: ISZERO
00000523: PUSH2 0x052b
00000526: JUMPI
00000527: PUSH1 0x00
00000529: DUP1
0000052a: REVERT
0000052b: JUMPDEST
0000052c: POP
0000052d: PUSH2 0x01e5
00000530: PUSH2 0x053a
00000533: CALLDATASIZE
00000534: PUSH1 0x04
00000536: PUSH2 0x17a0
00000539: JUMP
0000053a: JUMPDEST
0000053b: PUSH2 0x0dfb
0000053e: JUMP
0000053f: JUMPDEST
00000540: CALLER
00000541: PUSH1 0x01
00000543: PUSH1 0x01
00000545: PUSH1 0xa0
00000547: SHL
00000548: SUB
00000549: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c
0000056a: AND
0000056b: EQ
0000056c: PUSH2 0x058f
0000056f: JUMPI
00000570: PUSH1 0x40
00000572: MLOAD
00000573: PUSH4 0x0d6c7be9
00000578: PUSH1 0xe0
0000057a: SHL
0000057b: DUP2
0000057c: MSTORE
0000057d: CALLER
0000057e: PUSH1 0x04
00000580: DUP3
00000581: ADD
00000582: MSTORE
00000583: PUSH1 0x24
00000585: ADD
00000586: JUMPDEST
00000587: PUSH1 0x40
00000589: MLOAD
0000058a: DUP1
0000058b: SWAP2
0000058c: SUB
0000058d: SWAP1
0000058e: REVERT
0000058f: JUMPDEST
00000590: PUSH2 0x0598
00000593: DUP2
00000594: PUSH2 0x0e11
00000597: JUMP
00000598: JUMPDEST
00000599: POP
0000059a: JUMP
0000059b: JUMPDEST
0000059c: PUSH1 0x01
0000059e: PUSH2 0x05b6
000005a1: PUSH2 0x05a9
000005a4: CALLER
000005a5: PUSH2 0x0e86
000005a8: JUMP
000005a9: JUMPDEST
000005aa: PUSH1 0x01
000005ac: PUSH1 0xff
000005ae: DUP5
000005af: AND
000005b0: SHL
000005b1: AND
000005b2: ISZERO
000005b3: ISZERO
000005b4: SWAP1
000005b5: JUMP
000005b6: JUMPDEST
000005b7: PUSH2 0x05de
000005ba: JUMPI
000005bb: PUSH1 0x40
000005bd: MLOAD
000005be: PUSH4 0xbb6c1639
000005c3: PUSH1 0xe0
000005c5: SHL
000005c6: DUP2
000005c7: MSTORE
000005c8: CALLER
000005c9: PUSH1 0x04
000005cb: DUP3
000005cc: ADD
000005cd: MSTORE
000005ce: PUSH1 0xff
000005d0: DUP3
000005d1: AND
000005d2: PUSH1 0x24
000005d4: DUP3
000005d5: ADD
000005d6: MSTORE
000005d7: PUSH1 0x44
000005d9: ADD
000005da: PUSH2 0x0586
000005dd: JUMP
000005de: JUMPDEST
000005df: PUSH2 0x05e9
000005e2: DUP3
000005e3: PUSH1 0x02
000005e5: PUSH2 0x0e92
000005e8: JUMP
000005e9: JUMPDEST
000005ea: POP
000005eb: POP
000005ec: JUMP
000005ed: JUMPDEST
000005ee: PUSH1 0x00
000005f0: PUSH1 0x40
000005f2: MLOAD
000005f3: PUSH32 0xa038794000000000000000000000000000000000000000000000000000000000
00000614: DUP2
00000615: MSTORE
00000616: PUSH1 0x04
00000618: ADD
00000619: PUSH1 0x40
0000061b: MLOAD
0000061c: DUP1
0000061d: SWAP2
0000061e: SUB
0000061f: SWAP1
00000620: REVERT
00000621: JUMPDEST
00000622: PUSH1 0x60
00000624: DUP4
00000625: DUP4
00000626: DUP4
00000627: PUSH1 0x40
00000629: MLOAD
0000062a: PUSH1 0x20
0000062c: ADD
0000062d: PUSH2 0x0638
00000630: SWAP4
00000631: SWAP3
00000632: SWAP2
00000633: SWAP1
00000634: PUSH2 0x18ec
00000637: JUMP
00000638: JUMPDEST
00000639: PUSH1 0x40
0000063b: MLOAD
0000063c: PUSH1 0x20
0000063e: DUP2
0000063f: DUP4
00000640: SUB
00000641: SUB
00000642: DUP2
00000643: MSTORE
00000644: SWAP1
00000645: PUSH1 0x40
00000647: MSTORE
00000648: SWAP1
00000649: POP
0000064a: SWAP4
0000064b: SWAP3
0000064c: POP
0000064d: POP
0000064e: POP
0000064f: JUMP
00000650: JUMPDEST
00000651: CALLER
00000652: PUSH1 0x01
00000654: PUSH1 0x01
00000656: PUSH1 0xa0
00000658: SHL
00000659: SUB
0000065a: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c
0000067b: AND
0000067c: EQ
0000067d: PUSH2 0x069b
00000680: JUMPI
00000681: PUSH1 0x40
00000683: MLOAD
00000684: PUSH4 0x0d6c7be9
00000689: PUSH1 0xe0
0000068b: SHL
0000068c: DUP2
0000068d: MSTORE
0000068e: CALLER
0000068f: PUSH1 0x04
00000691: DUP3
00000692: ADD
00000693: MSTORE
00000694: PUSH1 0x24
00000696: ADD
00000697: PUSH2 0x0586
0000069a: JUMP
0000069b: JUMPDEST
0000069c: PUSH1 0x40
0000069e: DUP1
0000069f: MLOAD
000006a0: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c
000006c1: PUSH1 0x01
000006c3: PUSH1 0x01
000006c5: PUSH1 0xa0
000006c7: SHL
000006c8: SUB
000006c9: AND
000006ca: PUSH1 0x24
000006cc: DUP3
000006cd: ADD
000006ce: MSTORE
000006cf: PUSH1 0x00
000006d1: NOT
000006d2: PUSH1 0x44
000006d4: DUP1
000006d5: DUP4
000006d6: ADD
000006d7: SWAP2
000006d8: SWAP1
000006d9: SWAP2
000006da: MSTORE
000006db: DUP3
000006dc: MLOAD
000006dd: DUP1
000006de: DUP4
000006df: SUB
000006e0: SWAP1
000006e1: SWAP2
000006e2: ADD
000006e3: DUP2
000006e4: MSTORE
000006e5: PUSH1 0x64
000006e7: SWAP1
000006e8: SWAP2
000006e9: ADD
000006ea: DUP3
000006eb: MSTORE
000006ec: PUSH1 0x20
000006ee: DUP1
000006ef: DUP3
000006f0: ADD
000006f1: DUP1
000006f2: MLOAD
000006f3: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000710: AND
00000711: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000
00000732: OR
00000733: SWAP1
00000734: MSTORE
00000735: DUP3
00000736: MLOAD
00000737: PUSH32 0x9d76ea5800000000000000000000000000000000000000000000000000000000
00000758: DUP2
00000759: MSTORE
0000075a: SWAP3
0000075b: MLOAD
0000075c: PUSH2 0x07b9
0000075f: SWAP4
00000760: ADDRESS
00000761: SWAP3
00000762: PUSH4 0x9d76ea58
00000767: SWAP3
00000768: PUSH1 0x04
0000076a: DUP1
0000076b: DUP5
0000076c: ADD
0000076d: SWAP4
0000076e: DUP3
0000076f: SWAP1
00000770: SUB
00000771: ADD
00000772: DUP2
00000773: DUP7
00000774: GAS
00000775: STATICCALL
00000776: ISZERO
00000777: DUP1
00000778: ISZERO
00000779: PUSH2 0x0786
0000077c: JUMPI
0000077d: RETURNDATASIZE
0000077e: PUSH1 0x00
00000780: DUP1
00000781: RETURNDATACOPY
00000782: RETURNDATASIZE
00000783: PUSH1 0x00
00000785: REVERT
00000786: JUMPDEST
00000787: POP
00000788: POP
00000789: POP
0000078a: POP
0000078b: PUSH1 0x40
0000078d: MLOAD
0000078e: RETURNDATASIZE
0000078f: PUSH1 0x1f
00000791: NOT
00000792: PUSH1 0x1f
00000794: DUP3
00000795: ADD
00000796: AND
00000797: DUP3
00000798: ADD
00000799: DUP1
0000079a: PUSH1 0x40
0000079c: MSTORE
0000079d: POP
0000079e: DUP2
0000079f: ADD
000007a0: SWAP1
000007a1: PUSH2 0x07aa
000007a4: SWAP2
000007a5: SWAP1
000007a6: PUSH2 0x192e
000007a9: JUMP
000007aa: JUMPDEST
000007ab: PUSH1 0x01
000007ad: PUSH1 0x01
000007af: PUSH1 0xa0
000007b1: SHL
000007b2: SUB
000007b3: AND
000007b4: SWAP1
000007b5: PUSH2 0x0ea2
000007b8: JUMP
000007b9: JUMPDEST
000007ba: JUMP
000007bb: JUMPDEST
000007bc: PUSH1 0x00
000007be: DUP1
000007bf: PUSH2 0x07ca
000007c2: PUSH2 0x5460
000007c5: TIMESTAMP
000007c6: PUSH2 0x1961
000007c9: JUMP
000007ca: JUMPDEST
000007cb: SWAP1
000007cc: POP
000007cd: PUSH1 0x00
000007cf: PUSH2 0x07d7
000007d2: DUP3
000007d3: PUSH2 0x0f79
000007d6: JUMP
000007d7: JUMPDEST
000007d8: SLOAD
000007d9: SWAP4
000007da: SWAP3
000007db: POP
000007dc: POP
000007dd: POP
000007de: JUMP
000007df: JUMPDEST
000007e0: CALLER
000007e1: PUSH1 0x01
000007e3: PUSH1 0x01
000007e5: PUSH1 0xa0
000007e7: SHL
000007e8: SUB
000007e9: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c
0000080a: AND
0000080b: EQ
0000080c: PUSH2 0x082a
0000080f: JUMPI
00000810: PUSH1 0x40
00000812: MLOAD
00000813: PUSH4 0x0d6c7be9
00000818: PUSH1 0xe0
0000081a: SHL
0000081b: DUP2
0000081c: MSTORE
0000081d: CALLER
0000081e: PUSH1 0x04
00000820: DUP3
00000821: ADD
00000822: MSTORE
00000823: PUSH1 0x24
00000825: ADD
00000826: PUSH2 0x0586
00000829: JUMP
0000082a: JUMPDEST
0000082b: PUSH1 0x40
0000082d: MLOAD
0000082e: PUSH1 0x01
00000830: PUSH1 0x01
00000832: PUSH1 0xa0
00000834: SHL
00000835: SUB
00000836: DUP4
00000837: AND
00000838: PUSH1 0x24
0000083a: DUP3
0000083b: ADD
0000083c: MSTORE
0000083d: PUSH1 0x44
0000083f: DUP2
00000840: ADD
00000841: DUP3
00000842: SWAP1
00000843: MSTORE
00000844: PUSH2 0x08dc
00000847: SWAP1
00000848: PUSH32 0x9dc29fac00000000000000000000000000000000000000000000000000000000
00000869: SWAP1
0000086a: PUSH1 0x64
0000086c: ADD
0000086d: JUMPDEST
0000086e: PUSH1 0x40
00000870: DUP1
00000871: MLOAD
00000872: PUSH1 0x1f
00000874: NOT
00000875: DUP2
00000876: DUP5
00000877: SUB
00000878: ADD
00000879: DUP2
0000087a: MSTORE
0000087b: SWAP2
0000087c: SWAP1
0000087d: MSTORE
0000087e: PUSH1 0x20
00000880: DUP2
00000881: ADD
00000882: DUP1
00000883: MLOAD
00000884: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000008a1: AND
000008a2: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000008c3: SWAP1
000008c4: SWAP4
000008c5: AND
000008c6: SWAP3
000008c7: SWAP1
000008c8: SWAP3
000008c9: OR
000008ca: SWAP1
000008cb: SWAP2
000008cc: MSTORE
000008cd: PUSH1 0x01
000008cf: PUSH1 0x01
000008d1: PUSH1 0xa0
000008d3: SHL
000008d4: SUB
000008d5: DUP6
000008d6: AND
000008d7: SWAP1
000008d8: PUSH2 0x0ea2
000008db: JUMP
000008dc: JUMPDEST
000008dd: POP
000008de: POP
000008df: POP
000008e0: JUMP
000008e1: JUMPDEST
000008e2: PUSH1 0x01
000008e4: PUSH2 0x08ef
000008e7: PUSH2 0x05a9
000008ea: CALLER
000008eb: PUSH2 0x0e86
000008ee: JUMP
000008ef: JUMPDEST
000008f0: PUSH2 0x0917
000008f3: JUMPI
000008f4: PUSH1 0x40
000008f6: MLOAD
000008f7: PUSH4 0xbb6c1639
000008fc: PUSH1 0xe0
000008fe: SHL
000008ff: DUP2
00000900: MSTORE
00000901: CALLER
00000902: PUSH1 0x04
00000904: DUP3
00000905: ADD
00000906: MSTORE
00000907: PUSH1 0xff
00000909: DUP3
0000090a: AND
0000090b: PUSH1 0x24
0000090d: DUP3
0000090e: ADD
0000090f: MSTORE
00000910: PUSH1 0x44
00000912: ADD
00000913: PUSH2 0x0586
00000916: JUMP
00000917: JUMPDEST
00000918: PUSH2 0x05e9
0000091b: CALLER
0000091c: DUP4
0000091d: PUSH1 0x01
0000091f: PUSH2 0x0fce
00000922: JUMP
00000923: JUMPDEST
00000924: CALLER
00000925: PUSH1 0x01
00000927: PUSH1 0x01
00000929: PUSH1 0xa0
0000092b: SHL
0000092c: SUB
0000092d: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c
0000094e: AND
0000094f: EQ
00000950: PUSH2 0x096e
00000953: JUMPI
00000954: PUSH1 0x40
00000956: MLOAD
00000957: PUSH4 0x0d6c7be9
0000095c: PUSH1 0xe0
0000095e: SHL
0000095f: DUP2
00000960: MSTORE
00000961: CALLER
00000962: PUSH1 0x04
00000964: DUP3
00000965: ADD
00000966: MSTORE
00000967: PUSH1 0x24
00000969: ADD
0000096a: PUSH2 0x0586
0000096d: JUMP
0000096e: JUMPDEST
0000096f: PUSH1 0x40
00000971: MLOAD
00000972: PUSH1 0x01
00000974: PUSH1 0x01
00000976: PUSH1 0xa0
00000978: SHL
00000979: SUB
0000097a: DUP4
0000097b: AND
0000097c: PUSH1 0x24
0000097e: DUP3
0000097f: ADD
00000980: MSTORE
00000981: PUSH1 0x44
00000983: DUP2
00000984: ADD
00000985: DUP3
00000986: SWAP1
00000987: MSTORE
00000988: PUSH2 0x08dc
0000098b: SWAP1
0000098c: PUSH32 0x40c10f1900000000000000000000000000000000000000000000000000000000
000009ad: SWAP1
000009ae: PUSH1 0x64
000009b0: ADD
000009b1: PUSH2 0x086d
000009b4: JUMP
000009b5: JUMPDEST
000009b6: PUSH1 0x00
000009b8: PUSH2 0x09c2
000009bb: DUP3
000009bc: PUSH1 0x01
000009be: PUSH2 0x0a26
000009c1: JUMP
000009c2: JUMPDEST
000009c3: SWAP3
000009c4: SWAP2
000009c5: POP
000009c6: POP
000009c7: JUMP
000009c8: JUMPDEST
000009c9: PUSH1 0x01
000009cb: PUSH2 0x09d6
000009ce: PUSH2 0x05a9
000009d1: CALLER
000009d2: PUSH2 0x0e86
000009d5: JUMP
000009d6: JUMPDEST
000009d7: PUSH2 0x09fe
000009da: JUMPI
000009db: PUSH1 0x40
000009dd: MLOAD
000009de: PUSH4 0xbb6c1639
000009e3: PUSH1 0xe0
000009e5: SHL
000009e6: DUP2
000009e7: MSTORE
000009e8: CALLER
000009e9: PUSH1 0x04
000009eb: DUP3
000009ec: ADD
000009ed: MSTORE
000009ee: PUSH1 0xff
000009f0: DUP3
000009f1: AND
000009f2: PUSH1 0x24
000009f4: DUP3
000009f5: ADD
000009f6: MSTORE
000009f7: PUSH1 0x44
000009f9: ADD
000009fa: PUSH2 0x0586
000009fd: JUMP
000009fe: JUMPDEST
000009ff: PUSH2 0x05e9
00000a02: CALLER
00000a03: DUP4
00000a04: PUSH1 0x01
00000a06: PUSH2 0x0fdf
00000a09: JUMP
00000a0a: JUMPDEST
00000a0b: PUSH1 0x00
00000a0d: DUP1
00000a0e: PUSH2 0x0a19
00000a11: PUSH2 0x5460
00000a14: TIMESTAMP
00000a15: PUSH2 0x1961
00000a18: JUMP
00000a19: JUMPDEST
00000a1a: SWAP1
00000a1b: POP
00000a1c: PUSH1 0x00
00000a1e: PUSH2 0x07d7
00000a21: DUP3
00000a22: PUSH2 0x0ff0
00000a25: JUMP
00000a26: JUMPDEST
00000a27: PUSH1 0x00
00000a29: PUSH2 0x0a41
00000a2c: PUSH2 0x0a34
00000a2f: DUP5
00000a30: PUSH2 0x0e86
00000a33: JUMP
00000a34: JUMPDEST
00000a35: PUSH1 0x01
00000a37: PUSH1 0xff
00000a39: DUP6
00000a3a: AND
00000a3b: SHL
00000a3c: AND
00000a3d: ISZERO
00000a3e: ISZERO
00000a3f: SWAP1
00000a40: JUMP
00000a41: JUMPDEST
00000a42: SWAP4
00000a43: SWAP3
00000a44: POP
00000a45: POP
00000a46: POP
00000a47: JUMP
00000a48: JUMPDEST
00000a49: ADDRESS
00000a4a: PUSH32 0x0000000000000000000000008832f0381707bb29756edecf42580800207f2a9e
00000a6b: PUSH1 0x01
00000a6d: PUSH1 0x01
00000a6f: PUSH1 0xa0
00000a71: SHL
00000a72: SUB
00000a73: AND
00000a74: SUB
00000a75: PUSH2 0x0aaa
00000a78: JUMPI
00000a79: PUSH1 0x40
00000a7b: MLOAD
00000a7c: PUSH32 0xbf10dd3a00000000000000000000000000000000000000000000000000000000
00000a9d: DUP2
00000a9e: MSTORE
00000a9f: PUSH1 0x04
00000aa1: ADD
00000aa2: PUSH1 0x40
00000aa4: MLOAD
00000aa5: DUP1
00000aa6: SWAP2
00000aa7: SUB
00000aa8: SWAP1
00000aa9: REVERT
00000aaa: JUMPDEST
00000aab: PUSH1 0x00
00000aad: PUSH2 0x0ab8
00000ab0: DUP3
00000ab1: DUP5
00000ab2: ADD
00000ab3: DUP5
00000ab4: PUSH2 0x1a28
00000ab7: JUMP
00000ab8: JUMPDEST
00000ab9: SWAP1
00000aba: POP
00000abb: PUSH1 0x00
00000abd: DUP2
00000abe: MLOAD
00000abf: PUSH1 0x00
00000ac1: EQ
00000ac2: PUSH2 0x0ad1
00000ac5: JUMPI
00000ac6: PUSH2 0x0ace
00000ac9: DUP3
00000aca: PUSH2 0x102b
00000acd: JUMP
00000ace: JUMPDEST
00000acf: SWAP1
00000ad0: POP
00000ad1: JUMPDEST
00000ad2: PUSH2 0x0ae9
00000ad5: DUP2
00000ad6: PUSH1 0x01
00000ad8: JUMPDEST
00000ad9: PUSH1 0x01
00000adb: PUSH1 0xff
00000add: SWAP2
00000ade: SWAP1
00000adf: SWAP2
00000ae0: AND
00000ae1: SHL
00000ae2: PUSH1 0x04
00000ae4: OR
00000ae5: PUSH2 0x1072
00000ae8: JUMP
00000ae9: JUMPDEST
00000aea: PUSH2 0x0b14
00000aed: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c
00000b0e: PUSH1 0x01
00000b10: PUSH2 0x0ad8
00000b13: JUMP
00000b14: JUMPDEST
00000b15: POP
00000b16: POP
00000b17: POP
00000b18: POP
00000b19: JUMP
00000b1a: JUMPDEST
00000b1b: PUSH1 0x02
00000b1d: PUSH2 0x0b28
00000b20: PUSH2 0x05a9
00000b23: CALLER
00000b24: PUSH2 0x0e86
00000b27: JUMP
00000b28: JUMPDEST
00000b29: PUSH2 0x0b50
00000b2c: JUMPI
00000b2d: PUSH1 0x40
00000b2f: MLOAD
00000b30: PUSH4 0xbb6c1639
00000b35: PUSH1 0xe0
00000b37: SHL
00000b38: DUP2
00000b39: MSTORE
00000b3a: CALLER
00000b3b: PUSH1 0x04
00000b3d: DUP3
00000b3e: ADD
00000b3f: MSTORE
00000b40: PUSH1 0xff
00000b42: DUP3
00000b43: AND
00000b44: PUSH1 0x24
00000b46: DUP3
00000b47: ADD
00000b48: MSTORE
00000b49: PUSH1 0x44
00000b4b: ADD
00000b4c: PUSH2 0x0586
00000b4f: JUMP
00000b50: JUMPDEST
00000b51: PUSH2 0x05e9
00000b54: DUP3
00000b55: ADDRESS
00000b56: PUSH1 0x01
00000b58: PUSH1 0x01
00000b5a: PUSH1 0xa0
00000b5c: SHL
00000b5d: SUB
00000b5e: AND
00000b5f: PUSH4 0x129d8188
00000b64: PUSH1 0x40
00000b66: MLOAD
00000b67: DUP2
00000b68: PUSH4 0xffffffff
00000b6d: AND
00000b6e: PUSH1 0xe0
00000b70: SHL
00000b71: DUP2
00000b72: MSTORE
00000b73: PUSH1 0x04
00000b75: ADD
00000b76: PUSH1 0x20
00000b78: PUSH1 0x40
00000b7a: MLOAD
00000b7b: DUP1
00000b7c: DUP4
00000b7d: SUB
00000b7e: DUP2
00000b7f: DUP7
00000b80: GAS
00000b81: STATICCALL
00000b82: ISZERO
00000b83: DUP1
00000b84: ISZERO
00000b85: PUSH2 0x0b92
00000b88: JUMPI
00000b89: RETURNDATASIZE
00000b8a: PUSH1 0x00
00000b8c: DUP1
00000b8d: RETURNDATACOPY
00000b8e: RETURNDATASIZE
00000b8f: PUSH1 0x00
00000b91: REVERT
00000b92: JUMPDEST
00000b93: POP
00000b94: POP
00000b95: POP
00000b96: POP
00000b97: PUSH1 0x40
00000b99: MLOAD
00000b9a: RETURNDATASIZE
00000b9b: PUSH1 0x1f
00000b9d: NOT
00000b9e: PUSH1 0x1f
00000ba0: DUP3
00000ba1: ADD
00000ba2: AND
00000ba3: DUP3
00000ba4: ADD
00000ba5: DUP1
00000ba6: PUSH1 0x40
00000ba8: MSTORE
00000ba9: POP
00000baa: DUP2
00000bab: ADD
00000bac: SWAP1
00000bad: PUSH2 0x0bb6
00000bb0: SWAP2
00000bb1: SWAP1
00000bb2: PUSH2 0x1a5d
00000bb5: JUMP
00000bb6: JUMPDEST
00000bb7: PUSH2 0x10d3
00000bba: JUMP
00000bbb: JUMPDEST
00000bbc: PUSH1 0x60
00000bbe: DUP2
00000bbf: PUSH8 0xffffffffffffffff
00000bc8: DUP2
00000bc9: GT
00000bca: ISZERO
00000bcb: PUSH2 0x0bd6
00000bce: JUMPI
00000bcf: PUSH2 0x0bd6
00000bd2: PUSH2 0x1983
00000bd5: JUMP
00000bd6: JUMPDEST
00000bd7: PUSH1 0x40
00000bd9: MLOAD
00000bda: SWAP1
00000bdb: DUP1
00000bdc: DUP3
00000bdd: MSTORE
00000bde: DUP1
00000bdf: PUSH1 0x20
00000be1: MUL
00000be2: PUSH1 0x20
00000be4: ADD
00000be5: DUP3
00000be6: ADD
00000be7: PUSH1 0x40
00000be9: MSTORE
00000bea: DUP1
00000beb: ISZERO
00000bec: PUSH2 0x0c09
00000bef: JUMPI
00000bf0: DUP2
00000bf1: PUSH1 0x20
00000bf3: ADD
00000bf4: JUMPDEST
00000bf5: PUSH1 0x60
00000bf7: DUP2
00000bf8: MSTORE
00000bf9: PUSH1 0x20
00000bfb: ADD
00000bfc: SWAP1
00000bfd: PUSH1 0x01
00000bff: SWAP1
00000c00: SUB
00000c01: SWAP1
00000c02: DUP2
00000c03: PUSH2 0x0bf4
00000c06: JUMPI
00000c07: SWAP1
00000c08: POP
00000c09: JUMPDEST
00000c0a: POP
00000c0b: SWAP1
00000c0c: POP
00000c0d: PUSH1 0x00
00000c0f: PUSH1 0x60
00000c11: PUSH1 0x00
00000c13: JUMPDEST
00000c14: DUP5
00000c15: DUP2
00000c16: LT
00000c17: ISZERO
00000c18: PUSH2 0x0d02
00000c1b: JUMPI
00000c1c: ADDRESS
00000c1d: DUP7
00000c1e: DUP7
00000c1f: DUP4
00000c20: DUP2
00000c21: DUP2
00000c22: LT
00000c23: PUSH2 0x0c2e
00000c26: JUMPI
00000c27: PUSH2 0x0c2e
00000c2a: PUSH2 0x1a76
00000c2d: JUMP
00000c2e: JUMPDEST
00000c2f: SWAP1
00000c30: POP
00000c31: PUSH1 0x20
00000c33: MUL
00000c34: DUP2
00000c35: ADD
00000c36: SWAP1
00000c37: PUSH2 0x0c40
00000c3a: SWAP2
00000c3b: SWAP1
00000c3c: PUSH2 0x1a8c
00000c3f: JUMP
00000c40: JUMPDEST
00000c41: PUSH1 0x40
00000c43: MLOAD
00000c44: PUSH2 0x0c4e
00000c47: SWAP3
00000c48: SWAP2
00000c49: SWAP1
00000c4a: PUSH2 0x1ad3
00000c4d: JUMP
00000c4e: JUMPDEST
00000c4f: PUSH1 0x00
00000c51: PUSH1 0x40
00000c53: MLOAD
00000c54: DUP1
00000c55: DUP4
00000c56: SUB
00000c57: DUP2
00000c58: DUP6
00000c59: GAS
00000c5a: DELEGATECALL
00000c5b: SWAP2
00000c5c: POP
00000c5d: POP
00000c5e: RETURNDATASIZE
00000c5f: DUP1
00000c60: PUSH1 0x00
00000c62: DUP2
00000c63: EQ
00000c64: PUSH2 0x0c89
00000c67: JUMPI
00000c68: PUSH1 0x40
00000c6a: MLOAD
00000c6b: SWAP2
00000c6c: POP
00000c6d: PUSH1 0x1f
00000c6f: NOT
00000c70: PUSH1 0x3f
00000c72: RETURNDATASIZE
00000c73: ADD
00000c74: AND
00000c75: DUP3
00000c76: ADD
00000c77: PUSH1 0x40
00000c79: MSTORE
00000c7a: RETURNDATASIZE
00000c7b: DUP3
00000c7c: MSTORE
00000c7d: RETURNDATASIZE
00000c7e: PUSH1 0x00
00000c80: PUSH1 0x20
00000c82: DUP5
00000c83: ADD
00000c84: RETURNDATACOPY
00000c85: PUSH2 0x0c8e
00000c88: JUMP
00000c89: JUMPDEST
00000c8a: PUSH1 0x60
00000c8c: SWAP2
00000c8d: POP
00000c8e: JUMPDEST
00000c8f: POP
00000c90: SWAP1
00000c91: SWAP4
00000c92: POP
00000c93: SWAP2
00000c94: POP
00000c95: DUP3
00000c96: PUSH2 0x0cdc
00000c99: JUMPI
00000c9a: DUP2
00000c9b: MLOAD
00000c9c: PUSH1 0x00
00000c9e: SUB
00000c9f: PUSH2 0x0cd4
00000ca2: JUMPI
00000ca3: PUSH1 0x40
00000ca5: MLOAD
00000ca6: PUSH32 0x4d6a232800000000000000000000000000000000000000000000000000000000
00000cc7: DUP2
00000cc8: MSTORE
00000cc9: PUSH1 0x04
00000ccb: ADD
00000ccc: PUSH1 0x40
00000cce: MLOAD
00000ccf: DUP1
00000cd0: SWAP2
00000cd1: SUB
00000cd2: SWAP1
00000cd3: REVERT
00000cd4: JUMPDEST
00000cd5: DUP2
00000cd6: MLOAD
00000cd7: DUP3
00000cd8: PUSH1 0x20
00000cda: ADD
00000cdb: REVERT
00000cdc: JUMPDEST
00000cdd: DUP2
00000cde: DUP5
00000cdf: DUP3
00000ce0: DUP2
00000ce1: MLOAD
00000ce2: DUP2
00000ce3: LT
00000ce4: PUSH2 0x0cef
00000ce7: JUMPI
00000ce8: PUSH2 0x0cef
00000ceb: PUSH2 0x1a76
00000cee: JUMP
00000cef: JUMPDEST
00000cf0: PUSH1 0x20
00000cf2: SWAP1
00000cf3: DUP2
00000cf4: MUL
00000cf5: SWAP2
00000cf6: SWAP1
00000cf7: SWAP2
00000cf8: ADD
00000cf9: ADD
00000cfa: MSTORE
00000cfb: PUSH1 0x01
00000cfd: ADD
00000cfe: PUSH2 0x0c13
00000d01: JUMP
00000d02: JUMPDEST
00000d03: POP
00000d04: POP
00000d05: POP
00000d06: SWAP3
00000d07: SWAP2
00000d08: POP
00000d09: POP
00000d0a: JUMP
00000d0b: JUMPDEST
00000d0c: PUSH1 0x01
00000d0e: PUSH2 0x0d19
00000d11: PUSH2 0x05a9
00000d14: CALLER
00000d15: PUSH2 0x0e86
00000d18: JUMP
00000d19: JUMPDEST
00000d1a: PUSH2 0x0d41
00000d1d: JUMPI
00000d1e: PUSH1 0x40
00000d20: MLOAD
00000d21: PUSH4 0xbb6c1639
00000d26: PUSH1 0xe0
00000d28: SHL
00000d29: DUP2
00000d2a: MSTORE
00000d2b: CALLER
00000d2c: PUSH1 0x04
00000d2e: DUP3
00000d2f: ADD
00000d30: MSTORE
00000d31: PUSH1 0xff
00000d33: DUP3
00000d34: AND
00000d35: PUSH1 0x24
00000d37: DUP3
00000d38: ADD
00000d39: MSTORE
00000d3a: PUSH1 0x44
00000d3c: ADD
00000d3d: PUSH2 0x0586
00000d40: JUMP
00000d41: JUMPDEST
00000d42: PUSH2 0x08dc
00000d45: DUP4
00000d46: DUP4
00000d47: PUSH1 0x04
00000d49: PUSH2 0x1136
00000d4c: JUMP
00000d4d: JUMPDEST
00000d4e: PUSH2 0x0598
00000d51: DUP2
00000d52: CALLER
00000d53: PUSH1 0x01
00000d55: PUSH2 0x118c
00000d58: JUMP
00000d59: JUMPDEST
00000d5a: CALLER
00000d5b: PUSH1 0x01
00000d5d: PUSH1 0x01
00000d5f: PUSH1 0xa0
00000d61: SHL
00000d62: SUB
00000d63: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c
00000d84: AND
00000d85: EQ
00000d86: PUSH2 0x0da4
00000d89: JUMPI
00000d8a: PUSH1 0x40
00000d8c: MLOAD
00000d8d: PUSH4 0x0d6c7be9
00000d92: PUSH1 0xe0
00000d94: SHL
00000d95: DUP2
00000d96: MSTORE
00000d97: CALLER
00000d98: PUSH1 0x04
00000d9a: DUP3
00000d9b: ADD
00000d9c: MSTORE
00000d9d: PUSH1 0x24
00000d9f: ADD
00000da0: PUSH2 0x0586
00000da3: JUMP
00000da4: JUMPDEST
00000da5: PUSH2 0x0598
00000da8: DUP2
00000da9: PUSH2 0x119d
00000dac: JUMP
00000dad: JUMPDEST
00000dae: PUSH1 0x00
00000db0: PUSH2 0x09c2
00000db3: DUP3
00000db4: PUSH1 0x02
00000db6: PUSH2 0x0a26
00000db9: JUMP
00000dba: JUMPDEST
00000dbb: PUSH1 0x01
00000dbd: PUSH2 0x0dc8
00000dc0: PUSH2 0x05a9
00000dc3: CALLER
00000dc4: PUSH2 0x0e86
00000dc7: JUMP
00000dc8: JUMPDEST
00000dc9: PUSH2 0x0df0
00000dcc: JUMPI
00000dcd: PUSH1 0x40
00000dcf: MLOAD
00000dd0: PUSH4 0xbb6c1639
00000dd5: PUSH1 0xe0
00000dd7: SHL
00000dd8: DUP2
00000dd9: MSTORE
00000dda: CALLER
00000ddb: PUSH1 0x04
00000ddd: DUP3
00000dde: ADD
00000ddf: MSTORE
00000de0: PUSH1 0xff
00000de2: DUP3
00000de3: AND
00000de4: PUSH1 0x24
00000de6: DUP3
00000de7: ADD
00000de8: MSTORE
00000de9: PUSH1 0x44
00000deb: ADD
00000dec: PUSH2 0x0586
00000def: JUMP
00000df0: JUMPDEST
00000df1: PUSH2 0x05e9
00000df4: DUP3
00000df5: PUSH1 0x02
00000df7: PUSH2 0x11fd
00000dfa: JUMP
00000dfb: JUMPDEST
00000dfc: PUSH1 0x00
00000dfe: PUSH2 0x0e09
00000e01: DUP3
00000e02: DUP5
00000e03: ADD
00000e04: DUP5
00000e05: PUSH2 0x1ae3
00000e08: JUMP
00000e09: JUMPDEST
00000e0a: SWAP5
00000e0b: SWAP4
00000e0c: POP
00000e0d: POP
00000e0e: POP
00000e0f: POP
00000e10: JUMP
00000e11: JUMPDEST
00000e12: PUSH1 0x00
00000e14: PUSH2 0x0e3b
00000e17: PUSH32 0x201b7a0b7c19aaddc4ce9579b7df8d2db123805861bc7763627f13e04d8af42f
00000e38: SLOAD
00000e39: SWAP1
00000e3a: JUMP
00000e3b: JUMPDEST
00000e3c: SWAP1
00000e3d: POP
00000e3e: DUP1
00000e3f: PUSH1 0x00
00000e41: SUB
00000e42: PUSH2 0x0e49
00000e45: JUMPI
00000e46: POP
00000e47: POP
00000e48: JUMP
00000e49: JUMPDEST
00000e4a: PUSH1 0x00
00000e4c: PUSH2 0x0e57
00000e4f: PUSH2 0x5460
00000e52: TIMESTAMP
00000e53: PUSH2 0x1961
00000e56: JUMP
00000e57: JUMPDEST
00000e58: SWAP1
00000e59: POP
00000e5a: PUSH1 0x00
00000e5c: PUSH2 0x0e64
00000e5f: DUP3
00000e60: PUSH2 0x0ff0
00000e63: JUMP
00000e64: JUMPDEST
00000e65: SWAP1
00000e66: POP
00000e67: PUSH1 0x00
00000e69: PUSH2 0x0e71
00000e6c: DUP4
00000e6d: PUSH2 0x0f79
00000e70: JUMP
00000e71: JUMPDEST
00000e72: SWAP1
00000e73: POP
00000e74: PUSH2 0x0e7f
00000e77: DUP5
00000e78: DUP4
00000e79: DUP4
00000e7a: DUP9
00000e7b: PUSH2 0x120d
00000e7e: JUMP
00000e7f: JUMPDEST
00000e80: POP
00000e81: POP
00000e82: POP
00000e83: POP
00000e84: POP
00000e85: JUMP
00000e86: JUMPDEST
00000e87: PUSH1 0x00
00000e89: DUP1
00000e8a: PUSH2 0x07d7
00000e8d: DUP4
00000e8e: PUSH2 0x134b
00000e91: JUMP
00000e92: JUMPDEST
00000e93: PUSH2 0x05e9
00000e96: DUP3
00000e97: PUSH1 0x01
00000e99: PUSH1 0xff
00000e9b: DUP5
00000e9c: AND
00000e9d: SHL
00000e9e: PUSH2 0x1072
00000ea1: JUMP
00000ea2: JUMPDEST
00000ea3: PUSH1 0x00
00000ea5: DUP1
00000ea6: DUP4
00000ea7: PUSH1 0x01
00000ea9: PUSH1 0x01
00000eab: PUSH1 0xa0
00000ead: SHL
00000eae: SUB
00000eaf: AND
00000eb0: DUP4
00000eb1: PUSH1 0x40
00000eb3: MLOAD
00000eb4: PUSH2 0x0ebd
00000eb7: SWAP2
00000eb8: SWAP1
00000eb9: PUSH2 0x1b2a
00000ebc: JUMP
00000ebd: JUMPDEST
00000ebe: PUSH1 0x00
00000ec0: PUSH1 0x40
00000ec2: MLOAD
00000ec3: DUP1
00000ec4: DUP4
00000ec5: SUB
00000ec6: DUP2
00000ec7: PUSH1 0x00
00000ec9: DUP7
00000eca: GAS
00000ecb: CALL
00000ecc: SWAP2
00000ecd: POP
00000ece: POP
00000ecf: RETURNDATASIZE
00000ed0: DUP1
00000ed1: PUSH1 0x00
00000ed3: DUP2
00000ed4: EQ
00000ed5: PUSH2 0x0efa
00000ed8: JUMPI
00000ed9: PUSH1 0x40
00000edb: MLOAD
00000edc: SWAP2
00000edd: POP
00000ede: PUSH1 0x1f
00000ee0: NOT
00000ee1: PUSH1 0x3f
00000ee3: RETURNDATASIZE
00000ee4: ADD
00000ee5: AND
00000ee6: DUP3
00000ee7: ADD
00000ee8: PUSH1 0x40
00000eea: MSTORE
00000eeb: RETURNDATASIZE
00000eec: DUP3
00000eed: MSTORE
00000eee: RETURNDATASIZE
00000eef: PUSH1 0x00
00000ef1: PUSH1 0x20
00000ef3: DUP5
00000ef4: ADD
00000ef5: RETURNDATACOPY
00000ef6: PUSH2 0x0eff
00000ef9: JUMP
00000efa: JUMPDEST
00000efb: PUSH1 0x60
00000efd: SWAP2
00000efe: POP
00000eff: JUMPDEST
00000f00: POP
00000f01: SWAP2
00000f02: POP
00000f03: SWAP2
00000f04: POP
00000f05: PUSH1 0x00
00000f07: DUP3
00000f08: DUP1
00000f09: ISZERO
00000f0a: PUSH2 0x0f2b
00000f0d: JUMPI
00000f0e: POP
00000f0f: DUP2
00000f10: MLOAD
00000f11: ISZERO
00000f12: DUP1
00000f13: PUSH2 0x0f2b
00000f16: JUMPI
00000f17: POP
00000f18: DUP2
00000f19: DUP1
00000f1a: PUSH1 0x20
00000f1c: ADD
00000f1d: SWAP1
00000f1e: MLOAD
00000f1f: DUP2
00000f20: ADD
00000f21: SWAP1
00000f22: PUSH2 0x0f2b
00000f25: SWAP2
00000f26: SWAP1
00000f27: PUSH2 0x1b46
00000f2a: JUMP
00000f2b: JUMPDEST
00000f2c: SWAP1
00000f2d: POP
00000f2e: DUP1
00000f2f: ISZERO
00000f30: DUP1
00000f31: PUSH2 0x0f42
00000f34: JUMPI
00000f35: POP
00000f36: PUSH1 0x01
00000f38: PUSH1 0x01
00000f3a: PUSH1 0xa0
00000f3c: SHL
00000f3d: SUB
00000f3e: DUP6
00000f3f: AND
00000f40: EXTCODESIZE
00000f41: ISZERO
00000f42: JUMPDEST
00000f43: ISZERO
00000f44: PUSH2 0x0e7f
00000f47: JUMPI
00000f48: PUSH1 0x40
00000f4a: MLOAD
00000f4b: PUSH32 0x045c4b0200000000000000000000000000000000000000000000000000000000
00000f6c: DUP2
00000f6d: MSTORE
00000f6e: PUSH1 0x04
00000f70: ADD
00000f71: PUSH1 0x40
00000f73: MLOAD
00000f74: DUP1
00000f75: SWAP2
00000f76: SUB
00000f77: SWAP1
00000f78: REVERT
00000f79: JUMPDEST
00000f7a: PUSH1 0x40
00000f7c: DUP1
00000f7d: MLOAD
00000f7e: PUSH32 0xb221f782e2afd1b10c9284a915bb8aa319f8e6cc8d90aebea117327eafbd28c1
00000f9f: PUSH1 0x20
00000fa1: DUP3
00000fa2: ADD
00000fa3: MSTORE
00000fa4: SWAP1
00000fa5: DUP2
00000fa6: ADD
00000fa7: DUP3
00000fa8: SWAP1
00000fa9: MSTORE
00000faa: PUSH1 0x00
00000fac: SWAP1
00000fad: PUSH1 0x60
00000faf: ADD
00000fb0: JUMPDEST
00000fb1: PUSH1 0x40
00000fb3: DUP1
00000fb4: MLOAD
00000fb5: PUSH1 0x1f
00000fb7: NOT
00000fb8: DUP2
00000fb9: DUP5
00000fba: SUB
00000fbb: ADD
00000fbc: DUP2
00000fbd: MSTORE
00000fbe: SWAP2
00000fbf: SWAP1
00000fc0: MSTORE
00000fc1: DUP1
00000fc2: MLOAD
00000fc3: PUSH1 0x20
00000fc5: SWAP1
00000fc6: SWAP2
00000fc7: ADD
00000fc8: KECCAK256
00000fc9: SWAP3
00000fca: SWAP2
00000fcb: POP
00000fcc: POP
00000fcd: JUMP
00000fce: JUMPDEST
00000fcf: PUSH2 0x08dc
00000fd2: DUP4
00000fd3: DUP4
00000fd4: PUSH1 0x01
00000fd6: PUSH1 0xff
00000fd8: DUP6
00000fd9: AND
00000fda: SHL
00000fdb: PUSH2 0x1136
00000fde: JUMP
00000fdf: JUMPDEST
00000fe0: PUSH2 0x08dc
00000fe3: DUP4
00000fe4: DUP4
00000fe5: PUSH1 0x01
00000fe7: PUSH1 0xff
00000fe9: DUP6
00000fea: AND
00000feb: SHL
00000fec: PUSH2 0x13b8
00000fef: JUMP
00000ff0: JUMPDEST
00000ff1: PUSH1 0x40
00000ff3: DUP1
00000ff4: MLOAD
00000ff5: PUSH32 0xf4ff4213eda59f47bb3fdf8cb7fcc07540628bdeb7f1aebcfe07049bbd9f634f
00001016: PUSH1 0x20
00001018: DUP3
00001019: ADD
0000101a: MSTORE
0000101b: SWAP1
0000101c: DUP2
0000101d: ADD
0000101e: DUP3
0000101f: SWAP1
00001020: MSTORE
00001021: PUSH1 0x00
00001023: SWAP1
00001024: PUSH1 0x60
00001026: ADD
00001027: PUSH2 0x0fb0
0000102a: JUMP
0000102b: JUMPDEST
0000102c: PUSH1 0x00
0000102e: DUP2
0000102f: MLOAD
00001030: PUSH1 0x14
00001032: EQ
00001033: PUSH2 0x106a
00001036: JUMPI
00001037: DUP2
00001038: PUSH1 0x40
0000103a: MLOAD
0000103b: PUSH32 0xd08dbec500000000000000000000000000000000000000000000000000000000
0000105c: DUP2
0000105d: MSTORE
0000105e: PUSH1 0x04
00001060: ADD
00001061: PUSH2 0x0586
00001064: SWAP2
00001065: SWAP1
00001066: PUSH2 0x170d
00001069: JUMP
0000106a: JUMPDEST
0000106b: POP
0000106c: PUSH1 0x14
0000106e: ADD
0000106f: MLOAD
00001070: SWAP1
00001071: JUMP
00001072: JUMPDEST
00001073: PUSH1 0x00
00001075: DUP2
00001076: PUSH2 0x107e
00001079: DUP5
0000107a: PUSH2 0x0e86
0000107d: JUMP
0000107e: JUMPDEST
0000107f: OR
00001080: SWAP1
00001081: POP
00001082: PUSH2 0x108b
00001085: DUP4
00001086: DUP3
00001087: PUSH2 0x1450
0000108a: JUMP
0000108b: JUMPDEST
0000108c: DUP3
0000108d: PUSH1 0x01
0000108f: PUSH1 0x01
00001091: PUSH1 0xa0
00001093: SHL
00001094: SUB
00001095: AND
00001096: PUSH32 0x34e73c57659d4b6809b53db4feee9b007b892e978114eda420d2991aba150143
000010b7: DUP4
000010b8: PUSH1 0x40
000010ba: MLOAD
000010bb: PUSH2 0x10c6
000010be: SWAP2
000010bf: DUP2
000010c0: MSTORE
000010c1: PUSH1 0x20
000010c3: ADD
000010c4: SWAP1
000010c5: JUMP
000010c6: JUMPDEST
000010c7: PUSH1 0x40
000010c9: MLOAD
000010ca: DUP1
000010cb: SWAP2
000010cc: SUB
000010cd: SWAP1
000010ce: LOG2
000010cf: POP
000010d0: POP
000010d1: POP
000010d2: JUMP
000010d3: JUMPDEST
000010d4: PUSH32 0x201b7a0b7c19aaddc4ce9579b7df8d2db123805861bc7763627f13e04d8af42f
000010f5: DUP3
000010f6: SWAP1
000010f7: SSTORE
000010f8: PUSH1 0x40
000010fa: DUP1
000010fb: MLOAD
000010fc: CALLER
000010fd: DUP2
000010fe: MSTORE
000010ff: PUSH1 0x20
00001101: DUP2
00001102: ADD
00001103: DUP5
00001104: SWAP1
00001105: MSTORE
00001106: DUP3
00001107: SWAP2
00001108: PUSH32 0x024e856c5f6f5e287ff2be13db089b016f28a6ebe6aaffdfb5fa5b902fdd366b
00001129: SWAP2
0000112a: ADD
0000112b: PUSH1 0x40
0000112d: MLOAD
0000112e: DUP1
0000112f: SWAP2
00001130: SUB
00001131: SWAP1
00001132: LOG2
00001133: POP
00001134: POP
00001135: JUMP
00001136: JUMPDEST
00001137: PUSH2 0x1149
0000113a: PUSH2 0x1142
0000113d: DUP5
0000113e: PUSH2 0x0e86
00001141: JUMP
00001142: JUMPDEST
00001143: DUP3
00001144: AND
00001145: DUP3
00001146: EQ
00001147: SWAP1
00001148: JUMP
00001149: JUMPDEST
0000114a: PUSH2 0x1178
0000114d: JUMPI
0000114e: PUSH1 0x40
00001150: MLOAD
00001151: PUSH4 0x1fe9beed
00001156: PUSH1 0xe2
00001158: SHL
00001159: DUP2
0000115a: MSTORE
0000115b: PUSH1 0x01
0000115d: PUSH1 0x01
0000115f: PUSH1 0xa0
00001161: SHL
00001162: SUB
00001163: DUP5
00001164: AND
00001165: PUSH1 0x04
00001167: DUP3
00001168: ADD
00001169: MSTORE
0000116a: PUSH1 0x24
0000116c: DUP2
0000116d: ADD
0000116e: DUP3
0000116f: SWAP1
00001170: MSTORE
00001171: PUSH1 0x44
00001173: ADD
00001174: PUSH2 0x0586
00001177: JUMP
00001178: JUMPDEST
00001179: PUSH2 0x1182
0000117c: DUP4
0000117d: DUP3
0000117e: PUSH2 0x1463
00001181: JUMP
00001182: JUMPDEST
00001183: PUSH2 0x08dc
00001186: DUP3
00001187: DUP3
00001188: PUSH2 0x1072
0000118b: JUMP
0000118c: JUMPDEST
0000118d: PUSH2 0x08dc
00001190: DUP4
00001191: DUP4
00001192: PUSH1 0x01
00001194: PUSH1 0xff
00001196: DUP6
00001197: AND
00001198: SHL
00001199: PUSH2 0x14b8
0000119c: JUMP
0000119d: JUMPDEST
0000119e: PUSH1 0x00
000011a0: PUSH2 0x11c7
000011a3: PUSH32 0x201b7a0b7c19aaddc4ce9579b7df8d2db123805861bc7763627f13e04d8af42f
000011c4: SLOAD
000011c5: SWAP1
000011c6: JUMP
000011c7: JUMPDEST
000011c8: SWAP1
000011c9: POP
000011ca: DUP1
000011cb: PUSH1 0x00
000011cd: SUB
000011ce: PUSH2 0x11d5
000011d1: JUMPI
000011d2: POP
000011d3: POP
000011d4: JUMP
000011d5: JUMPDEST
000011d6: PUSH1 0x00
000011d8: PUSH2 0x11e3
000011db: PUSH2 0x5460
000011de: TIMESTAMP
000011df: PUSH2 0x1961
000011e2: JUMP
000011e3: JUMPDEST
000011e4: SWAP1
000011e5: POP
000011e6: PUSH1 0x00
000011e8: PUSH2 0x11f0
000011eb: DUP3
000011ec: PUSH2 0x0f79
000011ef: JUMP
000011f0: JUMPDEST
000011f1: SWAP1
000011f2: POP
000011f3: PUSH1 0x00
000011f5: PUSH2 0x0e71
000011f8: DUP4
000011f9: PUSH2 0x0ff0
000011fc: JUMP
000011fd: JUMPDEST
000011fe: PUSH2 0x05e9
00001201: DUP3
00001202: PUSH1 0x01
00001204: PUSH1 0xff
00001206: DUP5
00001207: AND
00001208: SHL
00001209: PUSH2 0x1463
0000120c: JUMP
0000120d: JUMPDEST
0000120e: DUP3
0000120f: SLOAD
00001210: DUP3
00001211: SLOAD
00001212: PUSH2 0x121d
00001215: DUP4
00001216: PUSH1 0x00
00001218: NOT
00001219: PUSH2 0x1b68
0000121c: JUMP
0000121d: JUMPDEST
0000121e: DUP3
0000121f: GT
00001220: ISZERO
00001221: PUSH2 0x1266
00001224: JUMPI
00001225: PUSH1 0x40
00001227: MLOAD
00001228: PUSH32 0xd0a2616c00000000000000000000000000000000000000000000000000000000
00001249: DUP2
0000124a: MSTORE
0000124b: PUSH1 0x04
0000124d: DUP2
0000124e: ADD
0000124f: DUP5
00001250: SWAP1
00001251: MSTORE
00001252: PUSH1 0x24
00001254: DUP2
00001255: ADD
00001256: DUP4
00001257: SWAP1
00001258: MSTORE
00001259: ADDRESS
0000125a: PUSH1 0x44
0000125c: DUP3
0000125d: ADD
0000125e: MSTORE
0000125f: PUSH1 0x64
00001261: ADD
00001262: PUSH2 0x0586
00001265: JUMP
00001266: JUMPDEST
00001267: PUSH2 0x1272
0000126a: DUP7
0000126b: PUSH1 0x00
0000126d: NOT
0000126e: PUSH2 0x1b68
00001271: JUMP
00001272: JUMPDEST
00001273: DUP2
00001274: GT
00001275: ISZERO
00001276: PUSH2 0x12bb
00001279: JUMPI
0000127a: PUSH1 0x40
0000127c: MLOAD
0000127d: PUSH32 0xa6413e8b00000000000000000000000000000000000000000000000000000000
0000129e: DUP2
0000129f: MSTORE
000012a0: PUSH1 0x04
000012a2: DUP2
000012a3: ADD
000012a4: DUP8
000012a5: SWAP1
000012a6: MSTORE
000012a7: PUSH1 0x24
000012a9: DUP2
000012aa: ADD
000012ab: DUP3
000012ac: SWAP1
000012ad: MSTORE
000012ae: ADDRESS
000012af: PUSH1 0x44
000012b1: DUP3
000012b2: ADD
000012b3: MSTORE
000012b4: PUSH1 0x64
000012b6: ADD
000012b7: PUSH2 0x0586
000012ba: JUMP
000012bb: JUMPDEST
000012bc: PUSH2 0x12c5
000012bf: DUP7
000012c0: DUP3
000012c1: PUSH2 0x1b7b
000012c4: JUMP
000012c5: JUMPDEST
000012c6: PUSH2 0x12cf
000012c9: DUP5
000012ca: DUP5
000012cb: PUSH2 0x1b7b
000012ce: JUMP
000012cf: JUMPDEST
000012d0: GT
000012d1: ISZERO
000012d2: PUSH2 0x1311
000012d5: JUMPI
000012d6: PUSH2 0x12df
000012d9: DUP7
000012da: DUP3
000012db: PUSH2 0x1b7b
000012de: JUMP
000012df: JUMPDEST
000012e0: PUSH2 0x12e9
000012e3: DUP5
000012e4: DUP5
000012e5: PUSH2 0x1b7b
000012e8: JUMP
000012e9: JUMPDEST
000012ea: PUSH1 0x40
000012ec: MLOAD
000012ed: PUSH4 0x2bab62d1
000012f2: PUSH1 0xe0
000012f4: SHL
000012f5: DUP2
000012f6: MSTORE
000012f7: PUSH1 0x04
000012f9: DUP2
000012fa: ADD
000012fb: SWAP3
000012fc: SWAP1
000012fd: SWAP3
000012fe: MSTORE
000012ff: PUSH1 0x24
00001301: DUP3
00001302: ADD
00001303: MSTORE
00001304: ADDRESS
00001305: PUSH1 0x44
00001307: DUP3
00001308: ADD
00001309: MSTORE
0000130a: PUSH1 0x64
0000130c: ADD
0000130d: PUSH2 0x0586
00001310: JUMP
00001311: JUMPDEST
00001312: DUP6
00001313: DUP4
00001314: GT
00001315: ISZERO
00001316: PUSH2 0x1342
00001319: JUMPI
0000131a: PUSH1 0x40
0000131c: MLOAD
0000131d: PUSH4 0x2bab62d1
00001322: PUSH1 0xe0
00001324: SHL
00001325: DUP2
00001326: MSTORE
00001327: PUSH1 0x04
00001329: DUP2
0000132a: ADD
0000132b: DUP8
0000132c: SWAP1
0000132d: MSTORE
0000132e: PUSH1 0x24
00001330: DUP2
00001331: ADD
00001332: DUP5
00001333: SWAP1
00001334: MSTORE
00001335: ADDRESS
00001336: PUSH1 0x44
00001338: DUP3
00001339: ADD
0000133a: MSTORE
0000133b: PUSH1 0x64
0000133d: ADD
0000133e: PUSH2 0x0586
00001341: JUMP
00001342: JUMPDEST
00001343: POP
00001344: ADD
00001345: SWAP1
00001346: SWAP2
00001347: SSTORE
00001348: POP
00001349: POP
0000134a: JUMP
0000134b: JUMPDEST
0000134c: PUSH1 0x00
0000134e: PUSH32 0xde9bdca322e1a848f72215bc15cf2c87fe7749145789a9ee281a2a6290af26ab
0000136f: DUP3
00001370: PUSH1 0x40
00001372: MLOAD
00001373: PUSH1 0x20
00001375: ADD
00001376: PUSH2 0x139b
00001379: SWAP3
0000137a: SWAP2
0000137b: SWAP1
0000137c: SWAP2
0000137d: DUP3
0000137e: MSTORE
0000137f: PUSH1 0x60
00001381: SHL
00001382: PUSH12 0xffffffffffffffffffffffff
0000138f: NOT
00001390: AND
00001391: PUSH1 0x20
00001393: DUP3
00001394: ADD
00001395: MSTORE
00001396: PUSH1 0x34
00001398: ADD
00001399: SWAP1
0000139a: JUMP
0000139b: JUMPDEST
0000139c: PUSH1 0x40
0000139e: MLOAD
0000139f: PUSH1 0x20
000013a1: DUP2
000013a2: DUP4
000013a3: SUB
000013a4: SUB
000013a5: DUP2
000013a6: MSTORE
000013a7: SWAP1
000013a8: PUSH1 0x40
000013aa: MSTORE
000013ab: DUP1
000013ac: MLOAD
000013ad: SWAP1
000013ae: PUSH1 0x20
000013b0: ADD
000013b1: KECCAK256
000013b2: SWAP1
000013b3: POP
000013b4: SWAP2
000013b5: SWAP1
000013b6: POP
000013b7: JUMP
000013b8: JUMPDEST
000013b9: PUSH2 0x13c4
000013bc: PUSH2 0x1142
000013bf: DUP5
000013c0: PUSH2 0x0e86
000013c3: JUMP
000013c4: JUMPDEST
000013c5: PUSH2 0x13f3
000013c8: JUMPI
000013c9: PUSH1 0x40
000013cb: MLOAD
000013cc: PUSH4 0x1fe9beed
000013d1: PUSH1 0xe2
000013d3: SHL
000013d4: DUP2
000013d5: MSTORE
000013d6: PUSH1 0x01
000013d8: PUSH1 0x01
000013da: PUSH1 0xa0
000013dc: SHL
000013dd: SUB
000013de: DUP5
000013df: AND
000013e0: PUSH1 0x04
000013e2: DUP3
000013e3: ADD
000013e4: MSTORE
000013e5: PUSH1 0x24
000013e7: DUP2
000013e8: ADD
000013e9: DUP3
000013ea: SWAP1
000013eb: MSTORE
000013ec: PUSH1 0x44
000013ee: ADD
000013ef: PUSH2 0x0586
000013f2: JUMP
000013f3: JUMPDEST
000013f4: PUSH2 0x13fe
000013f7: DUP4
000013f8: DUP4
000013f9: DUP4
000013fa: PUSH2 0x152b
000013fd: JUMP
000013fe: JUMPDEST
000013ff: DUP2
00001400: PUSH1 0x01
00001402: PUSH1 0x01
00001404: PUSH1 0xa0
00001406: SHL
00001407: SUB
00001408: AND
00001409: DUP4
0000140a: PUSH1 0x01
0000140c: PUSH1 0x01
0000140e: PUSH1 0xa0
00001410: SHL
00001411: SUB
00001412: AND
00001413: PUSH32 0xf7158d1591c2cf17c0e6b9459d86365c47fe0969c79f40ef49e0c437d8f39914
00001434: DUP4
00001435: PUSH1 0x40
00001437: MLOAD
00001438: PUSH2 0x1443
0000143b: SWAP2
0000143c: DUP2
0000143d: MSTORE
0000143e: PUSH1 0x20
00001440: ADD
00001441: SWAP1
00001442: JUMP
00001443: JUMPDEST
00001444: PUSH1 0x40
00001446: MLOAD
00001447: DUP1
00001448: SWAP2
00001449: SUB
0000144a: SWAP1
0000144b: LOG3
0000144c: POP
0000144d: POP
0000144e: POP
0000144f: JUMP
00001450: JUMPDEST
00001451: PUSH1 0x00
00001453: PUSH2 0x145b
00001456: DUP4
00001457: PUSH2 0x134b
0000145a: JUMP
0000145b: JUMPDEST
0000145c: SWAP2
0000145d: SWAP1
0000145e: SWAP2
0000145f: SSTORE
00001460: POP
00001461: POP
00001462: JUMP
00001463: JUMPDEST
00001464: PUSH1 0x00
00001466: DUP2
00001467: NOT
00001468: PUSH2 0x1470
0000146b: DUP5
0000146c: PUSH2 0x0e86
0000146f: JUMP
00001470: JUMPDEST
00001471: AND
00001472: SWAP1
00001473: POP
00001474: PUSH2 0x147d
00001477: DUP4
00001478: DUP3
00001479: PUSH2 0x1450
0000147c: JUMP
0000147d: JUMPDEST
0000147e: DUP3
0000147f: PUSH1 0x01
00001481: PUSH1 0x01
00001483: PUSH1 0xa0
00001485: SHL
00001486: SUB
00001487: AND
00001488: PUSH32 0xccf920c8facee98a9c2a6c6124f2857b87b17e9f3a819bfcc6945196ee77366b
000014a9: DUP4
000014aa: PUSH1 0x40
000014ac: MLOAD
000014ad: PUSH2 0x10c6
000014b0: SWAP2
000014b1: DUP2
000014b2: MSTORE
000014b3: PUSH1 0x20
000014b5: ADD
000014b6: SWAP1
000014b7: JUMP
000014b8: JUMPDEST
000014b9: DUP1
000014ba: PUSH2 0x14c3
000014bd: DUP5
000014be: DUP5
000014bf: PUSH2 0x1540
000014c2: JUMP
000014c3: JUMPDEST
000014c4: EQ
000014c5: PUSH2 0x1514
000014c8: JUMPI
000014c9: PUSH1 0x40
000014cb: MLOAD
000014cc: PUSH32 0x6004fe4000000000000000000000000000000000000000000000000000000000
000014ed: DUP2
000014ee: MSTORE
000014ef: PUSH1 0x01
000014f1: PUSH1 0x01
000014f3: PUSH1 0xa0
000014f5: SHL
000014f6: SUB
000014f7: DUP1
000014f8: DUP6
000014f9: AND
000014fa: PUSH1 0x04
000014fc: DUP4
000014fd: ADD
000014fe: MSTORE
000014ff: DUP4
00001500: AND
00001501: PUSH1 0x24
00001503: DUP3
00001504: ADD
00001505: MSTORE
00001506: PUSH1 0x44
00001508: DUP2
00001509: ADD
0000150a: DUP3
0000150b: SWAP1
0000150c: MSTORE
0000150d: PUSH1 0x64
0000150f: ADD
00001510: PUSH2 0x0586
00001513: JUMP
00001514: JUMPDEST
00001515: PUSH2 0x1520
00001518: DUP4
00001519: DUP4
0000151a: PUSH1 0x00
0000151c: PUSH2 0x152b
0000151f: JUMP
00001520: JUMPDEST
00001521: PUSH2 0x08dc
00001524: DUP4
00001525: DUP4
00001526: DUP4
00001527: PUSH2 0x1136
0000152a: JUMP
0000152b: JUMPDEST
0000152c: PUSH1 0x00
0000152e: PUSH2 0x1537
00001531: DUP5
00001532: DUP5
00001533: PUSH2 0x1556
00001536: JUMP
00001537: JUMPDEST
00001538: SWAP2
00001539: SWAP1
0000153a: SWAP2
0000153b: SSTORE
0000153c: POP
0000153d: POP
0000153e: POP
0000153f: JUMP
00001540: JUMPDEST
00001541: PUSH1 0x00
00001543: DUP1
00001544: PUSH2 0x154d
00001547: DUP5
00001548: DUP5
00001549: PUSH2 0x1556
0000154c: JUMP
0000154d: JUMPDEST
0000154e: SLOAD
0000154f: SWAP5
00001550: SWAP4
00001551: POP
00001552: POP
00001553: POP
00001554: POP
00001555: JUMP
00001556: JUMPDEST
00001557: PUSH1 0x00
00001559: PUSH32 0xf96e07b2f4fbb81c31567d2b261589af429e98f0958d53f7e6ad5d63aea0ab7c
0000157a: DUP4
0000157b: DUP4
0000157c: PUSH1 0x40
0000157e: MLOAD
0000157f: PUSH1 0x20
00001581: ADD
00001582: PUSH2 0x15b4
00001585: SWAP4
00001586: SWAP3
00001587: SWAP2
00001588: SWAP1
00001589: SWAP3
0000158a: DUP4
0000158b: MSTORE
0000158c: PUSH1 0x60
0000158e: SWAP2
0000158f: DUP3
00001590: SHL
00001591: PUSH12 0xffffffffffffffffffffffff
0000159e: NOT
0000159f: SWAP1
000015a0: DUP2
000015a1: AND
000015a2: PUSH1 0x20
000015a4: DUP6
000015a5: ADD
000015a6: MSTORE
000015a7: SWAP2
000015a8: SHL
000015a9: AND
000015aa: PUSH1 0x34
000015ac: DUP3
000015ad: ADD
000015ae: MSTORE
000015af: PUSH1 0x48
000015b1: ADD
000015b2: SWAP1
000015b3: JUMP
000015b4: JUMPDEST
000015b5: PUSH1 0x40
000015b7: MLOAD
000015b8: PUSH1 0x20
000015ba: DUP2
000015bb: DUP4
000015bc: SUB
000015bd: SUB
000015be: DUP2
000015bf: MSTORE
000015c0: SWAP1
000015c1: PUSH1 0x40
000015c3: MSTORE
000015c4: DUP1
000015c5: MLOAD
000015c6: SWAP1
000015c7: PUSH1 0x20
000015c9: ADD
000015ca: KECCAK256
000015cb: SWAP1
000015cc: POP
000015cd: SWAP3
000015ce: SWAP2
000015cf: POP
000015d0: POP
000015d1: JUMP
000015d2: JUMPDEST
000015d3: PUSH1 0x00
000015d5: PUSH1 0x20
000015d7: DUP3
000015d8: DUP5
000015d9: SUB
000015da: SLT
000015db: ISZERO
000015dc: PUSH2 0x15e4
000015df: JUMPI
000015e0: PUSH1 0x00
000015e2: DUP1
000015e3: REVERT
000015e4: JUMPDEST
000015e5: POP
000015e6: CALLDATALOAD
000015e7: SWAP2
000015e8: SWAP1
000015e9: POP
000015ea: JUMP
000015eb: JUMPDEST
000015ec: PUSH1 0x01
000015ee: PUSH1 0x01
000015f0: PUSH1 0xa0
000015f2: SHL
000015f3: SUB
000015f4: DUP2
000015f5: AND
000015f6: DUP2
000015f7: EQ
000015f8: PUSH2 0x0598
000015fb: JUMPI
000015fc: PUSH1 0x00
000015fe: DUP1
000015ff: REVERT
00001600: JUMPDEST
00001601: PUSH1 0x00
00001603: PUSH1 0x20
00001605: DUP3
00001606: DUP5
00001607: SUB
00001608: SLT
00001609: ISZERO
0000160a: PUSH2 0x1612
0000160d: JUMPI
0000160e: PUSH1 0x00
00001610: DUP1
00001611: REVERT
00001612: JUMPDEST
00001613: DUP2
00001614: CALLDATALOAD
00001615: PUSH2 0x0a41
00001618: DUP2
00001619: PUSH2 0x15eb
0000161c: JUMP
0000161d: JUMPDEST
0000161e: PUSH1 0x00
00001620: DUP1
00001621: DUP4
00001622: PUSH1 0x1f
00001624: DUP5
00001625: ADD
00001626: SLT
00001627: PUSH2 0x162f
0000162a: JUMPI
0000162b: PUSH1 0x00
0000162d: DUP1
0000162e: REVERT
0000162f: JUMPDEST
00001630: POP
00001631: DUP2
00001632: CALLDATALOAD
00001633: PUSH8 0xffffffffffffffff
0000163c: DUP2
0000163d: GT
0000163e: ISZERO
0000163f: PUSH2 0x1647
00001642: JUMPI
00001643: PUSH1 0x00
00001645: DUP1
00001646: REVERT
00001647: JUMPDEST
00001648: PUSH1 0x20
0000164a: DUP4
0000164b: ADD
0000164c: SWAP2
0000164d: POP
0000164e: DUP4
0000164f: PUSH1 0x20
00001651: DUP3
00001652: DUP6
00001653: ADD
00001654: ADD
00001655: GT
00001656: ISZERO
00001657: PUSH2 0x165f
0000165a: JUMPI
0000165b: PUSH1 0x00
0000165d: DUP1
0000165e: REVERT
0000165f: JUMPDEST
00001660: SWAP3
00001661: POP
00001662: SWAP3
00001663: SWAP1
00001664: POP
00001665: JUMP
00001666: JUMPDEST
00001667: PUSH1 0x00
00001669: DUP1
0000166a: PUSH1 0x00
0000166c: PUSH1 0x40
0000166e: DUP5
0000166f: DUP7
00001670: SUB
00001671: SLT
00001672: ISZERO
00001673: PUSH2 0x167b
00001676: JUMPI
00001677: PUSH1 0x00
00001679: DUP1
0000167a: REVERT
0000167b: JUMPDEST
0000167c: DUP4
0000167d: CALLDATALOAD
0000167e: PUSH8 0xffffffffffffffff
00001687: DUP2
00001688: GT
00001689: ISZERO
0000168a: PUSH2 0x1692
0000168d: JUMPI
0000168e: PUSH1 0x00
00001690: DUP1
00001691: REVERT
00001692: JUMPDEST
00001693: PUSH2 0x169e
00001696: DUP7
00001697: DUP3
00001698: DUP8
00001699: ADD
0000169a: PUSH2 0x161d
0000169d: JUMP
0000169e: JUMPDEST
0000169f: SWAP1
000016a0: SWAP5
000016a1: POP
000016a2: SWAP3
000016a3: POP
000016a4: POP
000016a5: PUSH1 0x20
000016a7: DUP5
000016a8: ADD
000016a9: CALLDATALOAD
000016aa: PUSH2 0x16b2
000016ad: DUP2
000016ae: PUSH2 0x15eb
000016b1: JUMP
000016b2: JUMPDEST
000016b3: DUP1
000016b4: SWAP2
000016b5: POP
000016b6: POP
000016b7: SWAP3
000016b8: POP
000016b9: SWAP3
000016ba: POP
000016bb: SWAP3
000016bc: JUMP
000016bd: JUMPDEST
000016be: PUSH1 0x00
000016c0: JUMPDEST
000016c1: DUP4
000016c2: DUP2
000016c3: LT
000016c4: ISZERO
000016c5: PUSH2 0x16d8
000016c8: JUMPI
000016c9: DUP2
000016ca: DUP2
000016cb: ADD
000016cc: MLOAD
000016cd: DUP4
000016ce: DUP3
000016cf: ADD
000016d0: MSTORE
000016d1: PUSH1 0x20
000016d3: ADD
000016d4: PUSH2 0x16c0
000016d7: JUMP
000016d8: JUMPDEST
000016d9: POP
000016da: POP
000016db: PUSH1 0x00
000016dd: SWAP2
000016de: ADD
000016df: MSTORE
000016e0: JUMP
000016e1: JUMPDEST
000016e2: PUSH1 0x00
000016e4: DUP2
000016e5: MLOAD
000016e6: DUP1
000016e7: DUP5
000016e8: MSTORE
000016e9: PUSH2 0x16f9
000016ec: DUP2
000016ed: PUSH1 0x20
000016ef: DUP7
000016f0: ADD
000016f1: PUSH1 0x20
000016f3: DUP7
000016f4: ADD
000016f5: PUSH2 0x16bd
000016f8: JUMP
000016f9: JUMPDEST
000016fa: PUSH1 0x1f
000016fc: ADD
000016fd: PUSH1 0x1f
000016ff: NOT
00001700: AND
00001701: SWAP3
00001702: SWAP1
00001703: SWAP3
00001704: ADD
00001705: PUSH1 0x20
00001707: ADD
00001708: SWAP3
00001709: SWAP2
0000170a: POP
0000170b: POP
0000170c: JUMP
0000170d: JUMPDEST
0000170e: PUSH1 0x20
00001710: DUP2
00001711: MSTORE
00001712: PUSH1 0x00
00001714: PUSH2 0x0a41
00001717: PUSH1 0x20
00001719: DUP4
0000171a: ADD
0000171b: DUP5
0000171c: PUSH2 0x16e1
0000171f: JUMP
00001720: JUMPDEST
00001721: PUSH1 0x00
00001723: DUP1
00001724: PUSH1 0x00
00001726: PUSH1 0x60
00001728: DUP5
00001729: DUP7
0000172a: SUB
0000172b: SLT
0000172c: ISZERO
0000172d: PUSH2 0x1735
00001730: JUMPI
00001731: PUSH1 0x00
00001733: DUP1
00001734: REVERT
00001735: JUMPDEST
00001736: DUP4
00001737: CALLDATALOAD
00001738: PUSH2 0x1740
0000173b: DUP2
0000173c: PUSH2 0x15eb
0000173f: JUMP
00001740: JUMPDEST
00001741: SWAP3
00001742: POP
00001743: PUSH1 0x20
00001745: DUP5
00001746: ADD
00001747: CALLDATALOAD
00001748: PUSH2 0x1750
0000174b: DUP2
0000174c: PUSH2 0x15eb
0000174f: JUMP
00001750: JUMPDEST
00001751: SWAP3
00001752: SWAP6
00001753: SWAP3
00001754: SWAP5
00001755: POP
00001756: POP
00001757: POP
00001758: PUSH1 0x40
0000175a: SWAP2
0000175b: SWAP1
0000175c: SWAP2
0000175d: ADD
0000175e: CALLDATALOAD
0000175f: SWAP1
00001760: JUMP
00001761: JUMPDEST
00001762: PUSH1 0x00
00001764: DUP1
00001765: PUSH1 0x40
00001767: DUP4
00001768: DUP6
00001769: SUB
0000176a: SLT
0000176b: ISZERO
0000176c: PUSH2 0x1774
0000176f: JUMPI
00001770: PUSH1 0x00
00001772: DUP1
00001773: REVERT
00001774: JUMPDEST
00001775: DUP3
00001776: CALLDATALOAD
00001777: PUSH2 0x177f
0000177a: DUP2
0000177b: PUSH2 0x15eb
0000177e: JUMP
0000177f: JUMPDEST
00001780: SWAP2
00001781: POP
00001782: PUSH1 0x20
00001784: DUP4
00001785: ADD
00001786: CALLDATALOAD
00001787: PUSH1 0xff
00001789: DUP2
0000178a: AND
0000178b: DUP2
0000178c: EQ
0000178d: PUSH2 0x1795
00001790: JUMPI
00001791: PUSH1 0x00
00001793: DUP1
00001794: REVERT
00001795: JUMPDEST
00001796: DUP1
00001797: SWAP2
00001798: POP
00001799: POP
0000179a: SWAP3
0000179b: POP
0000179c: SWAP3
0000179d: SWAP1
0000179e: POP
0000179f: JUMP
000017a0: JUMPDEST
000017a1: PUSH1 0x00
000017a3: DUP1
000017a4: PUSH1 0x20
000017a6: DUP4
000017a7: DUP6
000017a8: SUB
000017a9: SLT
000017aa: ISZERO
000017ab: PUSH2 0x17b3
000017ae: JUMPI
000017af: PUSH1 0x00
000017b1: DUP1
000017b2: REVERT
000017b3: JUMPDEST
000017b4: DUP3
000017b5: CALLDATALOAD
000017b6: PUSH8 0xffffffffffffffff
000017bf: DUP2
000017c0: GT
000017c1: ISZERO
000017c2: PUSH2 0x17ca
000017c5: JUMPI
000017c6: PUSH1 0x00
000017c8: DUP1
000017c9: REVERT
000017ca: JUMPDEST
000017cb: PUSH2 0x17d6
000017ce: DUP6
000017cf: DUP3
000017d0: DUP7
000017d1: ADD
000017d2: PUSH2 0x161d
000017d5: JUMP
000017d6: JUMPDEST
000017d7: SWAP1
000017d8: SWAP7
000017d9: SWAP1
000017da: SWAP6
000017db: POP
000017dc: SWAP4
000017dd: POP
000017de: POP
000017df: POP
000017e0: POP
000017e1: JUMP
000017e2: JUMPDEST
000017e3: PUSH1 0x00
000017e5: DUP1
000017e6: PUSH1 0x20
000017e8: DUP4
000017e9: DUP6
000017ea: SUB
000017eb: SLT
000017ec: ISZERO
000017ed: PUSH2 0x17f5
000017f0: JUMPI
000017f1: PUSH1 0x00
000017f3: DUP1
000017f4: REVERT
000017f5: JUMPDEST
000017f6: DUP3
000017f7: CALLDATALOAD
000017f8: PUSH8 0xffffffffffffffff
00001801: DUP2
00001802: GT
00001803: ISZERO
00001804: PUSH2 0x180c
00001807: JUMPI
00001808: PUSH1 0x00
0000180a: DUP1
0000180b: REVERT
0000180c: JUMPDEST
0000180d: DUP4
0000180e: ADD
0000180f: PUSH1 0x1f
00001811: DUP2
00001812: ADD
00001813: DUP6
00001814: SGT
00001815: PUSH2 0x181d
00001818: JUMPI
00001819: PUSH1 0x00
0000181b: DUP1
0000181c: REVERT
0000181d: JUMPDEST
0000181e: DUP1
0000181f: CALLDATALOAD
00001820: PUSH8 0xffffffffffffffff
00001829: DUP2
0000182a: GT
0000182b: ISZERO
0000182c: PUSH2 0x1834
0000182f: JUMPI
00001830: PUSH1 0x00
00001832: DUP1
00001833: REVERT
00001834: JUMPDEST
00001835: DUP6
00001836: PUSH1 0x20
00001838: DUP3
00001839: PUSH1 0x05
0000183b: SHL
0000183c: DUP5
0000183d: ADD
0000183e: ADD
0000183f: GT
00001840: ISZERO
00001841: PUSH2 0x1849
00001844: JUMPI
00001845: PUSH1 0x00
00001847: DUP1
00001848: REVERT
00001849: JUMPDEST
0000184a: PUSH1 0x20
0000184c: SWAP2
0000184d: SWAP1
0000184e: SWAP2
0000184f: ADD
00001850: SWAP6
00001851: SWAP1
00001852: SWAP5
00001853: POP
00001854: SWAP3
00001855: POP
00001856: POP
00001857: POP
00001858: JUMP
00001859: JUMPDEST
0000185a: PUSH1 0x00
0000185c: PUSH1 0x20
0000185e: DUP3
0000185f: ADD
00001860: PUSH1 0x20
00001862: DUP4
00001863: MSTORE
00001864: DUP1
00001865: DUP5
00001866: MLOAD
00001867: DUP1
00001868: DUP4
00001869: MSTORE
0000186a: PUSH1 0x40
0000186c: DUP6
0000186d: ADD
0000186e: SWAP2
0000186f: POP
00001870: PUSH1 0x40
00001872: DUP2
00001873: PUSH1 0x05
00001875: SHL
00001876: DUP7
00001877: ADD
00001878: ADD
00001879: SWAP3
0000187a: POP
0000187b: PUSH1 0x20
0000187d: DUP7
0000187e: ADD
0000187f: PUSH1 0x00
00001881: JUMPDEST
00001882: DUP3
00001883: DUP2
00001884: LT
00001885: ISZERO
00001886: PUSH2 0x18b2
00001889: JUMPI
0000188a: PUSH1 0x3f
0000188c: NOT
0000188d: DUP8
0000188e: DUP7
0000188f: SUB
00001890: ADD
00001891: DUP5
00001892: MSTORE
00001893: PUSH2 0x189d
00001896: DUP6
00001897: DUP4
00001898: MLOAD
00001899: PUSH2 0x16e1
0000189c: JUMP
0000189d: JUMPDEST
0000189e: SWAP5
0000189f: POP
000018a0: PUSH1 0x20
000018a2: SWAP4
000018a3: DUP5
000018a4: ADD
000018a5: SWAP4
000018a6: SWAP2
000018a7: SWAP1
000018a8: SWAP2
000018a9: ADD
000018aa: SWAP1
000018ab: PUSH1 0x01
000018ad: ADD
000018ae: PUSH2 0x1881
000018b1: JUMP
000018b2: JUMPDEST
000018b3: POP
000018b4: SWAP3
000018b5: SWAP7
000018b6: SWAP6
000018b7: POP
000018b8: POP
000018b9: POP
000018ba: POP
000018bb: POP
000018bc: POP
000018bd: JUMP
000018be: JUMPDEST
000018bf: PUSH1 0x00
000018c1: DUP1
000018c2: PUSH1 0x40
000018c4: DUP4
000018c5: DUP6
000018c6: SUB
000018c7: SLT
000018c8: ISZERO
000018c9: PUSH2 0x18d1
000018cc: JUMPI
000018cd: PUSH1 0x00
000018cf: DUP1
000018d0: REVERT
000018d1: JUMPDEST
000018d2: DUP3
000018d3: CALLDATALOAD
000018d4: PUSH2 0x18dc
000018d7: DUP2
000018d8: PUSH2 0x15eb
000018db: JUMP
000018dc: JUMPDEST
000018dd: SWAP2
000018de: POP
000018df: PUSH1 0x20
000018e1: DUP4
000018e2: ADD
000018e3: CALLDATALOAD
000018e4: PUSH2 0x1795
000018e7: DUP2
000018e8: PUSH2 0x15eb
000018eb: JUMP
000018ec: JUMPDEST
000018ed: PUSH1 0x40
000018ef: DUP2
000018f0: MSTORE
000018f1: DUP3
000018f2: PUSH1 0x40
000018f4: DUP3
000018f5: ADD
000018f6: MSTORE
000018f7: DUP3
000018f8: DUP5
000018f9: PUSH1 0x60
000018fb: DUP4
000018fc: ADD
000018fd: CALLDATACOPY
000018fe: PUSH1 0x00
00001900: PUSH1 0x60
00001902: DUP5
00001903: DUP4
00001904: ADD
00001905: ADD
00001906: MSTORE
00001907: PUSH1 0x00
00001909: PUSH1 0x60
0000190b: PUSH1 0x1f
0000190d: NOT
0000190e: PUSH1 0x1f
00001910: DUP7
00001911: ADD
00001912: AND
00001913: DUP4
00001914: ADD
00001915: ADD
00001916: SWAP1
00001917: POP
00001918: PUSH1 0x01
0000191a: PUSH1 0x01
0000191c: PUSH1 0xa0
0000191e: SHL
0000191f: SUB
00001920: DUP4
00001921: AND
00001922: PUSH1 0x20
00001924: DUP4
00001925: ADD
00001926: MSTORE
00001927: SWAP5
00001928: SWAP4
00001929: POP
0000192a: POP
0000192b: POP
0000192c: POP
0000192d: JUMP
0000192e: JUMPDEST
0000192f: PUSH1 0x00
00001931: PUSH1 0x20
00001933: DUP3
00001934: DUP5
00001935: SUB
00001936: SLT
00001937: ISZERO
00001938: PUSH2 0x1940
0000193b: JUMPI
0000193c: PUSH1 0x00
0000193e: DUP1
0000193f: REVERT
00001940: JUMPDEST
00001941: DUP2
00001942: MLOAD
00001943: PUSH2 0x0a41
00001946: DUP2
00001947: PUSH2 0x15eb
0000194a: JUMP
0000194b: JUMPDEST
0000194c: PUSH4 0x4e487b71
00001951: PUSH1 0xe0
00001953: SHL
00001954: PUSH1 0x00
00001956: MSTORE
00001957: PUSH1 0x11
00001959: PUSH1 0x04
0000195b: MSTORE
0000195c: PUSH1 0x24
0000195e: PUSH1 0x00
00001960: REVERT
00001961: JUMPDEST
00001962: PUSH1 0x00
00001964: DUP3
00001965: PUSH2 0x197e
00001968: JUMPI
00001969: PUSH4 0x4e487b71
0000196e: PUSH1 0xe0
00001970: SHL
00001971: PUSH1 0x00
00001973: MSTORE
00001974: PUSH1 0x12
00001976: PUSH1 0x04
00001978: MSTORE
00001979: PUSH1 0x24
0000197b: PUSH1 0x00
0000197d: REVERT
0000197e: JUMPDEST
0000197f: POP
00001980: DIV
00001981: SWAP1
00001982: JUMP
00001983: JUMPDEST
00001984: PUSH4 0x4e487b71
00001989: PUSH1 0xe0
0000198b: SHL
0000198c: PUSH1 0x00
0000198e: MSTORE
0000198f: PUSH1 0x41
00001991: PUSH1 0x04
00001993: MSTORE
00001994: PUSH1 0x24
00001996: PUSH1 0x00
00001998: REVERT
00001999: JUMPDEST
0000199a: PUSH1 0x00
0000199c: DUP3
0000199d: PUSH1 0x1f
0000199f: DUP4
000019a0: ADD
000019a1: SLT
000019a2: PUSH2 0x19aa
000019a5: JUMPI
000019a6: PUSH1 0x00
000019a8: DUP1
000019a9: REVERT
000019aa: JUMPDEST
000019ab: DUP2
000019ac: CALLDATALOAD
000019ad: PUSH8 0xffffffffffffffff
000019b6: DUP2
000019b7: GT
000019b8: ISZERO
000019b9: PUSH2 0x19c4
000019bc: JUMPI
000019bd: PUSH2 0x19c4
000019c0: PUSH2 0x1983
000019c3: JUMP
000019c4: JUMPDEST
000019c5: PUSH1 0x40
000019c7: MLOAD
000019c8: PUSH1 0x1f
000019ca: DUP3
000019cb: ADD
000019cc: PUSH1 0x1f
000019ce: NOT
000019cf: SWAP1
000019d0: DUP2
000019d1: AND
000019d2: PUSH1 0x3f
000019d4: ADD
000019d5: AND
000019d6: DUP2
000019d7: ADD
000019d8: PUSH8 0xffffffffffffffff
000019e1: DUP2
000019e2: GT
000019e3: DUP3
000019e4: DUP3
000019e5: LT
000019e6: OR
000019e7: ISZERO
000019e8: PUSH2 0x19f3
000019eb: JUMPI
000019ec: PUSH2 0x19f3
000019ef: PUSH2 0x1983
000019f2: JUMP
000019f3: JUMPDEST
000019f4: PUSH1 0x40
000019f6: MSTORE
000019f7: DUP2
000019f8: DUP2
000019f9: MSTORE
000019fa: DUP4
000019fb: DUP3
000019fc: ADD
000019fd: PUSH1 0x20
000019ff: ADD
00001a00: DUP6
00001a01: LT
00001a02: ISZERO
00001a03: PUSH2 0x1a0b
00001a06: JUMPI
00001a07: PUSH1 0x00
00001a09: DUP1
00001a0a: REVERT
00001a0b: JUMPDEST
00001a0c: DUP2
00001a0d: PUSH1 0x20
00001a0f: DUP6
00001a10: ADD
00001a11: PUSH1 0x20
00001a13: DUP4
00001a14: ADD
00001a15: CALLDATACOPY
00001a16: PUSH1 0x00
00001a18: SWAP2
00001a19: DUP2
00001a1a: ADD
00001a1b: PUSH1 0x20
00001a1d: ADD
00001a1e: SWAP2
00001a1f: SWAP1
00001a20: SWAP2
00001a21: MSTORE
00001a22: SWAP4
00001a23: SWAP3
00001a24: POP
00001a25: POP
00001a26: POP
00001a27: JUMP
00001a28: JUMPDEST
00001a29: PUSH1 0x00
00001a2b: PUSH1 0x20
00001a2d: DUP3
00001a2e: DUP5
00001a2f: SUB
00001a30: SLT
00001a31: ISZERO
00001a32: PUSH2 0x1a3a
00001a35: JUMPI
00001a36: PUSH1 0x00
00001a38: DUP1
00001a39: REVERT
00001a3a: JUMPDEST
00001a3b: DUP2
00001a3c: CALLDATALOAD
00001a3d: PUSH8 0xffffffffffffffff
00001a46: DUP2
00001a47: GT
00001a48: ISZERO
00001a49: PUSH2 0x1a51
00001a4c: JUMPI
00001a4d: PUSH1 0x00
00001a4f: DUP1
00001a50: REVERT
00001a51: JUMPDEST
00001a52: PUSH2 0x0e09
00001a55: DUP5
00001a56: DUP3
00001a57: DUP6
00001a58: ADD
00001a59: PUSH2 0x1999
00001a5c: JUMP
00001a5d: JUMPDEST
00001a5e: PUSH1 0x00
00001a60: PUSH1 0x20
00001a62: DUP3
00001a63: DUP5
00001a64: SUB
00001a65: SLT
00001a66: ISZERO
00001a67: PUSH2 0x1a6f
00001a6a: JUMPI
00001a6b: PUSH1 0x00
00001a6d: DUP1
00001a6e: REVERT
00001a6f: JUMPDEST
00001a70: POP
00001a71: MLOAD
00001a72: SWAP2
00001a73: SWAP1
00001a74: POP
00001a75: JUMP
00001a76: JUMPDEST
00001a77: PUSH4 0x4e487b71
00001a7c: PUSH1 0xe0
00001a7e: SHL
00001a7f: PUSH1 0x00
00001a81: MSTORE
00001a82: PUSH1 0x32
00001a84: PUSH1 0x04
00001a86: MSTORE
00001a87: PUSH1 0x24
00001a89: PUSH1 0x00
00001a8b: REVERT
00001a8c: JUMPDEST
00001a8d: PUSH1 0x00
00001a8f: DUP1
00001a90: DUP4
00001a91: CALLDATALOAD
00001a92: PUSH1 0x1e
00001a94: NOT
00001a95: DUP5
00001a96: CALLDATASIZE
00001a97: SUB
00001a98: ADD
00001a99: DUP2
00001a9a: SLT
00001a9b: PUSH2 0x1aa3
00001a9e: JUMPI
00001a9f: PUSH1 0x00
00001aa1: DUP1
00001aa2: REVERT
00001aa3: JUMPDEST
00001aa4: DUP4
00001aa5: ADD
00001aa6: DUP1
00001aa7: CALLDATALOAD
00001aa8: SWAP2
00001aa9: POP
00001aaa: PUSH8 0xffffffffffffffff
00001ab3: DUP3
00001ab4: GT
00001ab5: ISZERO
00001ab6: PUSH2 0x1abe
00001ab9: JUMPI
00001aba: PUSH1 0x00
00001abc: DUP1
00001abd: REVERT
00001abe: JUMPDEST
00001abf: PUSH1 0x20
00001ac1: ADD
00001ac2: SWAP2
00001ac3: POP
00001ac4: CALLDATASIZE
00001ac5: DUP2
00001ac6: SWAP1
00001ac7: SUB
00001ac8: DUP3
00001ac9: SGT
00001aca: ISZERO
00001acb: PUSH2 0x165f
00001ace: JUMPI
00001acf: PUSH1 0x00
00001ad1: DUP1
00001ad2: REVERT
00001ad3: JUMPDEST
00001ad4: DUP2
00001ad5: DUP4
00001ad6: DUP3
00001ad7: CALLDATACOPY
00001ad8: PUSH1 0x00
00001ada: SWAP2
00001adb: ADD
00001adc: SWAP1
00001add: DUP2
00001ade: MSTORE
00001adf: SWAP2
00001ae0: SWAP1
00001ae1: POP
00001ae2: JUMP
00001ae3: JUMPDEST
00001ae4: PUSH1 0x00
00001ae6: DUP1
00001ae7: PUSH1 0x40
00001ae9: DUP4
00001aea: DUP6
00001aeb: SUB
00001aec: SLT
00001aed: ISZERO
00001aee: PUSH2 0x1af6
00001af1: JUMPI
00001af2: PUSH1 0x00
00001af4: DUP1
00001af5: REVERT
00001af6: JUMPDEST
00001af7: DUP3
00001af8: CALLDATALOAD
00001af9: PUSH8 0xffffffffffffffff
00001b02: DUP2
00001b03: GT
00001b04: ISZERO
00001b05: PUSH2 0x1b0d
00001b08: JUMPI
00001b09: PUSH1 0x00
00001b0b: DUP1
00001b0c: REVERT
00001b0d: JUMPDEST
00001b0e: PUSH2 0x1b19
00001b11: DUP6
00001b12: DUP3
00001b13: DUP7
00001b14: ADD
00001b15: PUSH2 0x1999
00001b18: JUMP
00001b19: JUMPDEST
00001b1a: SWAP3
00001b1b: POP
00001b1c: POP
00001b1d: PUSH1 0x20
00001b1f: DUP4
00001b20: ADD
00001b21: CALLDATALOAD
00001b22: PUSH2 0x1795
00001b25: DUP2
00001b26: PUSH2 0x15eb
00001b29: JUMP
00001b2a: JUMPDEST
00001b2b: PUSH1 0x00
00001b2d: DUP3
00001b2e: MLOAD
00001b2f: PUSH2 0x1b3c
00001b32: DUP2
00001b33: DUP5
00001b34: PUSH1 0x20
00001b36: DUP8
00001b37: ADD
00001b38: PUSH2 0x16bd
00001b3b: JUMP
00001b3c: JUMPDEST
00001b3d: SWAP2
00001b3e: SWAP1
00001b3f: SWAP2
00001b40: ADD
00001b41: SWAP3
00001b42: SWAP2
00001b43: POP
00001b44: POP
00001b45: JUMP
00001b46: JUMPDEST
00001b47: PUSH1 0x00
00001b49: PUSH1 0x20
00001b4b: DUP3
00001b4c: DUP5
00001b4d: SUB
00001b4e: SLT
00001b4f: ISZERO
00001b50: PUSH2 0x1b58
00001b53: JUMPI
00001b54: PUSH1 0x00
00001b56: DUP1
00001b57: REVERT
00001b58: JUMPDEST
00001b59: DUP2
00001b5a: MLOAD
00001b5b: DUP1
00001b5c: ISZERO
00001b5d: ISZERO
00001b5e: DUP2
00001b5f: EQ
00001b60: PUSH2 0x0a41
00001b63: JUMPI
00001b64: PUSH1 0x00
00001b66: DUP1
00001b67: REVERT
00001b68: JUMPDEST
00001b69: DUP2
00001b6a: DUP2
00001b6b: SUB
00001b6c: DUP2
00001b6d: DUP2
00001b6e: GT
00001b6f: ISZERO
00001b70: PUSH2 0x09c2
00001b73: JUMPI
00001b74: PUSH2 0x09c2
00001b77: PUSH2 0x194b
00001b7a: JUMP
00001b7b: JUMPDEST
00001b7c: DUP1
00001b7d: DUP3
00001b7e: ADD
00001b7f: DUP1
00001b80: DUP3
00001b81: GT
00001b82: ISZERO
00001b83: PUSH2 0x09c2
00001b86: JUMPI
00001b87: PUSH2 0x09c2
00001b8a: PUSH2 0x194b
00001b8d: JUMP
00001b8e: INVALID
00001b8f: LOG2
00001b90: PUSH5 0x6970667358
00001b96: UNKNOWN(0x22)
00001b97: SLT
00001b98: KECCAK256
00001b99: EXTCODESIZE
00001b9a: SLT
00001b9b: CREATE
00001b9c: UNKNOWN(0x26)
00001b9d: PUSH16 0x15b8e017c675a53b34b1cb9f3ee4ca15
00001bae: UNKNOWN(0xBF)
00001baf: SHL
00001bb0: MUL
00001bb1: RETURN
00001bb2: UNKNOWN(0xC1)
00001bb3: PUSH11 0x0a59011c5264736f6c6343
00001bbf: STOP
00001bc0: ADDMOD
00001bc1: SHL
00001bc2: STOP
00001bc3: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0x8bc0697590156c2934c3863729113d71a7d2873b7aeff29343e2cfd92d2c313f
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0x8bc0697590156c2934c3863729113d71a7d2873b7aeff29343e2cfd92d2c313f",
    "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": "0xdce29136",
            "selector": "0xdce29136",
            "calldata_variants": [
                "0xdce29136",
                "0xdce291360000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdeb11e78",
            "selector": "0xdeb11e78",
            "calldata_variants": [
                "0xdeb11e78",
                "0xdeb11e780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe915cfd1",
            "selector": "0xe915cfd1",
            "calldata_variants": [
                "0xe915cfd1",
                "0xe915cfd10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5983e83",
            "selector": "0xf5983e83",
            "calldata_variants": [
                "0xf5983e83",
                "0xf5983e830000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xac9650d8",
            "selector": "0xac9650d8",
            "calldata_variants": [
                "0xac9650d8",
                "0xac9650d80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xadc0dc3b",
            "selector": "0xadc0dc3b",
            "calldata_variants": [
                "0xadc0dc3b",
                "0xadc0dc3b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda4886df",
            "selector": "0xda4886df",
            "calldata_variants": [
                "0xda4886df",
                "0xda4886df0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x95a8c58d",
            "selector": "0x95a8c58d",
            "calldata_variants": [
                "0x95a8c58d",
                "0x95a8c58d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3162,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
high upgradeability codex Re-initializable setup can grant operator/flow-limiter roles to an attacker 85 no
view
evidence_json
{
    "evidence": "`setup` is `external` and gated only by `onlyProxy`; it unconditionally calls `_addAccountRoles` for the supplied operator and the service, with no one-time initialization check, so repeated calls accumulate privileged roles.",
    "locations": [
        "contracts/contracts/token-manager/TokenManager.sol:101",
        "contracts/contracts/token-manager/TokenManager.sol:110"
    ],
    "recommendation": "Add an initialization guard in `TokenManager.setup` (e.g., an `initialized` flag in unstructured storage) or ensure the proxy constructor permanently disables further `setup` calls. Consider reverting if roles are already set to prevent role accumulation on re-init.",
    "exploit_scenario": "If the proxy does not enforce a single initialization, any external caller can invoke `setup` on the proxy after deployment with their address encoded in `params_`. This grants them `OPERATOR` and `FLOW_LIMITER` roles, allowing them to change flow limiters and set the flow limit to 0 or an arbitrarily large value, potentially disabling rate limits relied on by the service."
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x15f4b5d14dc747c479add8d6b3e80709a6ac2688aa916215d82559fa2de1bbcf
call_targets: 0x8832f0381707bb29756edecf42580800207f2a9e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x15f4b5d14dc747c479add8d6b3e80709a6ac2688aa916215d82559fa2de1bbcf",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x8832f0381707bb29756edecf42580800207f2a9e"
    ],
    "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": "0xdce29136",
            "selector": "0xdce29136",
            "calldata_variants": [
                "0xdce29136",
                "0xdce291360000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdeb11e78",
            "selector": "0xdeb11e78",
            "calldata_variants": [
                "0xdeb11e78",
                "0xdeb11e780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe915cfd1",
            "selector": "0xe915cfd1",
            "calldata_variants": [
                "0xe915cfd1",
                "0xe915cfd10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5983e83",
            "selector": "0xf5983e83",
            "calldata_variants": [
                "0xf5983e83",
                "0xf5983e830000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xac9650d8",
            "selector": "0xac9650d8",
            "calldata_variants": [
                "0xac9650d8",
                "0xac9650d80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xadc0dc3b",
            "selector": "0xadc0dc3b",
            "calldata_variants": [
                "0xadc0dc3b",
                "0xadc0dc3b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda4886df",
            "selector": "0xda4886df",
            "calldata_variants": [
                "0xda4886df",
                "0xda4886df0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x95a8c58d",
            "selector": "0x95a8c58d",
            "calldata_variants": [
                "0x95a8c58d",
                "0x95a8c58d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3787,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 1,
    "guards_detected": [],
    "untrusted_call_count": 1
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x15f4b5d14dc747c479add8d6b3e80709a6ac2688aa916215d82559fa2de1bbcf
call_targets: 0x8832f0381707bb29756edecf42580800207f2a9e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x15f4b5d14dc747c479add8d6b3e80709a6ac2688aa916215d82559fa2de1bbcf",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x8832f0381707bb29756edecf42580800207f2a9e"
    ],
    "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": "0xdce29136",
            "selector": "0xdce29136",
            "calldata_variants": [
                "0xdce29136",
                "0xdce291360000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdeb11e78",
            "selector": "0xdeb11e78",
            "calldata_variants": [
                "0xdeb11e78",
                "0xdeb11e780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe915cfd1",
            "selector": "0xe915cfd1",
            "calldata_variants": [
                "0xe915cfd1",
                "0xe915cfd10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5983e83",
            "selector": "0xf5983e83",
            "calldata_variants": [
                "0xf5983e83",
                "0xf5983e830000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xac9650d8",
            "selector": "0xac9650d8",
            "calldata_variants": [
                "0xac9650d8",
                "0xac9650d80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xadc0dc3b",
            "selector": "0xadc0dc3b",
            "calldata_variants": [
                "0xadc0dc3b",
                "0xadc0dc3b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda4886df",
            "selector": "0xda4886df",
            "calldata_variants": [
                "0xda4886df",
                "0xda4886df0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x95a8c58d",
            "selector": "0x95a8c58d",
            "calldata_variants": [
                "0x95a8c58d",
                "0x95a8c58d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3787,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 1,
    "guards_detected": []
}
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 CREATE/CREATE2 reachable 45 no no
view
trace_id: 0xe5ba42503e2823e4f3b8f571b934d5a8964f0fdc6519631fc07b1333a0d1f8ef
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0xe5ba42503e2823e4f3b8f571b934d5a8964f0fdc6519631fc07b1333a0d1f8ef",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xdce29136",
            "selector": "0xdce29136",
            "calldata_variants": [
                "0xdce29136",
                "0xdce291360000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdeb11e78",
            "selector": "0xdeb11e78",
            "calldata_variants": [
                "0xdeb11e78",
                "0xdeb11e780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe915cfd1",
            "selector": "0xe915cfd1",
            "calldata_variants": [
                "0xe915cfd1",
                "0xe915cfd10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5983e83",
            "selector": "0xf5983e83",
            "calldata_variants": [
                "0xf5983e83",
                "0xf5983e830000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xac9650d8",
            "selector": "0xac9650d8",
            "calldata_variants": [
                "0xac9650d8",
                "0xac9650d80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xadc0dc3b",
            "selector": "0xadc0dc3b",
            "calldata_variants": [
                "0xadc0dc3b",
                "0xadc0dc3b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda4886df",
            "selector": "0xda4886df",
            "calldata_variants": [
                "0xda4886df",
                "0xda4886df0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x95a8c58d",
            "selector": "0x95a8c58d",
            "calldata_variants": [
                "0x95a8c58d",
                "0x95a8c58d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}