9f165857-e441-49d5-955a-03f4c7445c6c
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 30398 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 74572 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 74573 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 74574 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 74575 | capability.graph | complete | 1 / 3 | 1 week ago |
| 74576 | detector.run | complete | 1 / 3 | 1 week ago |
| 74577 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1332576] OpenAI Codex v0.77.0 (research preview)
[codex:1332576] --------
[codex:1332576] workdir: /tmp/codex-multi-9rwzhmav
[codex:1332576] model: gpt-5.2-codex
[codex:1332576] provider: openai
[codex:1332576] approval: never
[codex:1332576] sandbox: read-only
[codex:1332576] reasoning effort: xhigh
[codex:1332576] reasoning summaries: auto
[codex:1332576] session id: 019b6839-9bd7-78a1-ae8b-a9b0af424824
[codex:1332576] --------
[codex:1332576] user
[codex:1332576] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1332576] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1332576] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1332576]
[codex:1332576] Scope rules:
[codex:1332576] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1332576] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1332576]
[codex:1332576] Output MUST be valid JSON matching the provided schema.
[codex:1332576] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1332576] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1332576]
[codex:1332576] Output constraints (IMPORTANT):
[codex:1332576] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1332576] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1332576] mcp startup: no servers
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Preparing to read audit instructions**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc ls in /tmp/codex-multi-9rwzhmav succeeded in 5ms:
[codex:1332576] AUDIT_BUNDLE.txt
[codex:1332576] codex-output-schema.json
[codex:1332576] contracts
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Reading AUDIT_BUNDLE.txt**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-9rwzhmav succeeded in 6ms:
[codex:1332576] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1332576]
[codex:1332576] ================================================================================
[codex:1332576] FILE: contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol
[codex:1332576] ================================================================================
[codex:1332576] // SPDX-License-Identifier: MIT
[codex:1332576] // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)
[codex:1332576]
[codex:1332576] pragma solidity ^0.8.0;
[codex:1332576]
[codex:1332576] /**
[codex:1332576] * @dev Interface of the ERC20 standard as defined in the EIP.
[codex:1332576] */
[codex:1332576] interface IERC20 {
[codex:1332576] /**
[codex:1332576] * @dev Emitted when `value` tokens are moved from one account (`from`) to
[codex:1332576] * another (`to`).
[codex:1332576] *
[codex:1332576] * Note that `value` may be zero.
[codex:1332576] */
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Preparing to analyze first-party contracts**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc 'rg --line-number "contract |library |interface " contracts/contracts -g"*.sol"' in /tmp/codex-multi-9rwzhmav succeeded in 11ms:
[codex:1332576] contracts/contracts/libs/Message.sol:10:library Message {
[codex:1332576] contracts/contracts/interfaces/hooks/IPostDispatchHook.sol:16:interface IPostDispatchHook {
[codex:1332576] contracts/contracts/client/GasRouter.sol:20:abstract contract GasRouter is Router {
[codex:1332576] contracts/contracts/libs/TypeCasts.sol:4:library TypeCasts {
[codex:1332576] contracts/contracts/interfaces/IMessageRecipient.sol:4:interface IMessageRecipient {
[codex:1332576] contracts/contracts/interfaces/ITokenBridge.sol:9:interface ITokenBridge {
[codex:1332576] contracts/contracts/client/MailboxClient.sol:27:abstract contract MailboxClient is OwnableUpgradeable, PackageVersioned {
[codex:1332576] contracts/contracts/client/MailboxClient.sol:54: Address.isContract(_contract) || _contract == address(0),
[codex:1332576] contracts/contracts/client/MailboxClient.sol:55: "MailboxClient: invalid contract setting"
[codex:1332576] contracts/contracts/libs/EnumerableMapExtended.sol:10:library EnumerableMapExtended {
[codex:1332576] contracts/contracts/PackageVersioned.sol:8:abstract contract PackageVersioned {
[codex:1332576] contracts/contracts/interfaces/IInterchainSecurityModule.sol:4:interface IInterchainSecurityModule {
[codex:1332576] contracts/contracts/interfaces/IInterchainSecurityModule.sol:41:interface ISpecifiesInterchainSecurityModule {
[codex:1332576] contracts/contracts/client/Router.sol:13:abstract contract Router is MailboxClient, IMessageRecipient {
[codex:1332576] contracts/contracts/client/Router.sol:31: * @notice Returns the address of the Router contract for the given domain
[codex:1332576] contracts/contracts/client/Router.sol:34: * @return router The address of the Router contract for the given domain
[codex:1332576] contracts/contracts/client/Router.sol:50: * @notice Register the address of a Router contract for the same Application on a remote chain
[codex:1332576] contracts/contracts/interfaces/IMailbox.sol:7:interface IMailbox {
[codex:1332576] contracts/contracts/token/HypERC20Collateral.sol:35:contract HypERC20Collateral is MovableCollateralRouter {
[codex:1332576] contracts/contracts/token/HypERC20Collateral.sol:92: * @dev Transfers `_amount` of `wrappedToken` from this contract to `_recipient`.
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Opening and inspecting core contract files**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,200p' contracts/contracts/libs/Message.sol" in /tmp/codex-multi-9rwzhmav succeeded in 6ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.8.0;
[codex:1332576]
[codex:1332576] import {TypeCasts} from "./TypeCasts.sol";
[codex:1332576]
[codex:1332576] /**
[codex:1332576] * @title Hyperlane Message Library
[codex:1332576] * @notice Library for formatted messages used by Mailbox
[codex:1332576] **/
[codex:1332576] library Message {
[codex:1332576] using TypeCasts for bytes32;
[codex:1332576]
[codex:1332576] uint256 private constant VERSION_OFFSET = 0;
[codex:1332576] uint256 private constant NONCE_OFFSET = 1;
[codex:1332576] uint256 private constant ORIGIN_OFFSET = 5;
[codex:1332576] uint256 private constant SENDER_OFFSET = 9;
[codex:1332576] uint256 private constant DESTINATION_OFFSET = 41;
[codex:1332576] uint256 private constant RECIPIENT_OFFSET = 45;
[codex:1332576] uint256 private constant BODY_OFFSET = 77;
[codex:1332576]
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Proceeding to TypeCasts**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,200p' contracts/contracts/libs/TypeCasts.sol" in /tmp/codex-multi-9rwzhmav succeeded in 5ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.6.11;
[codex:1332576]
[codex:1332576] library TypeCasts {
[codex:1332576] // alignment preserving cast
[codex:1332576] function addressToBytes32(address _addr) internal pure returns (bytes32) {
[codex:1332576] return bytes32(uint256(uint160(_addr)));
[codex:1332576] }
[codex:1332576]
[codex:1332576] // alignment preserving cast
[codex:1332576] function bytes32ToAddress(bytes32 _buf) internal pure returns (address) {
[codex:1332576] require(
[codex:1332576] uint256(_buf) <= uint256(type(uint160).max),
[codex:1332576] "TypeCasts: bytes32ToAddress overflow"
[codex:1332576] );
[codex:1332576] return address(uint160(uint256(_buf)));
[codex:1332576] }
[codex:1332576] }
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Starting review of EnumerableMapExtended**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,200p' contracts/contracts/libs/EnumerableMapExtended.sol" in /tmp/codex-multi-9rwzhmav succeeded in 5ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.6.11;
[codex:1332576]
[codex:1332576] // ============ External Imports ============
[codex:1332576] import "@openzeppelin/contracts/utils/structs/EnumerableMap.sol";
[codex:1332576] import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
[codex:1332576]
[codex:1332576] // extends EnumerableMap with uint256 => bytes32 type
[codex:1332576] // modelled after https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.0/contracts/utils/structs/EnumerableMap.sol
[codex:1332576] library EnumerableMapExtended {
[codex:1332576] using EnumerableMap for EnumerableMap.Bytes32ToBytes32Map;
[codex:1332576] using EnumerableSet for EnumerableSet.Bytes32Set;
[codex:1332576]
[codex:1332576] struct UintToBytes32Map {
[codex:1332576] EnumerableMap.Bytes32ToBytes32Map _inner;
[codex:1332576] }
[codex:1332576]
[codex:1332576] // ============ Library Functions ============
[codex:1332576] function keys(
[codex:1332576] UintToBytes32Map storage map
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Moving on to PackageVersioned**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,200p' contracts/contracts/PackageVersioned.sol" in /tmp/codex-multi-9rwzhmav succeeded in 5ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.6.11;
[codex:1332576]
[codex:1332576] /**
[codex:1332576] * @title PackageVersioned
[codex:1332576] * @notice Package version getter for contracts
[codex:1332576] **/
[codex:1332576] abstract contract PackageVersioned {
[codex:1332576] // GENERATED CODE - DO NOT EDIT
[codex:1332576] string public constant PACKAGE_VERSION = "8.1.1";
[codex:1332576] }
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Spotting MailboxClient mention**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,240p' contracts/contracts/client/MailboxClient.sol" in /tmp/codex-multi-9rwzhmav succeeded in 7ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.6.11;
[codex:1332576]
[codex:1332576] /*@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1332576] @@@@@ HYPERLANE @@@@@@@
[codex:1332576] @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@*/
[codex:1332576]
[codex:1332576] // ============ Internal Imports ============
[codex:1332576] import {IMailbox} from "../interfaces/IMailbox.sol";
[codex:1332576] import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
[codex:1332576] import {IInterchainSecurityModule} from "../interfaces/IInterchainSecurityModule.sol";
[codex:1332576] import {Message} from "../libs/Message.sol";
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Examining upgradeability concerns**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,260p' contracts/contracts/client/GasRouter.sol" in /tmp/codex-multi-9rwzhmav succeeded in 5ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.6.11;
[codex:1332576]
[codex:1332576] /*@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1332576] @@@@@ HYPERLANE @@@@@@@
[codex:1332576] @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@*/
[codex:1332576]
[codex:1332576] // ============ Internal Imports ============
[codex:1332576] import {Router} from "./Router.sol";
[codex:1332576] import {StandardHookMetadata} from "../hooks/libs/StandardHookMetadata.sol";
[codex:1332576]
[codex:1332576] abstract contract GasRouter is Router {
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Checking router**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,260p' contracts/contracts/client/Router.sol" in /tmp/codex-multi-9rwzhmav succeeded in 5ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.6.11;
[codex:1332576]
[codex:1332576] // ============ Internal Imports ============
[codex:1332576] import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
[codex:1332576] import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
[codex:1332576] import {MailboxClient} from "./MailboxClient.sol";
[codex:1332576] import {EnumerableMapExtended} from "../libs/EnumerableMapExtended.sol";
[codex:1332576]
[codex:1332576] // ============ External Imports ============
[codex:1332576] import {Strings} from "@openzeppelin/contracts/utils/Strings.sol";
[codex:1332576]
[codex:1332576] abstract contract Router is MailboxClient, IMessageRecipient {
[codex:1332576] using EnumerableMapExtended for EnumerableMapExtended.UintToBytes32Map;
[codex:1332576] using Strings for uint32;
[codex:1332576]
[codex:1332576] // ============ Mutable Storage ============
[codex:1332576] /// @dev Mapping of domain => router. For a given domain we have one router we send/receive messages from.
[codex:1332576] EnumerableMapExtended.UintToBytes32Map internal _routers;
[codex:1332576]
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Examining router and mailbox interfaces**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,220p' contracts/contracts/interfaces/IMailbox.sol" in /tmp/codex-multi-9rwzhmav succeeded in 5ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.8.0;
[codex:1332576]
[codex:1332576] import {IInterchainSecurityModule} from "./IInterchainSecurityModule.sol";
[codex:1332576] import {IPostDispatchHook} from "./hooks/IPostDispatchHook.sol";
[codex:1332576]
[codex:1332576] interface IMailbox {
[codex:1332576] // ============ Events ============
[codex:1332576] /**
[codex:1332576] * @notice Emitted when a new message is dispatched via Hyperlane
[codex:1332576] * @param sender The address that dispatched the message
[codex:1332576] * @param destination The destination domain of the message
[codex:1332576] * @param recipient The message recipient address on `destination`
[codex:1332576] * @param message Raw bytes of message
[codex:1332576] */
[codex:1332576] event Dispatch(
[codex:1332576] address indexed sender,
[codex:1332576] uint32 indexed destination,
[codex:1332576] bytes32 indexed recipient,
[codex:1332576] bytes message
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Reviewing additional interfaces**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,120p' contracts/contracts/interfaces/IMessageRecipient.sol" in /tmp/codex-multi-9rwzhmav succeeded in 6ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.6.11;
[codex:1332576]
[codex:1332576] interface IMessageRecipient {
[codex:1332576] function handle(
[codex:1332576] uint32 _origin,
[codex:1332576] bytes32 _sender,
[codex:1332576] bytes calldata _message
[codex:1332576] ) external payable;
[codex:1332576] }
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Considering ITokenBridge**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,200p' contracts/contracts/interfaces/ITokenBridge.sol" in /tmp/codex-multi-9rwzhmav succeeded in 5ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.8.0;
[codex:1332576]
[codex:1332576] struct Quote {
[codex:1332576] address token; // address(0) for the native token
[codex:1332576] uint256 amount;
[codex:1332576] }
[codex:1332576]
[codex:1332576] interface ITokenBridge {
[codex:1332576] /**
[codex:1332576] * @notice Transfer value to another domain
[codex:1332576] * @param _destination The destination domain of the message
[codex:1332576] * @param _recipient The message recipient address on `destination`
[codex:1332576] * @param _amount The amount to send to the recipient
[codex:1332576] * @return messageId The identifier of the dispatched message.
[codex:1332576] */
[codex:1332576] function transferRemote(
[codex:1332576] uint32 _destination,
[codex:1332576] bytes32 _recipient,
[codex:1332576] uint256 _amount
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Examining InterchainSecurityModule and hooks**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,200p' contracts/contracts/interfaces/IInterchainSecurityModule.sol" in /tmp/codex-multi-9rwzhmav succeeded in 6ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.6.11;
[codex:1332576]
[codex:1332576] interface IInterchainSecurityModule {
[codex:1332576] enum Types {
[codex:1332576] UNUSED,
[codex:1332576] ROUTING,
[codex:1332576] AGGREGATION,
[codex:1332576] LEGACY_MULTISIG,
[codex:1332576] MERKLE_ROOT_MULTISIG,
[codex:1332576] MESSAGE_ID_MULTISIG,
[codex:1332576] NULL, // used with relayer carrying no metadata
[codex:1332576] CCIP_READ,
[codex:1332576] ARB_L2_TO_L1,
[codex:1332576] WEIGHTED_MERKLE_ROOT_MULTISIG,
[codex:1332576] WEIGHTED_MESSAGE_ID_MULTISIG,
[codex:1332576] OP_L2_TO_L1
[codex:1332576] }
[codex:1332576]
[codex:1332576] /**
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Checking for hooks**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,200p' contracts/contracts/interfaces/hooks/IPostDispatchHook.sol" in /tmp/codex-multi-9rwzhmav succeeded in 5ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.8.0;
[codex:1332576]
[codex:1332576] /*@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1332576] @@@@@ HYPERLANE @@@@@@@
[codex:1332576] @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@*/
[codex:1332576]
[codex:1332576] interface IPostDispatchHook {
[codex:1332576] enum Types {
[codex:1332576] UNUSED,
[codex:1332576] ROUTING,
[codex:1332576] AGGREGATION,
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Identifying StandardHookMetadata**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,200p' contracts/contracts/hooks/libs/StandardHookMetadata.sol" in /tmp/codex-multi-9rwzhmav succeeded in 6ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.8.0;
[codex:1332576]
[codex:1332576] /*@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1332576] @@@@@ HYPERLANE @@@@@@@
[codex:1332576] @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@*/
[codex:1332576]
[codex:1332576] /**
[codex:1332576] * Format of metadata:
[codex:1332576] *
[codex:1332576] * [0:2] variant
[codex:1332576] * [2:34] msg.value
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '200,400p' contracts/contracts/hooks/libs/StandardHookMetadata.sol" in /tmp/codex-multi-9rwzhmav succeeded in 6ms:
[codex:1332576] if (_metadata.length < REFUND_ADDRESS_OFFSET + 20) return _default;
[codex:1332576] address result;
[codex:1332576] assembly {
[codex:1332576] let data_start_ptr := add(_metadata, 32) // Skip length prefix of _metadata
[codex:1332576] let mload_ptr := add(data_start_ptr, sub(REFUND_ADDRESS_OFFSET, 12))
[codex:1332576] result := mload(mload_ptr) // Loads 32 bytes; address takes lower 20 bytes.
[codex:1332576] }
[codex:1332576] return result;
[codex:1332576] }
[codex:1332576] }
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Inspecting HypERC20Collateral.sol**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "sed -n '1,240p' contracts/contracts/token/HypERC20Collateral.sol" in /tmp/codex-multi-9rwzhmav succeeded in 5ms:
[codex:1332576] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1332576] pragma solidity >=0.8.0;
[codex:1332576]
[codex:1332576] /*@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1332576] @@@@@ HYPERLANE @@@@@@@
[codex:1332576] @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@@
[codex:1332576] @@@@@@@@@ @@@@@@@@*/
[codex:1332576]
[codex:1332576] // ============ Internal Imports ============
[codex:1332576] import {TokenMessage} from "./libs/TokenMessage.sol";
[codex:1332576] import {TokenRouter} from "./libs/TokenRouter.sol";
[codex:1332576] import {FungibleTokenRouter} from "./libs/FungibleTokenRouter.sol";
[codex:1332576] import {MovableCollateralRouter} from "./libs/MovableCollateralRouter.sol";
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Analyzing potential reentrancy and initialization risks**
[codex:1332576]
[codex:1332576] There's a lot going on here! I'm weighing possible reentrancy issues mainly around token transfers, especially with non-standard tokens like ERC777 that could trigger callbacks during safeTransfer. However, since the contract doesn’t keep internal accounting, reentrancy risk seems limited. The big concern is around the initialization pattern—using both constructor and a public initializer with OwnableUpgradeable means an attacker might seize ownership if initialize isn’t called promptly after deployment. This typical uninitialized contract vulnerability is a high-severity access control risk if initialization isn’t carefully managed. I'll keep digging into how these patterns interplay and look for usage of the initializer elsewhere.
[codex:1332576] exec
[codex:1332576] /bin/bash -lc 'rg --line-number "initializer|onlyInitializing|_disableInitializers" contracts/contracts -g"*.sol"' in /tmp/codex-multi-9rwzhmav succeeded in 10ms:
[codex:1332576] contracts/contracts/client/MailboxClient.sol:113: ) internal onlyInitializing {
[codex:1332576] contracts/contracts/token/HypERC20Collateral.sol:57: ) public virtual initializer {
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Analyzing initialization and access control risks**
[codex:1332576]
[codex:1332576] I'm assessing the HypERC20Collateral initializer's exposure to front-running and ownership takeover risks, weighing deployment nuances like direct vs proxy use. I’m also evaluating token bridging logic for external call risks, cross-chain trust factors, rounding effects on amounts, and internal cleanup methods, while preparing to check for delegatecall usage next.
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "rg --line-number \"delegatecall|call\\{\" contracts/contracts -g\"*.sol\"" in /tmp/codex-multi-9rwzhmav exited 1 in 10ms:
[codex:1332576]
[codex:1332576]
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Analyzing contract security and potential risks**
[codex:1332576]
[codex:1332576] I’m combing through the contract code for issues like reentrancy, access control gaps, token approval quirks, and upgradeability concerns. There’s a detailed look at external calls, allowance handling for tokens, mailbox trust assumptions, and initializer vulnerabilities in non-proxy deployments, all to understand possible attack vectors and subtle risks.
[codex:1332576] thinking
[codex:1332576] **Verifying complete code coverage**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc 'rg --files contracts/contracts -g"*.sol"' in /tmp/codex-multi-9rwzhmav succeeded in 8ms:
[codex:1332576] contracts/contracts/interfaces/hooks/IPostDispatchHook.sol
[codex:1332576] contracts/contracts/interfaces/IMessageRecipient.sol
[codex:1332576] contracts/contracts/interfaces/ITokenBridge.sol
[codex:1332576] contracts/contracts/interfaces/IInterchainSecurityModule.sol
[codex:1332576] contracts/contracts/interfaces/IMailbox.sol
[codex:1332576] contracts/contracts/libs/Message.sol
[codex:1332576] contracts/contracts/libs/TypeCasts.sol
[codex:1332576] contracts/contracts/libs/EnumerableMapExtended.sol
[codex:1332576] contracts/contracts/PackageVersioned.sol
[codex:1332576] contracts/contracts/client/GasRouter.sol
[codex:1332576] contracts/contracts/client/MailboxClient.sol
[codex:1332576] contracts/contracts/client/Router.sol
[codex:1332576] contracts/contracts/hooks/libs/StandardHookMetadata.sol
[codex:1332576] contracts/contracts/token/HypERC20Collateral.sol
[codex:1332576] contracts/contracts/token/interfaces/ValueTransferBridge.sol
[codex:1332576] contracts/contracts/token/libs/FungibleTokenRouter.sol
[codex:1332576] contracts/contracts/token/libs/TokenMessage.sol
[codex:1332576] contracts/contracts/token/libs/TokenRouter.sol
[codex:1332576] contracts/contracts/token/libs/MovableCollateralRouter.sol
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Analyzing security in HypERC20Collateral and MailboxClient**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "nl -ba contracts/contracts/token/HypERC20Collateral.sol | sed -n '40,120p'" in /tmp/codex-multi-9rwzhmav succeeded in 6ms:
[codex:1332576] 40 /**
[codex:1332576] 41 * @notice Constructor
[codex:1332576] 42 * @param erc20 Address of the token to keep as collateral
[codex:1332576] 43 */
[codex:1332576] 44 constructor(
[codex:1332576] 45 address erc20,
[codex:1332576] 46 uint256 _scale,
[codex:1332576] 47 address _mailbox
[codex:1332576] 48 ) FungibleTokenRouter(_scale, _mailbox) {
[codex:1332576] 49 require(Address.isContract(erc20), "HypERC20Collateral: invalid token");
[codex:1332576] 50 wrappedToken = IERC20(erc20);
[codex:1332576] 51 }
[codex:1332576] 52
[codex:1332576] 53 function initialize(
[codex:1332576] 54 address _hook,
[codex:1332576] 55 address _interchainSecurityModule,
[codex:1332576] 56 address _owner
[codex:1332576] 57 ) public virtual initializer {
[codex:1332576] 58 _MailboxClient_initialize(_hook, _interchainSecurityModule, _owner);
[codex:1332576] 59 }
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Examining MailboxClient constructor**
[codex:1332576] exec
[codex:1332576] /bin/bash -lc "nl -ba contracts/contracts/client/MailboxClient.sol | sed -n '70,150p'" in /tmp/codex-multi-9rwzhmav succeeded in 6ms:
[codex:1332576] 70
[codex:1332576] 71 constructor(address _mailbox) onlyContract(_mailbox) {
[codex:1332576] 72 mailbox = IMailbox(_mailbox);
[codex:1332576] 73 localDomain = mailbox.localDomain();
[codex:1332576] 74 _transferOwnership(msg.sender);
[codex:1332576] 75 }
[codex:1332576] 76
[codex:1332576] 77 function interchainSecurityModule()
[codex:1332576] 78 external
[codex:1332576] 79 view
[codex:1332576] 80 virtual
[codex:1332576] 81 returns (IInterchainSecurityModule)
[codex:1332576] 82 {
[codex:1332576] 83 return _interchainSecurityModule;
[codex:1332576] 84 }
[codex:1332576] 85
[codex:1332576] 86 /**
[codex:1332576] 87 * @notice Sets the address of the application's custom hook.
[codex:1332576] 88 * @param _hook The address of the hook contract.
[codex:1332576] 89 */
[codex:1332576]
[codex:1332576] thinking
[codex:1332576] **Analyzing initializer vulnerability and ownership risks**
[codex:1332576]
[codex:1332576] I’m sorting through a significant security flaw where the public initializer in HypERC20Collateral and MailboxClient allows any attacker to seize ownership after deployment because the constructor doesn’t lock initialization. This permits an attacker to call `initialize` once, overriding the deployer's ownership and gaining full control, which could lead to malicious router enrollments and collateral redirection. I’m checking other potential issues but only this initializer weakness stands out as high severity due to its impact. Now I’ll prepare a detailed vulnerability description and recommendations for fixing the issue.
[codex:1332576] exec
[codex:1332576] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-9rwzhmav succeeded in 5ms:
[codex:1332576] {"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:1332576]
[codex:1332576] thinking
[codex:1332576] **Preparing detailed vulnerability report JSON**
[codex:1332576] codex
[codex:1332576] {"no_findings":false,"summary":"Found 1 high-severity issue: a public initializer can be called post-deployment to take ownership and reconfigure the router.","findings":[{"severity":"high","category":"upgradeability","title":"Public initializer allows post-deployment ownership takeover","exploit_scenario":"After deployment, an attacker calls `initialize` before the intended owner does (or at any time if it was never called). Because `initialize` is public and only gated by `initializer`, it can be called once by anyone and it invokes `__Ownable_init()` plus `_transferOwnership(_owner)`. The attacker sets themselves as owner, then can enroll malicious routers, set a compromised hook/ISM, add themselves as rebalancer, and move collateral via `rebalance`.","recommendation":"If this contract is intended for proxy deployments, add `_disableInitializers()` in the constructor of the implementation and ensure the proxy calls `initialize` immediately. If it is intended for direct deployments, either call `_MailboxClient_initialize(...)` in the constructor and remove the public `initialize`, or restrict `initialize` to a trusted deployer/onlyOwner and call it in the same transaction as deployment.","evidence":"`HypERC20Collateral.initialize` is `public` and only uses `initializer`, but it calls `_MailboxClient_initialize` which runs `__Ownable_init()` and `_transferOwnership(_owner)`, while the constructor already sets owner and does not disable initializers.","locations":["contracts/contracts/token/HypERC20Collateral.sol:53","contracts/contracts/client/MailboxClient.sol:71","contracts/contracts/client/MailboxClient.sol:109"]}]}
[codex:1332576] tokens used
[codex:1332576] 43,841
[codex:1332576] {"no_findings":false,"summary":"Found 1 high-severity issue: a public initializer can be called post-deployment to take ownership and reconfigure the router.","findings":[{"severity":"high","category":"upgradeability","title":"Public initializer allows post-deployment ownership takeover","exploit_scenario":"After deployment, an attacker calls `initialize` before the intended owner does (or at any time if it was never called). Because `initialize` is public and only gated by `initializer`, it can be called once by anyone and it invokes `__Ownable_init()` plus `_transferOwnership(_owner)`. The attacker sets themselves as owner, then can enroll malicious routers, set a compromised hook/ISM, add themselves as rebalancer, and move collateral via `rebalance`.","recommendation":"If this contract is intended for proxy deployments, add `_disableInitializers()` in the constructor of the implementation and ensure the proxy calls `initialize` immediately. If it is intended for direct deployments, either call `_MailboxClient_initialize(...)` in the constructor and remove the public `initialize`, or restrict `initialize` to a trusted deployer/onlyOwner and call it in the same transaction as deployment.","evidence":"`HypERC20Collateral.initialize` is `public` and only uses `initializer`, but it calls `_MailboxClient_initialize` which runs `__Ownable_init()` and `_transferOwnership(_owner)`, while the constructor already sets owner and does not disable initializers.","locations":["contracts/contracts/token/HypERC20Collateral.sol:53","contracts/contracts/client/MailboxClient.sol:71","contracts/contracts/client/MailboxClient.sol:109"]}]}
{
"codex": {
"ran_at": "2025-12-29T03:53:53.854865+00:00",
"returncode": 0
},
"summary": "Found 1 high-severity issue: a public initializer can be called post-deployment to take ownership and reconfigure the router.",
"raw_final": {
"summary": "Found 1 high-severity issue: a public initializer can be called post-deployment to take ownership and reconfigure the router.",
"findings": [
{
"title": "Public initializer allows post-deployment ownership takeover",
"category": "upgradeability",
"evidence": "`HypERC20Collateral.initialize` is `public` and only uses `initializer`, but it calls `_MailboxClient_initialize` which runs `__Ownable_init()` and `_transferOwnership(_owner)`, while the constructor already sets owner and does not disable initializers.",
"severity": "high",
"locations": [
"contracts/contracts/token/HypERC20Collateral.sol:53",
"contracts/contracts/client/MailboxClient.sol:71",
"contracts/contracts/client/MailboxClient.sol:109"
],
"recommendation": "If this contract is intended for proxy deployments, add `_disableInitializers()` in the constructor of the implementation and ensure the proxy calls `initialize` immediately. If it is intended for direct deployments, either call `_MailboxClient_initialize(...)` in the constructor and remove the public `initialize`, or restrict `initialize` to a trusted deployer/onlyOwner and call it in the same transaction as deployment.",
"exploit_scenario": "After deployment, an attacker calls `initialize` before the intended owner does (or at any time if it was never called). Because `initialize` is public and only gated by `initializer`, it can be called once by anyone and it invokes `__Ownable_init()` plus `_transferOwnership(_owner)`. The attacker sets themselves as owner, then can enroll malicious routers, set a compromised hook/ISM, add themselves as rebalancer, and move collateral via `rebalance`."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x02a0 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x81b4e8b4 00000019: GT 0000001a: PUSH2 0x016e 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xc69c8ce2 00000024: GT 00000025: PUSH2 0x00cb 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xf2ed8c53 0000002f: GT 00000030: PUSH2 0x007f 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xf51e181a 0000003a: GT 0000003b: PUSH2 0x0064 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xf51e181a 00000045: EQ 00000046: PUSH2 0x07f9 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xfa57f157 00000050: EQ 00000051: PUSH2 0x082d 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xfbaca44c 0000005b: EQ 0000005c: PUSH2 0x084d 0000005f: JUMPI 00000060: PUSH1 0x00 00000062: DUP1 00000063: REVERT 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xf2ed8c53 0000006b: EQ 0000006c: PUSH2 0x07b9 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xf2fde38b 00000076: EQ 00000077: PUSH2 0x07d9 0000007a: JUMPI 0000007b: PUSH1 0x00 0000007d: DUP1 0000007e: REVERT 0000007f: JUMPDEST 00000080: DUP1 00000081: PUSH4 0xde523cf3 00000086: GT 00000087: PUSH2 0x00b0 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0xde523cf3 00000091: EQ 00000092: PUSH2 0x074e 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0xe9198bf9 0000009c: EQ 0000009d: PUSH2 0x0779 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xefae508a 000000a7: EQ 000000a8: PUSH2 0x0799 000000ab: JUMPI 000000ac: PUSH1 0x00 000000ae: DUP1 000000af: REVERT 000000b0: JUMPDEST 000000b1: DUP1 000000b2: PUSH4 0xc69c8ce2 000000b7: EQ 000000b8: PUSH2 0x0705 000000bb: JUMPI 000000bc: DUP1 000000bd: PUSH4 0xd5438eae 000000c2: EQ 000000c3: PUSH2 0x071a 000000c6: JUMPI 000000c7: PUSH1 0x00 000000c9: DUP1 000000ca: REVERT 000000cb: JUMPDEST 000000cc: DUP1 000000cd: PUSH4 0x996c6cc3 000000d2: GT 000000d3: PUSH2 0x0122 000000d6: JUMPI 000000d7: DUP1 000000d8: PUSH4 0xb49c53a7 000000dd: GT 000000de: PUSH2 0x0107 000000e1: JUMPI 000000e2: DUP1 000000e3: PUSH4 0xb49c53a7 000000e8: EQ 000000e9: PUSH2 0x06a5 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0xc0c53b8b 000000f3: EQ 000000f4: PUSH2 0x06c5 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0xc3827115 000000fe: EQ 000000ff: PUSH2 0x06e5 00000102: JUMPI 00000103: PUSH1 0x00 00000105: DUP1 00000106: REVERT 00000107: JUMPDEST 00000108: DUP1 00000109: PUSH4 0x996c6cc3 0000010e: EQ 0000010f: PUSH2 0x0651 00000112: JUMPI 00000113: DUP1 00000114: PUSH4 0xb1bd6436 00000119: EQ 0000011a: PUSH2 0x0685 0000011d: JUMPI 0000011e: PUSH1 0x00 00000120: DUP1 00000121: REVERT 00000122: JUMPDEST 00000123: DUP1 00000124: PUSH4 0x8d3638f4 00000129: GT 0000012a: PUSH2 0x0153 0000012d: JUMPI 0000012e: DUP1 0000012f: PUSH4 0x8d3638f4 00000134: EQ 00000135: PUSH2 0x0587 00000138: JUMPI 00000139: DUP1 0000013a: PUSH4 0x8da5cb5b 0000013f: EQ 00000140: PUSH2 0x05d0 00000143: JUMPI 00000144: DUP1 00000145: PUSH4 0x93c44847 0000014a: EQ 0000014b: PUSH2 0x05fb 0000014e: JUMPI 0000014f: PUSH1 0x00 00000151: DUP1 00000152: REVERT 00000153: JUMPDEST 00000154: DUP1 00000155: PUSH4 0x81b4e8b4 0000015a: EQ 0000015b: PUSH2 0x0547 0000015e: JUMPI 0000015f: DUP1 00000160: PUSH4 0x8bd90b82 00000165: EQ 00000166: PUSH2 0x055a 00000169: JUMPI 0000016a: PUSH1 0x00 0000016c: DUP1 0000016d: REVERT 0000016e: JUMPDEST 0000016f: DUP1 00000170: PUSH4 0x4e38a81d 00000175: GT 00000176: PUSH2 0x021c 00000179: JUMPI 0000017a: DUP1 0000017b: PUSH4 0x715018a6 00000180: GT 00000181: PUSH2 0x01d0 00000184: JUMPI 00000185: DUP1 00000186: PUSH4 0x775313a1 0000018b: GT 0000018c: PUSH2 0x01b5 0000018f: JUMPI 00000190: DUP1 00000191: PUSH4 0x775313a1 00000196: EQ 00000197: PUSH2 0x049b 0000019a: JUMPI 0000019b: DUP1 0000019c: PUSH4 0x77e2dc7a 000001a1: EQ 000001a2: PUSH2 0x04c8 000001a5: JUMPI 000001a6: DUP1 000001a7: PUSH4 0x7f5a7c7b 000001ac: EQ 000001ad: PUSH2 0x04f5 000001b0: JUMPI 000001b1: PUSH1 0x00 000001b3: DUP1 000001b4: REVERT 000001b5: JUMPDEST 000001b6: DUP1 000001b7: PUSH4 0x715018a6 000001bc: EQ 000001bd: PUSH2 0x0466 000001c0: JUMPI 000001c1: DUP1 000001c2: PUSH4 0x71a15b38 000001c7: EQ 000001c8: PUSH2 0x047b 000001cb: JUMPI 000001cc: PUSH1 0x00 000001ce: DUP1 000001cf: REVERT 000001d0: JUMPDEST 000001d1: DUP1 000001d2: PUSH4 0x56d5d475 000001d7: GT 000001d8: PUSH2 0x0201 000001db: JUMPI 000001dc: DUP1 000001dd: PUSH4 0x56d5d475 000001e2: EQ 000001e3: PUSH2 0x0420 000001e6: JUMPI 000001e7: DUP1 000001e8: PUSH4 0x6a99c333 000001ed: EQ 000001ee: PUSH2 0x0433 000001f1: JUMPI 000001f2: DUP1 000001f3: PUSH4 0x70a08231 000001f8: EQ 000001f9: PUSH2 0x0446 000001fc: JUMPI 000001fd: PUSH1 0x00 000001ff: DUP1 00000200: REVERT 00000201: JUMPDEST 00000202: DUP1 00000203: PUSH4 0x4e38a81d 00000208: EQ 00000209: PUSH2 0x03ed 0000020c: JUMPI 0000020d: DUP1 0000020e: PUSH4 0x51debffc 00000213: EQ 00000214: PUSH2 0x040d 00000217: JUMPI 00000218: PUSH1 0x00 0000021a: DUP1 0000021b: REVERT 0000021c: JUMPDEST 0000021d: DUP1 0000021e: PUSH4 0x2ead72f6 00000223: GT 00000224: PUSH2 0x0273 00000227: JUMPI 00000228: DUP1 00000229: PUSH4 0x43bc4b9a 0000022e: GT 0000022f: PUSH2 0x0258 00000232: JUMPI 00000233: DUP1 00000234: PUSH4 0x43bc4b9a 00000239: EQ 0000023a: PUSH2 0x038b 0000023d: JUMPI 0000023e: DUP1 0000023f: PUSH4 0x440df4f4 00000244: EQ 00000245: PUSH2 0x03ab 00000248: JUMPI 00000249: DUP1 0000024a: PUSH4 0x49d462ef 0000024f: EQ 00000250: PUSH2 0x03cd 00000253: JUMPI 00000254: PUSH1 0x00 00000256: DUP1 00000257: REVERT 00000258: JUMPDEST 00000259: DUP1 0000025a: PUSH4 0x2ead72f6 0000025f: EQ 00000260: PUSH2 0x033d 00000263: JUMPI 00000264: DUP1 00000265: PUSH4 0x3dfd3873 0000026a: EQ 0000026b: PUSH2 0x036b 0000026e: JUMPI 0000026f: PUSH1 0x00 00000271: DUP1 00000272: REVERT 00000273: JUMPDEST 00000274: DUP1 00000275: PUSH4 0x0c979919 0000027a: EQ 0000027b: PUSH2 0x02a5 0000027e: JUMPI 0000027f: DUP1 00000280: PUSH4 0x0e72cc06 00000285: EQ 00000286: PUSH2 0x02c7 00000289: JUMPI 0000028a: DUP1 0000028b: PUSH4 0x1ba83149 00000290: EQ 00000291: PUSH2 0x02e7 00000294: JUMPI 00000295: DUP1 00000296: PUSH4 0x2c2d8089 0000029b: EQ 0000029c: PUSH2 0x031d 0000029f: JUMPI 000002a0: JUMPDEST 000002a1: PUSH1 0x00 000002a3: DUP1 000002a4: REVERT 000002a5: JUMPDEST 000002a6: CALLVALUE 000002a7: DUP1 000002a8: ISZERO 000002a9: PUSH2 0x02b1 000002ac: JUMPI 000002ad: PUSH1 0x00 000002af: DUP1 000002b0: REVERT 000002b1: JUMPDEST 000002b2: POP 000002b3: PUSH2 0x02c5 000002b6: PUSH2 0x02c0 000002b9: CALLDATASIZE 000002ba: PUSH1 0x04 000002bc: PUSH2 0x2d9a 000002bf: JUMP 000002c0: JUMPDEST 000002c1: PUSH2 0x086d 000002c4: JUMP 000002c5: JUMPDEST 000002c6: STOP 000002c7: JUMPDEST 000002c8: CALLVALUE 000002c9: DUP1 000002ca: ISZERO 000002cb: PUSH2 0x02d3 000002ce: JUMPI 000002cf: PUSH1 0x00 000002d1: DUP1 000002d2: REVERT 000002d3: JUMPDEST 000002d4: POP 000002d5: PUSH2 0x02c5 000002d8: PUSH2 0x02e2 000002db: CALLDATASIZE 000002dc: PUSH1 0x04 000002de: PUSH2 0x2d9a 000002e1: JUMP 000002e2: JUMPDEST 000002e3: PUSH2 0x0884 000002e6: JUMP 000002e7: JUMPDEST 000002e8: CALLVALUE 000002e9: DUP1 000002ea: ISZERO 000002eb: PUSH2 0x02f3 000002ee: JUMPI 000002ef: PUSH1 0x00 000002f1: DUP1 000002f2: REVERT 000002f3: JUMPDEST 000002f4: POP 000002f5: PUSH2 0x0307 000002f8: PUSH2 0x0302 000002fb: CALLDATASIZE 000002fc: PUSH1 0x04 000002fe: PUSH2 0x2dd0 00000301: JUMP 00000302: JUMPDEST 00000303: PUSH2 0x09d2 00000306: JUMP 00000307: JUMPDEST 00000308: PUSH1 0x40 0000030a: MLOAD 0000030b: PUSH2 0x0314 0000030e: SWAP2 0000030f: SWAP1 00000310: PUSH2 0x2deb 00000313: JUMP 00000314: JUMPDEST 00000315: PUSH1 0x40 00000317: MLOAD 00000318: DUP1 00000319: SWAP2 0000031a: SUB 0000031b: SWAP1 0000031c: RETURN 0000031d: JUMPDEST 0000031e: CALLVALUE 0000031f: DUP1 00000320: ISZERO 00000321: PUSH2 0x0329 00000324: JUMPI 00000325: PUSH1 0x00 00000327: DUP1 00000328: REVERT 00000329: JUMPDEST 0000032a: POP 0000032b: PUSH2 0x02c5 0000032e: PUSH2 0x0338 00000331: CALLDATASIZE 00000332: PUSH1 0x04 00000334: PUSH2 0x2e45 00000337: JUMP 00000338: JUMPDEST 00000339: PUSH2 0x09f9 0000033c: JUMP 0000033d: JUMPDEST 0000033e: CALLVALUE 0000033f: DUP1 00000340: ISZERO 00000341: PUSH2 0x0349 00000344: JUMPI 00000345: PUSH1 0x00 00000347: DUP1 00000348: REVERT 00000349: JUMPDEST 0000034a: POP 0000034b: PUSH2 0x035d 0000034e: PUSH2 0x0358 00000351: CALLDATASIZE 00000352: PUSH1 0x04 00000354: PUSH2 0x2dd0 00000357: JUMP 00000358: JUMPDEST 00000359: PUSH2 0x0a24 0000035c: JUMP 0000035d: JUMPDEST 0000035e: PUSH1 0x40 00000360: MLOAD 00000361: SWAP1 00000362: DUP2 00000363: MSTORE 00000364: PUSH1 0x20 00000366: ADD 00000367: PUSH2 0x0314 0000036a: JUMP 0000036b: JUMPDEST 0000036c: CALLVALUE 0000036d: DUP1 0000036e: ISZERO 0000036f: PUSH2 0x0377 00000372: JUMPI 00000373: PUSH1 0x00 00000375: DUP1 00000376: REVERT 00000377: JUMPDEST 00000378: POP 00000379: PUSH2 0x02c5 0000037c: PUSH2 0x0386 0000037f: CALLDATASIZE 00000380: PUSH1 0x04 00000382: PUSH2 0x2d9a 00000385: JUMP 00000386: JUMPDEST 00000387: PUSH2 0x0a43 0000038a: JUMP 0000038b: JUMPDEST 0000038c: CALLVALUE 0000038d: DUP1 0000038e: ISZERO 0000038f: PUSH2 0x0397 00000392: JUMPI 00000393: PUSH1 0x00 00000395: DUP1 00000396: REVERT 00000397: JUMPDEST 00000398: POP 00000399: PUSH2 0x02c5 0000039c: PUSH2 0x03a6 0000039f: CALLDATASIZE 000003a0: PUSH1 0x04 000003a2: PUSH2 0x2d9a 000003a5: JUMP 000003a6: JUMPDEST 000003a7: PUSH2 0x0b84 000003aa: JUMP 000003ab: JUMPDEST 000003ac: CALLVALUE 000003ad: DUP1 000003ae: ISZERO 000003af: PUSH2 0x03b7 000003b2: JUMPI 000003b3: PUSH1 0x00 000003b5: DUP1 000003b6: REVERT 000003b7: JUMPDEST 000003b8: POP 000003b9: PUSH2 0x03c0 000003bc: PUSH2 0x0b97 000003bf: JUMP 000003c0: JUMPDEST 000003c1: PUSH1 0x40 000003c3: MLOAD 000003c4: PUSH2 0x0314 000003c7: SWAP2 000003c8: SWAP1 000003c9: PUSH2 0x2e6f 000003cc: JUMP 000003cd: JUMPDEST 000003ce: CALLVALUE 000003cf: DUP1 000003d0: ISZERO 000003d1: PUSH2 0x03d9 000003d4: JUMPI 000003d5: PUSH1 0x00 000003d7: DUP1 000003d8: REVERT 000003d9: JUMPDEST 000003da: POP 000003db: PUSH2 0x02c5 000003de: PUSH2 0x03e8 000003e1: CALLDATASIZE 000003e2: PUSH1 0x04 000003e4: PUSH2 0x2e45 000003e7: JUMP 000003e8: JUMPDEST 000003e9: PUSH2 0x0ba8 000003ec: JUMP 000003ed: JUMPDEST 000003ee: CALLVALUE 000003ef: DUP1 000003f0: ISZERO 000003f1: PUSH2 0x03f9 000003f4: JUMPI 000003f5: PUSH1 0x00 000003f7: DUP1 000003f8: REVERT 000003f9: JUMPDEST 000003fa: POP 000003fb: PUSH2 0x02c5 000003fe: PUSH2 0x0408 00000401: CALLDATASIZE 00000402: PUSH1 0x04 00000404: PUSH2 0x2ead 00000407: JUMP 00000408: JUMPDEST 00000409: PUSH2 0x0bba 0000040c: JUMP 0000040d: JUMPDEST 0000040e: PUSH2 0x035d 00000411: PUSH2 0x041b 00000414: CALLDATASIZE 00000415: PUSH1 0x04 00000417: PUSH2 0x2f26 0000041a: JUMP 0000041b: JUMPDEST 0000041c: PUSH2 0x0be9 0000041f: JUMP 00000420: JUMPDEST 00000421: PUSH2 0x02c5 00000424: PUSH2 0x042e 00000427: CALLDATASIZE 00000428: PUSH1 0x04 0000042a: PUSH2 0x2fa0 0000042d: JUMP 0000042e: JUMPDEST 0000042f: PUSH2 0x0c3b 00000432: JUMP 00000433: JUMPDEST 00000434: PUSH2 0x02c5 00000437: PUSH2 0x0441 0000043a: CALLDATASIZE 0000043b: PUSH1 0x04 0000043d: PUSH2 0x2ffa 00000440: JUMP 00000441: JUMPDEST 00000442: PUSH2 0x0daf 00000445: JUMP 00000446: JUMPDEST 00000447: CALLVALUE 00000448: DUP1 00000449: ISZERO 0000044a: PUSH2 0x0452 0000044d: JUMPI 0000044e: PUSH1 0x00 00000450: DUP1 00000451: REVERT 00000452: JUMPDEST 00000453: POP 00000454: PUSH2 0x035d 00000457: PUSH2 0x0461 0000045a: CALLDATASIZE 0000045b: PUSH1 0x04 0000045d: PUSH2 0x2d9a 00000460: JUMP 00000461: JUMPDEST 00000462: PUSH2 0x0f48 00000465: JUMP 00000466: JUMPDEST 00000467: CALLVALUE 00000468: DUP1 00000469: ISZERO 0000046a: PUSH2 0x0472 0000046d: JUMPI 0000046e: PUSH1 0x00 00000470: DUP1 00000471: REVERT 00000472: JUMPDEST 00000473: POP 00000474: PUSH2 0x02c5 00000477: PUSH2 0x0ffd 0000047a: JUMP 0000047b: JUMPDEST 0000047c: CALLVALUE 0000047d: DUP1 0000047e: ISZERO 0000047f: PUSH2 0x0487 00000482: JUMPI 00000483: PUSH1 0x00 00000485: DUP1 00000486: REVERT 00000487: JUMPDEST 00000488: POP 00000489: PUSH2 0x02c5 0000048c: PUSH2 0x0496 0000048f: CALLDATASIZE 00000490: PUSH1 0x04 00000492: PUSH2 0x307f 00000495: JUMP 00000496: JUMPDEST 00000497: PUSH2 0x1011 0000049a: JUMP 0000049b: JUMPDEST 0000049c: CALLVALUE 0000049d: DUP1 0000049e: ISZERO 0000049f: PUSH2 0x04a7 000004a2: JUMPI 000004a3: PUSH1 0x00 000004a5: DUP1 000004a6: REVERT 000004a7: JUMPDEST 000004a8: POP 000004a9: PUSH2 0x035d 000004ac: PUSH2 0x04b6 000004af: CALLDATASIZE 000004b0: PUSH1 0x04 000004b2: PUSH2 0x2dd0 000004b5: JUMP 000004b6: JUMPDEST 000004b7: PUSH1 0xca 000004b9: PUSH1 0x20 000004bb: MSTORE 000004bc: PUSH1 0x00 000004be: SWAP1 000004bf: DUP2 000004c0: MSTORE 000004c1: PUSH1 0x40 000004c3: SWAP1 000004c4: KECCAK256 000004c5: SLOAD 000004c6: DUP2 000004c7: JUMP 000004c8: JUMPDEST 000004c9: CALLVALUE 000004ca: DUP1 000004cb: ISZERO 000004cc: PUSH2 0x04d4 000004cf: JUMPI 000004d0: PUSH1 0x00 000004d2: DUP1 000004d3: REVERT 000004d4: JUMPDEST 000004d5: POP 000004d6: PUSH2 0x035d 000004d9: PUSH2 0x04e3 000004dc: CALLDATASIZE 000004dd: PUSH1 0x04 000004df: PUSH2 0x2dd0 000004e2: JUMP 000004e3: JUMPDEST 000004e4: PUSH1 0xcb 000004e6: PUSH1 0x20 000004e8: MSTORE 000004e9: PUSH1 0x00 000004eb: SWAP1 000004ec: DUP2 000004ed: MSTORE 000004ee: PUSH1 0x40 000004f0: SWAP1 000004f1: KECCAK256 000004f2: SLOAD 000004f3: DUP2 000004f4: JUMP 000004f5: JUMPDEST 000004f6: CALLVALUE 000004f7: DUP1 000004f8: ISZERO 000004f9: PUSH2 0x0501 000004fc: JUMPI 000004fd: PUSH1 0x00 000004ff: DUP1 00000500: REVERT 00000501: JUMPDEST 00000502: POP 00000503: PUSH1 0x65 00000505: SLOAD 00000506: PUSH2 0x0522 00000509: SWAP1 0000050a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000051f: AND 00000520: DUP2 00000521: JUMP 00000522: JUMPDEST 00000523: PUSH1 0x40 00000525: MLOAD 00000526: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000053b: SWAP1 0000053c: SWAP2 0000053d: AND 0000053e: DUP2 0000053f: MSTORE 00000540: PUSH1 0x20 00000542: ADD 00000543: PUSH2 0x0314 00000546: JUMP 00000547: JUMPDEST 00000548: PUSH2 0x035d 0000054b: PUSH2 0x0555 0000054e: CALLDATASIZE 0000054f: PUSH1 0x04 00000551: PUSH2 0x30c1 00000554: JUMP 00000555: JUMPDEST 00000556: PUSH2 0x106c 00000559: JUMP 0000055a: JUMPDEST 0000055b: CALLVALUE 0000055c: DUP1 0000055d: ISZERO 0000055e: PUSH2 0x0566 00000561: JUMPI 00000562: PUSH1 0x00 00000564: DUP1 00000565: REVERT 00000566: JUMPDEST 00000567: POP 00000568: PUSH2 0x057a 0000056b: PUSH2 0x0575 0000056e: CALLDATASIZE 0000056f: PUSH1 0x04 00000571: PUSH2 0x30c1 00000574: JUMP 00000575: JUMPDEST 00000576: PUSH2 0x107a 00000579: JUMP 0000057a: JUMPDEST 0000057b: PUSH1 0x40 0000057d: MLOAD 0000057e: PUSH2 0x0314 00000581: SWAP2 00000582: SWAP1 00000583: PUSH2 0x30f4 00000586: JUMP 00000587: JUMPDEST 00000588: CALLVALUE 00000589: DUP1 0000058a: ISZERO 0000058b: PUSH2 0x0593 0000058e: JUMPI 0000058f: PUSH1 0x00 00000591: DUP1 00000592: REVERT 00000593: JUMPDEST 00000594: POP 00000595: PUSH2 0x05bb 00000598: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 000005b9: DUP2 000005ba: JUMP 000005bb: JUMPDEST 000005bc: PUSH1 0x40 000005be: MLOAD 000005bf: PUSH4 0xffffffff 000005c4: SWAP1 000005c5: SWAP2 000005c6: AND 000005c7: DUP2 000005c8: MSTORE 000005c9: PUSH1 0x20 000005cb: ADD 000005cc: PUSH2 0x0314 000005cf: JUMP 000005d0: JUMPDEST 000005d1: CALLVALUE 000005d2: DUP1 000005d3: ISZERO 000005d4: PUSH2 0x05dc 000005d7: JUMPI 000005d8: PUSH1 0x00 000005da: DUP1 000005db: REVERT 000005dc: JUMPDEST 000005dd: POP 000005de: PUSH1 0x33 000005e0: SLOAD 000005e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005f6: AND 000005f7: PUSH2 0x0522 000005fa: JUMP 000005fb: JUMPDEST 000005fc: CALLVALUE 000005fd: DUP1 000005fe: ISZERO 000005ff: PUSH2 0x0607 00000602: JUMPI 00000603: PUSH1 0x00 00000605: DUP1 00000606: REVERT 00000607: JUMPDEST 00000608: POP 00000609: PUSH2 0x0644 0000060c: PUSH1 0x40 0000060e: MLOAD 0000060f: DUP1 00000610: PUSH1 0x40 00000612: ADD 00000613: PUSH1 0x40 00000615: MSTORE 00000616: DUP1 00000617: PUSH1 0x05 00000619: DUP2 0000061a: MSTORE 0000061b: PUSH1 0x20 0000061d: ADD 0000061e: PUSH32 0x382e312e31000000000000000000000000000000000000000000000000000000 0000063f: DUP2 00000640: MSTORE 00000641: POP 00000642: DUP2 00000643: JUMP 00000644: JUMPDEST 00000645: PUSH1 0x40 00000647: MLOAD 00000648: PUSH2 0x0314 0000064b: SWAP2 0000064c: SWAP1 0000064d: PUSH2 0x31c7 00000650: JUMP 00000651: JUMPDEST 00000652: CALLVALUE 00000653: DUP1 00000654: ISZERO 00000655: PUSH2 0x065d 00000658: JUMPI 00000659: PUSH1 0x00 0000065b: DUP1 0000065c: REVERT 0000065d: JUMPDEST 0000065e: POP 0000065f: PUSH2 0x0522 00000662: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00000683: DUP2 00000684: JUMP 00000685: JUMPDEST 00000686: CALLVALUE 00000687: DUP1 00000688: ISZERO 00000689: PUSH2 0x0691 0000068c: JUMPI 0000068d: PUSH1 0x00 0000068f: DUP1 00000690: REVERT 00000691: JUMPDEST 00000692: POP 00000693: PUSH2 0x02c5 00000696: PUSH2 0x06a0 00000699: CALLDATASIZE 0000069a: PUSH1 0x04 0000069c: PUSH2 0x31da 0000069f: JUMP 000006a0: JUMPDEST 000006a1: PUSH2 0x117d 000006a4: JUMP 000006a5: JUMPDEST 000006a6: CALLVALUE 000006a7: DUP1 000006a8: ISZERO 000006a9: PUSH2 0x06b1 000006ac: JUMPI 000006ad: PUSH1 0x00 000006af: DUP1 000006b0: REVERT 000006b1: JUMPDEST 000006b2: POP 000006b3: PUSH2 0x02c5 000006b6: PUSH2 0x06c0 000006b9: CALLDATASIZE 000006ba: PUSH1 0x04 000006bc: PUSH2 0x2e45 000006bf: JUMP 000006c0: JUMPDEST 000006c1: PUSH2 0x11ee 000006c4: JUMP 000006c5: JUMPDEST 000006c6: CALLVALUE 000006c7: DUP1 000006c8: ISZERO 000006c9: PUSH2 0x06d1 000006cc: JUMPI 000006cd: PUSH1 0x00 000006cf: DUP1 000006d0: REVERT 000006d1: JUMPDEST 000006d2: POP 000006d3: PUSH2 0x02c5 000006d6: PUSH2 0x06e0 000006d9: CALLDATASIZE 000006da: PUSH1 0x04 000006dc: PUSH2 0x324f 000006df: JUMP 000006e0: JUMPDEST 000006e1: PUSH2 0x1200 000006e4: JUMP 000006e5: JUMPDEST 000006e6: CALLVALUE 000006e7: DUP1 000006e8: ISZERO 000006e9: PUSH2 0x06f1 000006ec: JUMPI 000006ed: PUSH1 0x00 000006ef: DUP1 000006f0: REVERT 000006f1: JUMPDEST 000006f2: POP 000006f3: PUSH2 0x02c5 000006f6: PUSH2 0x0700 000006f9: CALLDATASIZE 000006fa: PUSH1 0x04 000006fc: PUSH2 0x2dd0 000006ff: JUMP 00000700: JUMPDEST 00000701: PUSH2 0x1397 00000704: JUMP 00000705: JUMPDEST 00000706: CALLVALUE 00000707: DUP1 00000708: ISZERO 00000709: PUSH2 0x0711 0000070c: JUMPI 0000070d: PUSH1 0x00 0000070f: DUP1 00000710: REVERT 00000711: JUMPDEST 00000712: POP 00000713: PUSH2 0x0307 00000716: PUSH2 0x13b6 00000719: JUMP 0000071a: JUMPDEST 0000071b: CALLVALUE 0000071c: DUP1 0000071d: ISZERO 0000071e: PUSH2 0x0726 00000721: JUMPI 00000722: PUSH1 0x00 00000724: DUP1 00000725: REVERT 00000726: JUMPDEST 00000727: POP 00000728: PUSH2 0x0522 0000072b: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239 0000074c: DUP2 0000074d: JUMP 0000074e: JUMPDEST 0000074f: CALLVALUE 00000750: DUP1 00000751: ISZERO 00000752: PUSH2 0x075a 00000755: JUMPI 00000756: PUSH1 0x00 00000758: DUP1 00000759: REVERT 0000075a: JUMPDEST 0000075b: POP 0000075c: PUSH1 0x66 0000075e: SLOAD 0000075f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000774: AND 00000775: PUSH2 0x0522 00000778: JUMP 00000779: JUMPDEST 0000077a: CALLVALUE 0000077b: DUP1 0000077c: ISZERO 0000077d: PUSH2 0x0785 00000780: JUMPI 00000781: PUSH1 0x00 00000783: DUP1 00000784: REVERT 00000785: JUMPDEST 00000786: POP 00000787: PUSH2 0x02c5 0000078a: PUSH2 0x0794 0000078d: CALLDATASIZE 0000078e: PUSH1 0x04 00000790: PUSH2 0x328f 00000793: JUMP 00000794: JUMPDEST 00000795: PUSH2 0x13c2 00000798: JUMP 00000799: JUMPDEST 0000079a: CALLVALUE 0000079b: DUP1 0000079c: ISZERO 0000079d: PUSH2 0x07a5 000007a0: JUMPI 000007a1: PUSH1 0x00 000007a3: DUP1 000007a4: REVERT 000007a5: JUMPDEST 000007a6: POP 000007a7: PUSH2 0x02c5 000007aa: PUSH2 0x07b4 000007ad: CALLDATASIZE 000007ae: PUSH1 0x04 000007b0: PUSH2 0x2dd0 000007b3: JUMP 000007b4: JUMPDEST 000007b5: PUSH2 0x14a1 000007b8: JUMP 000007b9: JUMPDEST 000007ba: CALLVALUE 000007bb: DUP1 000007bc: ISZERO 000007bd: PUSH2 0x07c5 000007c0: JUMPI 000007c1: PUSH1 0x00 000007c3: DUP1 000007c4: REVERT 000007c5: JUMPDEST 000007c6: POP 000007c7: PUSH2 0x035d 000007ca: PUSH2 0x07d4 000007cd: CALLDATASIZE 000007ce: PUSH1 0x04 000007d0: PUSH2 0x2dd0 000007d3: JUMP 000007d4: JUMPDEST 000007d5: PUSH2 0x14b5 000007d8: JUMP 000007d9: JUMPDEST 000007da: CALLVALUE 000007db: DUP1 000007dc: ISZERO 000007dd: PUSH2 0x07e5 000007e0: JUMPI 000007e1: PUSH1 0x00 000007e3: DUP1 000007e4: REVERT 000007e5: JUMPDEST 000007e6: POP 000007e7: PUSH2 0x02c5 000007ea: PUSH2 0x07f4 000007ed: CALLDATASIZE 000007ee: PUSH1 0x04 000007f0: PUSH2 0x2d9a 000007f3: JUMP 000007f4: JUMPDEST 000007f5: PUSH2 0x14e2 000007f8: JUMP 000007f9: JUMPDEST 000007fa: CALLVALUE 000007fb: DUP1 000007fc: ISZERO 000007fd: PUSH2 0x0805 00000800: JUMPI 00000801: PUSH1 0x00 00000803: DUP1 00000804: REVERT 00000805: JUMPDEST 00000806: POP 00000807: PUSH2 0x035d 0000080a: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 0000082b: DUP2 0000082c: JUMP 0000082d: JUMPDEST 0000082e: CALLVALUE 0000082f: DUP1 00000830: ISZERO 00000831: PUSH2 0x0839 00000834: JUMPI 00000835: PUSH1 0x00 00000837: DUP1 00000838: REVERT 00000839: JUMPDEST 0000083a: POP 0000083b: PUSH2 0x02c5 0000083e: PUSH2 0x0848 00000841: CALLDATASIZE 00000842: PUSH1 0x04 00000844: PUSH2 0x32ef 00000847: JUMP 00000848: JUMPDEST 00000849: PUSH2 0x1596 0000084c: JUMP 0000084d: JUMPDEST 0000084e: CALLVALUE 0000084f: DUP1 00000850: ISZERO 00000851: PUSH2 0x0859 00000854: JUMPI 00000855: PUSH1 0x00 00000857: DUP1 00000858: REVERT 00000859: JUMPDEST 0000085a: POP 0000085b: PUSH2 0x02c5 0000085e: PUSH2 0x0868 00000861: CALLDATASIZE 00000862: PUSH1 0x04 00000864: PUSH2 0x2ead 00000867: JUMP 00000868: JUMPDEST 00000869: PUSH2 0x15df 0000086c: JUMP 0000086d: JUMPDEST 0000086e: PUSH2 0x0875 00000871: PUSH2 0x1613 00000874: JUMP 00000875: JUMPDEST 00000876: PUSH2 0x0880 00000879: PUSH1 0xcd 0000087b: DUP3 0000087c: PUSH2 0x1694 0000087f: JUMP 00000880: JUMPDEST 00000881: POP 00000882: POP 00000883: JUMP 00000884: JUMPDEST 00000885: DUP1 00000886: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000089b: DUP2 0000089c: AND 0000089d: EXTCODESIZE 0000089e: ISZERO 0000089f: ISZERO 000008a0: DUP1 000008a1: PUSH2 0x08be 000008a4: JUMPI 000008a5: POP 000008a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008bb: DUP2 000008bc: AND 000008bd: ISZERO 000008be: JUMPDEST 000008bf: PUSH2 0x094f 000008c2: JUMPI 000008c3: PUSH1 0x40 000008c5: MLOAD 000008c6: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000008e7: DUP2 000008e8: MSTORE 000008e9: PUSH1 0x20 000008eb: PUSH1 0x04 000008ed: DUP3 000008ee: ADD 000008ef: MSTORE 000008f0: PUSH1 0x27 000008f2: PUSH1 0x24 000008f4: DUP3 000008f5: ADD 000008f6: MSTORE 000008f7: PUSH32 0x4d61696c626f78436c69656e743a20696e76616c696420636f6e747261637420 00000918: PUSH1 0x44 0000091a: DUP3 0000091b: ADD 0000091c: MSTORE 0000091d: PUSH32 0x73657474696e6700000000000000000000000000000000000000000000000000 0000093e: PUSH1 0x64 00000940: DUP3 00000941: ADD 00000942: MSTORE 00000943: PUSH1 0x84 00000945: ADD 00000946: JUMPDEST 00000947: PUSH1 0x40 00000949: MLOAD 0000094a: DUP1 0000094b: SWAP2 0000094c: SUB 0000094d: SWAP1 0000094e: REVERT 0000094f: JUMPDEST 00000950: PUSH2 0x0957 00000953: PUSH2 0x1613 00000956: JUMP 00000957: JUMPDEST 00000958: PUSH1 0x66 0000095a: DUP1 0000095b: SLOAD 0000095c: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 0000097d: AND 0000097e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000993: DUP5 00000994: AND 00000995: SWAP1 00000996: DUP2 00000997: OR 00000998: SWAP1 00000999: SWAP2 0000099a: SSTORE 0000099b: PUSH1 0x40 0000099d: MLOAD 0000099e: SWAP1 0000099f: DUP2 000009a0: MSTORE 000009a1: PUSH32 0xc47cbcc588c67679e52261c45cc315e56562f8d0ccaba16facb9093ff9498799 000009c2: SWAP1 000009c3: PUSH1 0x20 000009c5: ADD 000009c6: JUMPDEST 000009c7: PUSH1 0x40 000009c9: MLOAD 000009ca: DUP1 000009cb: SWAP2 000009cc: SUB 000009cd: SWAP1 000009ce: LOG1 000009cf: POP 000009d0: POP 000009d1: JUMP 000009d2: JUMPDEST 000009d3: PUSH4 0xffffffff 000009d8: DUP2 000009d9: AND 000009da: PUSH1 0x00 000009dc: SWAP1 000009dd: DUP2 000009de: MSTORE 000009df: PUSH1 0xcc 000009e1: PUSH1 0x20 000009e3: MSTORE 000009e4: PUSH1 0x40 000009e6: SWAP1 000009e7: KECCAK256 000009e8: PUSH1 0x60 000009ea: SWAP1 000009eb: PUSH2 0x09f3 000009ee: SWAP1 000009ef: PUSH2 0x16bd 000009f2: JUMP 000009f3: JUMPDEST 000009f4: SWAP3 000009f5: SWAP2 000009f6: POP 000009f7: POP 000009f8: JUMP 000009f9: JUMPDEST 000009fa: PUSH2 0x0a01 000009fd: PUSH2 0x1613 00000a00: JUMP 00000a01: JUMPDEST 00000a02: PUSH2 0x0a0a 00000a05: DUP3 00000a06: PUSH2 0x16ca 00000a09: JUMP 00000a0a: JUMPDEST 00000a0b: POP 00000a0c: PUSH4 0xffffffff 00000a11: SWAP1 00000a12: SWAP2 00000a13: AND 00000a14: PUSH1 0x00 00000a16: SWAP1 00000a17: DUP2 00000a18: MSTORE 00000a19: PUSH1 0xcb 00000a1b: PUSH1 0x20 00000a1d: MSTORE 00000a1e: PUSH1 0x40 00000a20: SWAP1 00000a21: KECCAK256 00000a22: SSTORE 00000a23: JUMP 00000a24: JUMPDEST 00000a25: PUSH1 0x00 00000a27: DUP1 00000a28: PUSH2 0x0a3b 00000a2b: PUSH1 0x97 00000a2d: PUSH4 0xffffffff 00000a32: DUP1 00000a33: DUP7 00000a34: AND 00000a35: SWAP1 00000a36: PUSH2 0x172f 00000a39: AND 00000a3a: JUMP 00000a3b: JUMPDEST 00000a3c: SWAP5 00000a3d: SWAP4 00000a3e: POP 00000a3f: POP 00000a40: POP 00000a41: POP 00000a42: JUMP 00000a43: JUMPDEST 00000a44: DUP1 00000a45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a5a: DUP2 00000a5b: AND 00000a5c: EXTCODESIZE 00000a5d: ISZERO 00000a5e: ISZERO 00000a5f: DUP1 00000a60: PUSH2 0x0a7d 00000a63: JUMPI 00000a64: POP 00000a65: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a7a: DUP2 00000a7b: AND 00000a7c: ISZERO 00000a7d: JUMPDEST 00000a7e: PUSH2 0x0b09 00000a81: JUMPI 00000a82: PUSH1 0x40 00000a84: MLOAD 00000a85: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000aa6: DUP2 00000aa7: MSTORE 00000aa8: PUSH1 0x20 00000aaa: PUSH1 0x04 00000aac: DUP3 00000aad: ADD 00000aae: MSTORE 00000aaf: PUSH1 0x27 00000ab1: PUSH1 0x24 00000ab3: DUP3 00000ab4: ADD 00000ab5: MSTORE 00000ab6: PUSH32 0x4d61696c626f78436c69656e743a20696e76616c696420636f6e747261637420 00000ad7: PUSH1 0x44 00000ad9: DUP3 00000ada: ADD 00000adb: MSTORE 00000adc: PUSH32 0x73657474696e6700000000000000000000000000000000000000000000000000 00000afd: PUSH1 0x64 00000aff: DUP3 00000b00: ADD 00000b01: MSTORE 00000b02: PUSH1 0x84 00000b04: ADD 00000b05: PUSH2 0x0946 00000b08: JUMP 00000b09: JUMPDEST 00000b0a: PUSH2 0x0b11 00000b0d: PUSH2 0x1613 00000b10: JUMP 00000b11: JUMPDEST 00000b12: PUSH1 0x65 00000b14: DUP1 00000b15: SLOAD 00000b16: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000b37: AND 00000b38: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b4d: DUP5 00000b4e: AND 00000b4f: SWAP1 00000b50: DUP2 00000b51: OR 00000b52: SWAP1 00000b53: SWAP2 00000b54: SSTORE 00000b55: PUSH1 0x40 00000b57: MLOAD 00000b58: SWAP1 00000b59: DUP2 00000b5a: MSTORE 00000b5b: PUSH32 0x4eab7b127c764308788622363ad3e9532de3dfba7845bd4f84c125a22544255a 00000b7c: SWAP1 00000b7d: PUSH1 0x20 00000b7f: ADD 00000b80: PUSH2 0x09c6 00000b83: JUMP 00000b84: JUMPDEST 00000b85: PUSH2 0x0b8c 00000b88: PUSH2 0x1613 00000b8b: JUMP 00000b8c: JUMPDEST 00000b8d: PUSH2 0x0880 00000b90: PUSH1 0xcd 00000b92: DUP3 00000b93: PUSH2 0x1748 00000b96: JUMP 00000b97: JUMPDEST 00000b98: PUSH1 0x60 00000b9a: PUSH2 0x0ba3 00000b9d: PUSH1 0x97 00000b9f: PUSH2 0x176a 00000ba2: JUMP 00000ba3: JUMPDEST 00000ba4: SWAP1 00000ba5: POP 00000ba6: SWAP1 00000ba7: JUMP 00000ba8: JUMPDEST 00000ba9: PUSH2 0x0bb0 00000bac: PUSH2 0x1613 00000baf: JUMP 00000bb0: JUMPDEST 00000bb1: PUSH2 0x0880 00000bb4: DUP3 00000bb5: DUP3 00000bb6: PUSH2 0x181b 00000bb9: JUMP 00000bba: JUMPDEST 00000bbb: PUSH2 0x0bc2 00000bbe: PUSH2 0x1613 00000bc1: JUMP 00000bc2: JUMPDEST 00000bc3: PUSH4 0xffffffff 00000bc8: DUP1 00000bc9: DUP4 00000bca: AND 00000bcb: PUSH1 0x00 00000bcd: SWAP1 00000bce: DUP2 00000bcf: MSTORE 00000bd0: PUSH1 0xcc 00000bd2: PUSH1 0x20 00000bd4: MSTORE 00000bd5: PUSH1 0x40 00000bd7: SWAP1 00000bd8: KECCAK256 00000bd9: PUSH2 0x0be4 00000bdc: SWAP2 00000bdd: DUP4 00000bde: SWAP1 00000bdf: PUSH2 0x1748 00000be2: AND 00000be3: JUMP 00000be4: JUMPDEST 00000be5: POP 00000be6: POP 00000be7: POP 00000be8: JUMP 00000be9: JUMPDEST 00000bea: PUSH1 0x00 00000bec: PUSH2 0x0c30 00000bef: DUP8 00000bf0: DUP8 00000bf1: DUP8 00000bf2: CALLVALUE 00000bf3: DUP9 00000bf4: DUP9 00000bf5: DUP1 00000bf6: DUP1 00000bf7: PUSH1 0x1f 00000bf9: ADD 00000bfa: PUSH1 0x20 00000bfc: DUP1 00000bfd: SWAP2 00000bfe: DIV 00000bff: MUL 00000c00: PUSH1 0x20 00000c02: ADD 00000c03: PUSH1 0x40 00000c05: MLOAD 00000c06: SWAP1 00000c07: DUP2 00000c08: ADD 00000c09: PUSH1 0x40 00000c0b: MSTORE 00000c0c: DUP1 00000c0d: SWAP4 00000c0e: SWAP3 00000c0f: SWAP2 00000c10: SWAP1 00000c11: DUP2 00000c12: DUP2 00000c13: MSTORE 00000c14: PUSH1 0x20 00000c16: ADD 00000c17: DUP4 00000c18: DUP4 00000c19: DUP1 00000c1a: DUP3 00000c1b: DUP5 00000c1c: CALLDATACOPY 00000c1d: PUSH1 0x00 00000c1f: SWAP3 00000c20: ADD 00000c21: SWAP2 00000c22: SWAP1 00000c23: SWAP2 00000c24: MSTORE 00000c25: POP 00000c26: DUP11 00000c27: SWAP3 00000c28: POP 00000c29: PUSH2 0x1869 00000c2c: SWAP2 00000c2d: POP 00000c2e: POP 00000c2f: JUMP 00000c30: JUMPDEST 00000c31: SWAP8 00000c32: SWAP7 00000c33: POP 00000c34: POP 00000c35: POP 00000c36: POP 00000c37: POP 00000c38: POP 00000c39: POP 00000c3a: JUMP 00000c3b: JUMPDEST 00000c3c: CALLER 00000c3d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c52: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239 00000c73: AND 00000c74: EQ 00000c75: PUSH2 0x0d00 00000c78: JUMPI 00000c79: PUSH1 0x40 00000c7b: MLOAD 00000c7c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000c9d: DUP2 00000c9e: MSTORE 00000c9f: PUSH1 0x20 00000ca1: PUSH1 0x04 00000ca3: DUP3 00000ca4: ADD 00000ca5: MSTORE 00000ca6: PUSH1 0x21 00000ca8: PUSH1 0x24 00000caa: DUP3 00000cab: ADD 00000cac: MSTORE 00000cad: PUSH32 0x4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f 00000cce: PUSH1 0x44 00000cd0: DUP3 00000cd1: ADD 00000cd2: MSTORE 00000cd3: PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 00000cf4: PUSH1 0x64 00000cf6: DUP3 00000cf7: ADD 00000cf8: MSTORE 00000cf9: PUSH1 0x84 00000cfb: ADD 00000cfc: PUSH2 0x0946 00000cff: JUMP 00000d00: JUMPDEST 00000d01: PUSH1 0x00 00000d03: PUSH2 0x0d0b 00000d06: DUP6 00000d07: PUSH2 0x16ca 00000d0a: JUMP 00000d0b: JUMPDEST 00000d0c: SWAP1 00000d0d: POP 00000d0e: DUP4 00000d0f: DUP2 00000d10: EQ 00000d11: PUSH2 0x0d9c 00000d14: JUMPI 00000d15: PUSH1 0x40 00000d17: MLOAD 00000d18: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000d39: DUP2 00000d3a: MSTORE 00000d3b: PUSH1 0x20 00000d3d: PUSH1 0x04 00000d3f: DUP3 00000d40: ADD 00000d41: MSTORE 00000d42: PUSH1 0x25 00000d44: PUSH1 0x24 00000d46: DUP3 00000d47: ADD 00000d48: MSTORE 00000d49: PUSH32 0x456e726f6c6c656420726f7574657220646f6573206e6f74206d617463682073 00000d6a: PUSH1 0x44 00000d6c: DUP3 00000d6d: ADD 00000d6e: MSTORE 00000d6f: PUSH32 0x656e646572000000000000000000000000000000000000000000000000000000 00000d90: PUSH1 0x64 00000d92: DUP3 00000d93: ADD 00000d94: MSTORE 00000d95: PUSH1 0x84 00000d97: ADD 00000d98: PUSH2 0x0946 00000d9b: JUMP 00000d9c: JUMPDEST 00000d9d: PUSH2 0x0da8 00000da0: DUP6 00000da1: DUP6 00000da2: DUP6 00000da3: DUP6 00000da4: PUSH2 0x18f0 00000da7: JUMP 00000da8: JUMPDEST 00000da9: POP 00000daa: POP 00000dab: POP 00000dac: POP 00000dad: POP 00000dae: JUMP 00000daf: JUMPDEST 00000db0: PUSH2 0x0dba 00000db3: PUSH1 0xcd 00000db5: CALLER 00000db6: PUSH2 0x1972 00000db9: JUMP 00000dba: JUMPDEST 00000dbb: PUSH2 0x0e20 00000dbe: JUMPI 00000dbf: PUSH1 0x40 00000dc1: MLOAD 00000dc2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000de3: DUP2 00000de4: MSTORE 00000de5: PUSH1 0x20 00000de7: PUSH1 0x04 00000de9: DUP3 00000dea: ADD 00000deb: MSTORE 00000dec: PUSH1 0x14 00000dee: PUSH1 0x24 00000df0: DUP3 00000df1: ADD 00000df2: MSTORE 00000df3: PUSH32 0x4d43523a204f6e6c7920526562616c616e636572000000000000000000000000 00000e14: PUSH1 0x44 00000e16: DUP3 00000e17: ADD 00000e18: MSTORE 00000e19: PUSH1 0x64 00000e1b: ADD 00000e1c: PUSH2 0x0946 00000e1f: JUMP 00000e20: JUMPDEST 00000e21: PUSH4 0xffffffff 00000e26: DUP1 00000e27: DUP5 00000e28: AND 00000e29: PUSH1 0x00 00000e2b: SWAP1 00000e2c: DUP2 00000e2d: MSTORE 00000e2e: PUSH1 0xcc 00000e30: PUSH1 0x20 00000e32: MSTORE 00000e33: PUSH1 0x40 00000e35: SWAP1 00000e36: KECCAK256 00000e37: DUP5 00000e38: SWAP2 00000e39: DUP4 00000e3a: SWAP2 00000e3b: SWAP1 00000e3c: PUSH2 0x0e49 00000e3f: SWAP1 00000e40: DUP3 00000e41: SWAP1 00000e42: DUP5 00000e43: SWAP1 00000e44: PUSH2 0x1972 00000e47: AND 00000e48: JUMP 00000e49: JUMPDEST 00000e4a: PUSH2 0x0eaf 00000e4d: JUMPI 00000e4e: PUSH1 0x40 00000e50: MLOAD 00000e51: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000e72: DUP2 00000e73: MSTORE 00000e74: PUSH1 0x20 00000e76: PUSH1 0x04 00000e78: DUP3 00000e79: ADD 00000e7a: MSTORE 00000e7b: PUSH1 0x17 00000e7d: PUSH1 0x24 00000e7f: DUP3 00000e80: ADD 00000e81: MSTORE 00000e82: PUSH32 0x4d43523a204e6f7420616c6c6f77656420627269646765000000000000000000 00000ea3: PUSH1 0x44 00000ea5: DUP3 00000ea6: ADD 00000ea7: MSTORE 00000ea8: PUSH1 0x64 00000eaa: ADD 00000eab: PUSH2 0x0946 00000eae: JUMP 00000eaf: JUMPDEST 00000eb0: PUSH4 0xffffffff 00000eb5: DUP7 00000eb6: AND 00000eb7: PUSH1 0x00 00000eb9: SWAP1 00000eba: DUP2 00000ebb: MSTORE 00000ebc: PUSH1 0xcb 00000ebe: PUSH1 0x20 00000ec0: MSTORE 00000ec1: PUSH1 0x40 00000ec3: SWAP1 00000ec4: KECCAK256 00000ec5: SLOAD 00000ec6: CALLER 00000ec7: SWAP1 00000ec8: DUP1 00000ec9: PUSH2 0x0ed8 00000ecc: JUMPI 00000ecd: PUSH2 0x0ed5 00000ed0: DUP9 00000ed1: PUSH2 0x16ca 00000ed4: JUMP 00000ed5: JUMPDEST 00000ed6: SWAP1 00000ed7: POP 00000ed8: JUMPDEST 00000ed9: PUSH2 0x0ee4 00000edc: DUP9 00000edd: DUP3 00000ede: DUP10 00000edf: DUP10 00000ee0: PUSH2 0x19a1 00000ee3: JUMP 00000ee4: JUMPDEST 00000ee5: PUSH1 0x40 00000ee7: DUP1 00000ee8: MLOAD 00000ee9: DUP3 00000eea: DUP2 00000eeb: MSTORE 00000eec: PUSH1 0x20 00000eee: DUP2 00000eef: ADD 00000ef0: DUP10 00000ef1: SWAP1 00000ef2: MSTORE 00000ef3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f08: DUP5 00000f09: AND 00000f0a: SWAP2 00000f0b: PUSH4 0xffffffff 00000f10: DUP12 00000f11: AND 00000f12: SWAP2 00000f13: PUSH32 0xb1e1b117ddf429b1b8a359fe0e978f0ae191c0f70e0babfea7acaad1b0ee8a2d 00000f34: SWAP2 00000f35: ADD 00000f36: JUMPDEST 00000f37: PUSH1 0x40 00000f39: MLOAD 00000f3a: DUP1 00000f3b: SWAP2 00000f3c: SUB 00000f3d: SWAP1 00000f3e: LOG3 00000f3f: POP 00000f40: POP 00000f41: POP 00000f42: POP 00000f43: POP 00000f44: POP 00000f45: POP 00000f46: POP 00000f47: JUMP 00000f48: JUMPDEST 00000f49: PUSH1 0x40 00000f4b: MLOAD 00000f4c: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00000f6d: DUP2 00000f6e: MSTORE 00000f6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f84: DUP3 00000f85: DUP2 00000f86: AND 00000f87: PUSH1 0x04 00000f89: DUP4 00000f8a: ADD 00000f8b: MSTORE 00000f8c: PUSH1 0x00 00000f8e: SWAP2 00000f8f: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00000fb0: SWAP1 00000fb1: SWAP2 00000fb2: AND 00000fb3: SWAP1 00000fb4: PUSH4 0x70a08231 00000fb9: SWAP1 00000fba: PUSH1 0x24 00000fbc: ADD 00000fbd: PUSH1 0x20 00000fbf: PUSH1 0x40 00000fc1: MLOAD 00000fc2: DUP1 00000fc3: DUP4 00000fc4: SUB 00000fc5: DUP2 00000fc6: DUP7 00000fc7: GAS 00000fc8: STATICCALL 00000fc9: ISZERO 00000fca: DUP1 00000fcb: ISZERO 00000fcc: PUSH2 0x0fd9 00000fcf: JUMPI 00000fd0: RETURNDATASIZE 00000fd1: PUSH1 0x00 00000fd3: DUP1 00000fd4: RETURNDATACOPY 00000fd5: RETURNDATASIZE 00000fd6: PUSH1 0x00 00000fd8: REVERT 00000fd9: JUMPDEST 00000fda: POP 00000fdb: POP 00000fdc: POP 00000fdd: POP 00000fde: PUSH1 0x40 00000fe0: MLOAD 00000fe1: RETURNDATASIZE 00000fe2: PUSH1 0x1f 00000fe4: NOT 00000fe5: PUSH1 0x1f 00000fe7: DUP3 00000fe8: ADD 00000fe9: AND 00000fea: DUP3 00000feb: ADD 00000fec: DUP1 00000fed: PUSH1 0x40 00000fef: MSTORE 00000ff0: POP 00000ff1: DUP2 00000ff2: ADD 00000ff3: SWAP1 00000ff4: PUSH2 0x09f3 00000ff7: SWAP2 00000ff8: SWAP1 00000ff9: PUSH2 0x330d 00000ffc: JUMP 00000ffd: JUMPDEST 00000ffe: PUSH2 0x1005 00001001: PUSH2 0x1613 00001004: JUMP 00001005: JUMPDEST 00001006: PUSH2 0x100f 00001009: PUSH1 0x00 0000100b: PUSH2 0x19ee 0000100e: JUMP 0000100f: JUMPDEST 00001010: JUMP 00001011: JUMPDEST 00001012: PUSH2 0x1019 00001015: PUSH2 0x1613 00001018: JUMP 00001019: JUMPDEST 0000101a: DUP1 0000101b: PUSH1 0x00 0000101d: JUMPDEST 0000101e: DUP2 0000101f: DUP2 00001020: LT 00001021: ISZERO 00001022: PUSH2 0x1066 00001025: JUMPI 00001026: PUSH2 0x1054 00001029: DUP5 0000102a: DUP5 0000102b: DUP4 0000102c: DUP2 0000102d: DUP2 0000102e: LT 0000102f: PUSH2 0x103a 00001032: JUMPI 00001033: PUSH2 0x103a 00001036: PUSH2 0x3326 00001039: JUMP 0000103a: JUMPDEST 0000103b: SWAP1 0000103c: POP 0000103d: PUSH1 0x20 0000103f: MUL 00001040: ADD 00001041: PUSH1 0x20 00001043: DUP2 00001044: ADD 00001045: SWAP1 00001046: PUSH2 0x104f 00001049: SWAP2 0000104a: SWAP1 0000104b: PUSH2 0x2dd0 0000104e: JUMP 0000104f: JUMPDEST 00001050: PUSH2 0x1a65 00001053: JUMP 00001054: JUMPDEST 00001055: PUSH2 0x105f 00001058: PUSH1 0x01 0000105a: DUP3 0000105b: PUSH2 0x3384 0000105e: JUMP 0000105f: JUMPDEST 00001060: SWAP1 00001061: POP 00001062: PUSH2 0x101d 00001065: JUMP 00001066: JUMPDEST 00001067: POP 00001068: POP 00001069: POP 0000106a: POP 0000106b: JUMP 0000106c: JUMPDEST 0000106d: PUSH1 0x00 0000106f: PUSH2 0x0a3b 00001072: DUP5 00001073: DUP5 00001074: DUP5 00001075: CALLVALUE 00001076: PUSH2 0x1a99 00001079: JUMP 0000107a: JUMPDEST 0000107b: PUSH1 0x40 0000107d: DUP1 0000107e: MLOAD 0000107f: PUSH1 0x02 00001081: DUP1 00001082: DUP3 00001083: MSTORE 00001084: PUSH1 0x60 00001086: DUP3 00001087: DUP2 00001088: ADD 00001089: SWAP1 0000108a: SWAP4 0000108b: MSTORE 0000108c: DUP2 0000108d: PUSH1 0x20 0000108f: ADD 00001090: JUMPDEST 00001091: PUSH1 0x40 00001093: DUP1 00001094: MLOAD 00001095: DUP1 00001096: DUP3 00001097: ADD 00001098: SWAP1 00001099: SWAP2 0000109a: MSTORE 0000109b: PUSH1 0x00 0000109d: DUP1 0000109e: DUP3 0000109f: MSTORE 000010a0: PUSH1 0x20 000010a2: DUP3 000010a3: ADD 000010a4: MSTORE 000010a5: DUP2 000010a6: MSTORE 000010a7: PUSH1 0x20 000010a9: ADD 000010aa: SWAP1 000010ab: PUSH1 0x01 000010ad: SWAP1 000010ae: SUB 000010af: SWAP1 000010b0: DUP2 000010b1: PUSH2 0x1090 000010b4: JUMPI 000010b5: SWAP1 000010b6: POP 000010b7: POP 000010b8: SWAP1 000010b9: POP 000010ba: PUSH1 0x40 000010bc: MLOAD 000010bd: DUP1 000010be: PUSH1 0x40 000010c0: ADD 000010c1: PUSH1 0x40 000010c3: MSTORE 000010c4: DUP1 000010c5: PUSH1 0x00 000010c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010dc: AND 000010dd: DUP2 000010de: MSTORE 000010df: PUSH1 0x20 000010e1: ADD 000010e2: PUSH2 0x10ec 000010e5: DUP7 000010e6: DUP7 000010e7: DUP7 000010e8: PUSH2 0x1ad2 000010eb: JUMP 000010ec: JUMPDEST 000010ed: DUP2 000010ee: MSTORE 000010ef: POP 000010f0: DUP2 000010f1: PUSH1 0x00 000010f3: DUP2 000010f4: MLOAD 000010f5: DUP2 000010f6: LT 000010f7: PUSH2 0x1102 000010fa: JUMPI 000010fb: PUSH2 0x1102 000010fe: PUSH2 0x3326 00001101: JUMP 00001102: JUMPDEST 00001103: PUSH1 0x20 00001105: MUL 00001106: PUSH1 0x20 00001108: ADD 00001109: ADD 0000110a: DUP2 0000110b: SWAP1 0000110c: MSTORE 0000110d: POP 0000110e: PUSH1 0x40 00001110: MLOAD 00001111: DUP1 00001112: PUSH1 0x40 00001114: ADD 00001115: PUSH1 0x40 00001117: MSTORE 00001118: DUP1 00001119: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 0000113a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000114f: AND 00001150: DUP2 00001151: MSTORE 00001152: PUSH1 0x20 00001154: ADD 00001155: DUP4 00001156: DUP2 00001157: MSTORE 00001158: POP 00001159: DUP2 0000115a: PUSH1 0x01 0000115c: DUP2 0000115d: MLOAD 0000115e: DUP2 0000115f: LT 00001160: PUSH2 0x116b 00001163: JUMPI 00001164: PUSH2 0x116b 00001167: PUSH2 0x3326 0000116a: JUMP 0000116b: JUMPDEST 0000116c: PUSH1 0x20 0000116e: MUL 0000116f: PUSH1 0x20 00001171: ADD 00001172: ADD 00001173: DUP2 00001174: SWAP1 00001175: MSTORE 00001176: POP 00001177: SWAP4 00001178: SWAP3 00001179: POP 0000117a: POP 0000117b: POP 0000117c: JUMP 0000117d: JUMPDEST 0000117e: PUSH2 0x1185 00001181: PUSH2 0x1613 00001184: JUMP 00001185: JUMPDEST 00001186: PUSH1 0x00 00001188: JUMPDEST 00001189: DUP2 0000118a: DUP2 0000118b: LT 0000118c: ISZERO 0000118d: PUSH2 0x0be4 00001190: JUMPI 00001191: PUSH2 0x11dc 00001194: DUP4 00001195: DUP4 00001196: DUP4 00001197: DUP2 00001198: DUP2 00001199: LT 0000119a: PUSH2 0x11a5 0000119d: JUMPI 0000119e: PUSH2 0x11a5 000011a1: PUSH2 0x3326 000011a4: JUMP 000011a5: JUMPDEST 000011a6: PUSH2 0x11bb 000011a9: SWAP3 000011aa: PUSH1 0x20 000011ac: PUSH1 0x40 000011ae: SWAP1 000011af: SWAP3 000011b0: MUL 000011b1: ADD 000011b2: SWAP1 000011b3: DUP2 000011b4: ADD 000011b5: SWAP2 000011b6: POP 000011b7: PUSH2 0x2dd0 000011ba: JUMP 000011bb: JUMPDEST 000011bc: DUP5 000011bd: DUP5 000011be: DUP5 000011bf: DUP2 000011c0: DUP2 000011c1: LT 000011c2: PUSH2 0x11cd 000011c5: JUMPI 000011c6: PUSH2 0x11cd 000011c9: PUSH2 0x3326 000011cc: JUMP 000011cd: JUMPDEST 000011ce: SWAP1 000011cf: POP 000011d0: PUSH1 0x40 000011d2: MUL 000011d3: ADD 000011d4: PUSH1 0x20 000011d6: ADD 000011d7: CALLDATALOAD 000011d8: PUSH2 0x181b 000011db: JUMP 000011dc: JUMPDEST 000011dd: PUSH2 0x11e7 000011e0: PUSH1 0x01 000011e2: DUP3 000011e3: PUSH2 0x3384 000011e6: JUMP 000011e7: JUMPDEST 000011e8: SWAP1 000011e9: POP 000011ea: PUSH2 0x1188 000011ed: JUMP 000011ee: JUMPDEST 000011ef: PUSH2 0x11f6 000011f2: PUSH2 0x1613 000011f5: JUMP 000011f6: JUMPDEST 000011f7: PUSH2 0x0880 000011fa: DUP3 000011fb: DUP3 000011fc: PUSH2 0x1b1b 000011ff: JUMP 00001200: JUMPDEST 00001201: PUSH1 0x00 00001203: SLOAD 00001204: PUSH2 0x0100 00001207: SWAP1 00001208: DIV 00001209: PUSH1 0xff 0000120b: AND 0000120c: ISZERO 0000120d: DUP1 0000120e: DUP1 0000120f: ISZERO 00001210: PUSH2 0x1220 00001213: JUMPI 00001214: POP 00001215: PUSH1 0x00 00001217: SLOAD 00001218: PUSH1 0x01 0000121a: PUSH1 0xff 0000121c: SWAP1 0000121d: SWAP2 0000121e: AND 0000121f: LT 00001220: JUMPDEST 00001221: DUP1 00001222: PUSH2 0x123a 00001225: JUMPI 00001226: POP 00001227: ADDRESS 00001228: EXTCODESIZE 00001229: ISZERO 0000122a: DUP1 0000122b: ISZERO 0000122c: PUSH2 0x123a 0000122f: JUMPI 00001230: POP 00001231: PUSH1 0x00 00001233: SLOAD 00001234: PUSH1 0xff 00001236: AND 00001237: PUSH1 0x01 00001239: EQ 0000123a: JUMPDEST 0000123b: PUSH2 0x12c6 0000123e: JUMPI 0000123f: PUSH1 0x40 00001241: MLOAD 00001242: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001263: DUP2 00001264: MSTORE 00001265: PUSH1 0x20 00001267: PUSH1 0x04 00001269: DUP3 0000126a: ADD 0000126b: MSTORE 0000126c: PUSH1 0x2e 0000126e: PUSH1 0x24 00001270: DUP3 00001271: ADD 00001272: MSTORE 00001273: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00001294: PUSH1 0x44 00001296: DUP3 00001297: ADD 00001298: MSTORE 00001299: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000 000012ba: PUSH1 0x64 000012bc: DUP3 000012bd: ADD 000012be: MSTORE 000012bf: PUSH1 0x84 000012c1: ADD 000012c2: PUSH2 0x0946 000012c5: JUMP 000012c6: JUMPDEST 000012c7: PUSH1 0x00 000012c9: DUP1 000012ca: SLOAD 000012cb: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 000012ec: AND 000012ed: PUSH1 0x01 000012ef: OR 000012f0: SWAP1 000012f1: SSTORE 000012f2: DUP1 000012f3: ISZERO 000012f4: PUSH2 0x1324 000012f7: JUMPI 000012f8: PUSH1 0x00 000012fa: DUP1 000012fb: SLOAD 000012fc: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 0000131d: AND 0000131e: PUSH2 0x0100 00001321: OR 00001322: SWAP1 00001323: SSTORE 00001324: JUMPDEST 00001325: PUSH2 0x132f 00001328: DUP5 00001329: DUP5 0000132a: DUP5 0000132b: PUSH2 0x1b31 0000132e: JUMP 0000132f: JUMPDEST 00001330: DUP1 00001331: ISZERO 00001332: PUSH2 0x1066 00001335: JUMPI 00001336: PUSH1 0x00 00001338: DUP1 00001339: SLOAD 0000133a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 0000135b: AND 0000135c: SWAP1 0000135d: SSTORE 0000135e: PUSH1 0x40 00001360: MLOAD 00001361: PUSH1 0x01 00001363: DUP2 00001364: MSTORE 00001365: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498 00001386: SWAP1 00001387: PUSH1 0x20 00001389: ADD 0000138a: PUSH1 0x40 0000138c: MLOAD 0000138d: DUP1 0000138e: SWAP2 0000138f: SUB 00001390: SWAP1 00001391: LOG1 00001392: POP 00001393: POP 00001394: POP 00001395: POP 00001396: JUMP 00001397: JUMPDEST 00001398: PUSH2 0x139f 0000139b: PUSH2 0x1613 0000139e: JUMP 0000139f: JUMPDEST 000013a0: PUSH4 0xffffffff 000013a5: AND 000013a6: PUSH1 0x00 000013a8: SWAP1 000013a9: DUP2 000013aa: MSTORE 000013ab: PUSH1 0xcb 000013ad: PUSH1 0x20 000013af: MSTORE 000013b0: PUSH1 0x40 000013b2: DUP2 000013b3: KECCAK256 000013b4: SSTORE 000013b5: JUMP 000013b6: JUMPDEST 000013b7: PUSH1 0x60 000013b9: PUSH2 0x0ba3 000013bc: PUSH1 0xcd 000013be: PUSH2 0x16bd 000013c1: JUMP 000013c2: JUMPDEST 000013c3: PUSH2 0x13ca 000013c6: PUSH2 0x1613 000013c9: JUMP 000013ca: JUMPDEST 000013cb: DUP3 000013cc: DUP2 000013cd: EQ 000013ce: PUSH2 0x1433 000013d1: JUMPI 000013d2: PUSH1 0x40 000013d4: MLOAD 000013d5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000013f6: DUP2 000013f7: MSTORE 000013f8: PUSH1 0x20 000013fa: PUSH1 0x04 000013fc: DUP3 000013fd: ADD 000013fe: MSTORE 000013ff: PUSH1 0x07 00001401: PUSH1 0x24 00001403: DUP3 00001404: ADD 00001405: MSTORE 00001406: PUSH32 0x216c656e67746800000000000000000000000000000000000000000000000000 00001427: PUSH1 0x44 00001429: DUP3 0000142a: ADD 0000142b: MSTORE 0000142c: PUSH1 0x64 0000142e: ADD 0000142f: PUSH2 0x0946 00001432: JUMP 00001433: JUMPDEST 00001434: DUP3 00001435: PUSH1 0x00 00001437: JUMPDEST 00001438: DUP2 00001439: DUP2 0000143a: LT 0000143b: ISZERO 0000143c: PUSH2 0x1499 0000143f: JUMPI 00001440: PUSH2 0x1487 00001443: DUP7 00001444: DUP7 00001445: DUP4 00001446: DUP2 00001447: DUP2 00001448: LT 00001449: PUSH2 0x1454 0000144c: JUMPI 0000144d: PUSH2 0x1454 00001450: PUSH2 0x3326 00001453: JUMP 00001454: JUMPDEST 00001455: SWAP1 00001456: POP 00001457: PUSH1 0x20 00001459: MUL 0000145a: ADD 0000145b: PUSH1 0x20 0000145d: DUP2 0000145e: ADD 0000145f: SWAP1 00001460: PUSH2 0x1469 00001463: SWAP2 00001464: SWAP1 00001465: PUSH2 0x2dd0 00001468: JUMP 00001469: JUMPDEST 0000146a: DUP6 0000146b: DUP6 0000146c: DUP5 0000146d: DUP2 0000146e: DUP2 0000146f: LT 00001470: PUSH2 0x147b 00001473: JUMPI 00001474: PUSH2 0x147b 00001477: PUSH2 0x3326 0000147a: JUMP 0000147b: JUMPDEST 0000147c: SWAP1 0000147d: POP 0000147e: PUSH1 0x20 00001480: MUL 00001481: ADD 00001482: CALLDATALOAD 00001483: PUSH2 0x1b1b 00001486: JUMP 00001487: JUMPDEST 00001488: PUSH2 0x1492 0000148b: PUSH1 0x01 0000148d: DUP3 0000148e: PUSH2 0x3384 00001491: JUMP 00001492: JUMPDEST 00001493: SWAP1 00001494: POP 00001495: PUSH2 0x1437 00001498: JUMP 00001499: JUMPDEST 0000149a: POP 0000149b: POP 0000149c: POP 0000149d: POP 0000149e: POP 0000149f: POP 000014a0: JUMP 000014a1: JUMPDEST 000014a2: PUSH2 0x14a9 000014a5: PUSH2 0x1613 000014a8: JUMP 000014a9: JUMPDEST 000014aa: PUSH2 0x14b2 000014ad: DUP2 000014ae: PUSH2 0x1a65 000014b1: JUMP 000014b2: JUMPDEST 000014b3: POP 000014b4: JUMP 000014b5: JUMPDEST 000014b6: PUSH1 0x00 000014b8: PUSH2 0x09f3 000014bb: DUP3 000014bc: DUP3 000014bd: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000014de: PUSH2 0x1ad2 000014e1: JUMP 000014e2: JUMPDEST 000014e3: PUSH2 0x14ea 000014e6: PUSH2 0x1613 000014e9: JUMP 000014ea: JUMPDEST 000014eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001500: DUP2 00001501: AND 00001502: PUSH2 0x158d 00001505: JUMPI 00001506: PUSH1 0x40 00001508: MLOAD 00001509: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000152a: DUP2 0000152b: MSTORE 0000152c: PUSH1 0x20 0000152e: PUSH1 0x04 00001530: DUP3 00001531: ADD 00001532: MSTORE 00001533: PUSH1 0x26 00001535: PUSH1 0x24 00001537: DUP3 00001538: ADD 00001539: MSTORE 0000153a: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 0000155b: PUSH1 0x44 0000155d: DUP3 0000155e: ADD 0000155f: MSTORE 00001560: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 00001581: PUSH1 0x64 00001583: DUP3 00001584: ADD 00001585: MSTORE 00001586: PUSH1 0x84 00001588: ADD 00001589: PUSH2 0x0946 0000158c: JUMP 0000158d: JUMPDEST 0000158e: PUSH2 0x14b2 00001591: DUP2 00001592: PUSH2 0x19ee 00001595: JUMP 00001596: JUMPDEST 00001597: PUSH2 0x159e 0000159a: PUSH2 0x1613 0000159d: JUMP 0000159e: JUMPDEST 0000159f: PUSH2 0x0880 000015a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015b7: DUP4 000015b8: AND 000015b9: DUP3 000015ba: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000015db: PUSH2 0x1beb 000015de: JUMP 000015df: JUMPDEST 000015e0: PUSH2 0x15e7 000015e3: PUSH2 0x1613 000015e6: JUMP 000015e7: JUMPDEST 000015e8: PUSH2 0x15f0 000015eb: DUP3 000015ec: PUSH2 0x16ca 000015ef: JUMP 000015f0: JUMPDEST 000015f1: POP 000015f2: PUSH4 0xffffffff 000015f7: DUP1 000015f8: DUP4 000015f9: AND 000015fa: PUSH1 0x00 000015fc: SWAP1 000015fd: DUP2 000015fe: MSTORE 000015ff: PUSH1 0xcc 00001601: PUSH1 0x20 00001603: MSTORE 00001604: PUSH1 0x40 00001606: SWAP1 00001607: KECCAK256 00001608: PUSH2 0x0be4 0000160b: SWAP2 0000160c: DUP4 0000160d: SWAP1 0000160e: PUSH2 0x1694 00001611: AND 00001612: JUMP 00001613: JUMPDEST 00001614: PUSH1 0x33 00001616: SLOAD 00001617: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000162c: AND 0000162d: CALLER 0000162e: EQ 0000162f: PUSH2 0x100f 00001632: JUMPI 00001633: PUSH1 0x40 00001635: MLOAD 00001636: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001657: DUP2 00001658: MSTORE 00001659: PUSH1 0x20 0000165b: PUSH1 0x04 0000165d: DUP3 0000165e: ADD 0000165f: DUP2 00001660: SWAP1 00001661: MSTORE 00001662: PUSH1 0x24 00001664: DUP3 00001665: ADD 00001666: MSTORE 00001667: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00001688: PUSH1 0x44 0000168a: DUP3 0000168b: ADD 0000168c: MSTORE 0000168d: PUSH1 0x64 0000168f: ADD 00001690: PUSH2 0x0946 00001693: JUMP 00001694: JUMPDEST 00001695: PUSH1 0x00 00001697: PUSH2 0x16b6 0000169a: DUP4 0000169b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016b0: DUP5 000016b1: AND 000016b2: PUSH2 0x1deb 000016b5: JUMP 000016b6: JUMPDEST 000016b7: SWAP4 000016b8: SWAP3 000016b9: POP 000016ba: POP 000016bb: POP 000016bc: JUMP 000016bd: JUMPDEST 000016be: PUSH1 0x60 000016c0: PUSH1 0x00 000016c2: PUSH2 0x16b6 000016c5: DUP4 000016c6: PUSH2 0x1e3a 000016c9: JUMP 000016ca: JUMPDEST 000016cb: PUSH1 0x00 000016cd: DUP1 000016ce: DUP1 000016cf: PUSH2 0x16e2 000016d2: PUSH1 0x97 000016d4: PUSH4 0xffffffff 000016d9: DUP1 000016da: DUP8 000016db: AND 000016dc: SWAP1 000016dd: PUSH2 0x172f 000016e0: AND 000016e1: JUMP 000016e2: JUMPDEST 000016e3: SWAP2 000016e4: POP 000016e5: SWAP2 000016e6: POP 000016e7: DUP2 000016e8: ISZERO 000016e9: PUSH2 0x16f3 000016ec: JUMPI 000016ed: SWAP4 000016ee: SWAP3 000016ef: POP 000016f0: POP 000016f1: POP 000016f2: JUMP 000016f3: JUMPDEST 000016f4: PUSH2 0x16fc 000016f7: DUP5 000016f8: PUSH2 0x1e96 000016fb: JUMP 000016fc: JUMPDEST 000016fd: PUSH1 0x40 000016ff: MLOAD 00001700: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001721: DUP2 00001722: MSTORE 00001723: PUSH1 0x04 00001725: ADD 00001726: PUSH2 0x0946 00001729: SWAP2 0000172a: SWAP1 0000172b: PUSH2 0x31c7 0000172e: JUMP 0000172f: JUMPDEST 00001730: PUSH1 0x00 00001732: DUP1 00001733: PUSH2 0x173c 00001736: DUP5 00001737: DUP5 00001738: PUSH2 0x1ecd 0000173b: JUMP 0000173c: JUMPDEST 0000173d: SWAP2 0000173e: POP 0000173f: SWAP2 00001740: POP 00001741: JUMPDEST 00001742: SWAP3 00001743: POP 00001744: SWAP3 00001745: SWAP1 00001746: POP 00001747: JUMP 00001748: JUMPDEST 00001749: PUSH1 0x00 0000174b: PUSH2 0x16b6 0000174e: DUP4 0000174f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001764: DUP5 00001765: AND 00001766: PUSH2 0x1f07 00001769: JUMP 0000176a: JUMPDEST 0000176b: PUSH1 0x60 0000176d: PUSH1 0x00 0000176f: PUSH2 0x1777 00001772: DUP4 00001773: PUSH2 0x1ffa 00001776: JUMP 00001777: JUMPDEST 00001778: SWAP1 00001779: POP 0000177a: DUP1 0000177b: MLOAD 0000177c: PUSH8 0xffffffffffffffff 00001785: DUP2 00001786: GT 00001787: ISZERO 00001788: PUSH2 0x1793 0000178b: JUMPI 0000178c: PUSH2 0x1793 0000178f: PUSH2 0x3397 00001792: JUMP 00001793: JUMPDEST 00001794: PUSH1 0x40 00001796: MLOAD 00001797: SWAP1 00001798: DUP1 00001799: DUP3 0000179a: MSTORE 0000179b: DUP1 0000179c: PUSH1 0x20 0000179e: MUL 0000179f: PUSH1 0x20 000017a1: ADD 000017a2: DUP3 000017a3: ADD 000017a4: PUSH1 0x40 000017a6: MSTORE 000017a7: DUP1 000017a8: ISZERO 000017a9: PUSH2 0x17bc 000017ac: JUMPI 000017ad: DUP2 000017ae: PUSH1 0x20 000017b0: ADD 000017b1: PUSH1 0x20 000017b3: DUP3 000017b4: MUL 000017b5: DUP1 000017b6: CALLDATASIZE 000017b7: DUP4 000017b8: CALLDATACOPY 000017b9: ADD 000017ba: SWAP1 000017bb: POP 000017bc: JUMPDEST 000017bd: POP 000017be: SWAP2 000017bf: POP 000017c0: PUSH1 0x00 000017c2: JUMPDEST 000017c3: DUP2 000017c4: MLOAD 000017c5: DUP2 000017c6: LT 000017c7: ISZERO 000017c8: PUSH2 0x1814 000017cb: JUMPI 000017cc: DUP2 000017cd: DUP2 000017ce: DUP2 000017cf: MLOAD 000017d0: DUP2 000017d1: LT 000017d2: PUSH2 0x17dd 000017d5: JUMPI 000017d6: PUSH2 0x17dd 000017d9: PUSH2 0x3326 000017dc: JUMP 000017dd: JUMPDEST 000017de: PUSH1 0x20 000017e0: MUL 000017e1: PUSH1 0x20 000017e3: ADD 000017e4: ADD 000017e5: MLOAD 000017e6: DUP4 000017e7: DUP3 000017e8: DUP2 000017e9: MLOAD 000017ea: DUP2 000017eb: LT 000017ec: PUSH2 0x17f7 000017ef: JUMPI 000017f0: PUSH2 0x17f7 000017f3: PUSH2 0x3326 000017f6: JUMP 000017f7: JUMPDEST 000017f8: PUSH4 0xffffffff 000017fd: SWAP1 000017fe: SWAP3 000017ff: AND 00001800: PUSH1 0x20 00001802: SWAP3 00001803: DUP4 00001804: MUL 00001805: SWAP2 00001806: SWAP1 00001807: SWAP2 00001808: ADD 00001809: SWAP1 0000180a: SWAP2 0000180b: ADD 0000180c: MSTORE 0000180d: PUSH1 0x01 0000180f: ADD 00001810: PUSH2 0x17c2 00001813: JUMP 00001814: JUMPDEST 00001815: POP 00001816: POP 00001817: SWAP2 00001818: SWAP1 00001819: POP 0000181a: JUMP 0000181b: JUMPDEST 0000181c: PUSH4 0xffffffff 00001821: DUP3 00001822: AND 00001823: PUSH1 0x00 00001825: DUP2 00001826: DUP2 00001827: MSTORE 00001828: PUSH1 0xca 0000182a: PUSH1 0x20 0000182c: SWAP1 0000182d: DUP2 0000182e: MSTORE 0000182f: PUSH1 0x40 00001831: SWAP2 00001832: DUP3 00001833: SWAP1 00001834: KECCAK256 00001835: DUP5 00001836: SWAP1 00001837: SSTORE 00001838: DUP2 00001839: MLOAD 0000183a: SWAP3 0000183b: DUP4 0000183c: MSTORE 0000183d: DUP3 0000183e: ADD 0000183f: DUP4 00001840: SWAP1 00001841: MSTORE 00001842: PUSH32 0xc3de732a98b24a2b5c6f67e8a7fb057ffc14046b83968a2c73e4148d2fba978b 00001863: SWAP2 00001864: ADD 00001865: PUSH2 0x09c6 00001868: JUMP 00001869: JUMPDEST 0000186a: PUSH1 0x00 0000186c: DUP1 0000186d: PUSH2 0x1875 00001870: DUP7 00001871: PUSH2 0x208b 00001874: JUMP 00001875: JUMPDEST 00001876: SWAP1 00001877: POP 00001878: PUSH1 0x00 0000187a: PUSH2 0x1882 0000187d: DUP8 0000187e: PUSH2 0x20e3 00001881: JUMP 00001882: JUMPDEST 00001883: SWAP1 00001884: POP 00001885: PUSH1 0x00 00001887: PUSH2 0x1891 0000188a: DUP10 0000188b: DUP4 0000188c: DUP6 0000188d: PUSH2 0x210f 00001890: JUMP 00001891: JUMPDEST 00001892: SWAP1 00001893: POP 00001894: PUSH2 0x18a0 00001897: DUP11 00001898: DUP9 00001899: DUP4 0000189a: DUP10 0000189b: DUP10 0000189c: PUSH2 0x213e 0000189f: JUMP 000018a0: JUMPDEST 000018a1: SWAP4 000018a2: POP 000018a3: DUP9 000018a4: DUP11 000018a5: PUSH4 0xffffffff 000018aa: AND 000018ab: PUSH32 0xd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec 000018cc: DUP5 000018cd: PUSH1 0x40 000018cf: MLOAD 000018d0: PUSH2 0x18db 000018d3: SWAP2 000018d4: DUP2 000018d5: MSTORE 000018d6: PUSH1 0x20 000018d8: ADD 000018d9: SWAP1 000018da: JUMP 000018db: JUMPDEST 000018dc: PUSH1 0x40 000018de: MLOAD 000018df: DUP1 000018e0: SWAP2 000018e1: SUB 000018e2: SWAP1 000018e3: LOG3 000018e4: POP 000018e5: POP 000018e6: POP 000018e7: SWAP7 000018e8: SWAP6 000018e9: POP 000018ea: POP 000018eb: POP 000018ec: POP 000018ed: POP 000018ee: POP 000018ef: JUMP 000018f0: JUMPDEST 000018f1: PUSH1 0x00 000018f3: PUSH2 0x18fc 000018f6: DUP4 000018f7: DUP4 000018f8: PUSH2 0x21f1 000018fb: JUMP 000018fc: JUMPDEST 000018fd: SWAP1 000018fe: POP 000018ff: PUSH1 0x00 00001901: PUSH2 0x190a 00001904: DUP5 00001905: DUP5 00001906: PUSH2 0x221a 00001909: JUMP 0000190a: JUMPDEST 0000190b: SWAP1 0000190c: POP 0000190d: CALLDATASIZE 0000190e: PUSH1 0x00 00001910: PUSH2 0x1919 00001913: DUP7 00001914: DUP7 00001915: PUSH2 0x222a 00001918: JUMP 00001919: JUMPDEST 0000191a: SWAP2 0000191b: POP 0000191c: SWAP2 0000191d: POP 0000191e: PUSH2 0x1939 00001921: PUSH2 0x1929 00001924: DUP6 00001925: PUSH2 0x223a 00001928: JUMP 00001929: JUMPDEST 0000192a: PUSH2 0x1932 0000192d: DUP6 0000192e: PUSH2 0x22e3 00001931: JUMP 00001932: JUMPDEST 00001933: DUP5 00001934: DUP5 00001935: PUSH2 0x230f 00001938: JUMP 00001939: JUMPDEST 0000193a: DUP4 0000193b: DUP9 0000193c: PUSH4 0xffffffff 00001941: AND 00001942: PUSH32 0xba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6 00001963: DUP6 00001964: PUSH1 0x40 00001966: MLOAD 00001967: PUSH2 0x0f36 0000196a: SWAP2 0000196b: DUP2 0000196c: MSTORE 0000196d: PUSH1 0x20 0000196f: ADD 00001970: SWAP1 00001971: JUMP 00001972: JUMPDEST 00001973: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001988: DUP2 00001989: AND 0000198a: PUSH1 0x00 0000198c: SWAP1 0000198d: DUP2 0000198e: MSTORE 0000198f: PUSH1 0x01 00001991: DUP4 00001992: ADD 00001993: PUSH1 0x20 00001995: MSTORE 00001996: PUSH1 0x40 00001998: DUP2 00001999: KECCAK256 0000199a: SLOAD 0000199b: ISZERO 0000199c: ISZERO 0000199d: PUSH2 0x16b6 000019a0: JUMP 000019a1: JUMPDEST 000019a2: PUSH2 0x19e2 000019a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019ba: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 000019db: AND 000019dc: DUP3 000019dd: DUP5 000019de: PUSH2 0x1beb 000019e1: JUMP 000019e2: JUMPDEST 000019e3: PUSH2 0x1066 000019e6: DUP5 000019e7: DUP5 000019e8: DUP5 000019e9: DUP5 000019ea: PUSH2 0x2350 000019ed: JUMP 000019ee: JUMPDEST 000019ef: PUSH1 0x33 000019f1: DUP1 000019f2: SLOAD 000019f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a08: DUP4 00001a09: DUP2 00001a0a: AND 00001a0b: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00001a2c: DUP4 00001a2d: AND 00001a2e: DUP2 00001a2f: OR 00001a30: SWAP1 00001a31: SWAP4 00001a32: SSTORE 00001a33: PUSH1 0x40 00001a35: MLOAD 00001a36: SWAP2 00001a37: AND 00001a38: SWAP2 00001a39: SWAP1 00001a3a: DUP3 00001a3b: SWAP1 00001a3c: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001a5d: SWAP1 00001a5e: PUSH1 0x00 00001a60: SWAP1 00001a61: LOG3 00001a62: POP 00001a63: POP 00001a64: JUMP 00001a65: JUMPDEST 00001a66: PUSH4 0xffffffff 00001a6b: DUP2 00001a6c: AND 00001a6d: PUSH1 0x00 00001a6f: SWAP1 00001a70: DUP2 00001a71: MSTORE 00001a72: PUSH1 0xcb 00001a74: PUSH1 0x20 00001a76: SWAP1 00001a77: DUP2 00001a78: MSTORE 00001a79: PUSH1 0x40 00001a7b: DUP1 00001a7c: DUP4 00001a7d: KECCAK256 00001a7e: DUP4 00001a7f: SWAP1 00001a80: SSTORE 00001a81: PUSH1 0xcc 00001a83: SWAP1 00001a84: SWAP2 00001a85: MSTORE 00001a86: SWAP1 00001a87: KECCAK256 00001a88: PUSH2 0x1a90 00001a8b: SWAP1 00001a8c: PUSH2 0x23f6 00001a8f: JUMP 00001a90: JUMPDEST 00001a91: PUSH2 0x14b2 00001a94: DUP2 00001a95: PUSH2 0x244e 00001a98: JUMP 00001a99: JUMPDEST 00001a9a: PUSH1 0x00 00001a9c: PUSH2 0x1ac9 00001a9f: DUP6 00001aa0: DUP6 00001aa1: DUP6 00001aa2: DUP6 00001aa3: PUSH2 0x1aab 00001aa6: DUP11 00001aa7: PUSH2 0x24a3 00001aaa: JUMP 00001aab: JUMPDEST 00001aac: PUSH1 0x65 00001aae: SLOAD 00001aaf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ac4: AND 00001ac5: PUSH2 0x1869 00001ac8: JUMP 00001ac9: JUMPDEST 00001aca: SWAP6 00001acb: SWAP5 00001acc: POP 00001acd: POP 00001ace: POP 00001acf: POP 00001ad0: POP 00001ad1: JUMP 00001ad2: JUMPDEST 00001ad3: PUSH1 0x40 00001ad5: DUP1 00001ad6: MLOAD 00001ad7: PUSH1 0x20 00001ad9: DUP2 00001ada: ADD 00001adb: DUP5 00001adc: SWAP1 00001add: MSTORE 00001ade: DUP1 00001adf: DUP3 00001ae0: ADD 00001ae1: DUP4 00001ae2: SWAP1 00001ae3: MSTORE 00001ae4: DUP2 00001ae5: MLOAD 00001ae6: DUP1 00001ae7: DUP3 00001ae8: SUB 00001ae9: DUP4 00001aea: ADD 00001aeb: DUP2 00001aec: MSTORE 00001aed: PUSH1 0x60 00001aef: SWAP1 00001af0: SWAP2 00001af1: ADD 00001af2: SWAP1 00001af3: SWAP2 00001af4: MSTORE 00001af5: PUSH1 0x00 00001af7: SWAP1 00001af8: PUSH2 0x0a3b 00001afb: SWAP1 00001afc: DUP6 00001afd: SWAP1 00001afe: PUSH1 0x65 00001b00: SLOAD 00001b01: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b16: AND 00001b17: PUSH2 0x24c5 00001b1a: JUMP 00001b1b: JUMPDEST 00001b1c: PUSH2 0x0880 00001b1f: PUSH1 0x97 00001b21: PUSH4 0xffffffff 00001b26: DUP1 00001b27: DUP6 00001b28: AND 00001b29: SWAP1 00001b2a: DUP5 00001b2b: SWAP1 00001b2c: PUSH2 0x24db 00001b2f: AND 00001b30: JUMP 00001b31: JUMPDEST 00001b32: PUSH1 0x00 00001b34: SLOAD 00001b35: PUSH2 0x0100 00001b38: SWAP1 00001b39: DIV 00001b3a: PUSH1 0xff 00001b3c: AND 00001b3d: PUSH2 0x1bc8 00001b40: JUMPI 00001b41: PUSH1 0x40 00001b43: MLOAD 00001b44: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001b65: DUP2 00001b66: MSTORE 00001b67: PUSH1 0x20 00001b69: PUSH1 0x04 00001b6b: DUP3 00001b6c: ADD 00001b6d: MSTORE 00001b6e: PUSH1 0x2b 00001b70: PUSH1 0x24 00001b72: DUP3 00001b73: ADD 00001b74: MSTORE 00001b75: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00001b96: PUSH1 0x44 00001b98: DUP3 00001b99: ADD 00001b9a: MSTORE 00001b9b: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00001bbc: PUSH1 0x64 00001bbe: DUP3 00001bbf: ADD 00001bc0: MSTORE 00001bc1: PUSH1 0x84 00001bc3: ADD 00001bc4: PUSH2 0x0946 00001bc7: JUMP 00001bc8: JUMPDEST 00001bc9: PUSH2 0x1bd0 00001bcc: PUSH2 0x24e6 00001bcf: JUMP 00001bd0: JUMPDEST 00001bd1: PUSH2 0x1bd9 00001bd4: DUP4 00001bd5: PUSH2 0x0a43 00001bd8: JUMP 00001bd9: JUMPDEST 00001bda: PUSH2 0x1be2 00001bdd: DUP3 00001bde: PUSH2 0x0884 00001be1: JUMP 00001be2: JUMPDEST 00001be3: PUSH2 0x0be4 00001be6: DUP2 00001be7: PUSH2 0x19ee 00001bea: JUMP 00001beb: JUMPDEST 00001bec: DUP1 00001bed: ISZERO 00001bee: DUP1 00001bef: PUSH2 0x1c8b 00001bf2: JUMPI 00001bf3: POP 00001bf4: PUSH1 0x40 00001bf6: MLOAD 00001bf7: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000 00001c18: DUP2 00001c19: MSTORE 00001c1a: ADDRESS 00001c1b: PUSH1 0x04 00001c1d: DUP3 00001c1e: ADD 00001c1f: MSTORE 00001c20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c35: DUP4 00001c36: DUP2 00001c37: AND 00001c38: PUSH1 0x24 00001c3a: DUP4 00001c3b: ADD 00001c3c: MSTORE 00001c3d: DUP5 00001c3e: AND 00001c3f: SWAP1 00001c40: PUSH4 0xdd62ed3e 00001c45: SWAP1 00001c46: PUSH1 0x44 00001c48: ADD 00001c49: PUSH1 0x20 00001c4b: PUSH1 0x40 00001c4d: MLOAD 00001c4e: DUP1 00001c4f: DUP4 00001c50: SUB 00001c51: DUP2 00001c52: DUP7 00001c53: GAS 00001c54: STATICCALL 00001c55: ISZERO 00001c56: DUP1 00001c57: ISZERO 00001c58: PUSH2 0x1c65 00001c5b: JUMPI 00001c5c: RETURNDATASIZE 00001c5d: PUSH1 0x00 00001c5f: DUP1 00001c60: RETURNDATACOPY 00001c61: RETURNDATASIZE 00001c62: PUSH1 0x00 00001c64: REVERT 00001c65: JUMPDEST 00001c66: POP 00001c67: POP 00001c68: POP 00001c69: POP 00001c6a: PUSH1 0x40 00001c6c: MLOAD 00001c6d: RETURNDATASIZE 00001c6e: PUSH1 0x1f 00001c70: NOT 00001c71: PUSH1 0x1f 00001c73: DUP3 00001c74: ADD 00001c75: AND 00001c76: DUP3 00001c77: ADD 00001c78: DUP1 00001c79: PUSH1 0x40 00001c7b: MSTORE 00001c7c: POP 00001c7d: DUP2 00001c7e: ADD 00001c7f: SWAP1 00001c80: PUSH2 0x1c89 00001c83: SWAP2 00001c84: SWAP1 00001c85: PUSH2 0x330d 00001c88: JUMP 00001c89: JUMPDEST 00001c8a: ISZERO 00001c8b: JUMPDEST 00001c8c: PUSH2 0x1d17 00001c8f: JUMPI 00001c90: PUSH1 0x40 00001c92: MLOAD 00001c93: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001cb4: DUP2 00001cb5: MSTORE 00001cb6: PUSH1 0x20 00001cb8: PUSH1 0x04 00001cba: DUP3 00001cbb: ADD 00001cbc: MSTORE 00001cbd: PUSH1 0x36 00001cbf: PUSH1 0x24 00001cc1: DUP3 00001cc2: ADD 00001cc3: MSTORE 00001cc4: PUSH32 0x5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f 00001ce5: PUSH1 0x44 00001ce7: DUP3 00001ce8: ADD 00001ce9: MSTORE 00001cea: PUSH32 0x20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000 00001d0b: PUSH1 0x64 00001d0d: DUP3 00001d0e: ADD 00001d0f: MSTORE 00001d10: PUSH1 0x84 00001d12: ADD 00001d13: PUSH2 0x0946 00001d16: JUMP 00001d17: JUMPDEST 00001d18: PUSH1 0x40 00001d1a: MLOAD 00001d1b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d30: DUP4 00001d31: AND 00001d32: PUSH1 0x24 00001d34: DUP3 00001d35: ADD 00001d36: MSTORE 00001d37: PUSH1 0x44 00001d39: DUP2 00001d3a: ADD 00001d3b: DUP3 00001d3c: SWAP1 00001d3d: MSTORE 00001d3e: PUSH2 0x0be4 00001d41: SWAP1 00001d42: DUP5 00001d43: SWAP1 00001d44: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000 00001d65: SWAP1 00001d66: PUSH1 0x64 00001d68: ADD 00001d69: JUMPDEST 00001d6a: PUSH1 0x40 00001d6c: DUP1 00001d6d: MLOAD 00001d6e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001d8f: DUP2 00001d90: DUP5 00001d91: SUB 00001d92: ADD 00001d93: DUP2 00001d94: MSTORE 00001d95: SWAP2 00001d96: SWAP1 00001d97: MSTORE 00001d98: PUSH1 0x20 00001d9a: DUP2 00001d9b: ADD 00001d9c: DUP1 00001d9d: MLOAD 00001d9e: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001dbb: AND 00001dbc: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001ddd: SWAP1 00001dde: SWAP4 00001ddf: AND 00001de0: SWAP3 00001de1: SWAP1 00001de2: SWAP3 00001de3: OR 00001de4: SWAP1 00001de5: SWAP2 00001de6: MSTORE 00001de7: PUSH2 0x2585 00001dea: JUMP 00001deb: JUMPDEST 00001dec: PUSH1 0x00 00001dee: DUP2 00001def: DUP2 00001df0: MSTORE 00001df1: PUSH1 0x01 00001df3: DUP4 00001df4: ADD 00001df5: PUSH1 0x20 00001df7: MSTORE 00001df8: PUSH1 0x40 00001dfa: DUP2 00001dfb: KECCAK256 00001dfc: SLOAD 00001dfd: PUSH2 0x1e32 00001e00: JUMPI 00001e01: POP 00001e02: DUP2 00001e03: SLOAD 00001e04: PUSH1 0x01 00001e06: DUP2 00001e07: DUP2 00001e08: ADD 00001e09: DUP5 00001e0a: SSTORE 00001e0b: PUSH1 0x00 00001e0d: DUP5 00001e0e: DUP2 00001e0f: MSTORE 00001e10: PUSH1 0x20 00001e12: DUP1 00001e13: DUP3 00001e14: KECCAK256 00001e15: SWAP1 00001e16: SWAP4 00001e17: ADD 00001e18: DUP5 00001e19: SWAP1 00001e1a: SSTORE 00001e1b: DUP5 00001e1c: SLOAD 00001e1d: DUP5 00001e1e: DUP3 00001e1f: MSTORE 00001e20: DUP3 00001e21: DUP7 00001e22: ADD 00001e23: SWAP1 00001e24: SWAP4 00001e25: MSTORE 00001e26: PUSH1 0x40 00001e28: SWAP1 00001e29: KECCAK256 00001e2a: SWAP2 00001e2b: SWAP1 00001e2c: SWAP2 00001e2d: SSTORE 00001e2e: PUSH2 0x09f3 00001e31: JUMP 00001e32: JUMPDEST 00001e33: POP 00001e34: PUSH1 0x00 00001e36: PUSH2 0x09f3 00001e39: JUMP 00001e3a: JUMPDEST 00001e3b: PUSH1 0x60 00001e3d: DUP2 00001e3e: PUSH1 0x00 00001e40: ADD 00001e41: DUP1 00001e42: SLOAD 00001e43: DUP1 00001e44: PUSH1 0x20 00001e46: MUL 00001e47: PUSH1 0x20 00001e49: ADD 00001e4a: PUSH1 0x40 00001e4c: MLOAD 00001e4d: SWAP1 00001e4e: DUP2 00001e4f: ADD 00001e50: PUSH1 0x40 00001e52: MSTORE 00001e53: DUP1 00001e54: SWAP3 00001e55: SWAP2 00001e56: SWAP1 00001e57: DUP2 00001e58: DUP2 00001e59: MSTORE 00001e5a: PUSH1 0x20 00001e5c: ADD 00001e5d: DUP3 00001e5e: DUP1 00001e5f: SLOAD 00001e60: DUP1 00001e61: ISZERO 00001e62: PUSH2 0x1e8a 00001e65: JUMPI 00001e66: PUSH1 0x20 00001e68: MUL 00001e69: DUP3 00001e6a: ADD 00001e6b: SWAP2 00001e6c: SWAP1 00001e6d: PUSH1 0x00 00001e6f: MSTORE 00001e70: PUSH1 0x20 00001e72: PUSH1 0x00 00001e74: KECCAK256 00001e75: SWAP1 00001e76: JUMPDEST 00001e77: DUP2 00001e78: SLOAD 00001e79: DUP2 00001e7a: MSTORE 00001e7b: PUSH1 0x20 00001e7d: ADD 00001e7e: SWAP1 00001e7f: PUSH1 0x01 00001e81: ADD 00001e82: SWAP1 00001e83: DUP1 00001e84: DUP4 00001e85: GT 00001e86: PUSH2 0x1e76 00001e89: JUMPI 00001e8a: JUMPDEST 00001e8b: POP 00001e8c: POP 00001e8d: POP 00001e8e: POP 00001e8f: POP 00001e90: SWAP1 00001e91: POP 00001e92: SWAP2 00001e93: SWAP1 00001e94: POP 00001e95: JUMP 00001e96: JUMPDEST 00001e97: PUSH1 0x60 00001e99: PUSH2 0x1ea7 00001e9c: DUP3 00001e9d: PUSH4 0xffffffff 00001ea2: AND 00001ea3: PUSH2 0x2694 00001ea6: JUMP 00001ea7: JUMPDEST 00001ea8: PUSH1 0x40 00001eaa: MLOAD 00001eab: PUSH1 0x20 00001ead: ADD 00001eae: PUSH2 0x1eb7 00001eb1: SWAP2 00001eb2: SWAP1 00001eb3: PUSH2 0x33c6 00001eb6: JUMP 00001eb7: JUMPDEST 00001eb8: PUSH1 0x40 00001eba: MLOAD 00001ebb: PUSH1 0x20 00001ebd: DUP2 00001ebe: DUP4 00001ebf: SUB 00001ec0: SUB 00001ec1: DUP2 00001ec2: MSTORE 00001ec3: SWAP1 00001ec4: PUSH1 0x40 00001ec6: MSTORE 00001ec7: SWAP1 00001ec8: POP 00001ec9: SWAP2 00001eca: SWAP1 00001ecb: POP 00001ecc: JUMP 00001ecd: JUMPDEST 00001ece: PUSH1 0x00 00001ed0: DUP2 00001ed1: DUP2 00001ed2: MSTORE 00001ed3: PUSH1 0x02 00001ed5: DUP4 00001ed6: ADD 00001ed7: PUSH1 0x20 00001ed9: MSTORE 00001eda: PUSH1 0x40 00001edc: DUP2 00001edd: KECCAK256 00001ede: SLOAD 00001edf: DUP2 00001ee0: SWAP1 00001ee1: DUP1 00001ee2: PUSH2 0x1efc 00001ee5: JUMPI 00001ee6: PUSH2 0x1eef 00001ee9: DUP6 00001eea: DUP6 00001eeb: PUSH2 0x2752 00001eee: JUMP 00001eef: JUMPDEST 00001ef0: SWAP3 00001ef1: POP 00001ef2: PUSH1 0x00 00001ef4: SWAP2 00001ef5: POP 00001ef6: PUSH2 0x1741 00001ef9: SWAP1 00001efa: POP 00001efb: JUMP 00001efc: JUMPDEST 00001efd: PUSH1 0x01 00001eff: SWAP3 00001f00: POP 00001f01: SWAP1 00001f02: POP 00001f03: PUSH2 0x1741 00001f06: JUMP 00001f07: JUMPDEST 00001f08: PUSH1 0x00 00001f0a: DUP2 00001f0b: DUP2 00001f0c: MSTORE 00001f0d: PUSH1 0x01 00001f0f: DUP4 00001f10: ADD 00001f11: PUSH1 0x20 00001f13: MSTORE 00001f14: PUSH1 0x40 00001f16: DUP2 00001f17: KECCAK256 00001f18: SLOAD 00001f19: DUP1 00001f1a: ISZERO 00001f1b: PUSH2 0x1ff0 00001f1e: JUMPI 00001f1f: PUSH1 0x00 00001f21: PUSH2 0x1f2b 00001f24: PUSH1 0x01 00001f26: DUP4 00001f27: PUSH2 0x340b 00001f2a: JUMP 00001f2b: JUMPDEST 00001f2c: DUP6 00001f2d: SLOAD 00001f2e: SWAP1 00001f2f: SWAP2 00001f30: POP 00001f31: PUSH1 0x00 00001f33: SWAP1 00001f34: PUSH2 0x1f3f 00001f37: SWAP1 00001f38: PUSH1 0x01 00001f3a: SWAP1 00001f3b: PUSH2 0x340b 00001f3e: JUMP 00001f3f: JUMPDEST 00001f40: SWAP1 00001f41: POP 00001f42: DUP2 00001f43: DUP2 00001f44: EQ 00001f45: PUSH2 0x1fa4 00001f48: JUMPI 00001f49: PUSH1 0x00 00001f4b: DUP7 00001f4c: PUSH1 0x00 00001f4e: ADD 00001f4f: DUP3 00001f50: DUP2 00001f51: SLOAD 00001f52: DUP2 00001f53: LT 00001f54: PUSH2 0x1f5f 00001f57: JUMPI 00001f58: PUSH2 0x1f5f 00001f5b: PUSH2 0x3326 00001f5e: JUMP 00001f5f: JUMPDEST 00001f60: SWAP1 00001f61: PUSH1 0x00 00001f63: MSTORE 00001f64: PUSH1 0x20 00001f66: PUSH1 0x00 00001f68: KECCAK256 00001f69: ADD 00001f6a: SLOAD 00001f6b: SWAP1 00001f6c: POP 00001f6d: DUP1 00001f6e: DUP8 00001f6f: PUSH1 0x00 00001f71: ADD 00001f72: DUP5 00001f73: DUP2 00001f74: SLOAD 00001f75: DUP2 00001f76: LT 00001f77: PUSH2 0x1f82 00001f7a: JUMPI 00001f7b: PUSH2 0x1f82 00001f7e: PUSH2 0x3326 00001f81: JUMP 00001f82: JUMPDEST 00001f83: PUSH1 0x00 00001f85: SWAP2 00001f86: DUP3 00001f87: MSTORE 00001f88: PUSH1 0x20 00001f8a: DUP1 00001f8b: DUP4 00001f8c: KECCAK256 00001f8d: SWAP1 00001f8e: SWAP2 00001f8f: ADD 00001f90: SWAP3 00001f91: SWAP1 00001f92: SWAP3 00001f93: SSTORE 00001f94: SWAP2 00001f95: DUP3 00001f96: MSTORE 00001f97: PUSH1 0x01 00001f99: DUP9 00001f9a: ADD 00001f9b: SWAP1 00001f9c: MSTORE 00001f9d: PUSH1 0x40 00001f9f: SWAP1 00001fa0: KECCAK256 00001fa1: DUP4 00001fa2: SWAP1 00001fa3: SSTORE 00001fa4: JUMPDEST 00001fa5: DUP6 00001fa6: SLOAD 00001fa7: DUP7 00001fa8: SWAP1 00001fa9: DUP1 00001faa: PUSH2 0x1fb5 00001fad: JUMPI 00001fae: PUSH2 0x1fb5 00001fb1: PUSH2 0x341e 00001fb4: JUMP 00001fb5: JUMPDEST 00001fb6: PUSH1 0x01 00001fb8: SWAP1 00001fb9: SUB 00001fba: DUP2 00001fbb: DUP2 00001fbc: SWAP1 00001fbd: PUSH1 0x00 00001fbf: MSTORE 00001fc0: PUSH1 0x20 00001fc2: PUSH1 0x00 00001fc4: KECCAK256 00001fc5: ADD 00001fc6: PUSH1 0x00 00001fc8: SWAP1 00001fc9: SSTORE 00001fca: SWAP1 00001fcb: SSTORE 00001fcc: DUP6 00001fcd: PUSH1 0x01 00001fcf: ADD 00001fd0: PUSH1 0x00 00001fd2: DUP7 00001fd3: DUP2 00001fd4: MSTORE 00001fd5: PUSH1 0x20 00001fd7: ADD 00001fd8: SWAP1 00001fd9: DUP2 00001fda: MSTORE 00001fdb: PUSH1 0x20 00001fdd: ADD 00001fde: PUSH1 0x00 00001fe0: KECCAK256 00001fe1: PUSH1 0x00 00001fe3: SWAP1 00001fe4: SSTORE 00001fe5: PUSH1 0x01 00001fe7: SWAP4 00001fe8: POP 00001fe9: POP 00001fea: POP 00001feb: POP 00001fec: PUSH2 0x09f3 00001fef: JUMP 00001ff0: JUMPDEST 00001ff1: PUSH1 0x00 00001ff3: SWAP2 00001ff4: POP 00001ff5: POP 00001ff6: PUSH2 0x09f3 00001ff9: JUMP 00001ffa: JUMPDEST 00001ffb: PUSH1 0x60 00001ffd: PUSH1 0x00 00001fff: PUSH2 0x2007 00002002: DUP4 00002003: PUSH2 0x275e 00002006: JUMP 00002007: JUMPDEST 00002008: SWAP1 00002009: POP 0000200a: DUP1 0000200b: PUSH8 0xffffffffffffffff 00002014: DUP2 00002015: GT 00002016: ISZERO 00002017: PUSH2 0x2022 0000201a: JUMPI 0000201b: PUSH2 0x2022 0000201e: PUSH2 0x3397 00002021: JUMP 00002022: JUMPDEST 00002023: PUSH1 0x40 00002025: MLOAD 00002026: SWAP1 00002027: DUP1 00002028: DUP3 00002029: MSTORE 0000202a: DUP1 0000202b: PUSH1 0x20 0000202d: MUL 0000202e: PUSH1 0x20 00002030: ADD 00002031: DUP3 00002032: ADD 00002033: PUSH1 0x40 00002035: MSTORE 00002036: DUP1 00002037: ISZERO 00002038: PUSH2 0x204b 0000203b: JUMPI 0000203c: DUP2 0000203d: PUSH1 0x20 0000203f: ADD 00002040: PUSH1 0x20 00002042: DUP3 00002043: MUL 00002044: DUP1 00002045: CALLDATASIZE 00002046: DUP4 00002047: CALLDATACOPY 00002048: ADD 00002049: SWAP1 0000204a: POP 0000204b: JUMPDEST 0000204c: POP 0000204d: SWAP2 0000204e: POP 0000204f: PUSH1 0x00 00002051: JUMPDEST 00002052: DUP2 00002053: DUP2 00002054: LT 00002055: ISZERO 00002056: PUSH2 0x1814 00002059: JUMPI 0000205a: PUSH2 0x2063 0000205d: DUP5 0000205e: DUP3 0000205f: PUSH2 0x2769 00002062: JUMP 00002063: JUMPDEST 00002064: PUSH1 0x00 00002066: SHR 00002067: DUP4 00002068: DUP3 00002069: DUP2 0000206a: MLOAD 0000206b: DUP2 0000206c: LT 0000206d: PUSH2 0x2078 00002070: JUMPI 00002071: PUSH2 0x2078 00002074: PUSH2 0x3326 00002077: JUMP 00002078: JUMPDEST 00002079: PUSH1 0x20 0000207b: SWAP1 0000207c: DUP2 0000207d: MUL 0000207e: SWAP2 0000207f: SWAP1 00002080: SWAP2 00002081: ADD 00002082: ADD 00002083: MSTORE 00002084: PUSH1 0x01 00002086: ADD 00002087: PUSH2 0x2051 0000208a: JUMP 0000208b: JUMPDEST 0000208c: PUSH1 0x60 0000208e: PUSH2 0x20cf 00002091: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020a6: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 000020c7: AND 000020c8: CALLER 000020c9: ADDRESS 000020ca: DUP6 000020cb: PUSH2 0x2775 000020ce: JUMP 000020cf: JUMPDEST 000020d0: POP 000020d1: POP 000020d2: PUSH1 0x40 000020d4: DUP1 000020d5: MLOAD 000020d6: PUSH1 0x20 000020d8: DUP2 000020d9: ADD 000020da: SWAP1 000020db: SWAP2 000020dc: MSTORE 000020dd: PUSH1 0x00 000020df: DUP2 000020e0: MSTORE 000020e1: SWAP1 000020e2: JUMP 000020e3: JUMPDEST 000020e4: PUSH1 0x00 000020e6: PUSH2 0x09f3 000020e9: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 0000210a: DUP4 0000210b: PUSH2 0x344d 0000210e: JUMP 0000210f: JUMPDEST 00002110: PUSH1 0x60 00002112: DUP4 00002113: DUP4 00002114: DUP4 00002115: PUSH1 0x40 00002117: MLOAD 00002118: PUSH1 0x20 0000211a: ADD 0000211b: PUSH2 0x2126 0000211e: SWAP4 0000211f: SWAP3 00002120: SWAP2 00002121: SWAP1 00002122: PUSH2 0x3464 00002125: JUMP 00002126: JUMPDEST 00002127: PUSH1 0x40 00002129: MLOAD 0000212a: PUSH1 0x20 0000212c: DUP2 0000212d: DUP4 0000212e: SUB 0000212f: SUB 00002130: DUP2 00002131: MSTORE 00002132: SWAP1 00002133: PUSH1 0x40 00002135: MSTORE 00002136: SWAP1 00002137: POP 00002138: SWAP4 00002139: SWAP3 0000213a: POP 0000213b: POP 0000213c: POP 0000213d: JUMP 0000213e: JUMPDEST 0000213f: PUSH1 0x00 00002141: DUP1 00002142: PUSH2 0x214a 00002145: DUP8 00002146: PUSH2 0x16ca 00002149: JUMP 0000214a: JUMPDEST 0000214b: SWAP1 0000214c: POP 0000214d: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239 0000216e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002183: AND 00002184: PUSH4 0x10b83dc0 00002189: DUP8 0000218a: DUP10 0000218b: DUP5 0000218c: DUP10 0000218d: DUP10 0000218e: DUP10 0000218f: PUSH1 0x40 00002191: MLOAD 00002192: DUP8 00002193: PUSH4 0xffffffff 00002198: AND 00002199: PUSH1 0xe0 0000219b: SHL 0000219c: DUP2 0000219d: MSTORE 0000219e: PUSH1 0x04 000021a0: ADD 000021a1: PUSH2 0x21ae 000021a4: SWAP6 000021a5: SWAP5 000021a6: SWAP4 000021a7: SWAP3 000021a8: SWAP2 000021a9: SWAP1 000021aa: PUSH2 0x3491 000021ad: JUMP 000021ae: JUMPDEST 000021af: PUSH1 0x20 000021b1: PUSH1 0x40 000021b3: MLOAD 000021b4: DUP1 000021b5: DUP4 000021b6: SUB 000021b7: DUP2 000021b8: DUP6 000021b9: DUP9 000021ba: GAS 000021bb: CALL 000021bc: ISZERO 000021bd: DUP1 000021be: ISZERO 000021bf: PUSH2 0x21cc 000021c2: JUMPI 000021c3: RETURNDATASIZE 000021c4: PUSH1 0x00 000021c6: DUP1 000021c7: RETURNDATACOPY 000021c8: RETURNDATASIZE 000021c9: PUSH1 0x00 000021cb: REVERT 000021cc: JUMPDEST 000021cd: POP 000021ce: POP 000021cf: POP 000021d0: POP 000021d1: POP 000021d2: PUSH1 0x40 000021d4: MLOAD 000021d5: RETURNDATASIZE 000021d6: PUSH1 0x1f 000021d8: NOT 000021d9: PUSH1 0x1f 000021db: DUP3 000021dc: ADD 000021dd: AND 000021de: DUP3 000021df: ADD 000021e0: DUP1 000021e1: PUSH1 0x40 000021e3: MSTORE 000021e4: POP 000021e5: DUP2 000021e6: ADD 000021e7: SWAP1 000021e8: PUSH2 0x0c30 000021eb: SWAP2 000021ec: SWAP1 000021ed: PUSH2 0x330d 000021f0: JUMP 000021f1: JUMPDEST 000021f2: PUSH1 0x00 000021f4: DUP3 000021f5: DUP2 000021f6: DUP4 000021f7: PUSH2 0x2201 000021fa: DUP3 000021fb: PUSH1 0x20 000021fd: PUSH2 0x34f1 00002200: JUMP 00002201: JUMPDEST 00002202: PUSH1 0xff 00002204: AND 00002205: SWAP3 00002206: PUSH2 0x2211 00002209: SWAP4 0000220a: SWAP3 0000220b: SWAP2 0000220c: SWAP1 0000220d: PUSH2 0x350a 00002210: JUMP 00002211: JUMPDEST 00002212: PUSH2 0x16b6 00002215: SWAP2 00002216: PUSH2 0x3534 00002219: JUMP 0000221a: JUMPDEST 0000221b: PUSH1 0x00 0000221d: DUP3 0000221e: PUSH1 0x20 00002220: DUP4 00002221: PUSH2 0x2201 00002224: DUP3 00002225: DUP1 00002226: PUSH2 0x34f1 00002229: JUMP 0000222a: JUMPDEST 0000222b: CALLDATASIZE 0000222c: PUSH1 0x00 0000222e: PUSH2 0x173c 00002231: DUP4 00002232: PUSH1 0x40 00002234: DUP2 00002235: DUP8 00002236: PUSH2 0x350a 00002239: JUMP 0000223a: JUMPDEST 0000223b: PUSH1 0x00 0000223d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002252: DUP3 00002253: GT 00002254: ISZERO 00002255: PUSH2 0x22df 00002258: JUMPI 00002259: PUSH1 0x40 0000225b: MLOAD 0000225c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000227d: DUP2 0000227e: MSTORE 0000227f: PUSH1 0x20 00002281: PUSH1 0x04 00002283: DUP3 00002284: ADD 00002285: MSTORE 00002286: PUSH1 0x24 00002288: DUP1 00002289: DUP3 0000228a: ADD 0000228b: MSTORE 0000228c: PUSH32 0x5479706543617374733a2062797465733332546f41646472657373206f766572 000022ad: PUSH1 0x44 000022af: DUP3 000022b0: ADD 000022b1: MSTORE 000022b2: PUSH32 0x666c6f7700000000000000000000000000000000000000000000000000000000 000022d3: PUSH1 0x64 000022d5: DUP3 000022d6: ADD 000022d7: MSTORE 000022d8: PUSH1 0x84 000022da: ADD 000022db: PUSH2 0x0946 000022de: JUMP 000022df: JUMPDEST 000022e0: POP 000022e1: SWAP1 000022e2: JUMP 000022e3: JUMPDEST 000022e4: PUSH1 0x00 000022e6: PUSH2 0x09f3 000022e9: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 0000230a: DUP4 0000230b: PUSH2 0x3570 0000230e: JUMP 0000230f: JUMPDEST 00002310: PUSH2 0x1066 00002313: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002328: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00002349: AND 0000234a: DUP6 0000234b: DUP6 0000234c: PUSH2 0x27d3 0000234f: JUMP 00002350: JUMPDEST 00002351: PUSH1 0x40 00002353: MLOAD 00002354: PUSH32 0x81b4e8b400000000000000000000000000000000000000000000000000000000 00002375: DUP2 00002376: MSTORE 00002377: PUSH4 0xffffffff 0000237c: DUP6 0000237d: AND 0000237e: PUSH1 0x04 00002380: DUP3 00002381: ADD 00002382: MSTORE 00002383: PUSH1 0x24 00002385: DUP2 00002386: ADD 00002387: DUP5 00002388: SWAP1 00002389: MSTORE 0000238a: PUSH1 0x44 0000238c: DUP2 0000238d: ADD 0000238e: DUP4 0000238f: SWAP1 00002390: MSTORE 00002391: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023a6: DUP3 000023a7: AND 000023a8: SWAP1 000023a9: PUSH4 0x81b4e8b4 000023ae: SWAP1 000023af: CALLVALUE 000023b0: SWAP1 000023b1: PUSH1 0x64 000023b3: ADD 000023b4: PUSH1 0x20 000023b6: PUSH1 0x40 000023b8: MLOAD 000023b9: DUP1 000023ba: DUP4 000023bb: SUB 000023bc: DUP2 000023bd: DUP6 000023be: DUP9 000023bf: GAS 000023c0: CALL 000023c1: ISZERO 000023c2: DUP1 000023c3: ISZERO 000023c4: PUSH2 0x23d1 000023c7: JUMPI 000023c8: RETURNDATASIZE 000023c9: PUSH1 0x00 000023cb: DUP1 000023cc: RETURNDATACOPY 000023cd: RETURNDATASIZE 000023ce: PUSH1 0x00 000023d0: REVERT 000023d1: JUMPDEST 000023d2: POP 000023d3: POP 000023d4: POP 000023d5: POP 000023d6: POP 000023d7: PUSH1 0x40 000023d9: MLOAD 000023da: RETURNDATASIZE 000023db: PUSH1 0x1f 000023dd: NOT 000023de: PUSH1 0x1f 000023e0: DUP3 000023e1: ADD 000023e2: AND 000023e3: DUP3 000023e4: ADD 000023e5: DUP1 000023e6: PUSH1 0x40 000023e8: MSTORE 000023e9: POP 000023ea: DUP2 000023eb: ADD 000023ec: SWAP1 000023ed: PUSH2 0x0da8 000023f0: SWAP2 000023f1: SWAP1 000023f2: PUSH2 0x330d 000023f5: JUMP 000023f6: JUMPDEST 000023f7: DUP1 000023f8: SLOAD 000023f9: PUSH1 0x00 000023fb: JUMPDEST 000023fc: DUP2 000023fd: DUP2 000023fe: LT 000023ff: ISZERO 00002400: PUSH2 0x2446 00002403: JUMPI 00002404: DUP3 00002405: PUSH1 0x01 00002407: ADD 00002408: PUSH1 0x00 0000240a: DUP5 0000240b: PUSH1 0x00 0000240d: ADD 0000240e: DUP4 0000240f: DUP2 00002410: SLOAD 00002411: DUP2 00002412: LT 00002413: PUSH2 0x241e 00002416: JUMPI 00002417: PUSH2 0x241e 0000241a: PUSH2 0x3326 0000241d: JUMP 0000241e: JUMPDEST 0000241f: SWAP1 00002420: PUSH1 0x00 00002422: MSTORE 00002423: PUSH1 0x20 00002425: PUSH1 0x00 00002427: KECCAK256 00002428: ADD 00002429: SLOAD 0000242a: DUP2 0000242b: MSTORE 0000242c: PUSH1 0x20 0000242e: ADD 0000242f: SWAP1 00002430: DUP2 00002431: MSTORE 00002432: PUSH1 0x20 00002434: ADD 00002435: PUSH1 0x00 00002437: KECCAK256 00002438: PUSH1 0x00 0000243a: SWAP1 0000243b: SSTORE 0000243c: DUP1 0000243d: PUSH1 0x01 0000243f: ADD 00002440: SWAP1 00002441: POP 00002442: PUSH2 0x23fb 00002445: JUMP 00002446: JUMPDEST 00002447: POP 00002448: POP 00002449: PUSH1 0x00 0000244b: SWAP1 0000244c: SSTORE 0000244d: JUMP 0000244e: JUMPDEST 0000244f: PUSH2 0x2462 00002452: PUSH1 0x97 00002454: PUSH4 0xffffffff 00002459: DUP1 0000245a: DUP5 0000245b: AND 0000245c: SWAP1 0000245d: PUSH2 0x2829 00002460: AND 00002461: JUMP 00002462: JUMPDEST 00002463: PUSH2 0x246b 00002466: DUP3 00002467: PUSH2 0x1e96 0000246a: JUMP 0000246b: JUMPDEST 0000246c: SWAP1 0000246d: PUSH2 0x0880 00002470: JUMPI 00002471: PUSH1 0x40 00002473: MLOAD 00002474: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002495: DUP2 00002496: MSTORE 00002497: PUSH1 0x04 00002499: ADD 0000249a: PUSH2 0x0946 0000249d: SWAP2 0000249e: SWAP1 0000249f: PUSH2 0x31c7 000024a2: JUMP 000024a3: JUMPDEST 000024a4: PUSH4 0xffffffff 000024a9: DUP2 000024aa: AND 000024ab: PUSH1 0x00 000024ad: SWAP1 000024ae: DUP2 000024af: MSTORE 000024b0: PUSH1 0xca 000024b2: PUSH1 0x20 000024b4: MSTORE 000024b5: PUSH1 0x40 000024b7: SWAP1 000024b8: KECCAK256 000024b9: SLOAD 000024ba: PUSH1 0x60 000024bc: SWAP1 000024bd: PUSH2 0x09f3 000024c0: SWAP1 000024c1: PUSH2 0x2835 000024c4: JUMP 000024c5: JUMPDEST 000024c6: PUSH1 0x00 000024c8: PUSH2 0x0a3b 000024cb: DUP5 000024cc: DUP5 000024cd: PUSH2 0x24d5 000024d0: DUP8 000024d1: PUSH2 0x24a3 000024d4: JUMP 000024d5: JUMPDEST 000024d6: DUP6 000024d7: PUSH2 0x2853 000024da: JUMP 000024db: JUMPDEST 000024dc: PUSH2 0x1066 000024df: DUP4 000024e0: DUP4 000024e1: DUP4 000024e2: PUSH2 0x2927 000024e5: JUMP 000024e6: JUMPDEST 000024e7: PUSH1 0x00 000024e9: SLOAD 000024ea: PUSH2 0x0100 000024ed: SWAP1 000024ee: DIV 000024ef: PUSH1 0xff 000024f1: AND 000024f2: PUSH2 0x257d 000024f5: JUMPI 000024f6: PUSH1 0x40 000024f8: MLOAD 000024f9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000251a: DUP2 0000251b: MSTORE 0000251c: PUSH1 0x20 0000251e: PUSH1 0x04 00002520: DUP3 00002521: ADD 00002522: MSTORE 00002523: PUSH1 0x2b 00002525: PUSH1 0x24 00002527: DUP3 00002528: ADD 00002529: MSTORE 0000252a: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 0000254b: PUSH1 0x44 0000254d: DUP3 0000254e: ADD 0000254f: MSTORE 00002550: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00002571: PUSH1 0x64 00002573: DUP3 00002574: ADD 00002575: MSTORE 00002576: PUSH1 0x84 00002578: ADD 00002579: PUSH2 0x0946 0000257c: JUMP 0000257d: JUMPDEST 0000257e: PUSH2 0x100f 00002581: PUSH2 0x2944 00002584: JUMP 00002585: JUMPDEST 00002586: PUSH1 0x00 00002588: PUSH2 0x25e7 0000258b: DUP3 0000258c: PUSH1 0x40 0000258e: MLOAD 0000258f: DUP1 00002590: PUSH1 0x40 00002592: ADD 00002593: PUSH1 0x40 00002595: MSTORE 00002596: DUP1 00002597: PUSH1 0x20 00002599: DUP2 0000259a: MSTORE 0000259b: PUSH1 0x20 0000259d: ADD 0000259e: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 000025bf: DUP2 000025c0: MSTORE 000025c1: POP 000025c2: DUP6 000025c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025d8: AND 000025d9: PUSH2 0x29e4 000025dc: SWAP1 000025dd: SWAP3 000025de: SWAP2 000025df: SWAP1 000025e0: PUSH4 0xffffffff 000025e5: AND 000025e6: JUMP 000025e7: JUMPDEST 000025e8: SWAP1 000025e9: POP 000025ea: DUP1 000025eb: MLOAD 000025ec: PUSH1 0x00 000025ee: EQ 000025ef: DUP1 000025f0: PUSH2 0x2608 000025f3: JUMPI 000025f4: POP 000025f5: DUP1 000025f6: DUP1 000025f7: PUSH1 0x20 000025f9: ADD 000025fa: SWAP1 000025fb: MLOAD 000025fc: DUP2 000025fd: ADD 000025fe: SWAP1 000025ff: PUSH2 0x2608 00002602: SWAP2 00002603: SWAP1 00002604: PUSH2 0x35ab 00002607: JUMP 00002608: JUMPDEST 00002609: PUSH2 0x0be4 0000260c: JUMPI 0000260d: PUSH1 0x40 0000260f: MLOAD 00002610: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002631: DUP2 00002632: MSTORE 00002633: PUSH1 0x20 00002635: PUSH1 0x04 00002637: DUP3 00002638: ADD 00002639: MSTORE 0000263a: PUSH1 0x2a 0000263c: PUSH1 0x24 0000263e: DUP3 0000263f: ADD 00002640: MSTORE 00002641: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00002662: PUSH1 0x44 00002664: DUP3 00002665: ADD 00002666: MSTORE 00002667: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000 00002688: PUSH1 0x64 0000268a: DUP3 0000268b: ADD 0000268c: MSTORE 0000268d: PUSH1 0x84 0000268f: ADD 00002690: PUSH2 0x0946 00002693: JUMP 00002694: JUMPDEST 00002695: PUSH1 0x60 00002697: PUSH1 0x00 00002699: PUSH2 0x26a1 0000269c: DUP4 0000269d: PUSH2 0x29f3 000026a0: JUMP 000026a1: JUMPDEST 000026a2: PUSH1 0x01 000026a4: ADD 000026a5: SWAP1 000026a6: POP 000026a7: PUSH1 0x00 000026a9: DUP2 000026aa: PUSH8 0xffffffffffffffff 000026b3: DUP2 000026b4: GT 000026b5: ISZERO 000026b6: PUSH2 0x26c1 000026b9: JUMPI 000026ba: PUSH2 0x26c1 000026bd: PUSH2 0x3397 000026c0: JUMP 000026c1: JUMPDEST 000026c2: PUSH1 0x40 000026c4: MLOAD 000026c5: SWAP1 000026c6: DUP1 000026c7: DUP3 000026c8: MSTORE 000026c9: DUP1 000026ca: PUSH1 0x1f 000026cc: ADD 000026cd: PUSH1 0x1f 000026cf: NOT 000026d0: AND 000026d1: PUSH1 0x20 000026d3: ADD 000026d4: DUP3 000026d5: ADD 000026d6: PUSH1 0x40 000026d8: MSTORE 000026d9: DUP1 000026da: ISZERO 000026db: PUSH2 0x26eb 000026de: JUMPI 000026df: PUSH1 0x20 000026e1: DUP3 000026e2: ADD 000026e3: DUP2 000026e4: DUP1 000026e5: CALLDATASIZE 000026e6: DUP4 000026e7: CALLDATACOPY 000026e8: ADD 000026e9: SWAP1 000026ea: POP 000026eb: JUMPDEST 000026ec: POP 000026ed: SWAP1 000026ee: POP 000026ef: DUP2 000026f0: DUP2 000026f1: ADD 000026f2: PUSH1 0x20 000026f4: ADD 000026f5: JUMPDEST 000026f6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002717: ADD 00002718: PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 00002739: PUSH1 0x0a 0000273b: DUP7 0000273c: MOD 0000273d: BYTE 0000273e: DUP2 0000273f: MSTORE8 00002740: PUSH1 0x0a 00002742: DUP6 00002743: DIV 00002744: SWAP5 00002745: POP 00002746: DUP5 00002747: PUSH2 0x26f5 0000274a: JUMPI 0000274b: POP 0000274c: SWAP4 0000274d: SWAP3 0000274e: POP 0000274f: POP 00002750: POP 00002751: JUMP 00002752: JUMPDEST 00002753: PUSH1 0x00 00002755: PUSH2 0x16b6 00002758: DUP4 00002759: DUP4 0000275a: PUSH2 0x2ad5 0000275d: JUMP 0000275e: JUMPDEST 0000275f: PUSH1 0x00 00002761: PUSH2 0x09f3 00002764: DUP3 00002765: PUSH2 0x2aed 00002768: JUMP 00002769: JUMPDEST 0000276a: PUSH1 0x00 0000276c: PUSH2 0x16b6 0000276f: DUP4 00002770: DUP4 00002771: PUSH2 0x2af7 00002774: JUMP 00002775: JUMPDEST 00002776: PUSH1 0x40 00002778: MLOAD 00002779: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000278e: DUP1 0000278f: DUP6 00002790: AND 00002791: PUSH1 0x24 00002793: DUP4 00002794: ADD 00002795: MSTORE 00002796: DUP4 00002797: AND 00002798: PUSH1 0x44 0000279a: DUP3 0000279b: ADD 0000279c: MSTORE 0000279d: PUSH1 0x64 0000279f: DUP2 000027a0: ADD 000027a1: DUP3 000027a2: SWAP1 000027a3: MSTORE 000027a4: PUSH2 0x1066 000027a7: SWAP1 000027a8: DUP6 000027a9: SWAP1 000027aa: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 000027cb: SWAP1 000027cc: PUSH1 0x84 000027ce: ADD 000027cf: PUSH2 0x1d69 000027d2: JUMP 000027d3: JUMPDEST 000027d4: PUSH1 0x40 000027d6: MLOAD 000027d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027ec: DUP4 000027ed: AND 000027ee: PUSH1 0x24 000027f0: DUP3 000027f1: ADD 000027f2: MSTORE 000027f3: PUSH1 0x44 000027f5: DUP2 000027f6: ADD 000027f7: DUP3 000027f8: SWAP1 000027f9: MSTORE 000027fa: PUSH2 0x0be4 000027fd: SWAP1 000027fe: DUP5 000027ff: SWAP1 00002800: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 00002821: SWAP1 00002822: PUSH1 0x64 00002824: ADD 00002825: PUSH2 0x1d69 00002828: JUMP 00002829: JUMPDEST 0000282a: PUSH1 0x00 0000282c: PUSH2 0x16b6 0000282f: DUP4 00002830: DUP4 00002831: PUSH2 0x2b21 00002834: JUMP 00002835: JUMPDEST 00002836: PUSH1 0x60 00002838: PUSH2 0x09f3 0000283b: PUSH1 0x00 0000283d: DUP4 0000283e: CALLER 0000283f: PUSH1 0x40 00002841: MLOAD 00002842: DUP1 00002843: PUSH1 0x20 00002845: ADD 00002846: PUSH1 0x40 00002848: MSTORE 00002849: DUP1 0000284a: PUSH1 0x00 0000284c: DUP2 0000284d: MSTORE 0000284e: POP 0000284f: PUSH2 0x2b3e 00002852: JUMP 00002853: JUMPDEST 00002854: PUSH1 0x00 00002856: DUP1 00002857: PUSH2 0x285f 0000285a: DUP7 0000285b: PUSH2 0x16ca 0000285e: JUMP 0000285f: JUMPDEST 00002860: PUSH1 0x40 00002862: MLOAD 00002863: PUSH32 0x81d2ea9500000000000000000000000000000000000000000000000000000000 00002884: DUP2 00002885: MSTORE 00002886: SWAP1 00002887: SWAP2 00002888: POP 00002889: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000289e: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239 000028bf: AND 000028c0: SWAP1 000028c1: PUSH4 0x81d2ea95 000028c6: SWAP1 000028c7: PUSH2 0x28dc 000028ca: SWAP1 000028cb: DUP10 000028cc: SWAP1 000028cd: DUP6 000028ce: SWAP1 000028cf: DUP11 000028d0: SWAP1 000028d1: DUP11 000028d2: SWAP1 000028d3: DUP11 000028d4: SWAP1 000028d5: PUSH1 0x04 000028d7: ADD 000028d8: PUSH2 0x3491 000028db: JUMP 000028dc: JUMPDEST 000028dd: PUSH1 0x20 000028df: PUSH1 0x40 000028e1: MLOAD 000028e2: DUP1 000028e3: DUP4 000028e4: SUB 000028e5: DUP2 000028e6: DUP7 000028e7: GAS 000028e8: STATICCALL 000028e9: ISZERO 000028ea: DUP1 000028eb: ISZERO 000028ec: PUSH2 0x28f9 000028ef: JUMPI 000028f0: RETURNDATASIZE 000028f1: PUSH1 0x00 000028f3: DUP1 000028f4: RETURNDATACOPY 000028f5: RETURNDATASIZE 000028f6: PUSH1 0x00 000028f8: REVERT 000028f9: JUMPDEST 000028fa: POP 000028fb: POP 000028fc: POP 000028fd: POP 000028fe: PUSH1 0x40 00002900: MLOAD 00002901: RETURNDATASIZE 00002902: PUSH1 0x1f 00002904: NOT 00002905: PUSH1 0x1f 00002907: DUP3 00002908: ADD 00002909: AND 0000290a: DUP3 0000290b: ADD 0000290c: DUP1 0000290d: PUSH1 0x40 0000290f: MSTORE 00002910: POP 00002911: DUP2 00002912: ADD 00002913: SWAP1 00002914: PUSH2 0x291d 00002917: SWAP2 00002918: SWAP1 00002919: PUSH2 0x330d 0000291c: JUMP 0000291d: JUMPDEST 0000291e: SWAP7 0000291f: SWAP6 00002920: POP 00002921: POP 00002922: POP 00002923: POP 00002924: POP 00002925: POP 00002926: JUMP 00002927: JUMPDEST 00002928: PUSH1 0x00 0000292a: DUP3 0000292b: DUP2 0000292c: MSTORE 0000292d: PUSH1 0x02 0000292f: DUP5 00002930: ADD 00002931: PUSH1 0x20 00002933: MSTORE 00002934: PUSH1 0x40 00002936: DUP2 00002937: KECCAK256 00002938: DUP3 00002939: SWAP1 0000293a: SSTORE 0000293b: PUSH2 0x0a3b 0000293e: DUP5 0000293f: DUP5 00002940: PUSH2 0x2b73 00002943: JUMP 00002944: JUMPDEST 00002945: PUSH1 0x00 00002947: SLOAD 00002948: PUSH2 0x0100 0000294b: SWAP1 0000294c: DIV 0000294d: PUSH1 0xff 0000294f: AND 00002950: PUSH2 0x29db 00002953: JUMPI 00002954: PUSH1 0x40 00002956: MLOAD 00002957: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002978: DUP2 00002979: MSTORE 0000297a: PUSH1 0x20 0000297c: PUSH1 0x04 0000297e: DUP3 0000297f: ADD 00002980: MSTORE 00002981: PUSH1 0x2b 00002983: PUSH1 0x24 00002985: DUP3 00002986: ADD 00002987: MSTORE 00002988: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 000029a9: PUSH1 0x44 000029ab: DUP3 000029ac: ADD 000029ad: MSTORE 000029ae: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 000029cf: PUSH1 0x64 000029d1: DUP3 000029d2: ADD 000029d3: MSTORE 000029d4: PUSH1 0x84 000029d6: ADD 000029d7: PUSH2 0x0946 000029da: JUMP 000029db: JUMPDEST 000029dc: PUSH2 0x100f 000029df: CALLER 000029e0: PUSH2 0x19ee 000029e3: JUMP 000029e4: JUMPDEST 000029e5: PUSH1 0x60 000029e7: PUSH2 0x0a3b 000029ea: DUP5 000029eb: DUP5 000029ec: PUSH1 0x00 000029ee: DUP6 000029ef: PUSH2 0x2b7f 000029f2: JUMP 000029f3: JUMPDEST 000029f4: PUSH1 0x00 000029f6: DUP1 000029f7: PUSH27 0x184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000 00002a13: DUP4 00002a14: LT 00002a15: PUSH2 0x2a3c 00002a18: JUMPI 00002a19: PUSH27 0x184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000 00002a35: DUP4 00002a36: DIV 00002a37: SWAP3 00002a38: POP 00002a39: PUSH1 0x40 00002a3b: ADD 00002a3c: JUMPDEST 00002a3d: PUSH14 0x04ee2d6d415b85acef8100000000 00002a4c: DUP4 00002a4d: LT 00002a4e: PUSH2 0x2a68 00002a51: JUMPI 00002a52: PUSH14 0x04ee2d6d415b85acef8100000000 00002a61: DUP4 00002a62: DIV 00002a63: SWAP3 00002a64: POP 00002a65: PUSH1 0x20 00002a67: ADD 00002a68: JUMPDEST 00002a69: PUSH7 0x2386f26fc10000 00002a71: DUP4 00002a72: LT 00002a73: PUSH2 0x2a86 00002a76: JUMPI 00002a77: PUSH7 0x2386f26fc10000 00002a7f: DUP4 00002a80: DIV 00002a81: SWAP3 00002a82: POP 00002a83: PUSH1 0x10 00002a85: ADD 00002a86: JUMPDEST 00002a87: PUSH4 0x05f5e100 00002a8c: DUP4 00002a8d: LT 00002a8e: PUSH2 0x2a9e 00002a91: JUMPI 00002a92: PUSH4 0x05f5e100 00002a97: DUP4 00002a98: DIV 00002a99: SWAP3 00002a9a: POP 00002a9b: PUSH1 0x08 00002a9d: ADD 00002a9e: JUMPDEST 00002a9f: PUSH2 0x2710 00002aa2: DUP4 00002aa3: LT 00002aa4: PUSH2 0x2ab2 00002aa7: JUMPI 00002aa8: PUSH2 0x2710 00002aab: DUP4 00002aac: DIV 00002aad: SWAP3 00002aae: POP 00002aaf: PUSH1 0x04 00002ab1: ADD 00002ab2: JUMPDEST 00002ab3: PUSH1 0x64 00002ab5: DUP4 00002ab6: LT 00002ab7: PUSH2 0x2ac4 00002aba: JUMPI 00002abb: PUSH1 0x64 00002abd: DUP4 00002abe: DIV 00002abf: SWAP3 00002ac0: POP 00002ac1: PUSH1 0x02 00002ac3: ADD 00002ac4: JUMPDEST 00002ac5: PUSH1 0x0a 00002ac7: DUP4 00002ac8: LT 00002ac9: PUSH2 0x09f3 00002acc: JUMPI 00002acd: PUSH1 0x01 00002acf: ADD 00002ad0: SWAP3 00002ad1: SWAP2 00002ad2: POP 00002ad3: POP 00002ad4: JUMP 00002ad5: JUMPDEST 00002ad6: PUSH1 0x00 00002ad8: DUP2 00002ad9: DUP2 00002ada: MSTORE 00002adb: PUSH1 0x01 00002add: DUP4 00002ade: ADD 00002adf: PUSH1 0x20 00002ae1: MSTORE 00002ae2: PUSH1 0x40 00002ae4: DUP2 00002ae5: KECCAK256 00002ae6: SLOAD 00002ae7: ISZERO 00002ae8: ISZERO 00002ae9: PUSH2 0x16b6 00002aec: JUMP 00002aed: JUMPDEST 00002aee: PUSH1 0x00 00002af0: PUSH2 0x09f3 00002af3: DUP3 00002af4: SLOAD 00002af5: SWAP1 00002af6: JUMP 00002af7: JUMPDEST 00002af8: PUSH1 0x00 00002afa: DUP3 00002afb: PUSH1 0x00 00002afd: ADD 00002afe: DUP3 00002aff: DUP2 00002b00: SLOAD 00002b01: DUP2 00002b02: LT 00002b03: PUSH2 0x2b0e 00002b06: JUMPI 00002b07: PUSH2 0x2b0e 00002b0a: PUSH2 0x3326 00002b0d: JUMP 00002b0e: JUMPDEST 00002b0f: SWAP1 00002b10: PUSH1 0x00 00002b12: MSTORE 00002b13: PUSH1 0x20 00002b15: PUSH1 0x00 00002b17: KECCAK256 00002b18: ADD 00002b19: SLOAD 00002b1a: SWAP1 00002b1b: POP 00002b1c: SWAP3 00002b1d: SWAP2 00002b1e: POP 00002b1f: POP 00002b20: JUMP 00002b21: JUMPDEST 00002b22: PUSH1 0x00 00002b24: DUP2 00002b25: DUP2 00002b26: MSTORE 00002b27: PUSH1 0x02 00002b29: DUP4 00002b2a: ADD 00002b2b: PUSH1 0x20 00002b2d: MSTORE 00002b2e: PUSH1 0x40 00002b30: DUP2 00002b31: KECCAK256 00002b32: DUP2 00002b33: SWAP1 00002b34: SSTORE 00002b35: PUSH2 0x16b6 00002b38: DUP4 00002b39: DUP4 00002b3a: PUSH2 0x2c8d 00002b3d: JUMP 00002b3e: JUMPDEST 00002b3f: PUSH1 0x60 00002b41: PUSH1 0x01 00002b43: DUP6 00002b44: DUP6 00002b45: DUP6 00002b46: DUP6 00002b47: PUSH1 0x40 00002b49: MLOAD 00002b4a: PUSH1 0x20 00002b4c: ADD 00002b4d: PUSH2 0x2b5a 00002b50: SWAP6 00002b51: SWAP5 00002b52: SWAP4 00002b53: SWAP3 00002b54: SWAP2 00002b55: SWAP1 00002b56: PUSH2 0x35cd 00002b59: JUMP 00002b5a: JUMPDEST 00002b5b: PUSH1 0x40 00002b5d: MLOAD 00002b5e: PUSH1 0x20 00002b60: DUP2 00002b61: DUP4 00002b62: SUB 00002b63: SUB 00002b64: DUP2 00002b65: MSTORE 00002b66: SWAP1 00002b67: PUSH1 0x40 00002b69: MSTORE 00002b6a: SWAP1 00002b6b: POP 00002b6c: SWAP5 00002b6d: SWAP4 00002b6e: POP 00002b6f: POP 00002b70: POP 00002b71: POP 00002b72: JUMP 00002b73: JUMPDEST 00002b74: PUSH1 0x00 00002b76: PUSH2 0x16b6 00002b79: DUP4 00002b7a: DUP4 00002b7b: PUSH2 0x1deb 00002b7e: JUMP 00002b7f: JUMPDEST 00002b80: PUSH1 0x60 00002b82: DUP3 00002b83: SELFBALANCE 00002b84: LT 00002b85: ISZERO 00002b86: PUSH2 0x2c11 00002b89: JUMPI 00002b8a: PUSH1 0x40 00002b8c: MLOAD 00002b8d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002bae: DUP2 00002baf: MSTORE 00002bb0: PUSH1 0x20 00002bb2: PUSH1 0x04 00002bb4: DUP3 00002bb5: ADD 00002bb6: MSTORE 00002bb7: PUSH1 0x26 00002bb9: PUSH1 0x24 00002bbb: DUP3 00002bbc: ADD 00002bbd: MSTORE 00002bbe: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 00002bdf: PUSH1 0x44 00002be1: DUP3 00002be2: ADD 00002be3: MSTORE 00002be4: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000 00002c05: PUSH1 0x64 00002c07: DUP3 00002c08: ADD 00002c09: MSTORE 00002c0a: PUSH1 0x84 00002c0c: ADD 00002c0d: PUSH2 0x0946 00002c10: JUMP 00002c11: JUMPDEST 00002c12: PUSH1 0x00 00002c14: DUP1 00002c15: DUP7 00002c16: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c2b: AND 00002c2c: DUP6 00002c2d: DUP8 00002c2e: PUSH1 0x40 00002c30: MLOAD 00002c31: PUSH2 0x2c3a 00002c34: SWAP2 00002c35: SWAP1 00002c36: PUSH2 0x3652 00002c39: JUMP 00002c3a: JUMPDEST 00002c3b: PUSH1 0x00 00002c3d: PUSH1 0x40 00002c3f: MLOAD 00002c40: DUP1 00002c41: DUP4 00002c42: SUB 00002c43: DUP2 00002c44: DUP6 00002c45: DUP8 00002c46: GAS 00002c47: CALL 00002c48: SWAP3 00002c49: POP 00002c4a: POP 00002c4b: POP 00002c4c: RETURNDATASIZE 00002c4d: DUP1 00002c4e: PUSH1 0x00 00002c50: DUP2 00002c51: EQ 00002c52: PUSH2 0x2c77 00002c55: JUMPI 00002c56: PUSH1 0x40 00002c58: MLOAD 00002c59: SWAP2 00002c5a: POP 00002c5b: PUSH1 0x1f 00002c5d: NOT 00002c5e: PUSH1 0x3f 00002c60: RETURNDATASIZE 00002c61: ADD 00002c62: AND 00002c63: DUP3 00002c64: ADD 00002c65: PUSH1 0x40 00002c67: MSTORE 00002c68: RETURNDATASIZE 00002c69: DUP3 00002c6a: MSTORE 00002c6b: RETURNDATASIZE 00002c6c: PUSH1 0x00 00002c6e: PUSH1 0x20 00002c70: DUP5 00002c71: ADD 00002c72: RETURNDATACOPY 00002c73: PUSH2 0x2c7c 00002c76: JUMP 00002c77: JUMPDEST 00002c78: PUSH1 0x60 00002c7a: SWAP2 00002c7b: POP 00002c7c: JUMPDEST 00002c7d: POP 00002c7e: SWAP2 00002c7f: POP 00002c80: SWAP2 00002c81: POP 00002c82: PUSH2 0x0c30 00002c85: DUP8 00002c86: DUP4 00002c87: DUP4 00002c88: DUP8 00002c89: PUSH2 0x2c99 00002c8c: JUMP 00002c8d: JUMPDEST 00002c8e: PUSH1 0x00 00002c90: PUSH2 0x16b6 00002c93: DUP4 00002c94: DUP4 00002c95: PUSH2 0x1f07 00002c98: JUMP 00002c99: JUMPDEST 00002c9a: PUSH1 0x60 00002c9c: DUP4 00002c9d: ISZERO 00002c9e: PUSH2 0x2d2f 00002ca1: JUMPI 00002ca2: DUP3 00002ca3: MLOAD 00002ca4: PUSH1 0x00 00002ca6: SUB 00002ca7: PUSH2 0x2d28 00002caa: JUMPI 00002cab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002cc0: DUP6 00002cc1: AND 00002cc2: EXTCODESIZE 00002cc3: PUSH2 0x2d28 00002cc6: JUMPI 00002cc7: PUSH1 0x40 00002cc9: MLOAD 00002cca: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002ceb: DUP2 00002cec: MSTORE 00002ced: PUSH1 0x20 00002cef: PUSH1 0x04 00002cf1: DUP3 00002cf2: ADD 00002cf3: MSTORE 00002cf4: PUSH1 0x1d 00002cf6: PUSH1 0x24 00002cf8: DUP3 00002cf9: ADD 00002cfa: MSTORE 00002cfb: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00002d1c: PUSH1 0x44 00002d1e: DUP3 00002d1f: ADD 00002d20: MSTORE 00002d21: PUSH1 0x64 00002d23: ADD 00002d24: PUSH2 0x0946 00002d27: JUMP 00002d28: JUMPDEST 00002d29: POP 00002d2a: DUP2 00002d2b: PUSH2 0x0a3b 00002d2e: JUMP 00002d2f: JUMPDEST 00002d30: PUSH2 0x0a3b 00002d33: DUP4 00002d34: DUP4 00002d35: DUP2 00002d36: MLOAD 00002d37: ISZERO 00002d38: PUSH2 0x2d44 00002d3b: JUMPI 00002d3c: DUP2 00002d3d: MLOAD 00002d3e: DUP1 00002d3f: DUP4 00002d40: PUSH1 0x20 00002d42: ADD 00002d43: REVERT 00002d44: JUMPDEST 00002d45: DUP1 00002d46: PUSH1 0x40 00002d48: MLOAD 00002d49: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002d6a: DUP2 00002d6b: MSTORE 00002d6c: PUSH1 0x04 00002d6e: ADD 00002d6f: PUSH2 0x0946 00002d72: SWAP2 00002d73: SWAP1 00002d74: PUSH2 0x31c7 00002d77: JUMP 00002d78: JUMPDEST 00002d79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d8e: DUP2 00002d8f: AND 00002d90: DUP2 00002d91: EQ 00002d92: PUSH2 0x14b2 00002d95: JUMPI 00002d96: PUSH1 0x00 00002d98: DUP1 00002d99: REVERT 00002d9a: JUMPDEST 00002d9b: PUSH1 0x00 00002d9d: PUSH1 0x20 00002d9f: DUP3 00002da0: DUP5 00002da1: SUB 00002da2: SLT 00002da3: ISZERO 00002da4: PUSH2 0x2dac 00002da7: JUMPI 00002da8: PUSH1 0x00 00002daa: DUP1 00002dab: REVERT 00002dac: JUMPDEST 00002dad: DUP2 00002dae: CALLDATALOAD 00002daf: PUSH2 0x16b6 00002db2: DUP2 00002db3: PUSH2 0x2d78 00002db6: JUMP 00002db7: JUMPDEST 00002db8: DUP1 00002db9: CALLDATALOAD 00002dba: PUSH4 0xffffffff 00002dbf: DUP2 00002dc0: AND 00002dc1: DUP2 00002dc2: EQ 00002dc3: PUSH2 0x2dcb 00002dc6: JUMPI 00002dc7: PUSH1 0x00 00002dc9: DUP1 00002dca: REVERT 00002dcb: JUMPDEST 00002dcc: SWAP2 00002dcd: SWAP1 00002dce: POP 00002dcf: JUMP 00002dd0: JUMPDEST 00002dd1: PUSH1 0x00 00002dd3: PUSH1 0x20 00002dd5: DUP3 00002dd6: DUP5 00002dd7: SUB 00002dd8: SLT 00002dd9: ISZERO 00002dda: PUSH2 0x2de2 00002ddd: JUMPI 00002dde: PUSH1 0x00 00002de0: DUP1 00002de1: REVERT 00002de2: JUMPDEST 00002de3: PUSH2 0x16b6 00002de6: DUP3 00002de7: PUSH2 0x2db7 00002dea: JUMP 00002deb: JUMPDEST 00002dec: PUSH1 0x20 00002dee: DUP1 00002def: DUP3 00002df0: MSTORE 00002df1: DUP3 00002df2: MLOAD 00002df3: DUP3 00002df4: DUP3 00002df5: ADD 00002df6: DUP2 00002df7: SWAP1 00002df8: MSTORE 00002df9: PUSH1 0x00 00002dfb: SWAP2 00002dfc: SWAP1 00002dfd: DUP5 00002dfe: DUP3 00002dff: ADD 00002e00: SWAP1 00002e01: PUSH1 0x40 00002e03: DUP6 00002e04: ADD 00002e05: SWAP1 00002e06: DUP5 00002e07: JUMPDEST 00002e08: DUP2 00002e09: DUP2 00002e0a: LT 00002e0b: ISZERO 00002e0c: PUSH2 0x2e39 00002e0f: JUMPI 00002e10: DUP4 00002e11: MLOAD 00002e12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e27: AND 00002e28: DUP4 00002e29: MSTORE 00002e2a: SWAP3 00002e2b: DUP5 00002e2c: ADD 00002e2d: SWAP3 00002e2e: SWAP2 00002e2f: DUP5 00002e30: ADD 00002e31: SWAP2 00002e32: PUSH1 0x01 00002e34: ADD 00002e35: PUSH2 0x2e07 00002e38: JUMP 00002e39: JUMPDEST 00002e3a: POP 00002e3b: SWAP1 00002e3c: SWAP7 00002e3d: SWAP6 00002e3e: POP 00002e3f: POP 00002e40: POP 00002e41: POP 00002e42: POP 00002e43: POP 00002e44: JUMP 00002e45: JUMPDEST 00002e46: PUSH1 0x00 00002e48: DUP1 00002e49: PUSH1 0x40 00002e4b: DUP4 00002e4c: DUP6 00002e4d: SUB 00002e4e: SLT 00002e4f: ISZERO 00002e50: PUSH2 0x2e58 00002e53: JUMPI 00002e54: PUSH1 0x00 00002e56: DUP1 00002e57: REVERT 00002e58: JUMPDEST 00002e59: PUSH2 0x2e61 00002e5c: DUP4 00002e5d: PUSH2 0x2db7 00002e60: JUMP 00002e61: JUMPDEST 00002e62: SWAP5 00002e63: PUSH1 0x20 00002e65: SWAP4 00002e66: SWAP1 00002e67: SWAP4 00002e68: ADD 00002e69: CALLDATALOAD 00002e6a: SWAP4 00002e6b: POP 00002e6c: POP 00002e6d: POP 00002e6e: JUMP 00002e6f: JUMPDEST 00002e70: PUSH1 0x20 00002e72: DUP1 00002e73: DUP3 00002e74: MSTORE 00002e75: DUP3 00002e76: MLOAD 00002e77: DUP3 00002e78: DUP3 00002e79: ADD 00002e7a: DUP2 00002e7b: SWAP1 00002e7c: MSTORE 00002e7d: PUSH1 0x00 00002e7f: SWAP2 00002e80: SWAP1 00002e81: DUP5 00002e82: DUP3 00002e83: ADD 00002e84: SWAP1 00002e85: PUSH1 0x40 00002e87: DUP6 00002e88: ADD 00002e89: SWAP1 00002e8a: DUP5 00002e8b: JUMPDEST 00002e8c: DUP2 00002e8d: DUP2 00002e8e: LT 00002e8f: ISZERO 00002e90: PUSH2 0x2e39 00002e93: JUMPI 00002e94: DUP4 00002e95: MLOAD 00002e96: PUSH4 0xffffffff 00002e9b: AND 00002e9c: DUP4 00002e9d: MSTORE 00002e9e: SWAP3 00002e9f: DUP5 00002ea0: ADD 00002ea1: SWAP3 00002ea2: SWAP2 00002ea3: DUP5 00002ea4: ADD 00002ea5: SWAP2 00002ea6: PUSH1 0x01 00002ea8: ADD 00002ea9: PUSH2 0x2e8b 00002eac: JUMP 00002ead: JUMPDEST 00002eae: PUSH1 0x00 00002eb0: DUP1 00002eb1: PUSH1 0x40 00002eb3: DUP4 00002eb4: DUP6 00002eb5: SUB 00002eb6: SLT 00002eb7: ISZERO 00002eb8: PUSH2 0x2ec0 00002ebb: JUMPI 00002ebc: PUSH1 0x00 00002ebe: DUP1 00002ebf: REVERT 00002ec0: JUMPDEST 00002ec1: PUSH2 0x2ec9 00002ec4: DUP4 00002ec5: PUSH2 0x2db7 00002ec8: JUMP 00002ec9: JUMPDEST 00002eca: SWAP2 00002ecb: POP 00002ecc: PUSH1 0x20 00002ece: DUP4 00002ecf: ADD 00002ed0: CALLDATALOAD 00002ed1: PUSH2 0x2ed9 00002ed4: DUP2 00002ed5: PUSH2 0x2d78 00002ed8: JUMP 00002ed9: JUMPDEST 00002eda: DUP1 00002edb: SWAP2 00002edc: POP 00002edd: POP 00002ede: SWAP3 00002edf: POP 00002ee0: SWAP3 00002ee1: SWAP1 00002ee2: POP 00002ee3: JUMP 00002ee4: JUMPDEST 00002ee5: PUSH1 0x00 00002ee7: DUP1 00002ee8: DUP4 00002ee9: PUSH1 0x1f 00002eeb: DUP5 00002eec: ADD 00002eed: SLT 00002eee: PUSH2 0x2ef6 00002ef1: JUMPI 00002ef2: PUSH1 0x00 00002ef4: DUP1 00002ef5: REVERT 00002ef6: JUMPDEST 00002ef7: POP 00002ef8: DUP2 00002ef9: CALLDATALOAD 00002efa: PUSH8 0xffffffffffffffff 00002f03: DUP2 00002f04: GT 00002f05: ISZERO 00002f06: PUSH2 0x2f0e 00002f09: JUMPI 00002f0a: PUSH1 0x00 00002f0c: DUP1 00002f0d: REVERT 00002f0e: JUMPDEST 00002f0f: PUSH1 0x20 00002f11: DUP4 00002f12: ADD 00002f13: SWAP2 00002f14: POP 00002f15: DUP4 00002f16: PUSH1 0x20 00002f18: DUP3 00002f19: DUP6 00002f1a: ADD 00002f1b: ADD 00002f1c: GT 00002f1d: ISZERO 00002f1e: PUSH2 0x1741 00002f21: JUMPI 00002f22: PUSH1 0x00 00002f24: DUP1 00002f25: REVERT 00002f26: JUMPDEST 00002f27: PUSH1 0x00 00002f29: DUP1 00002f2a: PUSH1 0x00 00002f2c: DUP1 00002f2d: PUSH1 0x00 00002f2f: DUP1 00002f30: PUSH1 0xa0 00002f32: DUP8 00002f33: DUP10 00002f34: SUB 00002f35: SLT 00002f36: ISZERO 00002f37: PUSH2 0x2f3f 00002f3a: JUMPI 00002f3b: PUSH1 0x00 00002f3d: DUP1 00002f3e: REVERT 00002f3f: JUMPDEST 00002f40: PUSH2 0x2f48 00002f43: DUP8 00002f44: PUSH2 0x2db7 00002f47: JUMP 00002f48: JUMPDEST 00002f49: SWAP6 00002f4a: POP 00002f4b: PUSH1 0x20 00002f4d: DUP8 00002f4e: ADD 00002f4f: CALLDATALOAD 00002f50: SWAP5 00002f51: POP 00002f52: PUSH1 0x40 00002f54: DUP8 00002f55: ADD 00002f56: CALLDATALOAD 00002f57: SWAP4 00002f58: POP 00002f59: PUSH1 0x60 00002f5b: DUP8 00002f5c: ADD 00002f5d: CALLDATALOAD 00002f5e: PUSH8 0xffffffffffffffff 00002f67: DUP2 00002f68: GT 00002f69: ISZERO 00002f6a: PUSH2 0x2f72 00002f6d: JUMPI 00002f6e: PUSH1 0x00 00002f70: DUP1 00002f71: REVERT 00002f72: JUMPDEST 00002f73: PUSH2 0x2f7e 00002f76: DUP10 00002f77: DUP3 00002f78: DUP11 00002f79: ADD 00002f7a: PUSH2 0x2ee4 00002f7d: JUMP 00002f7e: JUMPDEST 00002f7f: SWAP1 00002f80: SWAP5 00002f81: POP 00002f82: SWAP3 00002f83: POP 00002f84: POP 00002f85: PUSH1 0x80 00002f87: DUP8 00002f88: ADD 00002f89: CALLDATALOAD 00002f8a: PUSH2 0x2f92 00002f8d: DUP2 00002f8e: PUSH2 0x2d78 00002f91: JUMP 00002f92: JUMPDEST 00002f93: DUP1 00002f94: SWAP2 00002f95: POP 00002f96: POP 00002f97: SWAP3 00002f98: SWAP6 00002f99: POP 00002f9a: SWAP3 00002f9b: SWAP6 00002f9c: POP 00002f9d: SWAP3 00002f9e: SWAP6 00002f9f: JUMP 00002fa0: JUMPDEST 00002fa1: PUSH1 0x00 00002fa3: DUP1 00002fa4: PUSH1 0x00 00002fa6: DUP1 00002fa7: PUSH1 0x60 00002fa9: DUP6 00002faa: DUP8 00002fab: SUB 00002fac: SLT 00002fad: ISZERO 00002fae: PUSH2 0x2fb6 00002fb1: JUMPI 00002fb2: PUSH1 0x00 00002fb4: DUP1 00002fb5: REVERT 00002fb6: JUMPDEST 00002fb7: PUSH2 0x2fbf 00002fba: DUP6 00002fbb: PUSH2 0x2db7 00002fbe: JUMP 00002fbf: JUMPDEST 00002fc0: SWAP4 00002fc1: POP 00002fc2: PUSH1 0x20 00002fc4: DUP6 00002fc5: ADD 00002fc6: CALLDATALOAD 00002fc7: SWAP3 00002fc8: POP 00002fc9: PUSH1 0x40 00002fcb: DUP6 00002fcc: ADD 00002fcd: CALLDATALOAD 00002fce: PUSH8 0xffffffffffffffff 00002fd7: DUP2 00002fd8: GT 00002fd9: ISZERO 00002fda: PUSH2 0x2fe2 00002fdd: JUMPI 00002fde: PUSH1 0x00 00002fe0: DUP1 00002fe1: REVERT 00002fe2: JUMPDEST 00002fe3: PUSH2 0x2fee 00002fe6: DUP8 00002fe7: DUP3 00002fe8: DUP9 00002fe9: ADD 00002fea: PUSH2 0x2ee4 00002fed: JUMP 00002fee: JUMPDEST 00002fef: SWAP6 00002ff0: SWAP9 00002ff1: SWAP5 00002ff2: SWAP8 00002ff3: POP 00002ff4: SWAP6 00002ff5: POP 00002ff6: POP 00002ff7: POP 00002ff8: POP 00002ff9: JUMP 00002ffa: JUMPDEST 00002ffb: PUSH1 0x00 00002ffd: DUP1 00002ffe: PUSH1 0x00 00003000: PUSH1 0x60 00003002: DUP5 00003003: DUP7 00003004: SUB 00003005: SLT 00003006: ISZERO 00003007: PUSH2 0x300f 0000300a: JUMPI 0000300b: PUSH1 0x00 0000300d: DUP1 0000300e: REVERT 0000300f: JUMPDEST 00003010: PUSH2 0x3018 00003013: DUP5 00003014: PUSH2 0x2db7 00003017: JUMP 00003018: JUMPDEST 00003019: SWAP3 0000301a: POP 0000301b: PUSH1 0x20 0000301d: DUP5 0000301e: ADD 0000301f: CALLDATALOAD 00003020: SWAP2 00003021: POP 00003022: PUSH1 0x40 00003024: DUP5 00003025: ADD 00003026: CALLDATALOAD 00003027: PUSH2 0x302f 0000302a: DUP2 0000302b: PUSH2 0x2d78 0000302e: JUMP 0000302f: JUMPDEST 00003030: DUP1 00003031: SWAP2 00003032: POP 00003033: POP 00003034: SWAP3 00003035: POP 00003036: SWAP3 00003037: POP 00003038: SWAP3 00003039: JUMP 0000303a: JUMPDEST 0000303b: PUSH1 0x00 0000303d: DUP1 0000303e: DUP4 0000303f: PUSH1 0x1f 00003041: DUP5 00003042: ADD 00003043: SLT 00003044: PUSH2 0x304c 00003047: JUMPI 00003048: PUSH1 0x00 0000304a: DUP1 0000304b: REVERT 0000304c: JUMPDEST 0000304d: POP 0000304e: DUP2 0000304f: CALLDATALOAD 00003050: PUSH8 0xffffffffffffffff 00003059: DUP2 0000305a: GT 0000305b: ISZERO 0000305c: PUSH2 0x3064 0000305f: JUMPI 00003060: PUSH1 0x00 00003062: DUP1 00003063: REVERT 00003064: JUMPDEST 00003065: PUSH1 0x20 00003067: DUP4 00003068: ADD 00003069: SWAP2 0000306a: POP 0000306b: DUP4 0000306c: PUSH1 0x20 0000306e: DUP3 0000306f: PUSH1 0x05 00003071: SHL 00003072: DUP6 00003073: ADD 00003074: ADD 00003075: GT 00003076: ISZERO 00003077: PUSH2 0x1741 0000307a: JUMPI 0000307b: PUSH1 0x00 0000307d: DUP1 0000307e: REVERT 0000307f: JUMPDEST 00003080: PUSH1 0x00 00003082: DUP1 00003083: PUSH1 0x20 00003085: DUP4 00003086: DUP6 00003087: SUB 00003088: SLT 00003089: ISZERO 0000308a: PUSH2 0x3092 0000308d: JUMPI 0000308e: PUSH1 0x00 00003090: DUP1 00003091: REVERT 00003092: JUMPDEST 00003093: DUP3 00003094: CALLDATALOAD 00003095: PUSH8 0xffffffffffffffff 0000309e: DUP2 0000309f: GT 000030a0: ISZERO 000030a1: PUSH2 0x30a9 000030a4: JUMPI 000030a5: PUSH1 0x00 000030a7: DUP1 000030a8: REVERT 000030a9: JUMPDEST 000030aa: PUSH2 0x30b5 000030ad: DUP6 000030ae: DUP3 000030af: DUP7 000030b0: ADD 000030b1: PUSH2 0x303a 000030b4: JUMP 000030b5: JUMPDEST 000030b6: SWAP1 000030b7: SWAP7 000030b8: SWAP1 000030b9: SWAP6 000030ba: POP 000030bb: SWAP4 000030bc: POP 000030bd: POP 000030be: POP 000030bf: POP 000030c0: JUMP 000030c1: JUMPDEST 000030c2: PUSH1 0x00 000030c4: DUP1 000030c5: PUSH1 0x00 000030c7: PUSH1 0x60 000030c9: DUP5 000030ca: DUP7 000030cb: SUB 000030cc: SLT 000030cd: ISZERO 000030ce: PUSH2 0x30d6 000030d1: JUMPI 000030d2: PUSH1 0x00 000030d4: DUP1 000030d5: REVERT 000030d6: JUMPDEST 000030d7: PUSH2 0x30df 000030da: DUP5 000030db: PUSH2 0x2db7 000030de: JUMP 000030df: JUMPDEST 000030e0: SWAP6 000030e1: PUSH1 0x20 000030e3: DUP6 000030e4: ADD 000030e5: CALLDATALOAD 000030e6: SWAP6 000030e7: POP 000030e8: PUSH1 0x40 000030ea: SWAP1 000030eb: SWAP5 000030ec: ADD 000030ed: CALLDATALOAD 000030ee: SWAP4 000030ef: SWAP3 000030f0: POP 000030f1: POP 000030f2: POP 000030f3: JUMP 000030f4: JUMPDEST 000030f5: PUSH1 0x20 000030f7: DUP1 000030f8: DUP3 000030f9: MSTORE 000030fa: DUP3 000030fb: MLOAD 000030fc: DUP3 000030fd: DUP3 000030fe: ADD 000030ff: DUP2 00003100: SWAP1 00003101: MSTORE 00003102: PUSH1 0x00 00003104: SWAP2 00003105: SWAP1 00003106: PUSH1 0x40 00003108: SWAP1 00003109: DUP2 0000310a: DUP6 0000310b: ADD 0000310c: SWAP1 0000310d: DUP7 0000310e: DUP5 0000310f: ADD 00003110: DUP6 00003111: JUMPDEST 00003112: DUP3 00003113: DUP2 00003114: LT 00003115: ISZERO 00003116: PUSH2 0x314c 00003119: JUMPI 0000311a: DUP2 0000311b: MLOAD 0000311c: DUP1 0000311d: MLOAD 0000311e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003133: AND 00003134: DUP6 00003135: MSTORE 00003136: DUP7 00003137: ADD 00003138: MLOAD 00003139: DUP7 0000313a: DUP6 0000313b: ADD 0000313c: MSTORE 0000313d: SWAP3 0000313e: DUP5 0000313f: ADD 00003140: SWAP3 00003141: SWAP1 00003142: DUP6 00003143: ADD 00003144: SWAP1 00003145: PUSH1 0x01 00003147: ADD 00003148: PUSH2 0x3111 0000314b: JUMP 0000314c: JUMPDEST 0000314d: POP 0000314e: SWAP2 0000314f: SWAP8 00003150: SWAP7 00003151: POP 00003152: POP 00003153: POP 00003154: POP 00003155: POP 00003156: POP 00003157: POP 00003158: JUMP 00003159: JUMPDEST 0000315a: PUSH1 0x00 0000315c: JUMPDEST 0000315d: DUP4 0000315e: DUP2 0000315f: LT 00003160: ISZERO 00003161: PUSH2 0x3174 00003164: JUMPI 00003165: DUP2 00003166: DUP2 00003167: ADD 00003168: MLOAD 00003169: DUP4 0000316a: DUP3 0000316b: ADD 0000316c: MSTORE 0000316d: PUSH1 0x20 0000316f: ADD 00003170: PUSH2 0x315c 00003173: JUMP 00003174: JUMPDEST 00003175: POP 00003176: POP 00003177: PUSH1 0x00 00003179: SWAP2 0000317a: ADD 0000317b: MSTORE 0000317c: JUMP 0000317d: JUMPDEST 0000317e: PUSH1 0x00 00003180: DUP2 00003181: MLOAD 00003182: DUP1 00003183: DUP5 00003184: MSTORE 00003185: PUSH2 0x3195 00003188: DUP2 00003189: PUSH1 0x20 0000318b: DUP7 0000318c: ADD 0000318d: PUSH1 0x20 0000318f: DUP7 00003190: ADD 00003191: PUSH2 0x3159 00003194: JUMP 00003195: JUMPDEST 00003196: PUSH1 0x1f 00003198: ADD 00003199: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000031ba: AND 000031bb: SWAP3 000031bc: SWAP1 000031bd: SWAP3 000031be: ADD 000031bf: PUSH1 0x20 000031c1: ADD 000031c2: SWAP3 000031c3: SWAP2 000031c4: POP 000031c5: POP 000031c6: JUMP 000031c7: JUMPDEST 000031c8: PUSH1 0x20 000031ca: DUP2 000031cb: MSTORE 000031cc: PUSH1 0x00 000031ce: PUSH2 0x16b6 000031d1: PUSH1 0x20 000031d3: DUP4 000031d4: ADD 000031d5: DUP5 000031d6: PUSH2 0x317d 000031d9: JUMP 000031da: JUMPDEST 000031db: PUSH1 0x00 000031dd: DUP1 000031de: PUSH1 0x20 000031e0: DUP4 000031e1: DUP6 000031e2: SUB 000031e3: SLT 000031e4: ISZERO 000031e5: PUSH2 0x31ed 000031e8: JUMPI 000031e9: PUSH1 0x00 000031eb: DUP1 000031ec: REVERT 000031ed: JUMPDEST 000031ee: DUP3 000031ef: CALLDATALOAD 000031f0: PUSH8 0xffffffffffffffff 000031f9: DUP1 000031fa: DUP3 000031fb: GT 000031fc: ISZERO 000031fd: PUSH2 0x3205 00003200: JUMPI 00003201: PUSH1 0x00 00003203: DUP1 00003204: REVERT 00003205: JUMPDEST 00003206: DUP2 00003207: DUP6 00003208: ADD 00003209: SWAP2 0000320a: POP 0000320b: DUP6 0000320c: PUSH1 0x1f 0000320e: DUP4 0000320f: ADD 00003210: SLT 00003211: PUSH2 0x3219 00003214: JUMPI 00003215: PUSH1 0x00 00003217: DUP1 00003218: REVERT 00003219: JUMPDEST 0000321a: DUP2 0000321b: CALLDATALOAD 0000321c: DUP2 0000321d: DUP2 0000321e: GT 0000321f: ISZERO 00003220: PUSH2 0x3228 00003223: JUMPI 00003224: PUSH1 0x00 00003226: DUP1 00003227: REVERT 00003228: JUMPDEST 00003229: DUP7 0000322a: PUSH1 0x20 0000322c: DUP3 0000322d: PUSH1 0x06 0000322f: SHL 00003230: DUP6 00003231: ADD 00003232: ADD 00003233: GT 00003234: ISZERO 00003235: PUSH2 0x323d 00003238: JUMPI 00003239: PUSH1 0x00 0000323b: DUP1 0000323c: REVERT 0000323d: JUMPDEST 0000323e: PUSH1 0x20 00003240: SWAP3 00003241: SWAP1 00003242: SWAP3 00003243: ADD 00003244: SWAP7 00003245: SWAP2 00003246: SWAP6 00003247: POP 00003248: SWAP1 00003249: SWAP4 0000324a: POP 0000324b: POP 0000324c: POP 0000324d: POP 0000324e: JUMP 0000324f: JUMPDEST 00003250: PUSH1 0x00 00003252: DUP1 00003253: PUSH1 0x00 00003255: PUSH1 0x60 00003257: DUP5 00003258: DUP7 00003259: SUB 0000325a: SLT 0000325b: ISZERO 0000325c: PUSH2 0x3264 0000325f: JUMPI 00003260: PUSH1 0x00 00003262: DUP1 00003263: REVERT 00003264: JUMPDEST 00003265: DUP4 00003266: CALLDATALOAD 00003267: PUSH2 0x326f 0000326a: DUP2 0000326b: PUSH2 0x2d78 0000326e: JUMP 0000326f: JUMPDEST 00003270: SWAP3 00003271: POP 00003272: PUSH1 0x20 00003274: DUP5 00003275: ADD 00003276: CALLDATALOAD 00003277: PUSH2 0x327f 0000327a: DUP2 0000327b: PUSH2 0x2d78 0000327e: JUMP 0000327f: JUMPDEST 00003280: SWAP2 00003281: POP 00003282: PUSH1 0x40 00003284: DUP5 00003285: ADD 00003286: CALLDATALOAD 00003287: PUSH2 0x302f 0000328a: DUP2 0000328b: PUSH2 0x2d78 0000328e: JUMP 0000328f: JUMPDEST 00003290: PUSH1 0x00 00003292: DUP1 00003293: PUSH1 0x00 00003295: DUP1 00003296: PUSH1 0x40 00003298: DUP6 00003299: DUP8 0000329a: SUB 0000329b: SLT 0000329c: ISZERO 0000329d: PUSH2 0x32a5 000032a0: JUMPI 000032a1: PUSH1 0x00 000032a3: DUP1 000032a4: REVERT 000032a5: JUMPDEST 000032a6: DUP5 000032a7: CALLDATALOAD 000032a8: PUSH8 0xffffffffffffffff 000032b1: DUP1 000032b2: DUP3 000032b3: GT 000032b4: ISZERO 000032b5: PUSH2 0x32bd 000032b8: JUMPI 000032b9: PUSH1 0x00 000032bb: DUP1 000032bc: REVERT 000032bd: JUMPDEST 000032be: PUSH2 0x32c9 000032c1: DUP9 000032c2: DUP4 000032c3: DUP10 000032c4: ADD 000032c5: PUSH2 0x303a 000032c8: JUMP 000032c9: JUMPDEST 000032ca: SWAP1 000032cb: SWAP7 000032cc: POP 000032cd: SWAP5 000032ce: POP 000032cf: PUSH1 0x20 000032d1: DUP8 000032d2: ADD 000032d3: CALLDATALOAD 000032d4: SWAP2 000032d5: POP 000032d6: DUP1 000032d7: DUP3 000032d8: GT 000032d9: ISZERO 000032da: PUSH2 0x32e2 000032dd: JUMPI 000032de: PUSH1 0x00 000032e0: DUP1 000032e1: REVERT 000032e2: JUMPDEST 000032e3: POP 000032e4: PUSH2 0x2fee 000032e7: DUP8 000032e8: DUP3 000032e9: DUP9 000032ea: ADD 000032eb: PUSH2 0x303a 000032ee: JUMP 000032ef: JUMPDEST 000032f0: PUSH1 0x00 000032f2: DUP1 000032f3: PUSH1 0x40 000032f5: DUP4 000032f6: DUP6 000032f7: SUB 000032f8: SLT 000032f9: ISZERO 000032fa: PUSH2 0x3302 000032fd: JUMPI 000032fe: PUSH1 0x00 00003300: DUP1 00003301: REVERT 00003302: JUMPDEST 00003303: DUP3 00003304: CALLDATALOAD 00003305: PUSH2 0x2ec9 00003308: DUP2 00003309: PUSH2 0x2d78 0000330c: JUMP 0000330d: JUMPDEST 0000330e: PUSH1 0x00 00003310: PUSH1 0x20 00003312: DUP3 00003313: DUP5 00003314: SUB 00003315: SLT 00003316: ISZERO 00003317: PUSH2 0x331f 0000331a: JUMPI 0000331b: PUSH1 0x00 0000331d: DUP1 0000331e: REVERT 0000331f: JUMPDEST 00003320: POP 00003321: MLOAD 00003322: SWAP2 00003323: SWAP1 00003324: POP 00003325: JUMP 00003326: JUMPDEST 00003327: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003348: PUSH1 0x00 0000334a: MSTORE 0000334b: PUSH1 0x32 0000334d: PUSH1 0x04 0000334f: MSTORE 00003350: PUSH1 0x24 00003352: PUSH1 0x00 00003354: REVERT 00003355: JUMPDEST 00003356: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003377: PUSH1 0x00 00003379: MSTORE 0000337a: PUSH1 0x11 0000337c: PUSH1 0x04 0000337e: MSTORE 0000337f: PUSH1 0x24 00003381: PUSH1 0x00 00003383: REVERT 00003384: JUMPDEST 00003385: DUP1 00003386: DUP3 00003387: ADD 00003388: DUP1 00003389: DUP3 0000338a: GT 0000338b: ISZERO 0000338c: PUSH2 0x09f3 0000338f: JUMPI 00003390: PUSH2 0x09f3 00003393: PUSH2 0x3355 00003396: JUMP 00003397: JUMPDEST 00003398: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000033b9: PUSH1 0x00 000033bb: MSTORE 000033bc: PUSH1 0x41 000033be: PUSH1 0x04 000033c0: MSTORE 000033c1: PUSH1 0x24 000033c3: PUSH1 0x00 000033c5: REVERT 000033c6: JUMPDEST 000033c7: PUSH32 0x4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000 000033e8: DUP2 000033e9: MSTORE 000033ea: PUSH1 0x00 000033ec: DUP3 000033ed: MLOAD 000033ee: PUSH2 0x33fe 000033f1: DUP2 000033f2: PUSH1 0x1f 000033f4: DUP6 000033f5: ADD 000033f6: PUSH1 0x20 000033f8: DUP8 000033f9: ADD 000033fa: PUSH2 0x3159 000033fd: JUMP 000033fe: JUMPDEST 000033ff: SWAP2 00003400: SWAP1 00003401: SWAP2 00003402: ADD 00003403: PUSH1 0x1f 00003405: ADD 00003406: SWAP3 00003407: SWAP2 00003408: POP 00003409: POP 0000340a: JUMP 0000340b: JUMPDEST 0000340c: DUP2 0000340d: DUP2 0000340e: SUB 0000340f: DUP2 00003410: DUP2 00003411: GT 00003412: ISZERO 00003413: PUSH2 0x09f3 00003416: JUMPI 00003417: PUSH2 0x09f3 0000341a: PUSH2 0x3355 0000341d: JUMP 0000341e: JUMPDEST 0000341f: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003440: PUSH1 0x00 00003442: MSTORE 00003443: PUSH1 0x31 00003445: PUSH1 0x04 00003447: MSTORE 00003448: PUSH1 0x24 0000344a: PUSH1 0x00 0000344c: REVERT 0000344d: JUMPDEST 0000344e: DUP1 0000344f: DUP3 00003450: MUL 00003451: DUP2 00003452: ISZERO 00003453: DUP3 00003454: DUP3 00003455: DIV 00003456: DUP5 00003457: EQ 00003458: OR 00003459: PUSH2 0x09f3 0000345c: JUMPI 0000345d: PUSH2 0x09f3 00003460: PUSH2 0x3355 00003463: JUMP 00003464: JUMPDEST 00003465: DUP4 00003466: DUP2 00003467: MSTORE 00003468: DUP3 00003469: PUSH1 0x20 0000346b: DUP3 0000346c: ADD 0000346d: MSTORE 0000346e: PUSH1 0x00 00003470: DUP3 00003471: MLOAD 00003472: PUSH2 0x3482 00003475: DUP2 00003476: PUSH1 0x40 00003478: DUP6 00003479: ADD 0000347a: PUSH1 0x20 0000347c: DUP8 0000347d: ADD 0000347e: PUSH2 0x3159 00003481: JUMP 00003482: JUMPDEST 00003483: SWAP2 00003484: SWAP1 00003485: SWAP2 00003486: ADD 00003487: PUSH1 0x40 00003489: ADD 0000348a: SWAP5 0000348b: SWAP4 0000348c: POP 0000348d: POP 0000348e: POP 0000348f: POP 00003490: JUMP 00003491: JUMPDEST 00003492: PUSH4 0xffffffff 00003497: DUP7 00003498: AND 00003499: DUP2 0000349a: MSTORE 0000349b: DUP5 0000349c: PUSH1 0x20 0000349e: DUP3 0000349f: ADD 000034a0: MSTORE 000034a1: PUSH1 0xa0 000034a3: PUSH1 0x40 000034a5: DUP3 000034a6: ADD 000034a7: MSTORE 000034a8: PUSH1 0x00 000034aa: PUSH2 0x34b6 000034ad: PUSH1 0xa0 000034af: DUP4 000034b0: ADD 000034b1: DUP7 000034b2: PUSH2 0x317d 000034b5: JUMP 000034b6: JUMPDEST 000034b7: DUP3 000034b8: DUP2 000034b9: SUB 000034ba: PUSH1 0x60 000034bc: DUP5 000034bd: ADD 000034be: MSTORE 000034bf: PUSH2 0x34c8 000034c2: DUP2 000034c3: DUP7 000034c4: PUSH2 0x317d 000034c7: JUMP 000034c8: JUMPDEST 000034c9: SWAP2 000034ca: POP 000034cb: POP 000034cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000034e1: DUP4 000034e2: AND 000034e3: PUSH1 0x80 000034e5: DUP4 000034e6: ADD 000034e7: MSTORE 000034e8: SWAP7 000034e9: SWAP6 000034ea: POP 000034eb: POP 000034ec: POP 000034ed: POP 000034ee: POP 000034ef: POP 000034f0: JUMP 000034f1: JUMPDEST 000034f2: PUSH1 0xff 000034f4: DUP2 000034f5: DUP2 000034f6: AND 000034f7: DUP4 000034f8: DUP3 000034f9: AND 000034fa: ADD 000034fb: SWAP1 000034fc: DUP2 000034fd: GT 000034fe: ISZERO 000034ff: PUSH2 0x09f3 00003502: JUMPI 00003503: PUSH2 0x09f3 00003506: PUSH2 0x3355 00003509: JUMP 0000350a: JUMPDEST 0000350b: PUSH1 0x00 0000350d: DUP1 0000350e: DUP6 0000350f: DUP6 00003510: GT 00003511: ISZERO 00003512: PUSH2 0x351a 00003515: JUMPI 00003516: PUSH1 0x00 00003518: DUP1 00003519: REVERT 0000351a: JUMPDEST 0000351b: DUP4 0000351c: DUP7 0000351d: GT 0000351e: ISZERO 0000351f: PUSH2 0x3527 00003522: JUMPI 00003523: PUSH1 0x00 00003525: DUP1 00003526: REVERT 00003527: JUMPDEST 00003528: POP 00003529: POP 0000352a: DUP3 0000352b: ADD 0000352c: SWAP4 0000352d: SWAP2 0000352e: SWAP1 0000352f: SWAP3 00003530: SUB 00003531: SWAP2 00003532: POP 00003533: JUMP 00003534: JUMPDEST 00003535: DUP1 00003536: CALLDATALOAD 00003537: PUSH1 0x20 00003539: DUP4 0000353a: LT 0000353b: ISZERO 0000353c: PUSH2 0x09f3 0000353f: JUMPI 00003540: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003561: PUSH1 0x20 00003563: DUP5 00003564: SWAP1 00003565: SUB 00003566: PUSH1 0x03 00003568: SHL 00003569: SHL 0000356a: AND 0000356b: SWAP3 0000356c: SWAP2 0000356d: POP 0000356e: POP 0000356f: JUMP 00003570: JUMPDEST 00003571: PUSH1 0x00 00003573: DUP3 00003574: PUSH2 0x35a6 00003577: JUMPI 00003578: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003599: PUSH1 0x00 0000359b: MSTORE 0000359c: PUSH1 0x12 0000359e: PUSH1 0x04 000035a0: MSTORE 000035a1: PUSH1 0x24 000035a3: PUSH1 0x00 000035a5: REVERT 000035a6: JUMPDEST 000035a7: POP 000035a8: DIV 000035a9: SWAP1 000035aa: JUMP 000035ab: JUMPDEST 000035ac: PUSH1 0x00 000035ae: PUSH1 0x20 000035b0: DUP3 000035b1: DUP5 000035b2: SUB 000035b3: SLT 000035b4: ISZERO 000035b5: PUSH2 0x35bd 000035b8: JUMPI 000035b9: PUSH1 0x00 000035bb: DUP1 000035bc: REVERT 000035bd: JUMPDEST 000035be: DUP2 000035bf: MLOAD 000035c0: DUP1 000035c1: ISZERO 000035c2: ISZERO 000035c3: DUP2 000035c4: EQ 000035c5: PUSH2 0x16b6 000035c8: JUMPI 000035c9: PUSH1 0x00 000035cb: DUP1 000035cc: REVERT 000035cd: JUMPDEST 000035ce: PUSH32 0xffff000000000000000000000000000000000000000000000000000000000000 000035ef: DUP7 000035f0: PUSH1 0xf0 000035f2: SHL 000035f3: AND 000035f4: DUP2 000035f5: MSTORE 000035f6: DUP5 000035f7: PUSH1 0x02 000035f9: DUP3 000035fa: ADD 000035fb: MSTORE 000035fc: DUP4 000035fd: PUSH1 0x22 000035ff: DUP3 00003600: ADD 00003601: MSTORE 00003602: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00003623: DUP4 00003624: PUSH1 0x60 00003626: SHL 00003627: AND 00003628: PUSH1 0x42 0000362a: DUP3 0000362b: ADD 0000362c: MSTORE 0000362d: PUSH1 0x00 0000362f: DUP3 00003630: MLOAD 00003631: PUSH2 0x3641 00003634: DUP2 00003635: PUSH1 0x56 00003637: DUP6 00003638: ADD 00003639: PUSH1 0x20 0000363b: DUP8 0000363c: ADD 0000363d: PUSH2 0x3159 00003640: JUMP 00003641: JUMPDEST 00003642: SWAP2 00003643: SWAP1 00003644: SWAP2 00003645: ADD 00003646: PUSH1 0x56 00003648: ADD 00003649: SWAP7 0000364a: SWAP6 0000364b: POP 0000364c: POP 0000364d: POP 0000364e: POP 0000364f: POP 00003650: POP 00003651: JUMP 00003652: JUMPDEST 00003653: PUSH1 0x00 00003655: DUP3 00003656: MLOAD 00003657: PUSH2 0x3664 0000365a: DUP2 0000365b: DUP5 0000365c: PUSH1 0x20 0000365e: DUP8 0000365f: ADD 00003660: PUSH2 0x3159 00003663: JUMP 00003664: JUMPDEST 00003665: SWAP2 00003666: SWAP1 00003667: SWAP2 00003668: ADD 00003669: SWAP3 0000366a: SWAP2 0000366b: POP 0000366c: POP 0000366d: JUMP 0000366e: INVALID 0000366f: LOG2 00003670: PUSH5 0x6970667358 00003676: UNKNOWN(0x22) 00003677: SLT 00003678: KECCAK256 00003679: PUSH20 0xbb12756f0ad2ad03b6fae2aaa4d81109edd468d0 0000368e: UNKNOWN(0xBA) 0000368f: MCOPY 00003690: BLOCKHASH 00003691: AND 00003692: UNKNOWN(0x25) 00003693: UNKNOWN(0xDA) 00003694: SWAP5 00003695: DUP10 00003696: PUSH21
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | upgradeability | codex | Public initializer allows post-deployment ownership takeover | 85 | no | — |
viewevidence_json{
"evidence": "`HypERC20Collateral.initialize` is `public` and only uses `initializer`, but it calls `_MailboxClient_initialize` which runs `__Ownable_init()` and `_transferOwnership(_owner)`, while the constructor already sets owner and does not disable initializers.",
"locations": [
"contracts/contracts/token/HypERC20Collateral.sol:53",
"contracts/contracts/client/MailboxClient.sol:71",
"contracts/contracts/client/MailboxClient.sol:109"
],
"recommendation": "If this contract is intended for proxy deployments, add `_disableInitializers()` in the constructor of the implementation and ensure the proxy calls `initialize` immediately. If it is intended for direct deployments, either call `_MailboxClient_initialize(...)` in the constructor and remove the public `initialize`, or restrict `initialize` to a trusted deployer/onlyOwner and call it in the same transaction as deployment.",
"exploit_scenario": "After deployment, an attacker calls `initialize` before the intended owner does (or at any time if it was never called). Because `initialize` is public and only gated by `initializer`, it can be called once by anyone and it invokes `__Ownable_init()` plus `_transferOwnership(_owner)`. The attacker sets themselves as owner, then can enroll malicious routers, set a compromised hook/ISM, add themselves as rebalancer, and move collateral via `rebalance`."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x3b82c2f917369c914b2ca73d7015e8ebb4157283d1579b9f5f2da1de0c3ff2d4
call_targets:
0x905d9368cf8a337c420bfb87705d2cdbb4e1c26a
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x3b82c2f917369c914b2ca73d7015e8ebb4157283d1579b9f5f2da1de0c3ff2d4",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x905d9368cf8a337c420bfb87705d2cdbb4e1c26a"
],
"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": "0xf51e181a",
"selector": "0xf51e181a",
"calldata_variants": [
"0xf51e181a",
"0xf51e181a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa57f157",
"selector": "0xfa57f157",
"calldata_variants": [
"0xfa57f157",
"0xfa57f1570000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfbaca44c",
"selector": "0xfbaca44c",
"calldata_variants": [
"0xfbaca44c",
"0xfbaca44c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2ed8c53",
"selector": "0xf2ed8c53",
"calldata_variants": [
"0xf2ed8c53",
"0xf2ed8c530000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde523cf3",
"selector": "0xde523cf3",
"calldata_variants": [
"0xde523cf3",
"0xde523cf30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe9198bf9",
"selector": "0xe9198bf9",
"calldata_variants": [
"0xe9198bf9",
"0xe9198bf90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xefae508a",
"selector": "0xefae508a",
"calldata_variants": [
"0xefae508a",
"0xefae508a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 8635,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9152,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 11335,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [
{
"pc": 3132,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 3
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x3b82c2f917369c914b2ca73d7015e8ebb4157283d1579b9f5f2da1de0c3ff2d4
call_targets:
0x905d9368cf8a337c420bfb87705d2cdbb4e1c26a
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x3b82c2f917369c914b2ca73d7015e8ebb4157283d1579b9f5f2da1de0c3ff2d4",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x905d9368cf8a337c420bfb87705d2cdbb4e1c26a"
],
"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": "0xf51e181a",
"selector": "0xf51e181a",
"calldata_variants": [
"0xf51e181a",
"0xf51e181a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa57f157",
"selector": "0xfa57f157",
"calldata_variants": [
"0xfa57f157",
"0xfa57f1570000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfbaca44c",
"selector": "0xfbaca44c",
"calldata_variants": [
"0xfbaca44c",
"0xfbaca44c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2ed8c53",
"selector": "0xf2ed8c53",
"calldata_variants": [
"0xf2ed8c53",
"0xf2ed8c530000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde523cf3",
"selector": "0xde523cf3",
"calldata_variants": [
"0xde523cf3",
"0xde523cf30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe9198bf9",
"selector": "0xe9198bf9",
"calldata_variants": [
"0xe9198bf9",
"0xe9198bf90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xefae508a",
"selector": "0xefae508a",
"calldata_variants": [
"0xefae508a",
"0xefae508a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 8635,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9152,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 11335,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": [
{
"pc": 3132,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|