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

Analysis Run

32c00cf5-d812-497b-98d4-d7d523f95e8a

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 2, 2026 10:54 PM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Unprotected initializer enables ownership takeover and collateral drain via rebalance
crit 0 high 0 proxy context implementation known
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
31373 report.consolidate complete 1 / 1 3 months ago
111236 artifact.fetch complete 1 / 3 1 week ago
111237 tool.cast_disasm complete 1 / 3 1 week ago
111238 analysis.bundle complete 1 / 3 1 week ago
111239 capability.graph complete 1 / 3 1 week ago
111240 detector.run complete 1 / 3 1 week ago
111241 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Found a concrete takeover path: `HypNative.initialize` is publicly callable and can be used to seize ownership if not yet initialized, then whitelist a malicious bridge/rebalancer and drain all native collateral.
View stderr
[codex:1415578] OpenAI Codex v0.77.0 (research preview)
[codex:1415578] --------
[codex:1415578] workdir: /tmp/codex-multi-5_qc75em
[codex:1415578] model: gpt-5.2-codex
[codex:1415578] provider: openai
[codex:1415578] approval: never
[codex:1415578] sandbox: read-only
[codex:1415578] reasoning effort: xhigh
[codex:1415578] reasoning summaries: auto
[codex:1415578] session id: 019b80e8-411e-7591-b46d-2b03c1405e89
[codex:1415578] --------
[codex:1415578] user
[codex:1415578] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1415578] 
[codex:1415578] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1415578] 
[codex:1415578] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1415578] - Gas inefficiency, code quality, naming, or best practices
[codex:1415578] - Theoretical vulnerabilities without a clear extraction path
[codex:1415578] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1415578] - Front-running unless it enables theft beyond MEV
[codex:1415578] - DoS, griefing, or issues that don't result in attacker profit
[codex:1415578] - Missing events, view function issues, or informational findings
[codex:1415578] 
[codex:1415578] HIGH-VALUE PATTERNS TO HUNT:
[codex:1415578] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1415578] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1415578] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1415578] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1415578] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1415578] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1415578] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1415578] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1415578] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1415578] 
[codex:1415578] For each finding, you MUST provide:
[codex:1415578] 1. Exact file and line numbers of vulnerable code
[codex:1415578] 2. Step-by-step exploit transaction sequence
[codex:1415578] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1415578] 
[codex:1415578] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1415578] 
[codex:1415578] Output MUST be valid JSON matching the provided schema.
[codex:1415578] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1415578] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1415578] mcp startup: no servers
[codex:1415578] 
[codex:1415578] thinking
[codex:1415578] **Searching for AUDIT_BUNDLE**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc ls in /tmp/codex-multi-5_qc75em succeeded in 5ms:
[codex:1415578] AUDIT_BUNDLE.txt
[codex:1415578] codex-output-schema.json
[codex:1415578] contracts
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 6ms:
[codex:1415578] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1415578] 
[codex:1415578] ================================================================================
[codex:1415578] FILE: contracts/contracts/PackageVersioned.sol
[codex:1415578] ================================================================================
[codex:1415578] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1415578] pragma solidity >=0.6.11;
[codex:1415578] 
[codex:1415578] /**
[codex:1415578]  * @title PackageVersioned
[codex:1415578]  * @notice Package version getter for contracts
[codex:1415578]  **/
[codex:1415578] abstract contract PackageVersioned {
[codex:1415578]     // GENERATED CODE - DO NOT EDIT
[codex:1415578]     string public constant PACKAGE_VERSION = "9.0.6";
[codex:1415578] }
[codex:1415578] 
[codex:1415578] ================================================================================
[codex:1415578] FILE: contracts/contracts/client/GasRouter.sol
[codex:1415578] ================================================================================
[codex:1415578] 
[codex:1415578] thinking
[codex:1415578] **Scanning bundle for exploits**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 6ms:
[codex:1415578] 
[codex:1415578]     constructor(address _mailbox) onlyContract(_mailbox) {
[codex:1415578]         mailbox = IMailbox(_mailbox);
[codex:1415578]         localDomain = mailbox.localDomain();
[codex:1415578]         _transferOwnership(msg.sender);
[codex:1415578]     }
[codex:1415578] 
[codex:1415578]     function interchainSecurityModule()
[codex:1415578]         external
[codex:1415578]         view
[codex:1415578]         virtual
[codex:1415578]         returns (IInterchainSecurityModule)
[codex:1415578]     {
[codex:1415578]         return _interchainSecurityModule;
[codex:1415578]     }
[codex:1415578] 
[codex:1415578]     /**
[codex:1415578]      * @notice Sets the address of the application's custom hook.
[codex:1415578]      * @param _hook The address of the hook contract.
[codex:1415578]      */
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 6ms:
[codex:1415578]      */
[codex:1415578]     function _isRemoteRouter(
[codex:1415578]         uint32 _domain,
[codex:1415578]         bytes32 _address
[codex:1415578]     ) internal view returns (bool) {
[codex:1415578]         return routers(_domain) == _address;
[codex:1415578]     }
[codex:1415578] 
[codex:1415578]     /**
[codex:1415578]      * @notice Assert that the given domain has an Application Router registered and return its address
[codex:1415578]      * @param _domain The domain of the chain for which to get the Application Router
[codex:1415578]      * @return _router The address of the remote Application Router on _domain
[codex:1415578]      */
[codex:1415578]     function _mustHaveRemoteRouter(
[codex:1415578]         uint32 _domain
[codex:1415578]     ) internal view returns (bytes32) {
[codex:1415578]         (bool contained, bytes32 _router) = _routers.tryGet(_domain);
[codex:1415578]         if (contained) {
[codex:1415578]             return _router;
[codex:1415578]         }
[codex:1415578] 
[codex:1415578] thinking
[codex:1415578] **Continuing contract search**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 6ms:
[codex:1415578]      * @param messageId The unique message identifier
[codex:1415578]      */
[codex:1415578]     event ProcessId(bytes32 indexed messageId);
[codex:1415578] 
[codex:1415578]     /**
[codex:1415578]      * @notice Emitted when a Hyperlane message is delivered
[codex:1415578]      * @param origin The origin domain of the message
[codex:1415578]      * @param sender The message sender address on `origin`
[codex:1415578]      * @param recipient The address that handled the message
[codex:1415578]      */
[codex:1415578]     event Process(
[codex:1415578]         uint32 indexed origin,
[codex:1415578]         bytes32 indexed sender,
[codex:1415578]         address indexed recipient
[codex:1415578]     );
[codex:1415578] 
[codex:1415578]     function localDomain() external view returns (uint32);
[codex:1415578] 
[codex:1415578]     function delivered(bytes32 messageId) external view returns (bool);
[codex:1415578] 
[codex:1415578] 
[codex:1415578] thinking
[codex:1415578] **Continuing exploration**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '1200,1600p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 6ms:
[codex:1415578] 
[codex:1415578]     /**
[codex:1415578]      * @notice Returns the message sender as address.
[codex:1415578]      * @param _message ABI encoded Hyperlane message.
[codex:1415578]      * @return Sender of `_message` as address
[codex:1415578]      */
[codex:1415578]     function senderAddress(
[codex:1415578]         bytes calldata _message
[codex:1415578]     ) internal pure returns (address) {
[codex:1415578]         return sender(_message).bytes32ToAddress();
[codex:1415578]     }
[codex:1415578] 
[codex:1415578]     /**
[codex:1415578]      * @notice Returns the message destination domain.
[codex:1415578]      * @param _message ABI encoded Hyperlane message.
[codex:1415578]      * @return Destination domain of `_message`
[codex:1415578]      */
[codex:1415578]     function destination(
[codex:1415578]         bytes calldata _message
[codex:1415578]     ) internal pure returns (uint32) {
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '1600,2000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 6ms:
[codex:1415578]     function rebalance(
[codex:1415578]         uint32 domain,
[codex:1415578]         uint256 amount,
[codex:1415578]         ValueTransferBridge bridge
[codex:1415578]     ) external payable onlyRebalancer onlyAllowedBridge(domain, bridge) {
[codex:1415578]         address rebalancer = _msgSender();
[codex:1415578] 
[codex:1415578]         bytes32 recipient = allowedRecipient[domain];
[codex:1415578]         if (recipient == bytes32(0)) {
[codex:1415578]             recipient = _mustHaveRemoteRouter(domain);
[codex:1415578]         }
[codex:1415578] 
[codex:1415578]         _rebalance(domain, recipient, amount, bridge);
[codex:1415578]         emit CollateralMoved({
[codex:1415578]             domain: domain,
[codex:1415578]             recipient: recipient,
[codex:1415578]             amount: amount,
[codex:1415578]             rebalancer: rebalancer
[codex:1415578]         });
[codex:1415578]     }
[codex:1415578] 
[codex:1415578] thinking
[codex:1415578] **Continuing to process remaining tokens**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '2000,2400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 5ms:
[codex:1415578] 
[codex:1415578] 
[codex:1415578] thinking
[codex:1415578] **Analyzing potential exploits and vulnerabilities**
[codex:1415578] 
[codex:1415578] I'm carefully tracing through HypNative and TokenRouter logic to find any exploit paths for profit. I'm examining fund handling, reentrancy risks, access controls, initializer misuse, and cross-chain funds dispatch. I'm particularly focused on uninitialized contract ownership that could let an attacker gain control and drain collateral via rebalance with a malicious bridge. Next, I'll check contract files for exact locations to link findings to line numbers.
[codex:1415578] exec
[codex:1415578] /bin/bash -lc 'rg -n "function initialize" -n contracts/contracts -S' in /tmp/codex-multi-5_qc75em succeeded in 13ms:
[codex:1415578] contracts/contracts/token/HypNative.sol:39:    function initialize(
[codex:1415578] exec
[codex:1415578] /bin/bash -lc 'nl -ba contracts/contracts/token/HypNative.sol' in /tmp/codex-multi-5_qc75em succeeded in 5ms:
[codex:1415578]      1	// SPDX-License-Identifier: Apache-2.0
[codex:1415578]      2	pragma solidity >=0.8.0;
[codex:1415578]      3	
[codex:1415578]      4	import {TokenRouter} from "./libs/TokenRouter.sol";
[codex:1415578]      5	import {FungibleTokenRouter} from "./libs/FungibleTokenRouter.sol";
[codex:1415578]      6	import {MovableCollateralRouter} from "./libs/MovableCollateralRouter.sol";
[codex:1415578]      7	import {ValueTransferBridge} from "./interfaces/ValueTransferBridge.sol";
[codex:1415578]      8	import {Quote} from "../interfaces/ITokenBridge.sol";
[codex:1415578]      9	
[codex:1415578]     10	import {Address} from "@openzeppelin/contracts/utils/Address.sol";
[codex:1415578]     11	
[codex:1415578]     12	/**
[codex:1415578]     13	 * @title Hyperlane Native Token Router that extends ERC20 with remote transfer functionality.
[codex:1415578]     14	 * @author Abacus Works
[codex:1415578]     15	 * @dev Supply on each chain is not constant but the aggregate supply across all chains is.
[codex:1415578]     16	 */
[codex:1415578]     17	contract HypNative is MovableCollateralRouter {
[codex:1415578]     18	    string internal constant INSUFFICIENT_NATIVE_AMOUNT =
[codex:1415578]     19	        "Native: amount exceeds msg.value";
[codex:1415578]     20	
[codex:1415578] 
[codex:1415578] thinking
[codex:1415578] **Preparing to gather line numbers**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc 'nl -ba contracts/contracts/client/MailboxClient.sol' in /tmp/codex-multi-5_qc75em succeeded in 5ms:
[codex:1415578]      1	// SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1415578]      2	pragma solidity >=0.6.11;
[codex:1415578]      3	
[codex:1415578]      4	/*@@@@@@@       @@@@@@@@@
[codex:1415578]      5	 @@@@@@@@@       @@@@@@@@@
[codex:1415578]      6	  @@@@@@@@@       @@@@@@@@@
[codex:1415578]      7	   @@@@@@@@@       @@@@@@@@@
[codex:1415578]      8	    @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1415578]      9	     @@@@@  HYPERLANE  @@@@@@@
[codex:1415578]     10	    @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1415578]     11	   @@@@@@@@@       @@@@@@@@@
[codex:1415578]     12	  @@@@@@@@@       @@@@@@@@@
[codex:1415578]     13	 @@@@@@@@@       @@@@@@@@@
[codex:1415578]     14	@@@@@@@@@       @@@@@@@@*/
[codex:1415578]     15	
[codex:1415578]     16	// ============ Internal Imports ============
[codex:1415578]     17	import {IMailbox} from "../interfaces/IMailbox.sol";
[codex:1415578]     18	import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
[codex:1415578]     19	import {IInterchainSecurityModule} from "../interfaces/IInterchainSecurityModule.sol";
[codex:1415578]     20	import {Message} from "../libs/Message.sol";
[codex:1415578] 
[codex:1415578] thinking
[codex:1415578] **Identifying needed MovableCollateralRouter lines**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc 'nl -ba contracts/contracts/token/libs/MovableCollateralRouter.sol' in /tmp/codex-multi-5_qc75em succeeded in 7ms:
[codex:1415578]      1	// SPDX-License-Identifier: Apache-2.0
[codex:1415578]      2	pragma solidity >=0.8.0;
[codex:1415578]      3	
[codex:1415578]      4	import {Router} from "../../client/Router.sol";
[codex:1415578]      5	import {FungibleTokenRouter} from "./FungibleTokenRouter.sol";
[codex:1415578]      6	import {ValueTransferBridge} from "../interfaces/ValueTransferBridge.sol";
[codex:1415578]      7	import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
[codex:1415578]      8	
[codex:1415578]      9	import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1415578]     10	import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1415578]     11	
[codex:1415578]     12	abstract contract MovableCollateralRouter is FungibleTokenRouter {
[codex:1415578]     13	    using SafeERC20 for IERC20;
[codex:1415578]     14	    using EnumerableSet for EnumerableSet.AddressSet;
[codex:1415578]     15	
[codex:1415578]     16	    /// @notice Mapping of domain to allowed rebalance recipient.
[codex:1415578]     17	    /// @dev Keys constrained to a subset of Router.domains()
[codex:1415578]     18	    mapping(uint32 routerDomain => bytes32 recipient) public allowedRecipient;
[codex:1415578]     19	
[codex:1415578]     20	    /// @notice Mapping of domain to allowed rebalance bridges.
[codex:1415578] 
[codex:1415578] thinking
[codex:1415578] **Analyzing uninitialized ownership exploit**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc 'rg -n "initializer" contracts/contracts -S' in /tmp/codex-multi-5_qc75em succeeded in 14ms:
[codex:1415578] contracts/contracts/token/HypNative.sol:43:    ) public virtual initializer {
[codex:1415578] contracts/contracts/client/MailboxClient.sol:108:    // ======== Initializer =========
[codex:1415578] 
[codex:1415578] thinking
[codex:1415578] **Analyzing contract initialization and ownership controls**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc 'nl -ba contracts/contracts/client/Router.sol' in /tmp/codex-multi-5_qc75em succeeded in 5ms:
[codex:1415578]      1	// SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1415578]      2	pragma solidity >=0.6.11;
[codex:1415578]      3	
[codex:1415578]      4	// ============ Internal Imports ============
[codex:1415578]      5	import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
[codex:1415578]      6	import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
[codex:1415578]      7	import {MailboxClient} from "./MailboxClient.sol";
[codex:1415578]      8	import {EnumerableMapExtended} from "../libs/EnumerableMapExtended.sol";
[codex:1415578]      9	
[codex:1415578]     10	// ============ External Imports ============
[codex:1415578]     11	import {Strings} from "@openzeppelin/contracts/utils/Strings.sol";
[codex:1415578]     12	
[codex:1415578]     13	abstract contract Router is MailboxClient, IMessageRecipient {
[codex:1415578]     14	    using EnumerableMapExtended for EnumerableMapExtended.UintToBytes32Map;
[codex:1415578]     15	    using Strings for uint32;
[codex:1415578]     16	
[codex:1415578]     17	    // ============ Mutable Storage ============
[codex:1415578]     18	    /// @dev Mapping of domain => router. For a given domain we have one router we send/receive messages from.
[codex:1415578]     19	    EnumerableMapExtended.UintToBytes32Map internal _routers;
[codex:1415578]     20	
[codex:1415578] 
[codex:1415578] 
[codex:1415578] thinking
[codex:1415578] **Identifying concrete uninitialized exploit**
[codex:1415578] thinking
[codex:1415578] **Preparing final JSON report**
[codex:1415578] codex
[codex:1415578] {"no_findings":false,"summary":"Found a concrete takeover path: `HypNative.initialize` is publicly callable and can be used to seize ownership if not yet initialized, then whitelist a malicious bridge/rebalancer and drain all native collateral.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected initializer enables ownership takeover and collateral drain via rebalance","exploit_scenario":"1) Find a deployed `HypNative` instance where `initialize()` has not been called yet. 2) Call `initialize(address(0), address(0), attacker)`; `onlyContractOrNull` allows zero addresses and `_MailboxClient_initialize` sets the owner to the attacker-provided `_owner`. 3) As owner, call `enrollRemoteRouter` to register any domain, then `addBridge(domain, maliciousBridge)` and `addRebalancer(attacker)` to whitelist attacker-controlled bridge and self. 4) Call `rebalance(domain, amount, maliciousBridge)` with `amount` equal to the contract’s ETH balance (and `msg.value = 0`). `HypNative._rebalance` sends `amount` ETH to `maliciousBridge`, which can simply keep the funds. 5) Repeat until the contract balance is drained.","recommendation":"Disable initializers in the constructor (`_disableInitializers()`), or remove `initialize` entirely for non-proxy deployments. If initialization is required, restrict it (e.g., onlyOwner) and ensure deployment tooling calls it atomically before any third party can interact.","evidence":"`HypNative.initialize` is public `initializer` and calls `_MailboxClient_initialize`, which sets ownership to the caller-provided `_owner`; ownership then allows adding bridges/rebalancers and calling `rebalance`, which forwards ETH to the chosen bridge.","locations":["contracts/contracts/token/HypNative.sol:39","contracts/contracts/client/MailboxClient.sol:109","contracts/contracts/client/MailboxClient.sol:117","contracts/contracts/client/Router.sol:54","contracts/contracts/token/libs/MovableCollateralRouter.sol:69","contracts/contracts/token/libs/MovableCollateralRouter.sol:98","contracts/contracts/token/libs/MovableCollateralRouter.sol:114","contracts/contracts/token/HypNative.sol:119"]}]}
[codex:1415578] tokens used
[codex:1415578] 33,847
[codex:1415578] {"no_findings":false,"summary":"Found a concrete takeover path: `HypNative.initialize` is publicly callable and can be used to seize ownership if not yet initialized, then whitelist a malicious bridge/rebalancer and drain all native collateral.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected initializer enables ownership takeover and collateral drain via rebalance","exploit_scenario":"1) Find a deployed `HypNative` instance where `initialize()` has not been called yet. 2) Call `initialize(address(0), address(0), attacker)`; `onlyContractOrNull` allows zero addresses and `_MailboxClient_initialize` sets the owner to the attacker-provided `_owner`. 3) As owner, call `enrollRemoteRouter` to register any domain, then `addBridge(domain, maliciousBridge)` and `addRebalancer(attacker)` to whitelist attacker-controlled bridge and self. 4) Call `rebalance(domain, amount, maliciousBridge)` with `amount` equal to the contract’s ETH balance (and `msg.value = 0`). `HypNative._rebalance` sends `amount` ETH to `maliciousBridge`, which can simply keep the funds. 5) Repeat until the contract balance is drained.","recommendation":"Disable initializers in the constructor (`_disableInitializers()`), or remove `initialize` entirely for non-proxy deployments. If initialization is required, restrict it (e.g., onlyOwner) and ensure deployment tooling calls it atomically before any third party can interact.","evidence":"`HypNative.initialize` is public `initializer` and calls `_MailboxClient_initialize`, which sets ownership to the caller-provided `_owner`; ownership then allows adding bridges/rebalancers and calling `rebalance`, which forwards ETH to the chosen bridge.","locations":["contracts/contracts/token/HypNative.sol:39","contracts/contracts/client/MailboxClient.sol:109","contracts/contracts/client/MailboxClient.sol:117","contracts/contracts/client/Router.sol:54","contracts/contracts/token/libs/MovableCollateralRouter.sol:69","contracts/contracts/token/libs/MovableCollateralRouter.sol:98","contracts/contracts/token/libs/MovableCollateralRouter.sol:114","contracts/contracts/token/HypNative.sol:119"]}]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-02T22:54:13.044809+00:00",
        "returncode": 0
    },
    "summary": "Found a concrete takeover path: `HypNative.initialize` is publicly callable and can be used to seize ownership if not yet initialized, then whitelist a malicious bridge/rebalancer and drain all native collateral.",
    "raw_final": {
        "summary": "Found a concrete takeover path: `HypNative.initialize` is publicly callable and can be used to seize ownership if not yet initialized, then whitelist a malicious bridge/rebalancer and drain all native collateral.",
        "findings": [
            {
                "title": "Unprotected initializer enables ownership takeover and collateral drain via rebalance",
                "category": "upgradeability",
                "evidence": "`HypNative.initialize` is public `initializer` and calls `_MailboxClient_initialize`, which sets ownership to the caller-provided `_owner`; ownership then allows adding bridges/rebalancers and calling `rebalance`, which forwards ETH to the chosen bridge.",
                "severity": "critical",
                "locations": [
                    "contracts/contracts/token/HypNative.sol:39",
                    "contracts/contracts/client/MailboxClient.sol:109",
                    "contracts/contracts/client/MailboxClient.sol:117",
                    "contracts/contracts/client/Router.sol:54",
                    "contracts/contracts/token/libs/MovableCollateralRouter.sol:69",
                    "contracts/contracts/token/libs/MovableCollateralRouter.sol:98",
                    "contracts/contracts/token/libs/MovableCollateralRouter.sol:114",
                    "contracts/contracts/token/HypNative.sol:119"
                ],
                "recommendation": "Disable initializers in the constructor (`_disableInitializers()`), or remove `initialize` entirely for non-proxy deployments. If initialization is required, restrict it (e.g., onlyOwner) and ensure deployment tooling calls it atomically before any third party can interact.",
                "exploit_scenario": "1) Find a deployed `HypNative` instance where `initialize()` has not been called yet. 2) Call `initialize(address(0), address(0), attacker)`; `onlyContractOrNull` allows zero addresses and `_MailboxClient_initialize` sets the owner to the attacker-provided `_owner`. 3) As owner, call `enrollRemoteRouter` to register any domain, then `addBridge(domain, maliciousBridge)` and `addRebalancer(attacker)` to whitelist attacker-controlled bridge and self. 4) Call `rebalance(domain, amount, maliciousBridge)` with `amount` equal to the contract\u2019s ETH balance (and `msg.value = 0`). `HypNative._rebalance` sends `amount` ETH to `maliciousBridge`, which can simply keep the funds. 5) Repeat until the contract balance is drained."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
5
Total opcodes
6783
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0289
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x81b4e8b4
00000019: GT
0000001a: PUSH2 0x0153
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 0x07ff
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xfa57f157
00000050: EQ
00000051: PUSH2 0x0833
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xfbaca44c
0000005b: EQ
0000005c: PUSH2 0x0853
0000005f: JUMPI
00000060: PUSH1 0x00
00000062: DUP1
00000063: REVERT
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0xf2ed8c53
0000006b: EQ
0000006c: PUSH2 0x07bf
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xf2fde38b
00000076: EQ
00000077: PUSH2 0x07df
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 0x0754
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0xe9198bf9
0000009c: EQ
0000009d: PUSH2 0x077f
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xefae508a
000000a7: EQ
000000a8: PUSH2 0x079f
000000ab: JUMPI
000000ac: PUSH1 0x00
000000ae: DUP1
000000af: REVERT
000000b0: JUMPDEST
000000b1: DUP1
000000b2: PUSH4 0xc69c8ce2
000000b7: EQ
000000b8: PUSH2 0x070b
000000bb: JUMPI
000000bc: DUP1
000000bd: PUSH4 0xd5438eae
000000c2: EQ
000000c3: PUSH2 0x0720
000000c6: JUMPI
000000c7: PUSH1 0x00
000000c9: DUP1
000000ca: REVERT
000000cb: JUMPDEST
000000cc: DUP1
000000cd: PUSH4 0x93c44847
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 0x06ab
000000ec: JUMPI
000000ed: DUP1
000000ee: PUSH4 0xc0c53b8b
000000f3: EQ
000000f4: PUSH2 0x06cb
000000f7: JUMPI
000000f8: DUP1
000000f9: PUSH4 0xc3827115
000000fe: EQ
000000ff: PUSH2 0x06eb
00000102: JUMPI
00000103: PUSH1 0x00
00000105: DUP1
00000106: REVERT
00000107: JUMPDEST
00000108: DUP1
00000109: PUSH4 0x93c44847
0000010e: EQ
0000010f: PUSH2 0x0635
00000112: JUMPI
00000113: DUP1
00000114: PUSH4 0xb1bd6436
00000119: EQ
0000011a: PUSH2 0x068b
0000011d: JUMPI
0000011e: PUSH1 0x00
00000120: DUP1
00000121: REVERT
00000122: JUMPDEST
00000123: DUP1
00000124: PUSH4 0x81b4e8b4
00000129: EQ
0000012a: PUSH2 0x0581
0000012d: JUMPI
0000012e: DUP1
0000012f: PUSH4 0x8bd90b82
00000134: EQ
00000135: PUSH2 0x0594
00000138: JUMPI
00000139: DUP1
0000013a: PUSH4 0x8d3638f4
0000013f: EQ
00000140: PUSH2 0x05c1
00000143: JUMPI
00000144: DUP1
00000145: PUSH4 0x8da5cb5b
0000014a: EQ
0000014b: PUSH2 0x060a
0000014e: JUMPI
0000014f: PUSH1 0x00
00000151: DUP1
00000152: REVERT
00000153: JUMPDEST
00000154: DUP1
00000155: PUSH4 0x4e38a81d
0000015a: GT
0000015b: PUSH2 0x0201
0000015e: JUMPI
0000015f: DUP1
00000160: PUSH4 0x715018a6
00000165: GT
00000166: PUSH2 0x01b5
00000169: JUMPI
0000016a: DUP1
0000016b: PUSH4 0x775313a1
00000170: GT
00000171: PUSH2 0x019a
00000174: JUMPI
00000175: DUP1
00000176: PUSH4 0x775313a1
0000017b: EQ
0000017c: PUSH2 0x04d5
0000017f: JUMPI
00000180: DUP1
00000181: PUSH4 0x77e2dc7a
00000186: EQ
00000187: PUSH2 0x0502
0000018a: JUMPI
0000018b: DUP1
0000018c: PUSH4 0x7f5a7c7b
00000191: EQ
00000192: PUSH2 0x052f
00000195: JUMPI
00000196: PUSH1 0x00
00000198: DUP1
00000199: REVERT
0000019a: JUMPDEST
0000019b: DUP1
0000019c: PUSH4 0x715018a6
000001a1: EQ
000001a2: PUSH2 0x04a0
000001a5: JUMPI
000001a6: DUP1
000001a7: PUSH4 0x71a15b38
000001ac: EQ
000001ad: PUSH2 0x04b5
000001b0: JUMPI
000001b1: PUSH1 0x00
000001b3: DUP1
000001b4: REVERT
000001b5: JUMPDEST
000001b6: DUP1
000001b7: PUSH4 0x56d5d475
000001bc: GT
000001bd: PUSH2 0x01e6
000001c0: JUMPI
000001c1: DUP1
000001c2: PUSH4 0x56d5d475
000001c7: EQ
000001c8: PUSH2 0x0445
000001cb: JUMPI
000001cc: DUP1
000001cd: PUSH4 0x6a99c333
000001d2: EQ
000001d3: PUSH2 0x0458
000001d6: JUMPI
000001d7: DUP1
000001d8: PUSH4 0x70a08231
000001dd: EQ
000001de: PUSH2 0x046b
000001e1: JUMPI
000001e2: PUSH1 0x00
000001e4: DUP1
000001e5: REVERT
000001e6: JUMPDEST
000001e7: DUP1
000001e8: PUSH4 0x4e38a81d
000001ed: EQ
000001ee: PUSH2 0x0412
000001f1: JUMPI
000001f2: DUP1
000001f3: PUSH4 0x51debffc
000001f8: EQ
000001f9: PUSH2 0x0432
000001fc: JUMPI
000001fd: PUSH1 0x00
000001ff: DUP1
00000200: REVERT
00000201: JUMPDEST
00000202: DUP1
00000203: PUSH4 0x2ead72f6
00000208: GT
00000209: PUSH2 0x0258
0000020c: JUMPI
0000020d: DUP1
0000020e: PUSH4 0x43bc4b9a
00000213: GT
00000214: PUSH2 0x023d
00000217: JUMPI
00000218: DUP1
00000219: PUSH4 0x43bc4b9a
0000021e: EQ
0000021f: PUSH2 0x03b0
00000222: JUMPI
00000223: DUP1
00000224: PUSH4 0x440df4f4
00000229: EQ
0000022a: PUSH2 0x03d0
0000022d: JUMPI
0000022e: DUP1
0000022f: PUSH4 0x49d462ef
00000234: EQ
00000235: PUSH2 0x03f2
00000238: JUMPI
00000239: PUSH1 0x00
0000023b: DUP1
0000023c: REVERT
0000023d: JUMPDEST
0000023e: DUP1
0000023f: PUSH4 0x2ead72f6
00000244: EQ
00000245: PUSH2 0x0362
00000248: JUMPI
00000249: DUP1
0000024a: PUSH4 0x3dfd3873
0000024f: EQ
00000250: PUSH2 0x0390
00000253: JUMPI
00000254: PUSH1 0x00
00000256: DUP1
00000257: REVERT
00000258: JUMPDEST
00000259: DUP1
0000025a: PUSH4 0x0c979919
0000025f: EQ
00000260: PUSH2 0x02ca
00000263: JUMPI
00000264: DUP1
00000265: PUSH4 0x0e72cc06
0000026a: EQ
0000026b: PUSH2 0x02ec
0000026e: JUMPI
0000026f: DUP1
00000270: PUSH4 0x1ba83149
00000275: EQ
00000276: PUSH2 0x030c
00000279: JUMPI
0000027a: DUP1
0000027b: PUSH4 0x2c2d8089
00000280: EQ
00000281: PUSH2 0x0342
00000284: JUMPI
00000285: PUSH1 0x00
00000287: DUP1
00000288: REVERT
00000289: JUMPDEST
0000028a: CALLDATASIZE
0000028b: PUSH2 0x02c5
0000028e: JUMPI
0000028f: PUSH1 0x40
00000291: MLOAD
00000292: CALLVALUE
00000293: DUP2
00000294: MSTORE
00000295: CALLER
00000296: SWAP1
00000297: PUSH32 0x5d8bc849764969eb1bcc6d0a2f55999d0167c1ccec240a4f39cf664ca9c4148e
000002b8: SWAP1
000002b9: PUSH1 0x20
000002bb: ADD
000002bc: PUSH1 0x40
000002be: MLOAD
000002bf: DUP1
000002c0: SWAP2
000002c1: SUB
000002c2: SWAP1
000002c3: LOG2
000002c4: STOP
000002c5: JUMPDEST
000002c6: PUSH1 0x00
000002c8: DUP1
000002c9: REVERT
000002ca: JUMPDEST
000002cb: CALLVALUE
000002cc: DUP1
000002cd: ISZERO
000002ce: PUSH2 0x02d6
000002d1: JUMPI
000002d2: PUSH1 0x00
000002d4: DUP1
000002d5: REVERT
000002d6: JUMPDEST
000002d7: POP
000002d8: PUSH2 0x02ea
000002db: PUSH2 0x02e5
000002de: CALLDATASIZE
000002df: PUSH1 0x04
000002e1: PUSH2 0x2d52
000002e4: JUMP
000002e5: JUMPDEST
000002e6: PUSH2 0x0873
000002e9: JUMP
000002ea: JUMPDEST
000002eb: STOP
000002ec: JUMPDEST
000002ed: CALLVALUE
000002ee: DUP1
000002ef: ISZERO
000002f0: PUSH2 0x02f8
000002f3: JUMPI
000002f4: PUSH1 0x00
000002f6: DUP1
000002f7: REVERT
000002f8: JUMPDEST
000002f9: POP
000002fa: PUSH2 0x02ea
000002fd: PUSH2 0x0307
00000300: CALLDATASIZE
00000301: PUSH1 0x04
00000303: PUSH2 0x2d52
00000306: JUMP
00000307: JUMPDEST
00000308: PUSH2 0x088a
0000030b: JUMP
0000030c: JUMPDEST
0000030d: CALLVALUE
0000030e: DUP1
0000030f: ISZERO
00000310: PUSH2 0x0318
00000313: JUMPI
00000314: PUSH1 0x00
00000316: DUP1
00000317: REVERT
00000318: JUMPDEST
00000319: POP
0000031a: PUSH2 0x032c
0000031d: PUSH2 0x0327
00000320: CALLDATASIZE
00000321: PUSH1 0x04
00000323: PUSH2 0x2d88
00000326: JUMP
00000327: JUMPDEST
00000328: PUSH2 0x09d8
0000032b: JUMP
0000032c: JUMPDEST
0000032d: PUSH1 0x40
0000032f: MLOAD
00000330: PUSH2 0x0339
00000333: SWAP2
00000334: SWAP1
00000335: PUSH2 0x2da3
00000338: JUMP
00000339: JUMPDEST
0000033a: PUSH1 0x40
0000033c: MLOAD
0000033d: DUP1
0000033e: SWAP2
0000033f: SUB
00000340: SWAP1
00000341: RETURN
00000342: JUMPDEST
00000343: CALLVALUE
00000344: DUP1
00000345: ISZERO
00000346: PUSH2 0x034e
00000349: JUMPI
0000034a: PUSH1 0x00
0000034c: DUP1
0000034d: REVERT
0000034e: JUMPDEST
0000034f: POP
00000350: PUSH2 0x02ea
00000353: PUSH2 0x035d
00000356: CALLDATASIZE
00000357: PUSH1 0x04
00000359: PUSH2 0x2dfd
0000035c: JUMP
0000035d: JUMPDEST
0000035e: PUSH2 0x09ff
00000361: JUMP
00000362: JUMPDEST
00000363: CALLVALUE
00000364: DUP1
00000365: ISZERO
00000366: PUSH2 0x036e
00000369: JUMPI
0000036a: PUSH1 0x00
0000036c: DUP1
0000036d: REVERT
0000036e: JUMPDEST
0000036f: POP
00000370: PUSH2 0x0382
00000373: PUSH2 0x037d
00000376: CALLDATASIZE
00000377: PUSH1 0x04
00000379: PUSH2 0x2d88
0000037c: JUMP
0000037d: JUMPDEST
0000037e: PUSH2 0x0a2a
00000381: JUMP
00000382: JUMPDEST
00000383: PUSH1 0x40
00000385: MLOAD
00000386: SWAP1
00000387: DUP2
00000388: MSTORE
00000389: PUSH1 0x20
0000038b: ADD
0000038c: PUSH2 0x0339
0000038f: JUMP
00000390: JUMPDEST
00000391: CALLVALUE
00000392: DUP1
00000393: ISZERO
00000394: PUSH2 0x039c
00000397: JUMPI
00000398: PUSH1 0x00
0000039a: DUP1
0000039b: REVERT
0000039c: JUMPDEST
0000039d: POP
0000039e: PUSH2 0x02ea
000003a1: PUSH2 0x03ab
000003a4: CALLDATASIZE
000003a5: PUSH1 0x04
000003a7: PUSH2 0x2d52
000003aa: JUMP
000003ab: JUMPDEST
000003ac: PUSH2 0x0a49
000003af: JUMP
000003b0: JUMPDEST
000003b1: CALLVALUE
000003b2: DUP1
000003b3: ISZERO
000003b4: PUSH2 0x03bc
000003b7: JUMPI
000003b8: PUSH1 0x00
000003ba: DUP1
000003bb: REVERT
000003bc: JUMPDEST
000003bd: POP
000003be: PUSH2 0x02ea
000003c1: PUSH2 0x03cb
000003c4: CALLDATASIZE
000003c5: PUSH1 0x04
000003c7: PUSH2 0x2d52
000003ca: JUMP
000003cb: JUMPDEST
000003cc: PUSH2 0x0b8a
000003cf: JUMP
000003d0: JUMPDEST
000003d1: CALLVALUE
000003d2: DUP1
000003d3: ISZERO
000003d4: PUSH2 0x03dc
000003d7: JUMPI
000003d8: PUSH1 0x00
000003da: DUP1
000003db: REVERT
000003dc: JUMPDEST
000003dd: POP
000003de: PUSH2 0x03e5
000003e1: PUSH2 0x0b9d
000003e4: JUMP
000003e5: JUMPDEST
000003e6: PUSH1 0x40
000003e8: MLOAD
000003e9: PUSH2 0x0339
000003ec: SWAP2
000003ed: SWAP1
000003ee: PUSH2 0x2e27
000003f1: JUMP
000003f2: JUMPDEST
000003f3: CALLVALUE
000003f4: DUP1
000003f5: ISZERO
000003f6: PUSH2 0x03fe
000003f9: JUMPI
000003fa: PUSH1 0x00
000003fc: DUP1
000003fd: REVERT
000003fe: JUMPDEST
000003ff: POP
00000400: PUSH2 0x02ea
00000403: PUSH2 0x040d
00000406: CALLDATASIZE
00000407: PUSH1 0x04
00000409: PUSH2 0x2dfd
0000040c: JUMP
0000040d: JUMPDEST
0000040e: PUSH2 0x0bae
00000411: JUMP
00000412: JUMPDEST
00000413: CALLVALUE
00000414: DUP1
00000415: ISZERO
00000416: PUSH2 0x041e
00000419: JUMPI
0000041a: PUSH1 0x00
0000041c: DUP1
0000041d: REVERT
0000041e: JUMPDEST
0000041f: POP
00000420: PUSH2 0x02ea
00000423: PUSH2 0x042d
00000426: CALLDATASIZE
00000427: PUSH1 0x04
00000429: PUSH2 0x2e65
0000042c: JUMP
0000042d: JUMPDEST
0000042e: PUSH2 0x0bc0
00000431: JUMP
00000432: JUMPDEST
00000433: PUSH2 0x0382
00000436: PUSH2 0x0440
00000439: CALLDATASIZE
0000043a: PUSH1 0x04
0000043c: PUSH2 0x2ede
0000043f: JUMP
00000440: JUMPDEST
00000441: PUSH2 0x0bef
00000444: JUMP
00000445: JUMPDEST
00000446: PUSH2 0x02ea
00000449: PUSH2 0x0453
0000044c: CALLDATASIZE
0000044d: PUSH1 0x04
0000044f: PUSH2 0x2f58
00000452: JUMP
00000453: JUMPDEST
00000454: PUSH2 0x0c41
00000457: JUMP
00000458: JUMPDEST
00000459: PUSH2 0x02ea
0000045c: PUSH2 0x0466
0000045f: CALLDATASIZE
00000460: PUSH1 0x04
00000462: PUSH2 0x2fb2
00000465: JUMP
00000466: JUMPDEST
00000467: PUSH2 0x0db5
0000046a: JUMP
0000046b: JUMPDEST
0000046c: CALLVALUE
0000046d: DUP1
0000046e: ISZERO
0000046f: PUSH2 0x0477
00000472: JUMPI
00000473: PUSH1 0x00
00000475: DUP1
00000476: REVERT
00000477: JUMPDEST
00000478: POP
00000479: PUSH2 0x0382
0000047c: PUSH2 0x0486
0000047f: CALLDATASIZE
00000480: PUSH1 0x04
00000482: PUSH2 0x2d52
00000485: JUMP
00000486: JUMPDEST
00000487: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000049c: AND
0000049d: BALANCE
0000049e: SWAP1
0000049f: JUMP
000004a0: JUMPDEST
000004a1: CALLVALUE
000004a2: DUP1
000004a3: ISZERO
000004a4: PUSH2 0x04ac
000004a7: JUMPI
000004a8: PUSH1 0x00
000004aa: DUP1
000004ab: REVERT
000004ac: JUMPDEST
000004ad: POP
000004ae: PUSH2 0x02ea
000004b1: PUSH2 0x0f4e
000004b4: JUMP
000004b5: JUMPDEST
000004b6: CALLVALUE
000004b7: DUP1
000004b8: ISZERO
000004b9: PUSH2 0x04c1
000004bc: JUMPI
000004bd: PUSH1 0x00
000004bf: DUP1
000004c0: REVERT
000004c1: JUMPDEST
000004c2: POP
000004c3: PUSH2 0x02ea
000004c6: PUSH2 0x04d0
000004c9: CALLDATASIZE
000004ca: PUSH1 0x04
000004cc: PUSH2 0x3037
000004cf: JUMP
000004d0: JUMPDEST
000004d1: PUSH2 0x0f62
000004d4: JUMP
000004d5: JUMPDEST
000004d6: CALLVALUE
000004d7: DUP1
000004d8: ISZERO
000004d9: PUSH2 0x04e1
000004dc: JUMPI
000004dd: PUSH1 0x00
000004df: DUP1
000004e0: REVERT
000004e1: JUMPDEST
000004e2: POP
000004e3: PUSH2 0x0382
000004e6: PUSH2 0x04f0
000004e9: CALLDATASIZE
000004ea: PUSH1 0x04
000004ec: PUSH2 0x2d88
000004ef: JUMP
000004f0: JUMPDEST
000004f1: PUSH1 0xca
000004f3: PUSH1 0x20
000004f5: MSTORE
000004f6: PUSH1 0x00
000004f8: SWAP1
000004f9: DUP2
000004fa: MSTORE
000004fb: PUSH1 0x40
000004fd: SWAP1
000004fe: KECCAK256
000004ff: SLOAD
00000500: DUP2
00000501: JUMP
00000502: JUMPDEST
00000503: CALLVALUE
00000504: DUP1
00000505: ISZERO
00000506: PUSH2 0x050e
00000509: JUMPI
0000050a: PUSH1 0x00
0000050c: DUP1
0000050d: REVERT
0000050e: JUMPDEST
0000050f: POP
00000510: PUSH2 0x0382
00000513: PUSH2 0x051d
00000516: CALLDATASIZE
00000517: PUSH1 0x04
00000519: PUSH2 0x2d88
0000051c: JUMP
0000051d: JUMPDEST
0000051e: PUSH1 0xcb
00000520: PUSH1 0x20
00000522: MSTORE
00000523: PUSH1 0x00
00000525: SWAP1
00000526: DUP2
00000527: MSTORE
00000528: PUSH1 0x40
0000052a: SWAP1
0000052b: KECCAK256
0000052c: SLOAD
0000052d: DUP2
0000052e: JUMP
0000052f: JUMPDEST
00000530: CALLVALUE
00000531: DUP1
00000532: ISZERO
00000533: PUSH2 0x053b
00000536: JUMPI
00000537: PUSH1 0x00
00000539: DUP1
0000053a: REVERT
0000053b: JUMPDEST
0000053c: POP
0000053d: PUSH1 0x65
0000053f: SLOAD
00000540: PUSH2 0x055c
00000543: SWAP1
00000544: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000559: AND
0000055a: DUP2
0000055b: JUMP
0000055c: JUMPDEST
0000055d: PUSH1 0x40
0000055f: MLOAD
00000560: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000575: SWAP1
00000576: SWAP2
00000577: AND
00000578: DUP2
00000579: MSTORE
0000057a: PUSH1 0x20
0000057c: ADD
0000057d: PUSH2 0x0339
00000580: JUMP
00000581: JUMPDEST
00000582: PUSH2 0x0382
00000585: PUSH2 0x058f
00000588: CALLDATASIZE
00000589: PUSH1 0x04
0000058b: PUSH2 0x3079
0000058e: JUMP
0000058f: JUMPDEST
00000590: PUSH2 0x0fbd
00000593: JUMP
00000594: JUMPDEST
00000595: CALLVALUE
00000596: DUP1
00000597: ISZERO
00000598: PUSH2 0x05a0
0000059b: JUMPI
0000059c: PUSH1 0x00
0000059e: DUP1
0000059f: REVERT
000005a0: JUMPDEST
000005a1: POP
000005a2: PUSH2 0x05b4
000005a5: PUSH2 0x05af
000005a8: CALLDATASIZE
000005a9: PUSH1 0x04
000005ab: PUSH2 0x3079
000005ae: JUMP
000005af: JUMPDEST
000005b0: PUSH2 0x0fcb
000005b3: JUMP
000005b4: JUMPDEST
000005b5: PUSH1 0x40
000005b7: MLOAD
000005b8: PUSH2 0x0339
000005bb: SWAP2
000005bc: SWAP1
000005bd: PUSH2 0x30ac
000005c0: JUMP
000005c1: JUMPDEST
000005c2: CALLVALUE
000005c3: DUP1
000005c4: ISZERO
000005c5: PUSH2 0x05cd
000005c8: JUMPI
000005c9: PUSH1 0x00
000005cb: DUP1
000005cc: REVERT
000005cd: JUMPDEST
000005ce: POP
000005cf: PUSH2 0x05f5
000005d2: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
000005f3: DUP2
000005f4: JUMP
000005f5: JUMPDEST
000005f6: PUSH1 0x40
000005f8: MLOAD
000005f9: PUSH4 0xffffffff
000005fe: SWAP1
000005ff: SWAP2
00000600: AND
00000601: DUP2
00000602: MSTORE
00000603: PUSH1 0x20
00000605: ADD
00000606: PUSH2 0x0339
00000609: JUMP
0000060a: JUMPDEST
0000060b: CALLVALUE
0000060c: DUP1
0000060d: ISZERO
0000060e: PUSH2 0x0616
00000611: JUMPI
00000612: PUSH1 0x00
00000614: DUP1
00000615: REVERT
00000616: JUMPDEST
00000617: POP
00000618: PUSH1 0x33
0000061a: SLOAD
0000061b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000630: AND
00000631: PUSH2 0x055c
00000634: JUMP
00000635: JUMPDEST
00000636: CALLVALUE
00000637: DUP1
00000638: ISZERO
00000639: PUSH2 0x0641
0000063c: JUMPI
0000063d: PUSH1 0x00
0000063f: DUP1
00000640: REVERT
00000641: JUMPDEST
00000642: POP
00000643: PUSH2 0x067e
00000646: PUSH1 0x40
00000648: MLOAD
00000649: DUP1
0000064a: PUSH1 0x40
0000064c: ADD
0000064d: PUSH1 0x40
0000064f: MSTORE
00000650: DUP1
00000651: PUSH1 0x05
00000653: DUP2
00000654: MSTORE
00000655: PUSH1 0x20
00000657: ADD
00000658: PUSH32 0x392e302e36000000000000000000000000000000000000000000000000000000
00000679: DUP2
0000067a: MSTORE
0000067b: POP
0000067c: DUP2
0000067d: JUMP
0000067e: JUMPDEST
0000067f: PUSH1 0x40
00000681: MLOAD
00000682: PUSH2 0x0339
00000685: SWAP2
00000686: SWAP1
00000687: PUSH2 0x317f
0000068a: JUMP
0000068b: JUMPDEST
0000068c: CALLVALUE
0000068d: DUP1
0000068e: ISZERO
0000068f: PUSH2 0x0697
00000692: JUMPI
00000693: PUSH1 0x00
00000695: DUP1
00000696: REVERT
00000697: JUMPDEST
00000698: POP
00000699: PUSH2 0x02ea
0000069c: PUSH2 0x06a6
0000069f: CALLDATASIZE
000006a0: PUSH1 0x04
000006a2: PUSH2 0x3192
000006a5: JUMP
000006a6: JUMPDEST
000006a7: PUSH2 0x1071
000006aa: JUMP
000006ab: JUMPDEST
000006ac: CALLVALUE
000006ad: DUP1
000006ae: ISZERO
000006af: PUSH2 0x06b7
000006b2: JUMPI
000006b3: PUSH1 0x00
000006b5: DUP1
000006b6: REVERT
000006b7: JUMPDEST
000006b8: POP
000006b9: PUSH2 0x02ea
000006bc: PUSH2 0x06c6
000006bf: CALLDATASIZE
000006c0: PUSH1 0x04
000006c2: PUSH2 0x2dfd
000006c5: JUMP
000006c6: JUMPDEST
000006c7: PUSH2 0x10e2
000006ca: JUMP
000006cb: JUMPDEST
000006cc: CALLVALUE
000006cd: DUP1
000006ce: ISZERO
000006cf: PUSH2 0x06d7
000006d2: JUMPI
000006d3: PUSH1 0x00
000006d5: DUP1
000006d6: REVERT
000006d7: JUMPDEST
000006d8: POP
000006d9: PUSH2 0x02ea
000006dc: PUSH2 0x06e6
000006df: CALLDATASIZE
000006e0: PUSH1 0x04
000006e2: PUSH2 0x3207
000006e5: JUMP
000006e6: JUMPDEST
000006e7: PUSH2 0x10f4
000006ea: JUMP
000006eb: JUMPDEST
000006ec: CALLVALUE
000006ed: DUP1
000006ee: ISZERO
000006ef: PUSH2 0x06f7
000006f2: JUMPI
000006f3: PUSH1 0x00
000006f5: DUP1
000006f6: REVERT
000006f7: JUMPDEST
000006f8: POP
000006f9: PUSH2 0x02ea
000006fc: PUSH2 0x0706
000006ff: CALLDATASIZE
00000700: PUSH1 0x04
00000702: PUSH2 0x2d88
00000705: JUMP
00000706: JUMPDEST
00000707: PUSH2 0x128b
0000070a: JUMP
0000070b: JUMPDEST
0000070c: CALLVALUE
0000070d: DUP1
0000070e: ISZERO
0000070f: PUSH2 0x0717
00000712: JUMPI
00000713: PUSH1 0x00
00000715: DUP1
00000716: REVERT
00000717: JUMPDEST
00000718: POP
00000719: PUSH2 0x032c
0000071c: PUSH2 0x12aa
0000071f: JUMP
00000720: JUMPDEST
00000721: CALLVALUE
00000722: DUP1
00000723: ISZERO
00000724: PUSH2 0x072c
00000727: JUMPI
00000728: PUSH1 0x00
0000072a: DUP1
0000072b: REVERT
0000072c: JUMPDEST
0000072d: POP
0000072e: PUSH2 0x055c
00000731: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239
00000752: DUP2
00000753: JUMP
00000754: JUMPDEST
00000755: CALLVALUE
00000756: DUP1
00000757: ISZERO
00000758: PUSH2 0x0760
0000075b: JUMPI
0000075c: PUSH1 0x00
0000075e: DUP1
0000075f: REVERT
00000760: JUMPDEST
00000761: POP
00000762: PUSH1 0x66
00000764: SLOAD
00000765: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000077a: AND
0000077b: PUSH2 0x055c
0000077e: JUMP
0000077f: JUMPDEST
00000780: CALLVALUE
00000781: DUP1
00000782: ISZERO
00000783: PUSH2 0x078b
00000786: JUMPI
00000787: PUSH1 0x00
00000789: DUP1
0000078a: REVERT
0000078b: JUMPDEST
0000078c: POP
0000078d: PUSH2 0x02ea
00000790: PUSH2 0x079a
00000793: CALLDATASIZE
00000794: PUSH1 0x04
00000796: PUSH2 0x3247
00000799: JUMP
0000079a: JUMPDEST
0000079b: PUSH2 0x12b6
0000079e: JUMP
0000079f: JUMPDEST
000007a0: CALLVALUE
000007a1: DUP1
000007a2: ISZERO
000007a3: PUSH2 0x07ab
000007a6: JUMPI
000007a7: PUSH1 0x00
000007a9: DUP1
000007aa: REVERT
000007ab: JUMPDEST
000007ac: POP
000007ad: PUSH2 0x02ea
000007b0: PUSH2 0x07ba
000007b3: CALLDATASIZE
000007b4: PUSH1 0x04
000007b6: PUSH2 0x2d88
000007b9: JUMP
000007ba: JUMPDEST
000007bb: PUSH2 0x1395
000007be: JUMP
000007bf: JUMPDEST
000007c0: CALLVALUE
000007c1: DUP1
000007c2: ISZERO
000007c3: PUSH2 0x07cb
000007c6: JUMPI
000007c7: PUSH1 0x00
000007c9: DUP1
000007ca: REVERT
000007cb: JUMPDEST
000007cc: POP
000007cd: PUSH2 0x0382
000007d0: PUSH2 0x07da
000007d3: CALLDATASIZE
000007d4: PUSH1 0x04
000007d6: PUSH2 0x2d88
000007d9: JUMP
000007da: JUMPDEST
000007db: PUSH2 0x13a9
000007de: JUMP
000007df: JUMPDEST
000007e0: CALLVALUE
000007e1: DUP1
000007e2: ISZERO
000007e3: PUSH2 0x07eb
000007e6: JUMPI
000007e7: PUSH1 0x00
000007e9: DUP1
000007ea: REVERT
000007eb: JUMPDEST
000007ec: POP
000007ed: PUSH2 0x02ea
000007f0: PUSH2 0x07fa
000007f3: CALLDATASIZE
000007f4: PUSH1 0x04
000007f6: PUSH2 0x2d52
000007f9: JUMP
000007fa: JUMPDEST
000007fb: PUSH2 0x13d6
000007fe: JUMP
000007ff: JUMPDEST
00000800: CALLVALUE
00000801: DUP1
00000802: ISZERO
00000803: PUSH2 0x080b
00000806: JUMPI
00000807: PUSH1 0x00
00000809: DUP1
0000080a: REVERT
0000080b: JUMPDEST
0000080c: POP
0000080d: PUSH2 0x0382
00000810: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
00000831: DUP2
00000832: JUMP
00000833: JUMPDEST
00000834: CALLVALUE
00000835: DUP1
00000836: ISZERO
00000837: PUSH2 0x083f
0000083a: JUMPI
0000083b: PUSH1 0x00
0000083d: DUP1
0000083e: REVERT
0000083f: JUMPDEST
00000840: POP
00000841: PUSH2 0x02ea
00000844: PUSH2 0x084e
00000847: CALLDATASIZE
00000848: PUSH1 0x04
0000084a: PUSH2 0x32a7
0000084d: JUMP
0000084e: JUMPDEST
0000084f: PUSH2 0x148a
00000852: JUMP
00000853: JUMPDEST
00000854: CALLVALUE
00000855: DUP1
00000856: ISZERO
00000857: PUSH2 0x085f
0000085a: JUMPI
0000085b: PUSH1 0x00
0000085d: DUP1
0000085e: REVERT
0000085f: JUMPDEST
00000860: POP
00000861: PUSH2 0x02ea
00000864: PUSH2 0x086e
00000867: CALLDATASIZE
00000868: PUSH1 0x04
0000086a: PUSH2 0x2e65
0000086d: JUMP
0000086e: JUMPDEST
0000086f: PUSH2 0x14d3
00000872: JUMP
00000873: JUMPDEST
00000874: PUSH2 0x087b
00000877: PUSH2 0x1507
0000087a: JUMP
0000087b: JUMPDEST
0000087c: PUSH2 0x0886
0000087f: PUSH1 0xcd
00000881: DUP3
00000882: PUSH2 0x1588
00000885: JUMP
00000886: JUMPDEST
00000887: POP
00000888: POP
00000889: JUMP
0000088a: JUMPDEST
0000088b: DUP1
0000088c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008a1: DUP2
000008a2: AND
000008a3: EXTCODESIZE
000008a4: ISZERO
000008a5: ISZERO
000008a6: DUP1
000008a7: PUSH2 0x08c4
000008aa: JUMPI
000008ab: POP
000008ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008c1: DUP2
000008c2: AND
000008c3: ISZERO
000008c4: JUMPDEST
000008c5: PUSH2 0x0955
000008c8: JUMPI
000008c9: PUSH1 0x40
000008cb: MLOAD
000008cc: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000008ed: DUP2
000008ee: MSTORE
000008ef: PUSH1 0x20
000008f1: PUSH1 0x04
000008f3: DUP3
000008f4: ADD
000008f5: MSTORE
000008f6: PUSH1 0x27
000008f8: PUSH1 0x24
000008fa: DUP3
000008fb: ADD
000008fc: MSTORE
000008fd: PUSH32 0x4d61696c626f78436c69656e743a20696e76616c696420636f6e747261637420
0000091e: PUSH1 0x44
00000920: DUP3
00000921: ADD
00000922: MSTORE
00000923: PUSH32 0x73657474696e6700000000000000000000000000000000000000000000000000
00000944: PUSH1 0x64
00000946: DUP3
00000947: ADD
00000948: MSTORE
00000949: PUSH1 0x84
0000094b: ADD
0000094c: JUMPDEST
0000094d: PUSH1 0x40
0000094f: MLOAD
00000950: DUP1
00000951: SWAP2
00000952: SUB
00000953: SWAP1
00000954: REVERT
00000955: JUMPDEST
00000956: PUSH2 0x095d
00000959: PUSH2 0x1507
0000095c: JUMP
0000095d: JUMPDEST
0000095e: PUSH1 0x66
00000960: DUP1
00000961: SLOAD
00000962: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000983: AND
00000984: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000999: DUP5
0000099a: AND
0000099b: SWAP1
0000099c: DUP2
0000099d: OR
0000099e: SWAP1
0000099f: SWAP2
000009a0: SSTORE
000009a1: PUSH1 0x40
000009a3: MLOAD
000009a4: SWAP1
000009a5: DUP2
000009a6: MSTORE
000009a7: PUSH32 0xc47cbcc588c67679e52261c45cc315e56562f8d0ccaba16facb9093ff9498799
000009c8: SWAP1
000009c9: PUSH1 0x20
000009cb: ADD
000009cc: JUMPDEST
000009cd: PUSH1 0x40
000009cf: MLOAD
000009d0: DUP1
000009d1: SWAP2
000009d2: SUB
000009d3: SWAP1
000009d4: LOG1
000009d5: POP
000009d6: POP
000009d7: JUMP
000009d8: JUMPDEST
000009d9: PUSH4 0xffffffff
000009de: DUP2
000009df: AND
000009e0: PUSH1 0x00
000009e2: SWAP1
000009e3: DUP2
000009e4: MSTORE
000009e5: PUSH1 0xcc
000009e7: PUSH1 0x20
000009e9: MSTORE
000009ea: PUSH1 0x40
000009ec: SWAP1
000009ed: KECCAK256
000009ee: PUSH1 0x60
000009f0: SWAP1
000009f1: PUSH2 0x09f9
000009f4: SWAP1
000009f5: PUSH2 0x15b1
000009f8: JUMP
000009f9: JUMPDEST
000009fa: SWAP3
000009fb: SWAP2
000009fc: POP
000009fd: POP
000009fe: JUMP
000009ff: JUMPDEST
00000a00: PUSH2 0x0a07
00000a03: PUSH2 0x1507
00000a06: JUMP
00000a07: JUMPDEST
00000a08: PUSH2 0x0a10
00000a0b: DUP3
00000a0c: PUSH2 0x15be
00000a0f: JUMP
00000a10: JUMPDEST
00000a11: POP
00000a12: PUSH4 0xffffffff
00000a17: SWAP1
00000a18: SWAP2
00000a19: AND
00000a1a: PUSH1 0x00
00000a1c: SWAP1
00000a1d: DUP2
00000a1e: MSTORE
00000a1f: PUSH1 0xcb
00000a21: PUSH1 0x20
00000a23: MSTORE
00000a24: PUSH1 0x40
00000a26: SWAP1
00000a27: KECCAK256
00000a28: SSTORE
00000a29: JUMP
00000a2a: JUMPDEST
00000a2b: PUSH1 0x00
00000a2d: DUP1
00000a2e: PUSH2 0x0a41
00000a31: PUSH1 0x97
00000a33: PUSH4 0xffffffff
00000a38: DUP1
00000a39: DUP7
00000a3a: AND
00000a3b: SWAP1
00000a3c: PUSH2 0x1623
00000a3f: AND
00000a40: JUMP
00000a41: JUMPDEST
00000a42: SWAP5
00000a43: SWAP4
00000a44: POP
00000a45: POP
00000a46: POP
00000a47: POP
00000a48: JUMP
00000a49: JUMPDEST
00000a4a: DUP1
00000a4b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a60: DUP2
00000a61: AND
00000a62: EXTCODESIZE
00000a63: ISZERO
00000a64: ISZERO
00000a65: DUP1
00000a66: PUSH2 0x0a83
00000a69: JUMPI
00000a6a: POP
00000a6b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a80: DUP2
00000a81: AND
00000a82: ISZERO
00000a83: JUMPDEST
00000a84: PUSH2 0x0b0f
00000a87: JUMPI
00000a88: PUSH1 0x40
00000a8a: MLOAD
00000a8b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000aac: DUP2
00000aad: MSTORE
00000aae: PUSH1 0x20
00000ab0: PUSH1 0x04
00000ab2: DUP3
00000ab3: ADD
00000ab4: MSTORE
00000ab5: PUSH1 0x27
00000ab7: PUSH1 0x24
00000ab9: DUP3
00000aba: ADD
00000abb: MSTORE
00000abc: PUSH32 0x4d61696c626f78436c69656e743a20696e76616c696420636f6e747261637420
00000add: PUSH1 0x44
00000adf: DUP3
00000ae0: ADD
00000ae1: MSTORE
00000ae2: PUSH32 0x73657474696e6700000000000000000000000000000000000000000000000000
00000b03: PUSH1 0x64
00000b05: DUP3
00000b06: ADD
00000b07: MSTORE
00000b08: PUSH1 0x84
00000b0a: ADD
00000b0b: PUSH2 0x094c
00000b0e: JUMP
00000b0f: JUMPDEST
00000b10: PUSH2 0x0b17
00000b13: PUSH2 0x1507
00000b16: JUMP
00000b17: JUMPDEST
00000b18: PUSH1 0x65
00000b1a: DUP1
00000b1b: SLOAD
00000b1c: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000b3d: AND
00000b3e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b53: DUP5
00000b54: AND
00000b55: SWAP1
00000b56: DUP2
00000b57: OR
00000b58: SWAP1
00000b59: SWAP2
00000b5a: SSTORE
00000b5b: PUSH1 0x40
00000b5d: MLOAD
00000b5e: SWAP1
00000b5f: DUP2
00000b60: MSTORE
00000b61: PUSH32 0x4eab7b127c764308788622363ad3e9532de3dfba7845bd4f84c125a22544255a
00000b82: SWAP1
00000b83: PUSH1 0x20
00000b85: ADD
00000b86: PUSH2 0x09cc
00000b89: JUMP
00000b8a: JUMPDEST
00000b8b: PUSH2 0x0b92
00000b8e: PUSH2 0x1507
00000b91: JUMP
00000b92: JUMPDEST
00000b93: PUSH2 0x0886
00000b96: PUSH1 0xcd
00000b98: DUP3
00000b99: PUSH2 0x163c
00000b9c: JUMP
00000b9d: JUMPDEST
00000b9e: PUSH1 0x60
00000ba0: PUSH2 0x0ba9
00000ba3: PUSH1 0x97
00000ba5: PUSH2 0x165e
00000ba8: JUMP
00000ba9: JUMPDEST
00000baa: SWAP1
00000bab: POP
00000bac: SWAP1
00000bad: JUMP
00000bae: JUMPDEST
00000baf: PUSH2 0x0bb6
00000bb2: PUSH2 0x1507
00000bb5: JUMP
00000bb6: JUMPDEST
00000bb7: PUSH2 0x0886
00000bba: DUP3
00000bbb: DUP3
00000bbc: PUSH2 0x170f
00000bbf: JUMP
00000bc0: JUMPDEST
00000bc1: PUSH2 0x0bc8
00000bc4: PUSH2 0x1507
00000bc7: JUMP
00000bc8: JUMPDEST
00000bc9: PUSH4 0xffffffff
00000bce: DUP1
00000bcf: DUP4
00000bd0: AND
00000bd1: PUSH1 0x00
00000bd3: SWAP1
00000bd4: DUP2
00000bd5: MSTORE
00000bd6: PUSH1 0xcc
00000bd8: PUSH1 0x20
00000bda: MSTORE
00000bdb: PUSH1 0x40
00000bdd: SWAP1
00000bde: KECCAK256
00000bdf: PUSH2 0x0bea
00000be2: SWAP2
00000be3: DUP4
00000be4: SWAP1
00000be5: PUSH2 0x163c
00000be8: AND
00000be9: JUMP
00000bea: JUMPDEST
00000beb: POP
00000bec: POP
00000bed: POP
00000bee: JUMP
00000bef: JUMPDEST
00000bf0: PUSH1 0x00
00000bf2: PUSH2 0x0c36
00000bf5: DUP8
00000bf6: DUP8
00000bf7: DUP8
00000bf8: CALLVALUE
00000bf9: DUP9
00000bfa: DUP9
00000bfb: DUP1
00000bfc: DUP1
00000bfd: PUSH1 0x1f
00000bff: ADD
00000c00: PUSH1 0x20
00000c02: DUP1
00000c03: SWAP2
00000c04: DIV
00000c05: MUL
00000c06: PUSH1 0x20
00000c08: ADD
00000c09: PUSH1 0x40
00000c0b: MLOAD
00000c0c: SWAP1
00000c0d: DUP2
00000c0e: ADD
00000c0f: PUSH1 0x40
00000c11: MSTORE
00000c12: DUP1
00000c13: SWAP4
00000c14: SWAP3
00000c15: SWAP2
00000c16: SWAP1
00000c17: DUP2
00000c18: DUP2
00000c19: MSTORE
00000c1a: PUSH1 0x20
00000c1c: ADD
00000c1d: DUP4
00000c1e: DUP4
00000c1f: DUP1
00000c20: DUP3
00000c21: DUP5
00000c22: CALLDATACOPY
00000c23: PUSH1 0x00
00000c25: SWAP3
00000c26: ADD
00000c27: SWAP2
00000c28: SWAP1
00000c29: SWAP2
00000c2a: MSTORE
00000c2b: POP
00000c2c: DUP11
00000c2d: SWAP3
00000c2e: POP
00000c2f: PUSH2 0x175d
00000c32: SWAP2
00000c33: POP
00000c34: POP
00000c35: JUMP
00000c36: JUMPDEST
00000c37: SWAP8
00000c38: SWAP7
00000c39: POP
00000c3a: POP
00000c3b: POP
00000c3c: POP
00000c3d: POP
00000c3e: POP
00000c3f: POP
00000c40: JUMP
00000c41: JUMPDEST
00000c42: CALLER
00000c43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c58: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239
00000c79: AND
00000c7a: EQ
00000c7b: PUSH2 0x0d06
00000c7e: JUMPI
00000c7f: PUSH1 0x40
00000c81: MLOAD
00000c82: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000ca3: DUP2
00000ca4: MSTORE
00000ca5: PUSH1 0x20
00000ca7: PUSH1 0x04
00000ca9: DUP3
00000caa: ADD
00000cab: MSTORE
00000cac: PUSH1 0x21
00000cae: PUSH1 0x24
00000cb0: DUP3
00000cb1: ADD
00000cb2: MSTORE
00000cb3: PUSH32 0x4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f
00000cd4: PUSH1 0x44
00000cd6: DUP3
00000cd7: ADD
00000cd8: MSTORE
00000cd9: PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000
00000cfa: PUSH1 0x64
00000cfc: DUP3
00000cfd: ADD
00000cfe: MSTORE
00000cff: PUSH1 0x84
00000d01: ADD
00000d02: PUSH2 0x094c
00000d05: JUMP
00000d06: JUMPDEST
00000d07: PUSH1 0x00
00000d09: PUSH2 0x0d11
00000d0c: DUP6
00000d0d: PUSH2 0x15be
00000d10: JUMP
00000d11: JUMPDEST
00000d12: SWAP1
00000d13: POP
00000d14: DUP4
00000d15: DUP2
00000d16: EQ
00000d17: PUSH2 0x0da2
00000d1a: JUMPI
00000d1b: PUSH1 0x40
00000d1d: MLOAD
00000d1e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000d3f: DUP2
00000d40: MSTORE
00000d41: PUSH1 0x20
00000d43: PUSH1 0x04
00000d45: DUP3
00000d46: ADD
00000d47: MSTORE
00000d48: PUSH1 0x25
00000d4a: PUSH1 0x24
00000d4c: DUP3
00000d4d: ADD
00000d4e: MSTORE
00000d4f: PUSH32 0x456e726f6c6c656420726f7574657220646f6573206e6f74206d617463682073
00000d70: PUSH1 0x44
00000d72: DUP3
00000d73: ADD
00000d74: MSTORE
00000d75: PUSH32 0x656e646572000000000000000000000000000000000000000000000000000000
00000d96: PUSH1 0x64
00000d98: DUP3
00000d99: ADD
00000d9a: MSTORE
00000d9b: PUSH1 0x84
00000d9d: ADD
00000d9e: PUSH2 0x094c
00000da1: JUMP
00000da2: JUMPDEST
00000da3: PUSH2 0x0dae
00000da6: DUP6
00000da7: DUP6
00000da8: DUP6
00000da9: DUP6
00000daa: PUSH2 0x1780
00000dad: JUMP
00000dae: JUMPDEST
00000daf: POP
00000db0: POP
00000db1: POP
00000db2: POP
00000db3: POP
00000db4: JUMP
00000db5: JUMPDEST
00000db6: PUSH2 0x0dc0
00000db9: PUSH1 0xcd
00000dbb: CALLER
00000dbc: PUSH2 0x1802
00000dbf: JUMP
00000dc0: JUMPDEST
00000dc1: PUSH2 0x0e26
00000dc4: JUMPI
00000dc5: PUSH1 0x40
00000dc7: MLOAD
00000dc8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000de9: DUP2
00000dea: MSTORE
00000deb: PUSH1 0x20
00000ded: PUSH1 0x04
00000def: DUP3
00000df0: ADD
00000df1: MSTORE
00000df2: PUSH1 0x14
00000df4: PUSH1 0x24
00000df6: DUP3
00000df7: ADD
00000df8: MSTORE
00000df9: PUSH32 0x4d43523a204f6e6c7920526562616c616e636572000000000000000000000000
00000e1a: PUSH1 0x44
00000e1c: DUP3
00000e1d: ADD
00000e1e: MSTORE
00000e1f: PUSH1 0x64
00000e21: ADD
00000e22: PUSH2 0x094c
00000e25: JUMP
00000e26: JUMPDEST
00000e27: PUSH4 0xffffffff
00000e2c: DUP1
00000e2d: DUP5
00000e2e: AND
00000e2f: PUSH1 0x00
00000e31: SWAP1
00000e32: DUP2
00000e33: MSTORE
00000e34: PUSH1 0xcc
00000e36: PUSH1 0x20
00000e38: MSTORE
00000e39: PUSH1 0x40
00000e3b: SWAP1
00000e3c: KECCAK256
00000e3d: DUP5
00000e3e: SWAP2
00000e3f: DUP4
00000e40: SWAP2
00000e41: SWAP1
00000e42: PUSH2 0x0e4f
00000e45: SWAP1
00000e46: DUP3
00000e47: SWAP1
00000e48: DUP5
00000e49: SWAP1
00000e4a: PUSH2 0x1802
00000e4d: AND
00000e4e: JUMP
00000e4f: JUMPDEST
00000e50: PUSH2 0x0eb5
00000e53: JUMPI
00000e54: PUSH1 0x40
00000e56: MLOAD
00000e57: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000e78: DUP2
00000e79: MSTORE
00000e7a: PUSH1 0x20
00000e7c: PUSH1 0x04
00000e7e: DUP3
00000e7f: ADD
00000e80: MSTORE
00000e81: PUSH1 0x17
00000e83: PUSH1 0x24
00000e85: DUP3
00000e86: ADD
00000e87: MSTORE
00000e88: PUSH32 0x4d43523a204e6f7420616c6c6f77656420627269646765000000000000000000
00000ea9: PUSH1 0x44
00000eab: DUP3
00000eac: ADD
00000ead: MSTORE
00000eae: PUSH1 0x64
00000eb0: ADD
00000eb1: PUSH2 0x094c
00000eb4: JUMP
00000eb5: JUMPDEST
00000eb6: PUSH4 0xffffffff
00000ebb: DUP7
00000ebc: AND
00000ebd: PUSH1 0x00
00000ebf: SWAP1
00000ec0: DUP2
00000ec1: MSTORE
00000ec2: PUSH1 0xcb
00000ec4: PUSH1 0x20
00000ec6: MSTORE
00000ec7: PUSH1 0x40
00000ec9: SWAP1
00000eca: KECCAK256
00000ecb: SLOAD
00000ecc: CALLER
00000ecd: SWAP1
00000ece: DUP1
00000ecf: PUSH2 0x0ede
00000ed2: JUMPI
00000ed3: PUSH2 0x0edb
00000ed6: DUP9
00000ed7: PUSH2 0x15be
00000eda: JUMP
00000edb: JUMPDEST
00000edc: SWAP1
00000edd: POP
00000ede: JUMPDEST
00000edf: PUSH2 0x0eea
00000ee2: DUP9
00000ee3: DUP3
00000ee4: DUP10
00000ee5: DUP10
00000ee6: PUSH2 0x1831
00000ee9: JUMP
00000eea: JUMPDEST
00000eeb: PUSH1 0x40
00000eed: DUP1
00000eee: MLOAD
00000eef: DUP3
00000ef0: DUP2
00000ef1: MSTORE
00000ef2: PUSH1 0x20
00000ef4: DUP2
00000ef5: ADD
00000ef6: DUP10
00000ef7: SWAP1
00000ef8: MSTORE
00000ef9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f0e: DUP5
00000f0f: AND
00000f10: SWAP2
00000f11: PUSH4 0xffffffff
00000f16: DUP12
00000f17: AND
00000f18: SWAP2
00000f19: PUSH32 0xb1e1b117ddf429b1b8a359fe0e978f0ae191c0f70e0babfea7acaad1b0ee8a2d
00000f3a: SWAP2
00000f3b: ADD
00000f3c: JUMPDEST
00000f3d: PUSH1 0x40
00000f3f: MLOAD
00000f40: DUP1
00000f41: SWAP2
00000f42: SUB
00000f43: SWAP1
00000f44: LOG3
00000f45: POP
00000f46: POP
00000f47: POP
00000f48: POP
00000f49: POP
00000f4a: POP
00000f4b: POP
00000f4c: POP
00000f4d: JUMP
00000f4e: JUMPDEST
00000f4f: PUSH2 0x0f56
00000f52: PUSH2 0x1507
00000f55: JUMP
00000f56: JUMPDEST
00000f57: PUSH2 0x0f60
00000f5a: PUSH1 0x00
00000f5c: PUSH2 0x1975
00000f5f: JUMP
00000f60: JUMPDEST
00000f61: JUMP
00000f62: JUMPDEST
00000f63: PUSH2 0x0f6a
00000f66: PUSH2 0x1507
00000f69: JUMP
00000f6a: JUMPDEST
00000f6b: DUP1
00000f6c: PUSH1 0x00
00000f6e: JUMPDEST
00000f6f: DUP2
00000f70: DUP2
00000f71: LT
00000f72: ISZERO
00000f73: PUSH2 0x0fb7
00000f76: JUMPI
00000f77: PUSH2 0x0fa5
00000f7a: DUP5
00000f7b: DUP5
00000f7c: DUP4
00000f7d: DUP2
00000f7e: DUP2
00000f7f: LT
00000f80: PUSH2 0x0f8b
00000f83: JUMPI
00000f84: PUSH2 0x0f8b
00000f87: PUSH2 0x32c5
00000f8a: JUMP
00000f8b: JUMPDEST
00000f8c: SWAP1
00000f8d: POP
00000f8e: PUSH1 0x20
00000f90: MUL
00000f91: ADD
00000f92: PUSH1 0x20
00000f94: DUP2
00000f95: ADD
00000f96: SWAP1
00000f97: PUSH2 0x0fa0
00000f9a: SWAP2
00000f9b: SWAP1
00000f9c: PUSH2 0x2d88
00000f9f: JUMP
00000fa0: JUMPDEST
00000fa1: PUSH2 0x19ec
00000fa4: JUMP
00000fa5: JUMPDEST
00000fa6: PUSH2 0x0fb0
00000fa9: PUSH1 0x01
00000fab: DUP3
00000fac: PUSH2 0x3323
00000faf: JUMP
00000fb0: JUMPDEST
00000fb1: SWAP1
00000fb2: POP
00000fb3: PUSH2 0x0f6e
00000fb6: JUMP
00000fb7: JUMPDEST
00000fb8: POP
00000fb9: POP
00000fba: POP
00000fbb: POP
00000fbc: JUMP
00000fbd: JUMPDEST
00000fbe: PUSH1 0x00
00000fc0: PUSH2 0x0a41
00000fc3: DUP5
00000fc4: DUP5
00000fc5: DUP5
00000fc6: CALLVALUE
00000fc7: PUSH2 0x1a20
00000fca: JUMP
00000fcb: JUMPDEST
00000fcc: PUSH1 0x40
00000fce: DUP1
00000fcf: MLOAD
00000fd0: PUSH1 0x01
00000fd2: DUP1
00000fd3: DUP3
00000fd4: MSTORE
00000fd5: DUP2
00000fd6: DUP4
00000fd7: ADD
00000fd8: SWAP1
00000fd9: SWAP3
00000fda: MSTORE
00000fdb: PUSH1 0x60
00000fdd: SWAP2
00000fde: DUP2
00000fdf: PUSH1 0x20
00000fe1: ADD
00000fe2: JUMPDEST
00000fe3: PUSH1 0x40
00000fe5: DUP1
00000fe6: MLOAD
00000fe7: DUP1
00000fe8: DUP3
00000fe9: ADD
00000fea: SWAP1
00000feb: SWAP2
00000fec: MSTORE
00000fed: PUSH1 0x00
00000fef: DUP1
00000ff0: DUP3
00000ff1: MSTORE
00000ff2: PUSH1 0x20
00000ff4: DUP3
00000ff5: ADD
00000ff6: MSTORE
00000ff7: DUP2
00000ff8: MSTORE
00000ff9: PUSH1 0x20
00000ffb: ADD
00000ffc: SWAP1
00000ffd: PUSH1 0x01
00000fff: SWAP1
00001000: SUB
00001001: SWAP1
00001002: DUP2
00001003: PUSH2 0x0fe2
00001006: JUMPI
00001007: SWAP1
00001008: POP
00001009: POP
0000100a: SWAP1
0000100b: POP
0000100c: PUSH1 0x40
0000100e: MLOAD
0000100f: DUP1
00001010: PUSH1 0x40
00001012: ADD
00001013: PUSH1 0x40
00001015: MSTORE
00001016: DUP1
00001017: PUSH1 0x00
00001019: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000102e: AND
0000102f: DUP2
00001030: MSTORE
00001031: PUSH1 0x20
00001033: ADD
00001034: DUP4
00001035: PUSH2 0x103f
00001038: DUP8
00001039: DUP8
0000103a: DUP8
0000103b: PUSH2 0x1a59
0000103e: JUMP
0000103f: JUMPDEST
00001040: PUSH2 0x1049
00001043: SWAP2
00001044: SWAP1
00001045: PUSH2 0x3323
00001048: JUMP
00001049: JUMPDEST
0000104a: DUP2
0000104b: MSTORE
0000104c: POP
0000104d: DUP2
0000104e: PUSH1 0x00
00001050: DUP2
00001051: MLOAD
00001052: DUP2
00001053: LT
00001054: PUSH2 0x105f
00001057: JUMPI
00001058: PUSH2 0x105f
0000105b: PUSH2 0x32c5
0000105e: JUMP
0000105f: JUMPDEST
00001060: PUSH1 0x20
00001062: MUL
00001063: PUSH1 0x20
00001065: ADD
00001066: ADD
00001067: DUP2
00001068: SWAP1
00001069: MSTORE
0000106a: POP
0000106b: SWAP4
0000106c: SWAP3
0000106d: POP
0000106e: POP
0000106f: POP
00001070: JUMP
00001071: JUMPDEST
00001072: PUSH2 0x1079
00001075: PUSH2 0x1507
00001078: JUMP
00001079: JUMPDEST
0000107a: PUSH1 0x00
0000107c: JUMPDEST
0000107d: DUP2
0000107e: DUP2
0000107f: LT
00001080: ISZERO
00001081: PUSH2 0x0bea
00001084: JUMPI
00001085: PUSH2 0x10d0
00001088: DUP4
00001089: DUP4
0000108a: DUP4
0000108b: DUP2
0000108c: DUP2
0000108d: LT
0000108e: PUSH2 0x1099
00001091: JUMPI
00001092: PUSH2 0x1099
00001095: PUSH2 0x32c5
00001098: JUMP
00001099: JUMPDEST
0000109a: PUSH2 0x10af
0000109d: SWAP3
0000109e: PUSH1 0x20
000010a0: PUSH1 0x40
000010a2: SWAP1
000010a3: SWAP3
000010a4: MUL
000010a5: ADD
000010a6: SWAP1
000010a7: DUP2
000010a8: ADD
000010a9: SWAP2
000010aa: POP
000010ab: PUSH2 0x2d88
000010ae: JUMP
000010af: JUMPDEST
000010b0: DUP5
000010b1: DUP5
000010b2: DUP5
000010b3: DUP2
000010b4: DUP2
000010b5: LT
000010b6: PUSH2 0x10c1
000010b9: JUMPI
000010ba: PUSH2 0x10c1
000010bd: PUSH2 0x32c5
000010c0: JUMP
000010c1: JUMPDEST
000010c2: SWAP1
000010c3: POP
000010c4: PUSH1 0x40
000010c6: MUL
000010c7: ADD
000010c8: PUSH1 0x20
000010ca: ADD
000010cb: CALLDATALOAD
000010cc: PUSH2 0x170f
000010cf: JUMP
000010d0: JUMPDEST
000010d1: PUSH2 0x10db
000010d4: PUSH1 0x01
000010d6: DUP3
000010d7: PUSH2 0x3323
000010da: JUMP
000010db: JUMPDEST
000010dc: SWAP1
000010dd: POP
000010de: PUSH2 0x107c
000010e1: JUMP
000010e2: JUMPDEST
000010e3: PUSH2 0x10ea
000010e6: PUSH2 0x1507
000010e9: JUMP
000010ea: JUMPDEST
000010eb: PUSH2 0x0886
000010ee: DUP3
000010ef: DUP3
000010f0: PUSH2 0x1aa2
000010f3: JUMP
000010f4: JUMPDEST
000010f5: PUSH1 0x00
000010f7: SLOAD
000010f8: PUSH2 0x0100
000010fb: SWAP1
000010fc: DIV
000010fd: PUSH1 0xff
000010ff: AND
00001100: ISZERO
00001101: DUP1
00001102: DUP1
00001103: ISZERO
00001104: PUSH2 0x1114
00001107: JUMPI
00001108: POP
00001109: PUSH1 0x00
0000110b: SLOAD
0000110c: PUSH1 0x01
0000110e: PUSH1 0xff
00001110: SWAP1
00001111: SWAP2
00001112: AND
00001113: LT
00001114: JUMPDEST
00001115: DUP1
00001116: PUSH2 0x112e
00001119: JUMPI
0000111a: POP
0000111b: ADDRESS
0000111c: EXTCODESIZE
0000111d: ISZERO
0000111e: DUP1
0000111f: ISZERO
00001120: PUSH2 0x112e
00001123: JUMPI
00001124: POP
00001125: PUSH1 0x00
00001127: SLOAD
00001128: PUSH1 0xff
0000112a: AND
0000112b: PUSH1 0x01
0000112d: EQ
0000112e: JUMPDEST
0000112f: PUSH2 0x11ba
00001132: JUMPI
00001133: PUSH1 0x40
00001135: MLOAD
00001136: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001157: DUP2
00001158: MSTORE
00001159: PUSH1 0x20
0000115b: PUSH1 0x04
0000115d: DUP3
0000115e: ADD
0000115f: MSTORE
00001160: PUSH1 0x2e
00001162: PUSH1 0x24
00001164: DUP3
00001165: ADD
00001166: MSTORE
00001167: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
00001188: PUSH1 0x44
0000118a: DUP3
0000118b: ADD
0000118c: MSTORE
0000118d: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000
000011ae: PUSH1 0x64
000011b0: DUP3
000011b1: ADD
000011b2: MSTORE
000011b3: PUSH1 0x84
000011b5: ADD
000011b6: PUSH2 0x094c
000011b9: JUMP
000011ba: JUMPDEST
000011bb: PUSH1 0x00
000011bd: DUP1
000011be: SLOAD
000011bf: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
000011e0: AND
000011e1: PUSH1 0x01
000011e3: OR
000011e4: SWAP1
000011e5: SSTORE
000011e6: DUP1
000011e7: ISZERO
000011e8: PUSH2 0x1218
000011eb: JUMPI
000011ec: PUSH1 0x00
000011ee: DUP1
000011ef: SLOAD
000011f0: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
00001211: AND
00001212: PUSH2 0x0100
00001215: OR
00001216: SWAP1
00001217: SSTORE
00001218: JUMPDEST
00001219: PUSH2 0x1223
0000121c: DUP5
0000121d: DUP5
0000121e: DUP5
0000121f: PUSH2 0x1ab8
00001222: JUMP
00001223: JUMPDEST
00001224: DUP1
00001225: ISZERO
00001226: PUSH2 0x0fb7
00001229: JUMPI
0000122a: PUSH1 0x00
0000122c: DUP1
0000122d: SLOAD
0000122e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
0000124f: AND
00001250: SWAP1
00001251: SSTORE
00001252: PUSH1 0x40
00001254: MLOAD
00001255: PUSH1 0x01
00001257: DUP2
00001258: MSTORE
00001259: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498
0000127a: SWAP1
0000127b: PUSH1 0x20
0000127d: ADD
0000127e: PUSH1 0x40
00001280: MLOAD
00001281: DUP1
00001282: SWAP2
00001283: SUB
00001284: SWAP1
00001285: LOG1
00001286: POP
00001287: POP
00001288: POP
00001289: POP
0000128a: JUMP
0000128b: JUMPDEST
0000128c: PUSH2 0x1293
0000128f: PUSH2 0x1507
00001292: JUMP
00001293: JUMPDEST
00001294: PUSH4 0xffffffff
00001299: AND
0000129a: PUSH1 0x00
0000129c: SWAP1
0000129d: DUP2
0000129e: MSTORE
0000129f: PUSH1 0xcb
000012a1: PUSH1 0x20
000012a3: MSTORE
000012a4: PUSH1 0x40
000012a6: DUP2
000012a7: KECCAK256
000012a8: SSTORE
000012a9: JUMP
000012aa: JUMPDEST
000012ab: PUSH1 0x60
000012ad: PUSH2 0x0ba9
000012b0: PUSH1 0xcd
000012b2: PUSH2 0x15b1
000012b5: JUMP
000012b6: JUMPDEST
000012b7: PUSH2 0x12be
000012ba: PUSH2 0x1507
000012bd: JUMP
000012be: JUMPDEST
000012bf: DUP3
000012c0: DUP2
000012c1: EQ
000012c2: PUSH2 0x1327
000012c5: JUMPI
000012c6: PUSH1 0x40
000012c8: MLOAD
000012c9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000012ea: DUP2
000012eb: MSTORE
000012ec: PUSH1 0x20
000012ee: PUSH1 0x04
000012f0: DUP3
000012f1: ADD
000012f2: MSTORE
000012f3: PUSH1 0x07
000012f5: PUSH1 0x24
000012f7: DUP3
000012f8: ADD
000012f9: MSTORE
000012fa: PUSH32 0x216c656e67746800000000000000000000000000000000000000000000000000
0000131b: PUSH1 0x44
0000131d: DUP3
0000131e: ADD
0000131f: MSTORE
00001320: PUSH1 0x64
00001322: ADD
00001323: PUSH2 0x094c
00001326: JUMP
00001327: JUMPDEST
00001328: DUP3
00001329: PUSH1 0x00
0000132b: JUMPDEST
0000132c: DUP2
0000132d: DUP2
0000132e: LT
0000132f: ISZERO
00001330: PUSH2 0x138d
00001333: JUMPI
00001334: PUSH2 0x137b
00001337: DUP7
00001338: DUP7
00001339: DUP4
0000133a: DUP2
0000133b: DUP2
0000133c: LT
0000133d: PUSH2 0x1348
00001340: JUMPI
00001341: PUSH2 0x1348
00001344: PUSH2 0x32c5
00001347: JUMP
00001348: JUMPDEST
00001349: SWAP1
0000134a: POP
0000134b: PUSH1 0x20
0000134d: MUL
0000134e: ADD
0000134f: PUSH1 0x20
00001351: DUP2
00001352: ADD
00001353: SWAP1
00001354: PUSH2 0x135d
00001357: SWAP2
00001358: SWAP1
00001359: PUSH2 0x2d88
0000135c: JUMP
0000135d: JUMPDEST
0000135e: DUP6
0000135f: DUP6
00001360: DUP5
00001361: DUP2
00001362: DUP2
00001363: LT
00001364: PUSH2 0x136f
00001367: JUMPI
00001368: PUSH2 0x136f
0000136b: PUSH2 0x32c5
0000136e: JUMP
0000136f: JUMPDEST
00001370: SWAP1
00001371: POP
00001372: PUSH1 0x20
00001374: MUL
00001375: ADD
00001376: CALLDATALOAD
00001377: PUSH2 0x1aa2
0000137a: JUMP
0000137b: JUMPDEST
0000137c: PUSH2 0x1386
0000137f: PUSH1 0x01
00001381: DUP3
00001382: PUSH2 0x3323
00001385: JUMP
00001386: JUMPDEST
00001387: SWAP1
00001388: POP
00001389: PUSH2 0x132b
0000138c: JUMP
0000138d: JUMPDEST
0000138e: POP
0000138f: POP
00001390: POP
00001391: POP
00001392: POP
00001393: POP
00001394: JUMP
00001395: JUMPDEST
00001396: PUSH2 0x139d
00001399: PUSH2 0x1507
0000139c: JUMP
0000139d: JUMPDEST
0000139e: PUSH2 0x13a6
000013a1: DUP2
000013a2: PUSH2 0x19ec
000013a5: JUMP
000013a6: JUMPDEST
000013a7: POP
000013a8: JUMP
000013a9: JUMPDEST
000013aa: PUSH1 0x00
000013ac: PUSH2 0x09f9
000013af: DUP3
000013b0: DUP3
000013b1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000013d2: PUSH2 0x1a59
000013d5: JUMP
000013d6: JUMPDEST
000013d7: PUSH2 0x13de
000013da: PUSH2 0x1507
000013dd: JUMP
000013de: JUMPDEST
000013df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013f4: DUP2
000013f5: AND
000013f6: PUSH2 0x1481
000013f9: JUMPI
000013fa: PUSH1 0x40
000013fc: MLOAD
000013fd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000141e: DUP2
0000141f: MSTORE
00001420: PUSH1 0x20
00001422: PUSH1 0x04
00001424: DUP3
00001425: ADD
00001426: MSTORE
00001427: PUSH1 0x26
00001429: PUSH1 0x24
0000142b: DUP3
0000142c: ADD
0000142d: MSTORE
0000142e: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061
0000144f: PUSH1 0x44
00001451: DUP3
00001452: ADD
00001453: MSTORE
00001454: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000
00001475: PUSH1 0x64
00001477: DUP3
00001478: ADD
00001479: MSTORE
0000147a: PUSH1 0x84
0000147c: ADD
0000147d: PUSH2 0x094c
00001480: JUMP
00001481: JUMPDEST
00001482: PUSH2 0x13a6
00001485: DUP2
00001486: PUSH2 0x1975
00001489: JUMP
0000148a: JUMPDEST
0000148b: PUSH2 0x1492
0000148e: PUSH2 0x1507
00001491: JUMP
00001492: JUMPDEST
00001493: PUSH2 0x0886
00001496: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014ab: DUP4
000014ac: AND
000014ad: DUP3
000014ae: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000014cf: PUSH2 0x1b72
000014d2: JUMP
000014d3: JUMPDEST
000014d4: PUSH2 0x14db
000014d7: PUSH2 0x1507
000014da: JUMP
000014db: JUMPDEST
000014dc: PUSH2 0x14e4
000014df: DUP3
000014e0: PUSH2 0x15be
000014e3: JUMP
000014e4: JUMPDEST
000014e5: POP
000014e6: PUSH4 0xffffffff
000014eb: DUP1
000014ec: DUP4
000014ed: AND
000014ee: PUSH1 0x00
000014f0: SWAP1
000014f1: DUP2
000014f2: MSTORE
000014f3: PUSH1 0xcc
000014f5: PUSH1 0x20
000014f7: MSTORE
000014f8: PUSH1 0x40
000014fa: SWAP1
000014fb: KECCAK256
000014fc: PUSH2 0x0bea
000014ff: SWAP2
00001500: DUP4
00001501: SWAP1
00001502: PUSH2 0x1588
00001505: AND
00001506: JUMP
00001507: JUMPDEST
00001508: PUSH1 0x33
0000150a: SLOAD
0000150b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001520: AND
00001521: CALLER
00001522: EQ
00001523: PUSH2 0x0f60
00001526: JUMPI
00001527: PUSH1 0x40
00001529: MLOAD
0000152a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000154b: DUP2
0000154c: MSTORE
0000154d: PUSH1 0x20
0000154f: PUSH1 0x04
00001551: DUP3
00001552: ADD
00001553: DUP2
00001554: SWAP1
00001555: MSTORE
00001556: PUSH1 0x24
00001558: DUP3
00001559: ADD
0000155a: MSTORE
0000155b: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
0000157c: PUSH1 0x44
0000157e: DUP3
0000157f: ADD
00001580: MSTORE
00001581: PUSH1 0x64
00001583: ADD
00001584: PUSH2 0x094c
00001587: JUMP
00001588: JUMPDEST
00001589: PUSH1 0x00
0000158b: PUSH2 0x15aa
0000158e: DUP4
0000158f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015a4: DUP5
000015a5: AND
000015a6: PUSH2 0x1d2b
000015a9: JUMP
000015aa: JUMPDEST
000015ab: SWAP4
000015ac: SWAP3
000015ad: POP
000015ae: POP
000015af: POP
000015b0: JUMP
000015b1: JUMPDEST
000015b2: PUSH1 0x60
000015b4: PUSH1 0x00
000015b6: PUSH2 0x15aa
000015b9: DUP4
000015ba: PUSH2 0x1d7a
000015bd: JUMP
000015be: JUMPDEST
000015bf: PUSH1 0x00
000015c1: DUP1
000015c2: DUP1
000015c3: PUSH2 0x15d6
000015c6: PUSH1 0x97
000015c8: PUSH4 0xffffffff
000015cd: DUP1
000015ce: DUP8
000015cf: AND
000015d0: SWAP1
000015d1: PUSH2 0x1623
000015d4: AND
000015d5: JUMP
000015d6: JUMPDEST
000015d7: SWAP2
000015d8: POP
000015d9: SWAP2
000015da: POP
000015db: DUP2
000015dc: ISZERO
000015dd: PUSH2 0x15e7
000015e0: JUMPI
000015e1: SWAP4
000015e2: SWAP3
000015e3: POP
000015e4: POP
000015e5: POP
000015e6: JUMP
000015e7: JUMPDEST
000015e8: PUSH2 0x15f0
000015eb: DUP5
000015ec: PUSH2 0x1dd6
000015ef: JUMP
000015f0: JUMPDEST
000015f1: PUSH1 0x40
000015f3: MLOAD
000015f4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001615: DUP2
00001616: MSTORE
00001617: PUSH1 0x04
00001619: ADD
0000161a: PUSH2 0x094c
0000161d: SWAP2
0000161e: SWAP1
0000161f: PUSH2 0x317f
00001622: JUMP
00001623: JUMPDEST
00001624: PUSH1 0x00
00001626: DUP1
00001627: PUSH2 0x1630
0000162a: DUP5
0000162b: DUP5
0000162c: PUSH2 0x1e0d
0000162f: JUMP
00001630: JUMPDEST
00001631: SWAP2
00001632: POP
00001633: SWAP2
00001634: POP
00001635: JUMPDEST
00001636: SWAP3
00001637: POP
00001638: SWAP3
00001639: SWAP1
0000163a: POP
0000163b: JUMP
0000163c: JUMPDEST
0000163d: PUSH1 0x00
0000163f: PUSH2 0x15aa
00001642: DUP4
00001643: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001658: DUP5
00001659: AND
0000165a: PUSH2 0x1e47
0000165d: JUMP
0000165e: JUMPDEST
0000165f: PUSH1 0x60
00001661: PUSH1 0x00
00001663: PUSH2 0x166b
00001666: DUP4
00001667: PUSH2 0x1f3a
0000166a: JUMP
0000166b: JUMPDEST
0000166c: SWAP1
0000166d: POP
0000166e: DUP1
0000166f: MLOAD
00001670: PUSH8 0xffffffffffffffff
00001679: DUP2
0000167a: GT
0000167b: ISZERO
0000167c: PUSH2 0x1687
0000167f: JUMPI
00001680: PUSH2 0x1687
00001683: PUSH2 0x3336
00001686: JUMP
00001687: JUMPDEST
00001688: PUSH1 0x40
0000168a: MLOAD
0000168b: SWAP1
0000168c: DUP1
0000168d: DUP3
0000168e: MSTORE
0000168f: DUP1
00001690: PUSH1 0x20
00001692: MUL
00001693: PUSH1 0x20
00001695: ADD
00001696: DUP3
00001697: ADD
00001698: PUSH1 0x40
0000169a: MSTORE
0000169b: DUP1
0000169c: ISZERO
0000169d: PUSH2 0x16b0
000016a0: JUMPI
000016a1: DUP2
000016a2: PUSH1 0x20
000016a4: ADD
000016a5: PUSH1 0x20
000016a7: DUP3
000016a8: MUL
000016a9: DUP1
000016aa: CALLDATASIZE
000016ab: DUP4
000016ac: CALLDATACOPY
000016ad: ADD
000016ae: SWAP1
000016af: POP
000016b0: JUMPDEST
000016b1: POP
000016b2: SWAP2
000016b3: POP
000016b4: PUSH1 0x00
000016b6: JUMPDEST
000016b7: DUP2
000016b8: MLOAD
000016b9: DUP2
000016ba: LT
000016bb: ISZERO
000016bc: PUSH2 0x1708
000016bf: JUMPI
000016c0: DUP2
000016c1: DUP2
000016c2: DUP2
000016c3: MLOAD
000016c4: DUP2
000016c5: LT
000016c6: PUSH2 0x16d1
000016c9: JUMPI
000016ca: PUSH2 0x16d1
000016cd: PUSH2 0x32c5
000016d0: JUMP
000016d1: JUMPDEST
000016d2: PUSH1 0x20
000016d4: MUL
000016d5: PUSH1 0x20
000016d7: ADD
000016d8: ADD
000016d9: MLOAD
000016da: DUP4
000016db: DUP3
000016dc: DUP2
000016dd: MLOAD
000016de: DUP2
000016df: LT
000016e0: PUSH2 0x16eb
000016e3: JUMPI
000016e4: PUSH2 0x16eb
000016e7: PUSH2 0x32c5
000016ea: JUMP
000016eb: JUMPDEST
000016ec: PUSH4 0xffffffff
000016f1: SWAP1
000016f2: SWAP3
000016f3: AND
000016f4: PUSH1 0x20
000016f6: SWAP3
000016f7: DUP4
000016f8: MUL
000016f9: SWAP2
000016fa: SWAP1
000016fb: SWAP2
000016fc: ADD
000016fd: SWAP1
000016fe: SWAP2
000016ff: ADD
00001700: MSTORE
00001701: PUSH1 0x01
00001703: ADD
00001704: PUSH2 0x16b6
00001707: JUMP
00001708: JUMPDEST
00001709: POP
0000170a: POP
0000170b: SWAP2
0000170c: SWAP1
0000170d: POP
0000170e: JUMP
0000170f: JUMPDEST
00001710: PUSH4 0xffffffff
00001715: DUP3
00001716: AND
00001717: PUSH1 0x00
00001719: DUP2
0000171a: DUP2
0000171b: MSTORE
0000171c: PUSH1 0xca
0000171e: PUSH1 0x20
00001720: SWAP1
00001721: DUP2
00001722: MSTORE
00001723: PUSH1 0x40
00001725: SWAP2
00001726: DUP3
00001727: SWAP1
00001728: KECCAK256
00001729: DUP5
0000172a: SWAP1
0000172b: SSTORE
0000172c: DUP2
0000172d: MLOAD
0000172e: SWAP3
0000172f: DUP4
00001730: MSTORE
00001731: DUP3
00001732: ADD
00001733: DUP4
00001734: SWAP1
00001735: MSTORE
00001736: PUSH32 0xc3de732a98b24a2b5c6f67e8a7fb057ffc14046b83968a2c73e4148d2fba978b
00001757: SWAP2
00001758: ADD
00001759: PUSH2 0x09cc
0000175c: JUMP
0000175d: JUMPDEST
0000175e: PUSH1 0x00
00001760: PUSH2 0x1768
00001763: DUP6
00001764: PUSH2 0x1fcb
00001767: JUMP
00001768: JUMPDEST
00001769: POP
0000176a: PUSH2 0x0c36
0000176d: DUP8
0000176e: DUP8
0000176f: DUP8
00001770: PUSH2 0x1779
00001773: DUP2
00001774: CALLVALUE
00001775: PUSH2 0x3365
00001778: JUMP
00001779: JUMPDEST
0000177a: DUP8
0000177b: DUP8
0000177c: PUSH2 0x204b
0000177f: JUMP
00001780: JUMPDEST
00001781: PUSH1 0x00
00001783: PUSH2 0x178c
00001786: DUP4
00001787: DUP4
00001788: PUSH2 0x20d2
0000178b: JUMP
0000178c: JUMPDEST
0000178d: SWAP1
0000178e: POP
0000178f: PUSH1 0x00
00001791: PUSH2 0x179a
00001794: DUP5
00001795: DUP5
00001796: PUSH2 0x20fb
00001799: JUMP
0000179a: JUMPDEST
0000179b: SWAP1
0000179c: POP
0000179d: CALLDATASIZE
0000179e: PUSH1 0x00
000017a0: PUSH2 0x17a9
000017a3: DUP7
000017a4: DUP7
000017a5: PUSH2 0x210b
000017a8: JUMP
000017a9: JUMPDEST
000017aa: SWAP2
000017ab: POP
000017ac: SWAP2
000017ad: POP
000017ae: PUSH2 0x17c9
000017b1: PUSH2 0x17b9
000017b4: DUP6
000017b5: PUSH2 0x211b
000017b8: JUMP
000017b9: JUMPDEST
000017ba: PUSH2 0x17c2
000017bd: DUP6
000017be: PUSH2 0x21c4
000017c1: JUMP
000017c2: JUMPDEST
000017c3: DUP5
000017c4: DUP5
000017c5: PUSH2 0x21f0
000017c8: JUMP
000017c9: JUMPDEST
000017ca: DUP4
000017cb: DUP9
000017cc: PUSH4 0xffffffff
000017d1: AND
000017d2: PUSH32 0xba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6
000017f3: DUP6
000017f4: PUSH1 0x40
000017f6: MLOAD
000017f7: PUSH2 0x0f3c
000017fa: SWAP2
000017fb: DUP2
000017fc: MSTORE
000017fd: PUSH1 0x20
000017ff: ADD
00001800: SWAP1
00001801: JUMP
00001802: JUMPDEST
00001803: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001818: DUP2
00001819: AND
0000181a: PUSH1 0x00
0000181c: SWAP1
0000181d: DUP2
0000181e: MSTORE
0000181f: PUSH1 0x01
00001821: DUP4
00001822: ADD
00001823: PUSH1 0x20
00001825: MSTORE
00001826: PUSH1 0x40
00001828: DUP2
00001829: KECCAK256
0000182a: SLOAD
0000182b: ISZERO
0000182c: ISZERO
0000182d: PUSH2 0x15aa
00001830: JUMP
00001831: JUMPDEST
00001832: PUSH1 0x00
00001834: PUSH2 0x183d
00001837: DUP4
00001838: CALLVALUE
00001839: PUSH2 0x3323
0000183c: JUMP
0000183d: JUMPDEST
0000183e: SWAP1
0000183f: POP
00001840: DUP1
00001841: SELFBALANCE
00001842: LT
00001843: ISZERO
00001844: PUSH2 0x18cf
00001847: JUMPI
00001848: PUSH1 0x40
0000184a: MLOAD
0000184b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000186c: DUP2
0000186d: MSTORE
0000186e: PUSH1 0x20
00001870: PUSH1 0x04
00001872: DUP3
00001873: ADD
00001874: MSTORE
00001875: PUSH1 0x28
00001877: PUSH1 0x24
00001879: DUP3
0000187a: ADD
0000187b: MSTORE
0000187c: PUSH32 0x4e61746976653a20726562616c616e636520616d6f756e742065786365656473
0000189d: PUSH1 0x44
0000189f: DUP3
000018a0: ADD
000018a1: MSTORE
000018a2: PUSH32 0x2062616c616e6365000000000000000000000000000000000000000000000000
000018c3: PUSH1 0x64
000018c5: DUP3
000018c6: ADD
000018c7: MSTORE
000018c8: PUSH1 0x84
000018ca: ADD
000018cb: PUSH2 0x094c
000018ce: JUMP
000018cf: JUMPDEST
000018d0: PUSH1 0x40
000018d2: MLOAD
000018d3: PUSH32 0x81b4e8b400000000000000000000000000000000000000000000000000000000
000018f4: DUP2
000018f5: MSTORE
000018f6: PUSH4 0xffffffff
000018fb: DUP7
000018fc: AND
000018fd: PUSH1 0x04
000018ff: DUP3
00001900: ADD
00001901: MSTORE
00001902: PUSH1 0x24
00001904: DUP2
00001905: ADD
00001906: DUP6
00001907: SWAP1
00001908: MSTORE
00001909: PUSH1 0x44
0000190b: DUP2
0000190c: ADD
0000190d: DUP5
0000190e: SWAP1
0000190f: MSTORE
00001910: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001925: DUP4
00001926: AND
00001927: SWAP1
00001928: PUSH4 0x81b4e8b4
0000192d: SWAP1
0000192e: DUP4
0000192f: SWAP1
00001930: PUSH1 0x64
00001932: ADD
00001933: PUSH1 0x20
00001935: PUSH1 0x40
00001937: MLOAD
00001938: DUP1
00001939: DUP4
0000193a: SUB
0000193b: DUP2
0000193c: DUP6
0000193d: DUP9
0000193e: GAS
0000193f: CALL
00001940: ISZERO
00001941: DUP1
00001942: ISZERO
00001943: PUSH2 0x1950
00001946: JUMPI
00001947: RETURNDATASIZE
00001948: PUSH1 0x00
0000194a: DUP1
0000194b: RETURNDATACOPY
0000194c: RETURNDATASIZE
0000194d: PUSH1 0x00
0000194f: REVERT
00001950: JUMPDEST
00001951: POP
00001952: POP
00001953: POP
00001954: POP
00001955: POP
00001956: PUSH1 0x40
00001958: MLOAD
00001959: RETURNDATASIZE
0000195a: PUSH1 0x1f
0000195c: NOT
0000195d: PUSH1 0x1f
0000195f: DUP3
00001960: ADD
00001961: AND
00001962: DUP3
00001963: ADD
00001964: DUP1
00001965: PUSH1 0x40
00001967: MSTORE
00001968: POP
00001969: DUP2
0000196a: ADD
0000196b: SWAP1
0000196c: PUSH2 0x138d
0000196f: SWAP2
00001970: SWAP1
00001971: PUSH2 0x3378
00001974: JUMP
00001975: JUMPDEST
00001976: PUSH1 0x33
00001978: DUP1
00001979: SLOAD
0000197a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000198f: DUP4
00001990: DUP2
00001991: AND
00001992: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000019b3: DUP4
000019b4: AND
000019b5: DUP2
000019b6: OR
000019b7: SWAP1
000019b8: SWAP4
000019b9: SSTORE
000019ba: PUSH1 0x40
000019bc: MLOAD
000019bd: SWAP2
000019be: AND
000019bf: SWAP2
000019c0: SWAP1
000019c1: DUP3
000019c2: SWAP1
000019c3: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
000019e4: SWAP1
000019e5: PUSH1 0x00
000019e7: SWAP1
000019e8: LOG3
000019e9: POP
000019ea: POP
000019eb: JUMP
000019ec: JUMPDEST
000019ed: PUSH4 0xffffffff
000019f2: DUP2
000019f3: AND
000019f4: PUSH1 0x00
000019f6: SWAP1
000019f7: DUP2
000019f8: MSTORE
000019f9: PUSH1 0xcb
000019fb: PUSH1 0x20
000019fd: SWAP1
000019fe: DUP2
000019ff: MSTORE
00001a00: PUSH1 0x40
00001a02: DUP1
00001a03: DUP4
00001a04: KECCAK256
00001a05: DUP4
00001a06: SWAP1
00001a07: SSTORE
00001a08: PUSH1 0xcc
00001a0a: SWAP1
00001a0b: SWAP2
00001a0c: MSTORE
00001a0d: SWAP1
00001a0e: KECCAK256
00001a0f: PUSH2 0x1a17
00001a12: SWAP1
00001a13: PUSH2 0x21fa
00001a16: JUMP
00001a17: JUMPDEST
00001a18: PUSH2 0x13a6
00001a1b: DUP2
00001a1c: PUSH2 0x2252
00001a1f: JUMP
00001a20: JUMPDEST
00001a21: PUSH1 0x00
00001a23: PUSH2 0x1a50
00001a26: DUP6
00001a27: DUP6
00001a28: DUP6
00001a29: DUP6
00001a2a: PUSH2 0x1a32
00001a2d: DUP11
00001a2e: PUSH2 0x22a7
00001a31: JUMP
00001a32: JUMPDEST
00001a33: PUSH1 0x65
00001a35: SLOAD
00001a36: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a4b: AND
00001a4c: PUSH2 0x175d
00001a4f: JUMP
00001a50: JUMPDEST
00001a51: SWAP6
00001a52: SWAP5
00001a53: POP
00001a54: POP
00001a55: POP
00001a56: POP
00001a57: POP
00001a58: JUMP
00001a59: JUMPDEST
00001a5a: PUSH1 0x40
00001a5c: DUP1
00001a5d: MLOAD
00001a5e: PUSH1 0x20
00001a60: DUP2
00001a61: ADD
00001a62: DUP5
00001a63: SWAP1
00001a64: MSTORE
00001a65: DUP1
00001a66: DUP3
00001a67: ADD
00001a68: DUP4
00001a69: SWAP1
00001a6a: MSTORE
00001a6b: DUP2
00001a6c: MLOAD
00001a6d: DUP1
00001a6e: DUP3
00001a6f: SUB
00001a70: DUP4
00001a71: ADD
00001a72: DUP2
00001a73: MSTORE
00001a74: PUSH1 0x60
00001a76: SWAP1
00001a77: SWAP2
00001a78: ADD
00001a79: SWAP1
00001a7a: SWAP2
00001a7b: MSTORE
00001a7c: PUSH1 0x00
00001a7e: SWAP1
00001a7f: PUSH2 0x0a41
00001a82: SWAP1
00001a83: DUP6
00001a84: SWAP1
00001a85: PUSH1 0x65
00001a87: SLOAD
00001a88: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a9d: AND
00001a9e: PUSH2 0x22c9
00001aa1: JUMP
00001aa2: JUMPDEST
00001aa3: PUSH2 0x0886
00001aa6: PUSH1 0x97
00001aa8: PUSH4 0xffffffff
00001aad: DUP1
00001aae: DUP6
00001aaf: AND
00001ab0: SWAP1
00001ab1: DUP5
00001ab2: SWAP1
00001ab3: PUSH2 0x22df
00001ab6: AND
00001ab7: JUMP
00001ab8: JUMPDEST
00001ab9: PUSH1 0x00
00001abb: SLOAD
00001abc: PUSH2 0x0100
00001abf: SWAP1
00001ac0: DIV
00001ac1: PUSH1 0xff
00001ac3: AND
00001ac4: PUSH2 0x1b4f
00001ac7: JUMPI
00001ac8: PUSH1 0x40
00001aca: MLOAD
00001acb: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001aec: DUP2
00001aed: MSTORE
00001aee: PUSH1 0x20
00001af0: PUSH1 0x04
00001af2: DUP3
00001af3: ADD
00001af4: MSTORE
00001af5: PUSH1 0x2b
00001af7: PUSH1 0x24
00001af9: DUP3
00001afa: ADD
00001afb: MSTORE
00001afc: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
00001b1d: PUSH1 0x44
00001b1f: DUP3
00001b20: ADD
00001b21: MSTORE
00001b22: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
00001b43: PUSH1 0x64
00001b45: DUP3
00001b46: ADD
00001b47: MSTORE
00001b48: PUSH1 0x84
00001b4a: ADD
00001b4b: PUSH2 0x094c
00001b4e: JUMP
00001b4f: JUMPDEST
00001b50: PUSH2 0x1b57
00001b53: PUSH2 0x22ea
00001b56: JUMP
00001b57: JUMPDEST
00001b58: PUSH2 0x1b60
00001b5b: DUP4
00001b5c: PUSH2 0x0a49
00001b5f: JUMP
00001b60: JUMPDEST
00001b61: PUSH2 0x1b69
00001b64: DUP3
00001b65: PUSH2 0x088a
00001b68: JUMP
00001b69: JUMPDEST
00001b6a: PUSH2 0x0bea
00001b6d: DUP2
00001b6e: PUSH2 0x1975
00001b71: JUMP
00001b72: JUMPDEST
00001b73: DUP1
00001b74: ISZERO
00001b75: DUP1
00001b76: PUSH2 0x1c12
00001b79: JUMPI
00001b7a: POP
00001b7b: PUSH1 0x40
00001b7d: MLOAD
00001b7e: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000
00001b9f: DUP2
00001ba0: MSTORE
00001ba1: ADDRESS
00001ba2: PUSH1 0x04
00001ba4: DUP3
00001ba5: ADD
00001ba6: MSTORE
00001ba7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bbc: DUP4
00001bbd: DUP2
00001bbe: AND
00001bbf: PUSH1 0x24
00001bc1: DUP4
00001bc2: ADD
00001bc3: MSTORE
00001bc4: DUP5
00001bc5: AND
00001bc6: SWAP1
00001bc7: PUSH4 0xdd62ed3e
00001bcc: SWAP1
00001bcd: PUSH1 0x44
00001bcf: ADD
00001bd0: PUSH1 0x20
00001bd2: PUSH1 0x40
00001bd4: MLOAD
00001bd5: DUP1
00001bd6: DUP4
00001bd7: SUB
00001bd8: DUP2
00001bd9: DUP7
00001bda: GAS
00001bdb: STATICCALL
00001bdc: ISZERO
00001bdd: DUP1
00001bde: ISZERO
00001bdf: PUSH2 0x1bec
00001be2: JUMPI
00001be3: RETURNDATASIZE
00001be4: PUSH1 0x00
00001be6: DUP1
00001be7: RETURNDATACOPY
00001be8: RETURNDATASIZE
00001be9: PUSH1 0x00
00001beb: REVERT
00001bec: JUMPDEST
00001bed: POP
00001bee: POP
00001bef: POP
00001bf0: POP
00001bf1: PUSH1 0x40
00001bf3: MLOAD
00001bf4: RETURNDATASIZE
00001bf5: PUSH1 0x1f
00001bf7: NOT
00001bf8: PUSH1 0x1f
00001bfa: DUP3
00001bfb: ADD
00001bfc: AND
00001bfd: DUP3
00001bfe: ADD
00001bff: DUP1
00001c00: PUSH1 0x40
00001c02: MSTORE
00001c03: POP
00001c04: DUP2
00001c05: ADD
00001c06: SWAP1
00001c07: PUSH2 0x1c10
00001c0a: SWAP2
00001c0b: SWAP1
00001c0c: PUSH2 0x3378
00001c0f: JUMP
00001c10: JUMPDEST
00001c11: ISZERO
00001c12: JUMPDEST
00001c13: PUSH2 0x1c9e
00001c16: JUMPI
00001c17: PUSH1 0x40
00001c19: MLOAD
00001c1a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001c3b: DUP2
00001c3c: MSTORE
00001c3d: PUSH1 0x20
00001c3f: PUSH1 0x04
00001c41: DUP3
00001c42: ADD
00001c43: MSTORE
00001c44: PUSH1 0x36
00001c46: PUSH1 0x24
00001c48: DUP3
00001c49: ADD
00001c4a: MSTORE
00001c4b: PUSH32 0x5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f
00001c6c: PUSH1 0x44
00001c6e: DUP3
00001c6f: ADD
00001c70: MSTORE
00001c71: PUSH32 0x20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000
00001c92: PUSH1 0x64
00001c94: DUP3
00001c95: ADD
00001c96: MSTORE
00001c97: PUSH1 0x84
00001c99: ADD
00001c9a: PUSH2 0x094c
00001c9d: JUMP
00001c9e: JUMPDEST
00001c9f: PUSH1 0x40
00001ca1: DUP1
00001ca2: MLOAD
00001ca3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cb8: DUP5
00001cb9: AND
00001cba: PUSH1 0x24
00001cbc: DUP3
00001cbd: ADD
00001cbe: MSTORE
00001cbf: PUSH1 0x44
00001cc1: DUP1
00001cc2: DUP3
00001cc3: ADD
00001cc4: DUP5
00001cc5: SWAP1
00001cc6: MSTORE
00001cc7: DUP3
00001cc8: MLOAD
00001cc9: DUP1
00001cca: DUP4
00001ccb: SUB
00001ccc: SWAP1
00001ccd: SWAP2
00001cce: ADD
00001ccf: DUP2
00001cd0: MSTORE
00001cd1: PUSH1 0x64
00001cd3: SWAP1
00001cd4: SWAP2
00001cd5: ADD
00001cd6: SWAP1
00001cd7: SWAP2
00001cd8: MSTORE
00001cd9: PUSH1 0x20
00001cdb: DUP2
00001cdc: ADD
00001cdd: DUP1
00001cde: MLOAD
00001cdf: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001cfc: AND
00001cfd: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000
00001d1e: OR
00001d1f: SWAP1
00001d20: MSTORE
00001d21: PUSH2 0x0bea
00001d24: SWAP1
00001d25: DUP5
00001d26: SWAP1
00001d27: PUSH2 0x2389
00001d2a: JUMP
00001d2b: JUMPDEST
00001d2c: PUSH1 0x00
00001d2e: DUP2
00001d2f: DUP2
00001d30: MSTORE
00001d31: PUSH1 0x01
00001d33: DUP4
00001d34: ADD
00001d35: PUSH1 0x20
00001d37: MSTORE
00001d38: PUSH1 0x40
00001d3a: DUP2
00001d3b: KECCAK256
00001d3c: SLOAD
00001d3d: PUSH2 0x1d72
00001d40: JUMPI
00001d41: POP
00001d42: DUP2
00001d43: SLOAD
00001d44: PUSH1 0x01
00001d46: DUP2
00001d47: DUP2
00001d48: ADD
00001d49: DUP5
00001d4a: SSTORE
00001d4b: PUSH1 0x00
00001d4d: DUP5
00001d4e: DUP2
00001d4f: MSTORE
00001d50: PUSH1 0x20
00001d52: DUP1
00001d53: DUP3
00001d54: KECCAK256
00001d55: SWAP1
00001d56: SWAP4
00001d57: ADD
00001d58: DUP5
00001d59: SWAP1
00001d5a: SSTORE
00001d5b: DUP5
00001d5c: SLOAD
00001d5d: DUP5
00001d5e: DUP3
00001d5f: MSTORE
00001d60: DUP3
00001d61: DUP7
00001d62: ADD
00001d63: SWAP1
00001d64: SWAP4
00001d65: MSTORE
00001d66: PUSH1 0x40
00001d68: SWAP1
00001d69: KECCAK256
00001d6a: SWAP2
00001d6b: SWAP1
00001d6c: SWAP2
00001d6d: SSTORE
00001d6e: PUSH2 0x09f9
00001d71: JUMP
00001d72: JUMPDEST
00001d73: POP
00001d74: PUSH1 0x00
00001d76: PUSH2 0x09f9
00001d79: JUMP
00001d7a: JUMPDEST
00001d7b: PUSH1 0x60
00001d7d: DUP2
00001d7e: PUSH1 0x00
00001d80: ADD
00001d81: DUP1
00001d82: SLOAD
00001d83: DUP1
00001d84: PUSH1 0x20
00001d86: MUL
00001d87: PUSH1 0x20
00001d89: ADD
00001d8a: PUSH1 0x40
00001d8c: MLOAD
00001d8d: SWAP1
00001d8e: DUP2
00001d8f: ADD
00001d90: PUSH1 0x40
00001d92: MSTORE
00001d93: DUP1
00001d94: SWAP3
00001d95: SWAP2
00001d96: SWAP1
00001d97: DUP2
00001d98: DUP2
00001d99: MSTORE
00001d9a: PUSH1 0x20
00001d9c: ADD
00001d9d: DUP3
00001d9e: DUP1
00001d9f: SLOAD
00001da0: DUP1
00001da1: ISZERO
00001da2: PUSH2 0x1dca
00001da5: JUMPI
00001da6: PUSH1 0x20
00001da8: MUL
00001da9: DUP3
00001daa: ADD
00001dab: SWAP2
00001dac: SWAP1
00001dad: PUSH1 0x00
00001daf: MSTORE
00001db0: PUSH1 0x20
00001db2: PUSH1 0x00
00001db4: KECCAK256
00001db5: SWAP1
00001db6: JUMPDEST
00001db7: DUP2
00001db8: SLOAD
00001db9: DUP2
00001dba: MSTORE
00001dbb: PUSH1 0x20
00001dbd: ADD
00001dbe: SWAP1
00001dbf: PUSH1 0x01
00001dc1: ADD
00001dc2: SWAP1
00001dc3: DUP1
00001dc4: DUP4
00001dc5: GT
00001dc6: PUSH2 0x1db6
00001dc9: JUMPI
00001dca: JUMPDEST
00001dcb: POP
00001dcc: POP
00001dcd: POP
00001dce: POP
00001dcf: POP
00001dd0: SWAP1
00001dd1: POP
00001dd2: SWAP2
00001dd3: SWAP1
00001dd4: POP
00001dd5: JUMP
00001dd6: JUMPDEST
00001dd7: PUSH1 0x60
00001dd9: PUSH2 0x1de7
00001ddc: DUP3
00001ddd: PUSH4 0xffffffff
00001de2: AND
00001de3: PUSH2 0x2498
00001de6: JUMP
00001de7: JUMPDEST
00001de8: PUSH1 0x40
00001dea: MLOAD
00001deb: PUSH1 0x20
00001ded: ADD
00001dee: PUSH2 0x1df7
00001df1: SWAP2
00001df2: SWAP1
00001df3: PUSH2 0x3391
00001df6: JUMP
00001df7: JUMPDEST
00001df8: PUSH1 0x40
00001dfa: MLOAD
00001dfb: PUSH1 0x20
00001dfd: DUP2
00001dfe: DUP4
00001dff: SUB
00001e00: SUB
00001e01: DUP2
00001e02: MSTORE
00001e03: SWAP1
00001e04: PUSH1 0x40
00001e06: MSTORE
00001e07: SWAP1
00001e08: POP
00001e09: SWAP2
00001e0a: SWAP1
00001e0b: POP
00001e0c: JUMP
00001e0d: JUMPDEST
00001e0e: PUSH1 0x00
00001e10: DUP2
00001e11: DUP2
00001e12: MSTORE
00001e13: PUSH1 0x02
00001e15: DUP4
00001e16: ADD
00001e17: PUSH1 0x20
00001e19: MSTORE
00001e1a: PUSH1 0x40
00001e1c: DUP2
00001e1d: KECCAK256
00001e1e: SLOAD
00001e1f: DUP2
00001e20: SWAP1
00001e21: DUP1
00001e22: PUSH2 0x1e3c
00001e25: JUMPI
00001e26: PUSH2 0x1e2f
00001e29: DUP6
00001e2a: DUP6
00001e2b: PUSH2 0x2556
00001e2e: JUMP
00001e2f: JUMPDEST
00001e30: SWAP3
00001e31: POP
00001e32: PUSH1 0x00
00001e34: SWAP2
00001e35: POP
00001e36: PUSH2 0x1635
00001e39: SWAP1
00001e3a: POP
00001e3b: JUMP
00001e3c: JUMPDEST
00001e3d: PUSH1 0x01
00001e3f: SWAP3
00001e40: POP
00001e41: SWAP1
00001e42: POP
00001e43: PUSH2 0x1635
00001e46: JUMP
00001e47: JUMPDEST
00001e48: PUSH1 0x00
00001e4a: DUP2
00001e4b: DUP2
00001e4c: MSTORE
00001e4d: PUSH1 0x01
00001e4f: DUP4
00001e50: ADD
00001e51: PUSH1 0x20
00001e53: MSTORE
00001e54: PUSH1 0x40
00001e56: DUP2
00001e57: KECCAK256
00001e58: SLOAD
00001e59: DUP1
00001e5a: ISZERO
00001e5b: PUSH2 0x1f30
00001e5e: JUMPI
00001e5f: PUSH1 0x00
00001e61: PUSH2 0x1e6b
00001e64: PUSH1 0x01
00001e66: DUP4
00001e67: PUSH2 0x3365
00001e6a: JUMP
00001e6b: JUMPDEST
00001e6c: DUP6
00001e6d: SLOAD
00001e6e: SWAP1
00001e6f: SWAP2
00001e70: POP
00001e71: PUSH1 0x00
00001e73: SWAP1
00001e74: PUSH2 0x1e7f
00001e77: SWAP1
00001e78: PUSH1 0x01
00001e7a: SWAP1
00001e7b: PUSH2 0x3365
00001e7e: JUMP
00001e7f: JUMPDEST
00001e80: SWAP1
00001e81: POP
00001e82: DUP2
00001e83: DUP2
00001e84: EQ
00001e85: PUSH2 0x1ee4
00001e88: JUMPI
00001e89: PUSH1 0x00
00001e8b: DUP7
00001e8c: PUSH1 0x00
00001e8e: ADD
00001e8f: DUP3
00001e90: DUP2
00001e91: SLOAD
00001e92: DUP2
00001e93: LT
00001e94: PUSH2 0x1e9f
00001e97: JUMPI
00001e98: PUSH2 0x1e9f
00001e9b: PUSH2 0x32c5
00001e9e: JUMP
00001e9f: JUMPDEST
00001ea0: SWAP1
00001ea1: PUSH1 0x00
00001ea3: MSTORE
00001ea4: PUSH1 0x20
00001ea6: PUSH1 0x00
00001ea8: KECCAK256
00001ea9: ADD
00001eaa: SLOAD
00001eab: SWAP1
00001eac: POP
00001ead: DUP1
00001eae: DUP8
00001eaf: PUSH1 0x00
00001eb1: ADD
00001eb2: DUP5
00001eb3: DUP2
00001eb4: SLOAD
00001eb5: DUP2
00001eb6: LT
00001eb7: PUSH2 0x1ec2
00001eba: JUMPI
00001ebb: PUSH2 0x1ec2
00001ebe: PUSH2 0x32c5
00001ec1: JUMP
00001ec2: JUMPDEST
00001ec3: PUSH1 0x00
00001ec5: SWAP2
00001ec6: DUP3
00001ec7: MSTORE
00001ec8: PUSH1 0x20
00001eca: DUP1
00001ecb: DUP4
00001ecc: KECCAK256
00001ecd: SWAP1
00001ece: SWAP2
00001ecf: ADD
00001ed0: SWAP3
00001ed1: SWAP1
00001ed2: SWAP3
00001ed3: SSTORE
00001ed4: SWAP2
00001ed5: DUP3
00001ed6: MSTORE
00001ed7: PUSH1 0x01
00001ed9: DUP9
00001eda: ADD
00001edb: SWAP1
00001edc: MSTORE
00001edd: PUSH1 0x40
00001edf: SWAP1
00001ee0: KECCAK256
00001ee1: DUP4
00001ee2: SWAP1
00001ee3: SSTORE
00001ee4: JUMPDEST
00001ee5: DUP6
00001ee6: SLOAD
00001ee7: DUP7
00001ee8: SWAP1
00001ee9: DUP1
00001eea: PUSH2 0x1ef5
00001eed: JUMPI
00001eee: PUSH2 0x1ef5
00001ef1: PUSH2 0x33d6
00001ef4: JUMP
00001ef5: JUMPDEST
00001ef6: PUSH1 0x01
00001ef8: SWAP1
00001ef9: SUB
00001efa: DUP2
00001efb: DUP2
00001efc: SWAP1
00001efd: PUSH1 0x00
00001eff: MSTORE
00001f00: PUSH1 0x20
00001f02: PUSH1 0x00
00001f04: KECCAK256
00001f05: ADD
00001f06: PUSH1 0x00
00001f08: SWAP1
00001f09: SSTORE
00001f0a: SWAP1
00001f0b: SSTORE
00001f0c: DUP6
00001f0d: PUSH1 0x01
00001f0f: ADD
00001f10: PUSH1 0x00
00001f12: DUP7
00001f13: DUP2
00001f14: MSTORE
00001f15: PUSH1 0x20
00001f17: ADD
00001f18: SWAP1
00001f19: DUP2
00001f1a: MSTORE
00001f1b: PUSH1 0x20
00001f1d: ADD
00001f1e: PUSH1 0x00
00001f20: KECCAK256
00001f21: PUSH1 0x00
00001f23: SWAP1
00001f24: SSTORE
00001f25: PUSH1 0x01
00001f27: SWAP4
00001f28: POP
00001f29: POP
00001f2a: POP
00001f2b: POP
00001f2c: PUSH2 0x09f9
00001f2f: JUMP
00001f30: JUMPDEST
00001f31: PUSH1 0x00
00001f33: SWAP2
00001f34: POP
00001f35: POP
00001f36: PUSH2 0x09f9
00001f39: JUMP
00001f3a: JUMPDEST
00001f3b: PUSH1 0x60
00001f3d: PUSH1 0x00
00001f3f: PUSH2 0x1f47
00001f42: DUP4
00001f43: PUSH2 0x2562
00001f46: JUMP
00001f47: JUMPDEST
00001f48: SWAP1
00001f49: POP
00001f4a: DUP1
00001f4b: PUSH8 0xffffffffffffffff
00001f54: DUP2
00001f55: GT
00001f56: ISZERO
00001f57: PUSH2 0x1f62
00001f5a: JUMPI
00001f5b: PUSH2 0x1f62
00001f5e: PUSH2 0x3336
00001f61: JUMP
00001f62: JUMPDEST
00001f63: PUSH1 0x40
00001f65: MLOAD
00001f66: SWAP1
00001f67: DUP1
00001f68: DUP3
00001f69: MSTORE
00001f6a: DUP1
00001f6b: PUSH1 0x20
00001f6d: MUL
00001f6e: PUSH1 0x20
00001f70: ADD
00001f71: DUP3
00001f72: ADD
00001f73: PUSH1 0x40
00001f75: MSTORE
00001f76: DUP1
00001f77: ISZERO
00001f78: PUSH2 0x1f8b
00001f7b: JUMPI
00001f7c: DUP2
00001f7d: PUSH1 0x20
00001f7f: ADD
00001f80: PUSH1 0x20
00001f82: DUP3
00001f83: MUL
00001f84: DUP1
00001f85: CALLDATASIZE
00001f86: DUP4
00001f87: CALLDATACOPY
00001f88: ADD
00001f89: SWAP1
00001f8a: POP
00001f8b: JUMPDEST
00001f8c: POP
00001f8d: SWAP2
00001f8e: POP
00001f8f: PUSH1 0x00
00001f91: JUMPDEST
00001f92: DUP2
00001f93: DUP2
00001f94: LT
00001f95: ISZERO
00001f96: PUSH2 0x1708
00001f99: JUMPI
00001f9a: PUSH2 0x1fa3
00001f9d: DUP5
00001f9e: DUP3
00001f9f: PUSH2 0x256d
00001fa2: JUMP
00001fa3: JUMPDEST
00001fa4: PUSH1 0x00
00001fa6: SHR
00001fa7: DUP4
00001fa8: DUP3
00001fa9: DUP2
00001faa: MLOAD
00001fab: DUP2
00001fac: LT
00001fad: PUSH2 0x1fb8
00001fb0: JUMPI
00001fb1: PUSH2 0x1fb8
00001fb4: PUSH2 0x32c5
00001fb7: JUMP
00001fb8: JUMPDEST
00001fb9: PUSH1 0x20
00001fbb: SWAP1
00001fbc: DUP2
00001fbd: MUL
00001fbe: SWAP2
00001fbf: SWAP1
00001fc0: SWAP2
00001fc1: ADD
00001fc2: ADD
00001fc3: MSTORE
00001fc4: PUSH1 0x01
00001fc6: ADD
00001fc7: PUSH2 0x1f91
00001fca: JUMP
00001fcb: JUMPDEST
00001fcc: PUSH1 0x60
00001fce: DUP2
00001fcf: CALLVALUE
00001fd0: LT
00001fd1: ISZERO
00001fd2: PUSH2 0x2037
00001fd5: JUMPI
00001fd6: PUSH1 0x40
00001fd8: MLOAD
00001fd9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001ffa: DUP2
00001ffb: MSTORE
00001ffc: PUSH1 0x20
00001ffe: PUSH1 0x04
00002000: DUP3
00002001: ADD
00002002: DUP2
00002003: SWAP1
00002004: MSTORE
00002005: PUSH1 0x24
00002007: DUP3
00002008: ADD
00002009: MSTORE
0000200a: PUSH32 0x4e61746976653a20616d6f756e742065786365656473206d73672e76616c7565
0000202b: PUSH1 0x44
0000202d: DUP3
0000202e: ADD
0000202f: MSTORE
00002030: PUSH1 0x64
00002032: ADD
00002033: PUSH2 0x094c
00002036: JUMP
00002037: JUMPDEST
00002038: POP
00002039: POP
0000203a: PUSH1 0x40
0000203c: DUP1
0000203d: MLOAD
0000203e: PUSH1 0x20
00002040: DUP2
00002041: ADD
00002042: SWAP1
00002043: SWAP2
00002044: MSTORE
00002045: PUSH1 0x00
00002047: DUP2
00002048: MSTORE
00002049: SWAP1
0000204a: JUMP
0000204b: JUMPDEST
0000204c: PUSH1 0x00
0000204e: DUP1
0000204f: PUSH2 0x2057
00002052: DUP7
00002053: PUSH2 0x1fcb
00002056: JUMP
00002057: JUMPDEST
00002058: SWAP1
00002059: POP
0000205a: PUSH1 0x00
0000205c: PUSH2 0x2064
0000205f: DUP8
00002060: PUSH2 0x2579
00002063: JUMP
00002064: JUMPDEST
00002065: SWAP1
00002066: POP
00002067: PUSH1 0x00
00002069: PUSH2 0x2073
0000206c: DUP10
0000206d: DUP4
0000206e: DUP6
0000206f: PUSH2 0x25a5
00002072: JUMP
00002073: JUMPDEST
00002074: SWAP1
00002075: POP
00002076: PUSH2 0x2082
00002079: DUP11
0000207a: DUP9
0000207b: DUP4
0000207c: DUP10
0000207d: DUP10
0000207e: PUSH2 0x25d4
00002081: JUMP
00002082: JUMPDEST
00002083: SWAP4
00002084: POP
00002085: DUP9
00002086: DUP11
00002087: PUSH4 0xffffffff
0000208c: AND
0000208d: PUSH32 0xd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec
000020ae: DUP5
000020af: PUSH1 0x40
000020b1: MLOAD
000020b2: PUSH2 0x20bd
000020b5: SWAP2
000020b6: DUP2
000020b7: MSTORE
000020b8: PUSH1 0x20
000020ba: ADD
000020bb: SWAP1
000020bc: JUMP
000020bd: JUMPDEST
000020be: PUSH1 0x40
000020c0: MLOAD
000020c1: DUP1
000020c2: SWAP2
000020c3: SUB
000020c4: SWAP1
000020c5: LOG3
000020c6: POP
000020c7: POP
000020c8: POP
000020c9: SWAP7
000020ca: SWAP6
000020cb: POP
000020cc: POP
000020cd: POP
000020ce: POP
000020cf: POP
000020d0: POP
000020d1: JUMP
000020d2: JUMPDEST
000020d3: PUSH1 0x00
000020d5: DUP3
000020d6: DUP2
000020d7: DUP4
000020d8: PUSH2 0x20e2
000020db: DUP3
000020dc: PUSH1 0x20
000020de: PUSH2 0x3405
000020e1: JUMP
000020e2: JUMPDEST
000020e3: PUSH1 0xff
000020e5: AND
000020e6: SWAP3
000020e7: PUSH2 0x20f2
000020ea: SWAP4
000020eb: SWAP3
000020ec: SWAP2
000020ed: SWAP1
000020ee: PUSH2 0x341e
000020f1: JUMP
000020f2: JUMPDEST
000020f3: PUSH2 0x15aa
000020f6: SWAP2
000020f7: PUSH2 0x3448
000020fa: JUMP
000020fb: JUMPDEST
000020fc: PUSH1 0x00
000020fe: DUP3
000020ff: PUSH1 0x20
00002101: DUP4
00002102: PUSH2 0x20e2
00002105: DUP3
00002106: DUP1
00002107: PUSH2 0x3405
0000210a: JUMP
0000210b: JUMPDEST
0000210c: CALLDATASIZE
0000210d: PUSH1 0x00
0000210f: PUSH2 0x1630
00002112: DUP4
00002113: PUSH1 0x40
00002115: DUP2
00002116: DUP8
00002117: PUSH2 0x341e
0000211a: JUMP
0000211b: JUMPDEST
0000211c: PUSH1 0x00
0000211e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002133: DUP3
00002134: GT
00002135: ISZERO
00002136: PUSH2 0x21c0
00002139: JUMPI
0000213a: PUSH1 0x40
0000213c: MLOAD
0000213d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000215e: DUP2
0000215f: MSTORE
00002160: PUSH1 0x20
00002162: PUSH1 0x04
00002164: DUP3
00002165: ADD
00002166: MSTORE
00002167: PUSH1 0x24
00002169: DUP1
0000216a: DUP3
0000216b: ADD
0000216c: MSTORE
0000216d: PUSH32 0x5479706543617374733a2062797465733332546f41646472657373206f766572
0000218e: PUSH1 0x44
00002190: DUP3
00002191: ADD
00002192: MSTORE
00002193: PUSH32 0x666c6f7700000000000000000000000000000000000000000000000000000000
000021b4: PUSH1 0x64
000021b6: DUP3
000021b7: ADD
000021b8: MSTORE
000021b9: PUSH1 0x84
000021bb: ADD
000021bc: PUSH2 0x094c
000021bf: JUMP
000021c0: JUMPDEST
000021c1: POP
000021c2: SWAP1
000021c3: JUMP
000021c4: JUMPDEST
000021c5: PUSH1 0x00
000021c7: PUSH2 0x09f9
000021ca: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
000021eb: DUP4
000021ec: PUSH2 0x3484
000021ef: JUMP
000021f0: JUMPDEST
000021f1: PUSH2 0x0fb7
000021f4: DUP5
000021f5: DUP5
000021f6: PUSH2 0x2687
000021f9: JUMP
000021fa: JUMPDEST
000021fb: DUP1
000021fc: SLOAD
000021fd: PUSH1 0x00
000021ff: JUMPDEST
00002200: DUP2
00002201: DUP2
00002202: LT
00002203: ISZERO
00002204: PUSH2 0x224a
00002207: JUMPI
00002208: DUP3
00002209: PUSH1 0x01
0000220b: ADD
0000220c: PUSH1 0x00
0000220e: DUP5
0000220f: PUSH1 0x00
00002211: ADD
00002212: DUP4
00002213: DUP2
00002214: SLOAD
00002215: DUP2
00002216: LT
00002217: PUSH2 0x2222
0000221a: JUMPI
0000221b: PUSH2 0x2222
0000221e: PUSH2 0x32c5
00002221: JUMP
00002222: JUMPDEST
00002223: SWAP1
00002224: PUSH1 0x00
00002226: MSTORE
00002227: PUSH1 0x20
00002229: PUSH1 0x00
0000222b: KECCAK256
0000222c: ADD
0000222d: SLOAD
0000222e: DUP2
0000222f: MSTORE
00002230: PUSH1 0x20
00002232: ADD
00002233: SWAP1
00002234: DUP2
00002235: MSTORE
00002236: PUSH1 0x20
00002238: ADD
00002239: PUSH1 0x00
0000223b: KECCAK256
0000223c: PUSH1 0x00
0000223e: SWAP1
0000223f: SSTORE
00002240: DUP1
00002241: PUSH1 0x01
00002243: ADD
00002244: SWAP1
00002245: POP
00002246: PUSH2 0x21ff
00002249: JUMP
0000224a: JUMPDEST
0000224b: POP
0000224c: POP
0000224d: PUSH1 0x00
0000224f: SWAP1
00002250: SSTORE
00002251: JUMP
00002252: JUMPDEST
00002253: PUSH2 0x2266
00002256: PUSH1 0x97
00002258: PUSH4 0xffffffff
0000225d: DUP1
0000225e: DUP5
0000225f: AND
00002260: SWAP1
00002261: PUSH2 0x27e1
00002264: AND
00002265: JUMP
00002266: JUMPDEST
00002267: PUSH2 0x226f
0000226a: DUP3
0000226b: PUSH2 0x1dd6
0000226e: JUMP
0000226f: JUMPDEST
00002270: SWAP1
00002271: PUSH2 0x0886
00002274: JUMPI
00002275: PUSH1 0x40
00002277: MLOAD
00002278: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002299: DUP2
0000229a: MSTORE
0000229b: PUSH1 0x04
0000229d: ADD
0000229e: PUSH2 0x094c
000022a1: SWAP2
000022a2: SWAP1
000022a3: PUSH2 0x317f
000022a6: JUMP
000022a7: JUMPDEST
000022a8: PUSH4 0xffffffff
000022ad: DUP2
000022ae: AND
000022af: PUSH1 0x00
000022b1: SWAP1
000022b2: DUP2
000022b3: MSTORE
000022b4: PUSH1 0xca
000022b6: PUSH1 0x20
000022b8: MSTORE
000022b9: PUSH1 0x40
000022bb: SWAP1
000022bc: KECCAK256
000022bd: SLOAD
000022be: PUSH1 0x60
000022c0: SWAP1
000022c1: PUSH2 0x09f9
000022c4: SWAP1
000022c5: PUSH2 0x27ed
000022c8: JUMP
000022c9: JUMPDEST
000022ca: PUSH1 0x00
000022cc: PUSH2 0x0a41
000022cf: DUP5
000022d0: DUP5
000022d1: PUSH2 0x22d9
000022d4: DUP8
000022d5: PUSH2 0x22a7
000022d8: JUMP
000022d9: JUMPDEST
000022da: DUP6
000022db: PUSH2 0x280b
000022de: JUMP
000022df: JUMPDEST
000022e0: PUSH2 0x0fb7
000022e3: DUP4
000022e4: DUP4
000022e5: DUP4
000022e6: PUSH2 0x28df
000022e9: JUMP
000022ea: JUMPDEST
000022eb: PUSH1 0x00
000022ed: SLOAD
000022ee: PUSH2 0x0100
000022f1: SWAP1
000022f2: DIV
000022f3: PUSH1 0xff
000022f5: AND
000022f6: PUSH2 0x2381
000022f9: JUMPI
000022fa: PUSH1 0x40
000022fc: MLOAD
000022fd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000231e: DUP2
0000231f: MSTORE
00002320: PUSH1 0x20
00002322: PUSH1 0x04
00002324: DUP3
00002325: ADD
00002326: MSTORE
00002327: PUSH1 0x2b
00002329: PUSH1 0x24
0000232b: DUP3
0000232c: ADD
0000232d: MSTORE
0000232e: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
0000234f: PUSH1 0x44
00002351: DUP3
00002352: ADD
00002353: MSTORE
00002354: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
00002375: PUSH1 0x64
00002377: DUP3
00002378: ADD
00002379: MSTORE
0000237a: PUSH1 0x84
0000237c: ADD
0000237d: PUSH2 0x094c
00002380: JUMP
00002381: JUMPDEST
00002382: PUSH2 0x0f60
00002385: PUSH2 0x28fc
00002388: JUMP
00002389: JUMPDEST
0000238a: PUSH1 0x00
0000238c: PUSH2 0x23eb
0000238f: DUP3
00002390: PUSH1 0x40
00002392: MLOAD
00002393: DUP1
00002394: PUSH1 0x40
00002396: ADD
00002397: PUSH1 0x40
00002399: MSTORE
0000239a: DUP1
0000239b: PUSH1 0x20
0000239d: DUP2
0000239e: MSTORE
0000239f: PUSH1 0x20
000023a1: ADD
000023a2: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
000023c3: DUP2
000023c4: MSTORE
000023c5: POP
000023c6: DUP6
000023c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023dc: AND
000023dd: PUSH2 0x299c
000023e0: SWAP1
000023e1: SWAP3
000023e2: SWAP2
000023e3: SWAP1
000023e4: PUSH4 0xffffffff
000023e9: AND
000023ea: JUMP
000023eb: JUMPDEST
000023ec: SWAP1
000023ed: POP
000023ee: DUP1
000023ef: MLOAD
000023f0: PUSH1 0x00
000023f2: EQ
000023f3: DUP1
000023f4: PUSH2 0x240c
000023f7: JUMPI
000023f8: POP
000023f9: DUP1
000023fa: DUP1
000023fb: PUSH1 0x20
000023fd: ADD
000023fe: SWAP1
000023ff: MLOAD
00002400: DUP2
00002401: ADD
00002402: SWAP1
00002403: PUSH2 0x240c
00002406: SWAP2
00002407: SWAP1
00002408: PUSH2 0x34bf
0000240b: JUMP
0000240c: JUMPDEST
0000240d: PUSH2 0x0bea
00002410: JUMPI
00002411: PUSH1 0x40
00002413: MLOAD
00002414: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002435: DUP2
00002436: MSTORE
00002437: PUSH1 0x20
00002439: PUSH1 0x04
0000243b: DUP3
0000243c: ADD
0000243d: MSTORE
0000243e: PUSH1 0x2a
00002440: PUSH1 0x24
00002442: DUP3
00002443: ADD
00002444: MSTORE
00002445: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
00002466: PUSH1 0x44
00002468: DUP3
00002469: ADD
0000246a: MSTORE
0000246b: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000
0000248c: PUSH1 0x64
0000248e: DUP3
0000248f: ADD
00002490: MSTORE
00002491: PUSH1 0x84
00002493: ADD
00002494: PUSH2 0x094c
00002497: JUMP
00002498: JUMPDEST
00002499: PUSH1 0x60
0000249b: PUSH1 0x00
0000249d: PUSH2 0x24a5
000024a0: DUP4
000024a1: PUSH2 0x29ab
000024a4: JUMP
000024a5: JUMPDEST
000024a6: PUSH1 0x01
000024a8: ADD
000024a9: SWAP1
000024aa: POP
000024ab: PUSH1 0x00
000024ad: DUP2
000024ae: PUSH8 0xffffffffffffffff
000024b7: DUP2
000024b8: GT
000024b9: ISZERO
000024ba: PUSH2 0x24c5
000024bd: JUMPI
000024be: PUSH2 0x24c5
000024c1: PUSH2 0x3336
000024c4: JUMP
000024c5: JUMPDEST
000024c6: PUSH1 0x40
000024c8: MLOAD
000024c9: SWAP1
000024ca: DUP1
000024cb: DUP3
000024cc: MSTORE
000024cd: DUP1
000024ce: PUSH1 0x1f
000024d0: ADD
000024d1: PUSH1 0x1f
000024d3: NOT
000024d4: AND
000024d5: PUSH1 0x20
000024d7: ADD
000024d8: DUP3
000024d9: ADD
000024da: PUSH1 0x40
000024dc: MSTORE
000024dd: DUP1
000024de: ISZERO
000024df: PUSH2 0x24ef
000024e2: JUMPI
000024e3: PUSH1 0x20
000024e5: DUP3
000024e6: ADD
000024e7: DUP2
000024e8: DUP1
000024e9: CALLDATASIZE
000024ea: DUP4
000024eb: CALLDATACOPY
000024ec: ADD
000024ed: SWAP1
000024ee: POP
000024ef: JUMPDEST
000024f0: POP
000024f1: SWAP1
000024f2: POP
000024f3: DUP2
000024f4: DUP2
000024f5: ADD
000024f6: PUSH1 0x20
000024f8: ADD
000024f9: JUMPDEST
000024fa: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000251b: ADD
0000251c: PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000
0000253d: PUSH1 0x0a
0000253f: DUP7
00002540: MOD
00002541: BYTE
00002542: DUP2
00002543: MSTORE8
00002544: PUSH1 0x0a
00002546: DUP6
00002547: DIV
00002548: SWAP5
00002549: POP
0000254a: DUP5
0000254b: PUSH2 0x24f9
0000254e: JUMPI
0000254f: POP
00002550: SWAP4
00002551: SWAP3
00002552: POP
00002553: POP
00002554: POP
00002555: JUMP
00002556: JUMPDEST
00002557: PUSH1 0x00
00002559: PUSH2 0x15aa
0000255c: DUP4
0000255d: DUP4
0000255e: PUSH2 0x2a8d
00002561: JUMP
00002562: JUMPDEST
00002563: PUSH1 0x00
00002565: PUSH2 0x09f9
00002568: DUP3
00002569: PUSH2 0x2aa5
0000256c: JUMP
0000256d: JUMPDEST
0000256e: PUSH1 0x00
00002570: PUSH2 0x15aa
00002573: DUP4
00002574: DUP4
00002575: PUSH2 0x2aaf
00002578: JUMP
00002579: JUMPDEST
0000257a: PUSH1 0x00
0000257c: PUSH2 0x09f9
0000257f: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
000025a0: DUP4
000025a1: PUSH2 0x34e1
000025a4: JUMP
000025a5: JUMPDEST
000025a6: PUSH1 0x60
000025a8: DUP4
000025a9: DUP4
000025aa: DUP4
000025ab: PUSH1 0x40
000025ad: MLOAD
000025ae: PUSH1 0x20
000025b0: ADD
000025b1: PUSH2 0x25bc
000025b4: SWAP4
000025b5: SWAP3
000025b6: SWAP2
000025b7: SWAP1
000025b8: PUSH2 0x34f8
000025bb: JUMP
000025bc: JUMPDEST
000025bd: PUSH1 0x40
000025bf: MLOAD
000025c0: PUSH1 0x20
000025c2: DUP2
000025c3: DUP4
000025c4: SUB
000025c5: SUB
000025c6: DUP2
000025c7: MSTORE
000025c8: SWAP1
000025c9: PUSH1 0x40
000025cb: MSTORE
000025cc: SWAP1
000025cd: POP
000025ce: SWAP4
000025cf: SWAP3
000025d0: POP
000025d1: POP
000025d2: POP
000025d3: JUMP
000025d4: JUMPDEST
000025d5: PUSH1 0x00
000025d7: DUP1
000025d8: PUSH2 0x25e0
000025db: DUP8
000025dc: PUSH2 0x15be
000025df: JUMP
000025e0: JUMPDEST
000025e1: SWAP1
000025e2: POP
000025e3: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239
00002604: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002619: AND
0000261a: PUSH4 0x10b83dc0
0000261f: DUP8
00002620: DUP10
00002621: DUP5
00002622: DUP10
00002623: DUP10
00002624: DUP10
00002625: PUSH1 0x40
00002627: MLOAD
00002628: DUP8
00002629: PUSH4 0xffffffff
0000262e: AND
0000262f: PUSH1 0xe0
00002631: SHL
00002632: DUP2
00002633: MSTORE
00002634: PUSH1 0x04
00002636: ADD
00002637: PUSH2 0x2644
0000263a: SWAP6
0000263b: SWAP5
0000263c: SWAP4
0000263d: SWAP3
0000263e: SWAP2
0000263f: SWAP1
00002640: PUSH2 0x3525
00002643: JUMP
00002644: JUMPDEST
00002645: PUSH1 0x20
00002647: PUSH1 0x40
00002649: MLOAD
0000264a: DUP1
0000264b: DUP4
0000264c: SUB
0000264d: DUP2
0000264e: DUP6
0000264f: DUP9
00002650: GAS
00002651: CALL
00002652: ISZERO
00002653: DUP1
00002654: ISZERO
00002655: PUSH2 0x2662
00002658: JUMPI
00002659: RETURNDATASIZE
0000265a: PUSH1 0x00
0000265c: DUP1
0000265d: RETURNDATACOPY
0000265e: RETURNDATASIZE
0000265f: PUSH1 0x00
00002661: REVERT
00002662: JUMPDEST
00002663: POP
00002664: POP
00002665: POP
00002666: POP
00002667: POP
00002668: PUSH1 0x40
0000266a: MLOAD
0000266b: RETURNDATASIZE
0000266c: PUSH1 0x1f
0000266e: NOT
0000266f: PUSH1 0x1f
00002671: DUP3
00002672: ADD
00002673: AND
00002674: DUP3
00002675: ADD
00002676: DUP1
00002677: PUSH1 0x40
00002679: MSTORE
0000267a: POP
0000267b: DUP2
0000267c: ADD
0000267d: SWAP1
0000267e: PUSH2 0x0c36
00002681: SWAP2
00002682: SWAP1
00002683: PUSH2 0x3378
00002686: JUMP
00002687: JUMPDEST
00002688: DUP1
00002689: SELFBALANCE
0000268a: LT
0000268b: ISZERO
0000268c: PUSH2 0x26f1
0000268f: JUMPI
00002690: PUSH1 0x40
00002692: MLOAD
00002693: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000026b4: DUP2
000026b5: MSTORE
000026b6: PUSH1 0x20
000026b8: PUSH1 0x04
000026ba: DUP3
000026bb: ADD
000026bc: MSTORE
000026bd: PUSH1 0x1d
000026bf: PUSH1 0x24
000026c1: DUP3
000026c2: ADD
000026c3: MSTORE
000026c4: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e6365000000
000026e5: PUSH1 0x44
000026e7: DUP3
000026e8: ADD
000026e9: MSTORE
000026ea: PUSH1 0x64
000026ec: ADD
000026ed: PUSH2 0x094c
000026f0: JUMP
000026f1: JUMPDEST
000026f2: PUSH1 0x00
000026f4: DUP3
000026f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000270a: AND
0000270b: DUP3
0000270c: PUSH1 0x40
0000270e: MLOAD
0000270f: PUSH1 0x00
00002711: PUSH1 0x40
00002713: MLOAD
00002714: DUP1
00002715: DUP4
00002716: SUB
00002717: DUP2
00002718: DUP6
00002719: DUP8
0000271a: GAS
0000271b: CALL
0000271c: SWAP3
0000271d: POP
0000271e: POP
0000271f: POP
00002720: RETURNDATASIZE
00002721: DUP1
00002722: PUSH1 0x00
00002724: DUP2
00002725: EQ
00002726: PUSH2 0x274b
00002729: JUMPI
0000272a: PUSH1 0x40
0000272c: MLOAD
0000272d: SWAP2
0000272e: POP
0000272f: PUSH1 0x1f
00002731: NOT
00002732: PUSH1 0x3f
00002734: RETURNDATASIZE
00002735: ADD
00002736: AND
00002737: DUP3
00002738: ADD
00002739: PUSH1 0x40
0000273b: MSTORE
0000273c: RETURNDATASIZE
0000273d: DUP3
0000273e: MSTORE
0000273f: RETURNDATASIZE
00002740: PUSH1 0x00
00002742: PUSH1 0x20
00002744: DUP5
00002745: ADD
00002746: RETURNDATACOPY
00002747: PUSH2 0x2750
0000274a: JUMP
0000274b: JUMPDEST
0000274c: PUSH1 0x60
0000274e: SWAP2
0000274f: POP
00002750: JUMPDEST
00002751: POP
00002752: POP
00002753: SWAP1
00002754: POP
00002755: DUP1
00002756: PUSH2 0x0bea
00002759: JUMPI
0000275a: PUSH1 0x40
0000275c: MLOAD
0000275d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000277e: DUP2
0000277f: MSTORE
00002780: PUSH1 0x20
00002782: PUSH1 0x04
00002784: DUP3
00002785: ADD
00002786: MSTORE
00002787: PUSH1 0x3a
00002789: PUSH1 0x24
0000278b: DUP3
0000278c: ADD
0000278d: MSTORE
0000278e: PUSH32 0x416464726573733a20756e61626c6520746f2073656e642076616c75652c2072
000027af: PUSH1 0x44
000027b1: DUP3
000027b2: ADD
000027b3: MSTORE
000027b4: PUSH32 0x6563697069656e74206d61792068617665207265766572746564000000000000
000027d5: PUSH1 0x64
000027d7: DUP3
000027d8: ADD
000027d9: MSTORE
000027da: PUSH1 0x84
000027dc: ADD
000027dd: PUSH2 0x094c
000027e0: JUMP
000027e1: JUMPDEST
000027e2: PUSH1 0x00
000027e4: PUSH2 0x15aa
000027e7: DUP4
000027e8: DUP4
000027e9: PUSH2 0x2ad9
000027ec: JUMP
000027ed: JUMPDEST
000027ee: PUSH1 0x60
000027f0: PUSH2 0x09f9
000027f3: PUSH1 0x00
000027f5: DUP4
000027f6: CALLER
000027f7: PUSH1 0x40
000027f9: MLOAD
000027fa: DUP1
000027fb: PUSH1 0x20
000027fd: ADD
000027fe: PUSH1 0x40
00002800: MSTORE
00002801: DUP1
00002802: PUSH1 0x00
00002804: DUP2
00002805: MSTORE
00002806: POP
00002807: PUSH2 0x2af6
0000280a: JUMP
0000280b: JUMPDEST
0000280c: PUSH1 0x00
0000280e: DUP1
0000280f: PUSH2 0x2817
00002812: DUP7
00002813: PUSH2 0x15be
00002816: JUMP
00002817: JUMPDEST
00002818: PUSH1 0x40
0000281a: MLOAD
0000281b: PUSH32 0x81d2ea9500000000000000000000000000000000000000000000000000000000
0000283c: DUP2
0000283d: MSTORE
0000283e: SWAP1
0000283f: SWAP2
00002840: POP
00002841: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002856: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239
00002877: AND
00002878: SWAP1
00002879: PUSH4 0x81d2ea95
0000287e: SWAP1
0000287f: PUSH2 0x2894
00002882: SWAP1
00002883: DUP10
00002884: SWAP1
00002885: DUP6
00002886: SWAP1
00002887: DUP11
00002888: SWAP1
00002889: DUP11
0000288a: SWAP1
0000288b: DUP11
0000288c: SWAP1
0000288d: PUSH1 0x04
0000288f: ADD
00002890: PUSH2 0x3525
00002893: JUMP
00002894: JUMPDEST
00002895: PUSH1 0x20
00002897: PUSH1 0x40
00002899: MLOAD
0000289a: DUP1
0000289b: DUP4
0000289c: SUB
0000289d: DUP2
0000289e: DUP7
0000289f: GAS
000028a0: STATICCALL
000028a1: ISZERO
000028a2: DUP1
000028a3: ISZERO
000028a4: PUSH2 0x28b1
000028a7: JUMPI
000028a8: RETURNDATASIZE
000028a9: PUSH1 0x00
000028ab: DUP1
000028ac: RETURNDATACOPY
000028ad: RETURNDATASIZE
000028ae: PUSH1 0x00
000028b0: REVERT
000028b1: JUMPDEST
000028b2: POP
000028b3: POP
000028b4: POP
000028b5: POP
000028b6: PUSH1 0x40
000028b8: MLOAD
000028b9: RETURNDATASIZE
000028ba: PUSH1 0x1f
000028bc: NOT
000028bd: PUSH1 0x1f
000028bf: DUP3
000028c0: ADD
000028c1: AND
000028c2: DUP3
000028c3: ADD
000028c4: DUP1
000028c5: PUSH1 0x40
000028c7: MSTORE
000028c8: POP
000028c9: DUP2
000028ca: ADD
000028cb: SWAP1
000028cc: PUSH2 0x28d5
000028cf: SWAP2
000028d0: SWAP1
000028d1: PUSH2 0x3378
000028d4: JUMP
000028d5: JUMPDEST
000028d6: SWAP7
000028d7: SWAP6
000028d8: POP
000028d9: POP
000028da: POP
000028db: POP
000028dc: POP
000028dd: POP
000028de: JUMP
000028df: JUMPDEST
000028e0: PUSH1 0x00
000028e2: DUP3
000028e3: DUP2
000028e4: MSTORE
000028e5: PUSH1 0x02
000028e7: DUP5
000028e8: ADD
000028e9: PUSH1 0x20
000028eb: MSTORE
000028ec: PUSH1 0x40
000028ee: DUP2
000028ef: KECCAK256
000028f0: DUP3
000028f1: SWAP1
000028f2: SSTORE
000028f3: PUSH2 0x0a41
000028f6: DUP5
000028f7: DUP5
000028f8: PUSH2 0x2b2b
000028fb: JUMP
000028fc: JUMPDEST
000028fd: PUSH1 0x00
000028ff: SLOAD
00002900: PUSH2 0x0100
00002903: SWAP1
00002904: DIV
00002905: PUSH1 0xff
00002907: AND
00002908: PUSH2 0x2993
0000290b: JUMPI
0000290c: PUSH1 0x40
0000290e: MLOAD
0000290f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002930: DUP2
00002931: MSTORE
00002932: PUSH1 0x20
00002934: PUSH1 0x04
00002936: DUP3
00002937: ADD
00002938: MSTORE
00002939: PUSH1 0x2b
0000293b: PUSH1 0x24
0000293d: DUP3
0000293e: ADD
0000293f: MSTORE
00002940: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
00002961: PUSH1 0x44
00002963: DUP3
00002964: ADD
00002965: MSTORE
00002966: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
00002987: PUSH1 0x64
00002989: DUP3
0000298a: ADD
0000298b: MSTORE
0000298c: PUSH1 0x84
0000298e: ADD
0000298f: PUSH2 0x094c
00002992: JUMP
00002993: JUMPDEST
00002994: PUSH2 0x0f60
00002997: CALLER
00002998: PUSH2 0x1975
0000299b: JUMP
0000299c: JUMPDEST
0000299d: PUSH1 0x60
0000299f: PUSH2 0x0a41
000029a2: DUP5
000029a3: DUP5
000029a4: PUSH1 0x00
000029a6: DUP6
000029a7: PUSH2 0x2b37
000029aa: JUMP
000029ab: JUMPDEST
000029ac: PUSH1 0x00
000029ae: DUP1
000029af: PUSH27 0x184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000
000029cb: DUP4
000029cc: LT
000029cd: PUSH2 0x29f4
000029d0: JUMPI
000029d1: PUSH27 0x184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000
000029ed: DUP4
000029ee: DIV
000029ef: SWAP3
000029f0: POP
000029f1: PUSH1 0x40
000029f3: ADD
000029f4: JUMPDEST
000029f5: PUSH14 0x04ee2d6d415b85acef8100000000
00002a04: DUP4
00002a05: LT
00002a06: PUSH2 0x2a20
00002a09: JUMPI
00002a0a: PUSH14 0x04ee2d6d415b85acef8100000000
00002a19: DUP4
00002a1a: DIV
00002a1b: SWAP3
00002a1c: POP
00002a1d: PUSH1 0x20
00002a1f: ADD
00002a20: JUMPDEST
00002a21: PUSH7 0x2386f26fc10000
00002a29: DUP4
00002a2a: LT
00002a2b: PUSH2 0x2a3e
00002a2e: JUMPI
00002a2f: PUSH7 0x2386f26fc10000
00002a37: DUP4
00002a38: DIV
00002a39: SWAP3
00002a3a: POP
00002a3b: PUSH1 0x10
00002a3d: ADD
00002a3e: JUMPDEST
00002a3f: PUSH4 0x05f5e100
00002a44: DUP4
00002a45: LT
00002a46: PUSH2 0x2a56
00002a49: JUMPI
00002a4a: PUSH4 0x05f5e100
00002a4f: DUP4
00002a50: DIV
00002a51: SWAP3
00002a52: POP
00002a53: PUSH1 0x08
00002a55: ADD
00002a56: JUMPDEST
00002a57: PUSH2 0x2710
00002a5a: DUP4
00002a5b: LT
00002a5c: PUSH2 0x2a6a
00002a5f: JUMPI
00002a60: PUSH2 0x2710
00002a63: DUP4
00002a64: DIV
00002a65: SWAP3
00002a66: POP
00002a67: PUSH1 0x04
00002a69: ADD
00002a6a: JUMPDEST
00002a6b: PUSH1 0x64
00002a6d: DUP4
00002a6e: LT
00002a6f: PUSH2 0x2a7c
00002a72: JUMPI
00002a73: PUSH1 0x64
00002a75: DUP4
00002a76: DIV
00002a77: SWAP3
00002a78: POP
00002a79: PUSH1 0x02
00002a7b: ADD
00002a7c: JUMPDEST
00002a7d: PUSH1 0x0a
00002a7f: DUP4
00002a80: LT
00002a81: PUSH2 0x09f9
00002a84: JUMPI
00002a85: PUSH1 0x01
00002a87: ADD
00002a88: SWAP3
00002a89: SWAP2
00002a8a: POP
00002a8b: POP
00002a8c: JUMP
00002a8d: JUMPDEST
00002a8e: PUSH1 0x00
00002a90: DUP2
00002a91: DUP2
00002a92: MSTORE
00002a93: PUSH1 0x01
00002a95: DUP4
00002a96: ADD
00002a97: PUSH1 0x20
00002a99: MSTORE
00002a9a: PUSH1 0x40
00002a9c: DUP2
00002a9d: KECCAK256
00002a9e: SLOAD
00002a9f: ISZERO
00002aa0: ISZERO
00002aa1: PUSH2 0x15aa
00002aa4: JUMP
00002aa5: JUMPDEST
00002aa6: PUSH1 0x00
00002aa8: PUSH2 0x09f9
00002aab: DUP3
00002aac: SLOAD
00002aad: SWAP1
00002aae: JUMP
00002aaf: JUMPDEST
00002ab0: PUSH1 0x00
00002ab2: DUP3
00002ab3: PUSH1 0x00
00002ab5: ADD
00002ab6: DUP3
00002ab7: DUP2
00002ab8: SLOAD
00002ab9: DUP2
00002aba: LT
00002abb: PUSH2 0x2ac6
00002abe: JUMPI
00002abf: PUSH2 0x2ac6
00002ac2: PUSH2 0x32c5
00002ac5: JUMP
00002ac6: JUMPDEST
00002ac7: SWAP1
00002ac8: PUSH1 0x00
00002aca: MSTORE
00002acb: PUSH1 0x20
00002acd: PUSH1 0x00
00002acf: KECCAK256
00002ad0: ADD
00002ad1: SLOAD
00002ad2: SWAP1
00002ad3: POP
00002ad4: SWAP3
00002ad5: SWAP2
00002ad6: POP
00002ad7: POP
00002ad8: JUMP
00002ad9: JUMPDEST
00002ada: PUSH1 0x00
00002adc: DUP2
00002add: DUP2
00002ade: MSTORE
00002adf: PUSH1 0x02
00002ae1: DUP4
00002ae2: ADD
00002ae3: PUSH1 0x20
00002ae5: MSTORE
00002ae6: PUSH1 0x40
00002ae8: DUP2
00002ae9: KECCAK256
00002aea: DUP2
00002aeb: SWAP1
00002aec: SSTORE
00002aed: PUSH2 0x15aa
00002af0: DUP4
00002af1: DUP4
00002af2: PUSH2 0x2c45
00002af5: JUMP
00002af6: JUMPDEST
00002af7: PUSH1 0x60
00002af9: PUSH1 0x01
00002afb: DUP6
00002afc: DUP6
00002afd: DUP6
00002afe: DUP6
00002aff: PUSH1 0x40
00002b01: MLOAD
00002b02: PUSH1 0x20
00002b04: ADD
00002b05: PUSH2 0x2b12
00002b08: SWAP6
00002b09: SWAP5
00002b0a: SWAP4
00002b0b: SWAP3
00002b0c: SWAP2
00002b0d: SWAP1
00002b0e: PUSH2 0x3585
00002b11: JUMP
00002b12: JUMPDEST
00002b13: PUSH1 0x40
00002b15: MLOAD
00002b16: PUSH1 0x20
00002b18: DUP2
00002b19: DUP4
00002b1a: SUB
00002b1b: SUB
00002b1c: DUP2
00002b1d: MSTORE
00002b1e: SWAP1
00002b1f: PUSH1 0x40
00002b21: MSTORE
00002b22: SWAP1
00002b23: POP
00002b24: SWAP5
00002b25: SWAP4
00002b26: POP
00002b27: POP
00002b28: POP
00002b29: POP
00002b2a: JUMP
00002b2b: JUMPDEST
00002b2c: PUSH1 0x00
00002b2e: PUSH2 0x15aa
00002b31: DUP4
00002b32: DUP4
00002b33: PUSH2 0x1d2b
00002b36: JUMP
00002b37: JUMPDEST
00002b38: PUSH1 0x60
00002b3a: DUP3
00002b3b: SELFBALANCE
00002b3c: LT
00002b3d: ISZERO
00002b3e: PUSH2 0x2bc9
00002b41: JUMPI
00002b42: PUSH1 0x40
00002b44: MLOAD
00002b45: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002b66: DUP2
00002b67: MSTORE
00002b68: PUSH1 0x20
00002b6a: PUSH1 0x04
00002b6c: DUP3
00002b6d: ADD
00002b6e: MSTORE
00002b6f: PUSH1 0x26
00002b71: PUSH1 0x24
00002b73: DUP3
00002b74: ADD
00002b75: MSTORE
00002b76: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f
00002b97: PUSH1 0x44
00002b99: DUP3
00002b9a: ADD
00002b9b: MSTORE
00002b9c: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000
00002bbd: PUSH1 0x64
00002bbf: DUP3
00002bc0: ADD
00002bc1: MSTORE
00002bc2: PUSH1 0x84
00002bc4: ADD
00002bc5: PUSH2 0x094c
00002bc8: JUMP
00002bc9: JUMPDEST
00002bca: PUSH1 0x00
00002bcc: DUP1
00002bcd: DUP7
00002bce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002be3: AND
00002be4: DUP6
00002be5: DUP8
00002be6: PUSH1 0x40
00002be8: MLOAD
00002be9: PUSH2 0x2bf2
00002bec: SWAP2
00002bed: SWAP1
00002bee: PUSH2 0x360a
00002bf1: JUMP
00002bf2: JUMPDEST
00002bf3: PUSH1 0x00
00002bf5: PUSH1 0x40
00002bf7: MLOAD
00002bf8: DUP1
00002bf9: DUP4
00002bfa: SUB
00002bfb: DUP2
00002bfc: DUP6
00002bfd: DUP8
00002bfe: GAS
00002bff: CALL
00002c00: SWAP3
00002c01: POP
00002c02: POP
00002c03: POP
00002c04: RETURNDATASIZE
00002c05: DUP1
00002c06: PUSH1 0x00
00002c08: DUP2
00002c09: EQ
00002c0a: PUSH2 0x2c2f
00002c0d: JUMPI
00002c0e: PUSH1 0x40
00002c10: MLOAD
00002c11: SWAP2
00002c12: POP
00002c13: PUSH1 0x1f
00002c15: NOT
00002c16: PUSH1 0x3f
00002c18: RETURNDATASIZE
00002c19: ADD
00002c1a: AND
00002c1b: DUP3
00002c1c: ADD
00002c1d: PUSH1 0x40
00002c1f: MSTORE
00002c20: RETURNDATASIZE
00002c21: DUP3
00002c22: MSTORE
00002c23: RETURNDATASIZE
00002c24: PUSH1 0x00
00002c26: PUSH1 0x20
00002c28: DUP5
00002c29: ADD
00002c2a: RETURNDATACOPY
00002c2b: PUSH2 0x2c34
00002c2e: JUMP
00002c2f: JUMPDEST
00002c30: PUSH1 0x60
00002c32: SWAP2
00002c33: POP
00002c34: JUMPDEST
00002c35: POP
00002c36: SWAP2
00002c37: POP
00002c38: SWAP2
00002c39: POP
00002c3a: PUSH2 0x0c36
00002c3d: DUP8
00002c3e: DUP4
00002c3f: DUP4
00002c40: DUP8
00002c41: PUSH2 0x2c51
00002c44: JUMP
00002c45: JUMPDEST
00002c46: PUSH1 0x00
00002c48: PUSH2 0x15aa
00002c4b: DUP4
00002c4c: DUP4
00002c4d: PUSH2 0x1e47
00002c50: JUMP
00002c51: JUMPDEST
00002c52: PUSH1 0x60
00002c54: DUP4
00002c55: ISZERO
00002c56: PUSH2 0x2ce7
00002c59: JUMPI
00002c5a: DUP3
00002c5b: MLOAD
00002c5c: PUSH1 0x00
00002c5e: SUB
00002c5f: PUSH2 0x2ce0
00002c62: JUMPI
00002c63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c78: DUP6
00002c79: AND
00002c7a: EXTCODESIZE
00002c7b: PUSH2 0x2ce0
00002c7e: JUMPI
00002c7f: PUSH1 0x40
00002c81: MLOAD
00002c82: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002ca3: DUP2
00002ca4: MSTORE
00002ca5: PUSH1 0x20
00002ca7: PUSH1 0x04
00002ca9: DUP3
00002caa: ADD
00002cab: MSTORE
00002cac: PUSH1 0x1d
00002cae: PUSH1 0x24
00002cb0: DUP3
00002cb1: ADD
00002cb2: MSTORE
00002cb3: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00002cd4: PUSH1 0x44
00002cd6: DUP3
00002cd7: ADD
00002cd8: MSTORE
00002cd9: PUSH1 0x64
00002cdb: ADD
00002cdc: PUSH2 0x094c
00002cdf: JUMP
00002ce0: JUMPDEST
00002ce1: POP
00002ce2: DUP2
00002ce3: PUSH2 0x0a41
00002ce6: JUMP
00002ce7: JUMPDEST
00002ce8: PUSH2 0x0a41
00002ceb: DUP4
00002cec: DUP4
00002ced: DUP2
00002cee: MLOAD
00002cef: ISZERO
00002cf0: PUSH2 0x2cfc
00002cf3: JUMPI
00002cf4: DUP2
00002cf5: MLOAD
00002cf6: DUP1
00002cf7: DUP4
00002cf8: PUSH1 0x20
00002cfa: ADD
00002cfb: REVERT
00002cfc: JUMPDEST
00002cfd: DUP1
00002cfe: PUSH1 0x40
00002d00: MLOAD
00002d01: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002d22: DUP2
00002d23: MSTORE
00002d24: PUSH1 0x04
00002d26: ADD
00002d27: PUSH2 0x094c
00002d2a: SWAP2
00002d2b: SWAP1
00002d2c: PUSH2 0x317f
00002d2f: JUMP
00002d30: JUMPDEST
00002d31: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d46: DUP2
00002d47: AND
00002d48: DUP2
00002d49: EQ
00002d4a: PUSH2 0x13a6
00002d4d: JUMPI
00002d4e: PUSH1 0x00
00002d50: DUP1
00002d51: REVERT
00002d52: JUMPDEST
00002d53: PUSH1 0x00
00002d55: PUSH1 0x20
00002d57: DUP3
00002d58: DUP5
00002d59: SUB
00002d5a: SLT
00002d5b: ISZERO
00002d5c: PUSH2 0x2d64
00002d5f: JUMPI
00002d60: PUSH1 0x00
00002d62: DUP1
00002d63: REVERT
00002d64: JUMPDEST
00002d65: DUP2
00002d66: CALLDATALOAD
00002d67: PUSH2 0x15aa
00002d6a: DUP2
00002d6b: PUSH2 0x2d30
00002d6e: JUMP
00002d6f: JUMPDEST
00002d70: DUP1
00002d71: CALLDATALOAD
00002d72: PUSH4 0xffffffff
00002d77: DUP2
00002d78: AND
00002d79: DUP2
00002d7a: EQ
00002d7b: PUSH2 0x2d83
00002d7e: JUMPI
00002d7f: PUSH1 0x00
00002d81: DUP1
00002d82: REVERT
00002d83: JUMPDEST
00002d84: SWAP2
00002d85: SWAP1
00002d86: POP
00002d87: JUMP
00002d88: JUMPDEST
00002d89: PUSH1 0x00
00002d8b: PUSH1 0x20
00002d8d: DUP3
00002d8e: DUP5
00002d8f: SUB
00002d90: SLT
00002d91: ISZERO
00002d92: PUSH2 0x2d9a
00002d95: JUMPI
00002d96: PUSH1 0x00
00002d98: DUP1
00002d99: REVERT
00002d9a: JUMPDEST
00002d9b: PUSH2 0x15aa
00002d9e: DUP3
00002d9f: PUSH2 0x2d6f
00002da2: JUMP
00002da3: JUMPDEST
00002da4: PUSH1 0x20
00002da6: DUP1
00002da7: DUP3
00002da8: MSTORE
00002da9: DUP3
00002daa: MLOAD
00002dab: DUP3
00002dac: DUP3
00002dad: ADD
00002dae: DUP2
00002daf: SWAP1
00002db0: MSTORE
00002db1: PUSH1 0x00
00002db3: SWAP2
00002db4: SWAP1
00002db5: DUP5
00002db6: DUP3
00002db7: ADD
00002db8: SWAP1
00002db9: PUSH1 0x40
00002dbb: DUP6
00002dbc: ADD
00002dbd: SWAP1
00002dbe: DUP5
00002dbf: JUMPDEST
00002dc0: DUP2
00002dc1: DUP2
00002dc2: LT
00002dc3: ISZERO
00002dc4: PUSH2 0x2df1
00002dc7: JUMPI
00002dc8: DUP4
00002dc9: MLOAD
00002dca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ddf: AND
00002de0: DUP4
00002de1: MSTORE
00002de2: SWAP3
00002de3: DUP5
00002de4: ADD
00002de5: SWAP3
00002de6: SWAP2
00002de7: DUP5
00002de8: ADD
00002de9: SWAP2
00002dea: PUSH1 0x01
00002dec: ADD
00002ded: PUSH2 0x2dbf
00002df0: JUMP
00002df1: JUMPDEST
00002df2: POP
00002df3: SWAP1
00002df4: SWAP7
00002df5: SWAP6
00002df6: POP
00002df7: POP
00002df8: POP
00002df9: POP
00002dfa: POP
00002dfb: POP
00002dfc: JUMP
00002dfd: JUMPDEST
00002dfe: PUSH1 0x00
00002e00: DUP1
00002e01: PUSH1 0x40
00002e03: DUP4
00002e04: DUP6
00002e05: SUB
00002e06: SLT
00002e07: ISZERO
00002e08: PUSH2 0x2e10
00002e0b: JUMPI
00002e0c: PUSH1 0x00
00002e0e: DUP1
00002e0f: REVERT
00002e10: JUMPDEST
00002e11: PUSH2 0x2e19
00002e14: DUP4
00002e15: PUSH2 0x2d6f
00002e18: JUMP
00002e19: JUMPDEST
00002e1a: SWAP5
00002e1b: PUSH1 0x20
00002e1d: SWAP4
00002e1e: SWAP1
00002e1f: SWAP4
00002e20: ADD
00002e21: CALLDATALOAD
00002e22: SWAP4
00002e23: POP
00002e24: POP
00002e25: POP
00002e26: JUMP
00002e27: JUMPDEST
00002e28: PUSH1 0x20
00002e2a: DUP1
00002e2b: DUP3
00002e2c: MSTORE
00002e2d: DUP3
00002e2e: MLOAD
00002e2f: DUP3
00002e30: DUP3
00002e31: ADD
00002e32: DUP2
00002e33: SWAP1
00002e34: MSTORE
00002e35: PUSH1 0x00
00002e37: SWAP2
00002e38: SWAP1
00002e39: DUP5
00002e3a: DUP3
00002e3b: ADD
00002e3c: SWAP1
00002e3d: PUSH1 0x40
00002e3f: DUP6
00002e40: ADD
00002e41: SWAP1
00002e42: DUP5
00002e43: JUMPDEST
00002e44: DUP2
00002e45: DUP2
00002e46: LT
00002e47: ISZERO
00002e48: PUSH2 0x2df1
00002e4b: JUMPI
00002e4c: DUP4
00002e4d: MLOAD
00002e4e: PUSH4 0xffffffff
00002e53: AND
00002e54: DUP4
00002e55: MSTORE
00002e56: SWAP3
00002e57: DUP5
00002e58: ADD
00002e59: SWAP3
00002e5a: SWAP2
00002e5b: DUP5
00002e5c: ADD
00002e5d: SWAP2
00002e5e: PUSH1 0x01
00002e60: ADD
00002e61: PUSH2 0x2e43
00002e64: JUMP
00002e65: JUMPDEST
00002e66: PUSH1 0x00
00002e68: DUP1
00002e69: PUSH1 0x40
00002e6b: DUP4
00002e6c: DUP6
00002e6d: SUB
00002e6e: SLT
00002e6f: ISZERO
00002e70: PUSH2 0x2e78
00002e73: JUMPI
00002e74: PUSH1 0x00
00002e76: DUP1
00002e77: REVERT
00002e78: JUMPDEST
00002e79: PUSH2 0x2e81
00002e7c: DUP4
00002e7d: PUSH2 0x2d6f
00002e80: JUMP
00002e81: JUMPDEST
00002e82: SWAP2
00002e83: POP
00002e84: PUSH1 0x20
00002e86: DUP4
00002e87: ADD
00002e88: CALLDATALOAD
00002e89: PUSH2 0x2e91
00002e8c: DUP2
00002e8d: PUSH2 0x2d30
00002e90: JUMP
00002e91: JUMPDEST
00002e92: DUP1
00002e93: SWAP2
00002e94: POP
00002e95: POP
00002e96: SWAP3
00002e97: POP
00002e98: SWAP3
00002e99: SWAP1
00002e9a: POP
00002e9b: JUMP
00002e9c: JUMPDEST
00002e9d: PUSH1 0x00
00002e9f: DUP1
00002ea0: DUP4
00002ea1: PUSH1 0x1f
00002ea3: DUP5
00002ea4: ADD
00002ea5: SLT
00002ea6: PUSH2 0x2eae
00002ea9: JUMPI
00002eaa: PUSH1 0x00
00002eac: DUP1
00002ead: REVERT
00002eae: JUMPDEST
00002eaf: POP
00002eb0: DUP2
00002eb1: CALLDATALOAD
00002eb2: PUSH8 0xffffffffffffffff
00002ebb: DUP2
00002ebc: GT
00002ebd: ISZERO
00002ebe: PUSH2 0x2ec6
00002ec1: JUMPI
00002ec2: PUSH1 0x00
00002ec4: DUP1
00002ec5: REVERT
00002ec6: JUMPDEST
00002ec7: PUSH1 0x20
00002ec9: DUP4
00002eca: ADD
00002ecb: SWAP2
00002ecc: POP
00002ecd: DUP4
00002ece: PUSH1 0x20
00002ed0: DUP3
00002ed1: DUP6
00002ed2: ADD
00002ed3: ADD
00002ed4: GT
00002ed5: ISZERO
00002ed6: PUSH2 0x1635
00002ed9: JUMPI
00002eda: PUSH1 0x00
00002edc: DUP1
00002edd: REVERT
00002ede: JUMPDEST
00002edf: PUSH1 0x00
00002ee1: DUP1
00002ee2: PUSH1 0x00
00002ee4: DUP1
00002ee5: PUSH1 0x00
00002ee7: DUP1
00002ee8: PUSH1 0xa0
00002eea: DUP8
00002eeb: DUP10
00002eec: SUB
00002eed: SLT
00002eee: ISZERO
00002eef: PUSH2 0x2ef7
00002ef2: JUMPI
00002ef3: PUSH1 0x00
00002ef5: DUP1
00002ef6: REVERT
00002ef7: JUMPDEST
00002ef8: PUSH2 0x2f00
00002efb: DUP8
00002efc: PUSH2 0x2d6f
00002eff: JUMP
00002f00: JUMPDEST
00002f01: SWAP6
00002f02: POP
00002f03: PUSH1 0x20
00002f05: DUP8
00002f06: ADD
00002f07: CALLDATALOAD
00002f08: SWAP5
00002f09: POP
00002f0a: PUSH1 0x40
00002f0c: DUP8
00002f0d: ADD
00002f0e: CALLDATALOAD
00002f0f: SWAP4
00002f10: POP
00002f11: PUSH1 0x60
00002f13: DUP8
00002f14: ADD
00002f15: CALLDATALOAD
00002f16: PUSH8 0xffffffffffffffff
00002f1f: DUP2
00002f20: GT
00002f21: ISZERO
00002f22: PUSH2 0x2f2a
00002f25: JUMPI
00002f26: PUSH1 0x00
00002f28: DUP1
00002f29: REVERT
00002f2a: JUMPDEST
00002f2b: PUSH2 0x2f36
00002f2e: DUP10
00002f2f: DUP3
00002f30: DUP11
00002f31: ADD
00002f32: PUSH2 0x2e9c
00002f35: JUMP
00002f36: JUMPDEST
00002f37: SWAP1
00002f38: SWAP5
00002f39: POP
00002f3a: SWAP3
00002f3b: POP
00002f3c: POP
00002f3d: PUSH1 0x80
00002f3f: DUP8
00002f40: ADD
00002f41: CALLDATALOAD
00002f42: PUSH2 0x2f4a
00002f45: DUP2
00002f46: PUSH2 0x2d30
00002f49: JUMP
00002f4a: JUMPDEST
00002f4b: DUP1
00002f4c: SWAP2
00002f4d: POP
00002f4e: POP
00002f4f: SWAP3
00002f50: SWAP6
00002f51: POP
00002f52: SWAP3
00002f53: SWAP6
00002f54: POP
00002f55: SWAP3
00002f56: SWAP6
00002f57: JUMP
00002f58: JUMPDEST
00002f59: PUSH1 0x00
00002f5b: DUP1
00002f5c: PUSH1 0x00
00002f5e: DUP1
00002f5f: PUSH1 0x60
00002f61: DUP6
00002f62: DUP8
00002f63: SUB
00002f64: SLT
00002f65: ISZERO
00002f66: PUSH2 0x2f6e
00002f69: JUMPI
00002f6a: PUSH1 0x00
00002f6c: DUP1
00002f6d: REVERT
00002f6e: JUMPDEST
00002f6f: PUSH2 0x2f77
00002f72: DUP6
00002f73: PUSH2 0x2d6f
00002f76: JUMP
00002f77: JUMPDEST
00002f78: SWAP4
00002f79: POP
00002f7a: PUSH1 0x20
00002f7c: DUP6
00002f7d: ADD
00002f7e: CALLDATALOAD
00002f7f: SWAP3
00002f80: POP
00002f81: PUSH1 0x40
00002f83: DUP6
00002f84: ADD
00002f85: CALLDATALOAD
00002f86: PUSH8 0xffffffffffffffff
00002f8f: DUP2
00002f90: GT
00002f91: ISZERO
00002f92: PUSH2 0x2f9a
00002f95: JUMPI
00002f96: PUSH1 0x00
00002f98: DUP1
00002f99: REVERT
00002f9a: JUMPDEST
00002f9b: PUSH2 0x2fa6
00002f9e: DUP8
00002f9f: DUP3
00002fa0: DUP9
00002fa1: ADD
00002fa2: PUSH2 0x2e9c
00002fa5: JUMP
00002fa6: JUMPDEST
00002fa7: SWAP6
00002fa8: SWAP9
00002fa9: SWAP5
00002faa: SWAP8
00002fab: POP
00002fac: SWAP6
00002fad: POP
00002fae: POP
00002faf: POP
00002fb0: POP
00002fb1: JUMP
00002fb2: JUMPDEST
00002fb3: PUSH1 0x00
00002fb5: DUP1
00002fb6: PUSH1 0x00
00002fb8: PUSH1 0x60
00002fba: DUP5
00002fbb: DUP7
00002fbc: SUB
00002fbd: SLT
00002fbe: ISZERO
00002fbf: PUSH2 0x2fc7
00002fc2: JUMPI
00002fc3: PUSH1 0x00
00002fc5: DUP1
00002fc6: REVERT
00002fc7: JUMPDEST
00002fc8: PUSH2 0x2fd0
00002fcb: DUP5
00002fcc: PUSH2 0x2d6f
00002fcf: JUMP
00002fd0: JUMPDEST
00002fd1: SWAP3
00002fd2: POP
00002fd3: PUSH1 0x20
00002fd5: DUP5
00002fd6: ADD
00002fd7: CALLDATALOAD
00002fd8: SWAP2
00002fd9: POP
00002fda: PUSH1 0x40
00002fdc: DUP5
00002fdd: ADD
00002fde: CALLDATALOAD
00002fdf: PUSH2 0x2fe7
00002fe2: DUP2
00002fe3: PUSH2 0x2d30
00002fe6: JUMP
00002fe7: JUMPDEST
00002fe8: DUP1
00002fe9: SWAP2
00002fea: POP
00002feb: POP
00002fec: SWAP3
00002fed: POP
00002fee: SWAP3
00002fef: POP
00002ff0: SWAP3
00002ff1: JUMP
00002ff2: JUMPDEST
00002ff3: PUSH1 0x00
00002ff5: DUP1
00002ff6: DUP4
00002ff7: PUSH1 0x1f
00002ff9: DUP5
00002ffa: ADD
00002ffb: SLT
00002ffc: PUSH2 0x3004
00002fff: JUMPI
00003000: PUSH1 0x00
00003002: DUP1
00003003: REVERT
00003004: JUMPDEST
00003005: POP
00003006: DUP2
00003007: CALLDATALOAD
00003008: PUSH8 0xffffffffffffffff
00003011: DUP2
00003012: GT
00003013: ISZERO
00003014: PUSH2 0x301c
00003017: JUMPI
00003018: PUSH1 0x00
0000301a: DUP1
0000301b: REVERT
0000301c: JUMPDEST
0000301d: PUSH1 0x20
0000301f: DUP4
00003020: ADD
00003021: SWAP2
00003022: POP
00003023: DUP4
00003024: PUSH1 0x20
00003026: DUP3
00003027: PUSH1 0x05
00003029: SHL
0000302a: DUP6
0000302b: ADD
0000302c: ADD
0000302d: GT
0000302e: ISZERO
0000302f: PUSH2 0x1635
00003032: JUMPI
00003033: PUSH1 0x00
00003035: DUP1
00003036: REVERT
00003037: JUMPDEST
00003038: PUSH1 0x00
0000303a: DUP1
0000303b: PUSH1 0x20
0000303d: DUP4
0000303e: DUP6
0000303f: SUB
00003040: SLT
00003041: ISZERO
00003042: PUSH2 0x304a
00003045: JUMPI
00003046: PUSH1 0x00
00003048: DUP1
00003049: REVERT
0000304a: JUMPDEST
0000304b: DUP3
0000304c: CALLDATALOAD
0000304d: PUSH8 0xffffffffffffffff
00003056: DUP2
00003057: GT
00003058: ISZERO
00003059: PUSH2 0x3061
0000305c: JUMPI
0000305d: PUSH1 0x00
0000305f: DUP1
00003060: REVERT
00003061: JUMPDEST
00003062: PUSH2 0x306d
00003065: DUP6
00003066: DUP3
00003067: DUP7
00003068: ADD
00003069: PUSH2 0x2ff2
0000306c: JUMP
0000306d: JUMPDEST
0000306e: SWAP1
0000306f: SWAP7
00003070: SWAP1
00003071: SWAP6
00003072: POP
00003073: SWAP4
00003074: POP
00003075: POP
00003076: POP
00003077: POP
00003078: JUMP
00003079: JUMPDEST
0000307a: PUSH1 0x00
0000307c: DUP1
0000307d: PUSH1 0x00
0000307f: PUSH1 0x60
00003081: DUP5
00003082: DUP7
00003083: SUB
00003084: SLT
00003085: ISZERO
00003086: PUSH2 0x308e
00003089: JUMPI
0000308a: PUSH1 0x00
0000308c: DUP1
0000308d: REVERT
0000308e: JUMPDEST
0000308f: PUSH2 0x3097
00003092: DUP5
00003093: PUSH2 0x2d6f
00003096: JUMP
00003097: JUMPDEST
00003098: SWAP6
00003099: PUSH1 0x20
0000309b: DUP6
0000309c: ADD
0000309d: CALLDATALOAD
0000309e: SWAP6
0000309f: POP
000030a0: PUSH1 0x40
000030a2: SWAP1
000030a3: SWAP5
000030a4: ADD
000030a5: CALLDATALOAD
000030a6: SWAP4
000030a7: SWAP3
000030a8: POP
000030a9: POP
000030aa: POP
000030ab: JUMP
000030ac: JUMPDEST
000030ad: PUSH1 0x20
000030af: DUP1
000030b0: DUP3
000030b1: MSTORE
000030b2: DUP3
000030b3: MLOAD
000030b4: DUP3
000030b5: DUP3
000030b6: ADD
000030b7: DUP2
000030b8: SWAP1
000030b9: MSTORE
000030ba: PUSH1 0x00
000030bc: SWAP2
000030bd: SWAP1
000030be: PUSH1 0x40
000030c0: SWAP1
000030c1: DUP2
000030c2: DUP6
000030c3: ADD
000030c4: SWAP1
000030c5: DUP7
000030c6: DUP5
000030c7: ADD
000030c8: DUP6
000030c9: JUMPDEST
000030ca: DUP3
000030cb: DUP2
000030cc: LT
000030cd: ISZERO
000030ce: PUSH2 0x3104
000030d1: JUMPI
000030d2: DUP2
000030d3: MLOAD
000030d4: DUP1
000030d5: MLOAD
000030d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000030eb: AND
000030ec: DUP6
000030ed: MSTORE
000030ee: DUP7
000030ef: ADD
000030f0: MLOAD
000030f1: DUP7
000030f2: DUP6
000030f3: ADD
000030f4: MSTORE
000030f5: SWAP3
000030f6: DUP5
000030f7: ADD
000030f8: SWAP3
000030f9: SWAP1
000030fa: DUP6
000030fb: ADD
000030fc: SWAP1
000030fd: PUSH1 0x01
000030ff: ADD
00003100: PUSH2 0x30c9
00003103: JUMP
00003104: JUMPDEST
00003105: POP
00003106: SWAP2
00003107: SWAP8
00003108: SWAP7
00003109: POP
0000310a: POP
0000310b: POP
0000310c: POP
0000310d: POP
0000310e: POP
0000310f: POP
00003110: JUMP
00003111: JUMPDEST
00003112: PUSH1 0x00
00003114: JUMPDEST
00003115: DUP4
00003116: DUP2
00003117: LT
00003118: ISZERO
00003119: PUSH2 0x312c
0000311c: JUMPI
0000311d: DUP2
0000311e: DUP2
0000311f: ADD
00003120: MLOAD
00003121: DUP4
00003122: DUP3
00003123: ADD
00003124: MSTORE
00003125: PUSH1 0x20
00003127: ADD
00003128: PUSH2 0x3114
0000312b: JUMP
0000312c: JUMPDEST
0000312d: POP
0000312e: POP
0000312f: PUSH1 0x00
00003131: SWAP2
00003132: ADD
00003133: MSTORE
00003134: JUMP
00003135: JUMPDEST
00003136: PUSH1 0x00
00003138: DUP2
00003139: MLOAD
0000313a: DUP1
0000313b: DUP5
0000313c: MSTORE
0000313d: PUSH2 0x314d
00003140: DUP2
00003141: PUSH1 0x20
00003143: DUP7
00003144: ADD
00003145: PUSH1 0x20
00003147: DUP7
00003148: ADD
00003149: PUSH2 0x3111
0000314c: JUMP
0000314d: JUMPDEST
0000314e: PUSH1 0x1f
00003150: ADD
00003151: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00003172: AND
00003173: SWAP3
00003174: SWAP1
00003175: SWAP3
00003176: ADD
00003177: PUSH1 0x20
00003179: ADD
0000317a: SWAP3
0000317b: SWAP2
0000317c: POP
0000317d: POP
0000317e: JUMP
0000317f: JUMPDEST
00003180: PUSH1 0x20
00003182: DUP2
00003183: MSTORE
00003184: PUSH1 0x00
00003186: PUSH2 0x15aa
00003189: PUSH1 0x20
0000318b: DUP4
0000318c: ADD
0000318d: DUP5
0000318e: PUSH2 0x3135
00003191: JUMP
00003192: JUMPDEST
00003193: PUSH1 0x00
00003195: DUP1
00003196: PUSH1 0x20
00003198: DUP4
00003199: DUP6
0000319a: SUB
0000319b: SLT
0000319c: ISZERO
0000319d: PUSH2 0x31a5
000031a0: JUMPI
000031a1: PUSH1 0x00
000031a3: DUP1
000031a4: REVERT
000031a5: JUMPDEST
000031a6: DUP3
000031a7: CALLDATALOAD
000031a8: PUSH8 0xffffffffffffffff
000031b1: DUP1
000031b2: DUP3
000031b3: GT
000031b4: ISZERO
000031b5: PUSH2 0x31bd
000031b8: JUMPI
000031b9: PUSH1 0x00
000031bb: DUP1
000031bc: REVERT
000031bd: JUMPDEST
000031be: DUP2
000031bf: DUP6
000031c0: ADD
000031c1: SWAP2
000031c2: POP
000031c3: DUP6
000031c4: PUSH1 0x1f
000031c6: DUP4
000031c7: ADD
000031c8: SLT
000031c9: PUSH2 0x31d1
000031cc: JUMPI
000031cd: PUSH1 0x00
000031cf: DUP1
000031d0: REVERT
000031d1: JUMPDEST
000031d2: DUP2
000031d3: CALLDATALOAD
000031d4: DUP2
000031d5: DUP2
000031d6: GT
000031d7: ISZERO
000031d8: PUSH2 0x31e0
000031db: JUMPI
000031dc: PUSH1 0x00
000031de: DUP1
000031df: REVERT
000031e0: JUMPDEST
000031e1: DUP7
000031e2: PUSH1 0x20
000031e4: DUP3
000031e5: PUSH1 0x06
000031e7: SHL
000031e8: DUP6
000031e9: ADD
000031ea: ADD
000031eb: GT
000031ec: ISZERO
000031ed: PUSH2 0x31f5
000031f0: JUMPI
000031f1: PUSH1 0x00
000031f3: DUP1
000031f4: REVERT
000031f5: JUMPDEST
000031f6: PUSH1 0x20
000031f8: SWAP3
000031f9: SWAP1
000031fa: SWAP3
000031fb: ADD
000031fc: SWAP7
000031fd: SWAP2
000031fe: SWAP6
000031ff: POP
00003200: SWAP1
00003201: SWAP4
00003202: POP
00003203: POP
00003204: POP
00003205: POP
00003206: JUMP
00003207: JUMPDEST
00003208: PUSH1 0x00
0000320a: DUP1
0000320b: PUSH1 0x00
0000320d: PUSH1 0x60
0000320f: DUP5
00003210: DUP7
00003211: SUB
00003212: SLT
00003213: ISZERO
00003214: PUSH2 0x321c
00003217: JUMPI
00003218: PUSH1 0x00
0000321a: DUP1
0000321b: REVERT
0000321c: JUMPDEST
0000321d: DUP4
0000321e: CALLDATALOAD
0000321f: PUSH2 0x3227
00003222: DUP2
00003223: PUSH2 0x2d30
00003226: JUMP
00003227: JUMPDEST
00003228: SWAP3
00003229: POP
0000322a: PUSH1 0x20
0000322c: DUP5
0000322d: ADD
0000322e: CALLDATALOAD
0000322f: PUSH2 0x3237
00003232: DUP2
00003233: PUSH2 0x2d30
00003236: JUMP
00003237: JUMPDEST
00003238: SWAP2
00003239: POP
0000323a: PUSH1 0x40
0000323c: DUP5
0000323d: ADD
0000323e: CALLDATALOAD
0000323f: PUSH2 0x2fe7
00003242: DUP2
00003243: PUSH2 0x2d30
00003246: JUMP
00003247: JUMPDEST
00003248: PUSH1 0x00
0000324a: DUP1
0000324b: PUSH1 0x00
0000324d: DUP1
0000324e: PUSH1 0x40
00003250: DUP6
00003251: DUP8
00003252: SUB
00003253: SLT
00003254: ISZERO
00003255: PUSH2 0x325d
00003258: JUMPI
00003259: PUSH1 0x00
0000325b: DUP1
0000325c: REVERT
0000325d: JUMPDEST
0000325e: DUP5
0000325f: CALLDATALOAD
00003260: PUSH8 0xffffffffffffffff
00003269: DUP1
0000326a: DUP3
0000326b: GT
0000326c: ISZERO
0000326d: PUSH2 0x3275
00003270: JUMPI
00003271: PUSH1 0x00
00003273: DUP1
00003274: REVERT
00003275: JUMPDEST
00003276: PUSH2 0x3281
00003279: DUP9
0000327a: DUP4
0000327b: DUP10
0000327c: ADD
0000327d: PUSH2 0x2ff2
00003280: JUMP
00003281: JUMPDEST
00003282: SWAP1
00003283: SWAP7
00003284: POP
00003285: SWAP5
00003286: POP
00003287: PUSH1 0x20
00003289: DUP8
0000328a: ADD
0000328b: CALLDATALOAD
0000328c: SWAP2
0000328d: POP
0000328e: DUP1
0000328f: DUP3
00003290: GT
00003291: ISZERO
00003292: PUSH2 0x329a
00003295: JUMPI
00003296: PUSH1 0x00
00003298: DUP1
00003299: REVERT
0000329a: JUMPDEST
0000329b: POP
0000329c: PUSH2 0x2fa6
0000329f: DUP8
000032a0: DUP3
000032a1: DUP9
000032a2: ADD
000032a3: PUSH2 0x2ff2
000032a6: JUMP
000032a7: JUMPDEST
000032a8: PUSH1 0x00
000032aa: DUP1
000032ab: PUSH1 0x40
000032ad: DUP4
000032ae: DUP6
000032af: SUB
000032b0: SLT
000032b1: ISZERO
000032b2: PUSH2 0x32ba
000032b5: JUMPI
000032b6: PUSH1 0x00
000032b8: DUP1
000032b9: REVERT
000032ba: JUMPDEST
000032bb: DUP3
000032bc: CALLDATALOAD
000032bd: PUSH2 0x2e81
000032c0: DUP2
000032c1: PUSH2 0x2d30
000032c4: JUMP
000032c5: JUMPDEST
000032c6: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000032e7: PUSH1 0x00
000032e9: MSTORE
000032ea: PUSH1 0x32
000032ec: PUSH1 0x04
000032ee: MSTORE
000032ef: PUSH1 0x24
000032f1: PUSH1 0x00
000032f3: REVERT
000032f4: JUMPDEST
000032f5: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003316: PUSH1 0x00
00003318: MSTORE
00003319: PUSH1 0x11
0000331b: PUSH1 0x04
0000331d: MSTORE
0000331e: PUSH1 0x24
00003320: PUSH1 0x00
00003322: REVERT
00003323: JUMPDEST
00003324: DUP1
00003325: DUP3
00003326: ADD
00003327: DUP1
00003328: DUP3
00003329: GT
0000332a: ISZERO
0000332b: PUSH2 0x09f9
0000332e: JUMPI
0000332f: PUSH2 0x09f9
00003332: PUSH2 0x32f4
00003335: JUMP
00003336: JUMPDEST
00003337: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003358: PUSH1 0x00
0000335a: MSTORE
0000335b: PUSH1 0x41
0000335d: PUSH1 0x04
0000335f: MSTORE
00003360: PUSH1 0x24
00003362: PUSH1 0x00
00003364: REVERT
00003365: JUMPDEST
00003366: DUP2
00003367: DUP2
00003368: SUB
00003369: DUP2
0000336a: DUP2
0000336b: GT
0000336c: ISZERO
0000336d: PUSH2 0x09f9
00003370: JUMPI
00003371: PUSH2 0x09f9
00003374: PUSH2 0x32f4
00003377: JUMP
00003378: JUMPDEST
00003379: PUSH1 0x00
0000337b: PUSH1 0x20
0000337d: DUP3
0000337e: DUP5
0000337f: SUB
00003380: SLT
00003381: ISZERO
00003382: PUSH2 0x338a
00003385: JUMPI
00003386: PUSH1 0x00
00003388: DUP1
00003389: REVERT
0000338a: JUMPDEST
0000338b: POP
0000338c: MLOAD
0000338d: SWAP2
0000338e: SWAP1
0000338f: POP
00003390: JUMP
00003391: JUMPDEST
00003392: PUSH32 0x4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000
000033b3: DUP2
000033b4: MSTORE
000033b5: PUSH1 0x00
000033b7: DUP3
000033b8: MLOAD
000033b9: PUSH2 0x33c9
000033bc: DUP2
000033bd: PUSH1 0x1f
000033bf: DUP6
000033c0: ADD
000033c1: PUSH1 0x20
000033c3: DUP8
000033c4: ADD
000033c5: PUSH2 0x3111
000033c8: JUMP
000033c9: JUMPDEST
000033ca: SWAP2
000033cb: SWAP1
000033cc: SWAP2
000033cd: ADD
000033ce: PUSH1 0x1f
000033d0: ADD
000033d1: SWAP3
000033d2: SWAP2
000033d3: POP
000033d4: POP
000033d5: JUMP
000033d6: JUMPDEST
000033d7: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000033f8: PUSH1 0x00
000033fa: MSTORE
000033fb: PUSH1 0x31
000033fd: PUSH1 0x04
000033ff: MSTORE
00003400: PUSH1 0x24
00003402: PUSH1 0x00
00003404: REVERT
00003405: JUMPDEST
00003406: PUSH1 0xff
00003408: DUP2
00003409: DUP2
0000340a: AND
0000340b: DUP4
0000340c: DUP3
0000340d: AND
0000340e: ADD
0000340f: SWAP1
00003410: DUP2
00003411: GT
00003412: ISZERO
00003413: PUSH2 0x09f9
00003416: JUMPI
00003417: PUSH2 0x09f9
0000341a: PUSH2 0x32f4
0000341d: JUMP
0000341e: JUMPDEST
0000341f: PUSH1 0x00
00003421: DUP1
00003422: DUP6
00003423: DUP6
00003424: GT
00003425: ISZERO
00003426: PUSH2 0x342e
00003429: JUMPI
0000342a: PUSH1 0x00
0000342c: DUP1
0000342d: REVERT
0000342e: JUMPDEST
0000342f: DUP4
00003430: DUP7
00003431: GT
00003432: ISZERO
00003433: PUSH2 0x343b
00003436: JUMPI
00003437: PUSH1 0x00
00003439: DUP1
0000343a: REVERT
0000343b: JUMPDEST
0000343c: POP
0000343d: POP
0000343e: DUP3
0000343f: ADD
00003440: SWAP4
00003441: SWAP2
00003442: SWAP1
00003443: SWAP3
00003444: SUB
00003445: SWAP2
00003446: POP
00003447: JUMP
00003448: JUMPDEST
00003449: DUP1
0000344a: CALLDATALOAD
0000344b: PUSH1 0x20
0000344d: DUP4
0000344e: LT
0000344f: ISZERO
00003450: PUSH2 0x09f9
00003453: JUMPI
00003454: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003475: PUSH1 0x20
00003477: DUP5
00003478: SWAP1
00003479: SUB
0000347a: PUSH1 0x03
0000347c: SHL
0000347d: SHL
0000347e: AND
0000347f: SWAP3
00003480: SWAP2
00003481: POP
00003482: POP
00003483: JUMP
00003484: JUMPDEST
00003485: PUSH1 0x00
00003487: DUP3
00003488: PUSH2 0x34ba
0000348b: JUMPI
0000348c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000034ad: PUSH1 0x00
000034af: MSTORE
000034b0: PUSH1 0x12
000034b2: PUSH1 0x04
000034b4: MSTORE
000034b5: PUSH1 0x24
000034b7: PUSH1 0x00
000034b9: REVERT
000034ba: JUMPDEST
000034bb: POP
000034bc: DIV
000034bd: SWAP1
000034be: JUMP
000034bf: JUMPDEST
000034c0: PUSH1 0x00
000034c2: PUSH1 0x20
000034c4: DUP3
000034c5: DUP5
000034c6: SUB
000034c7: SLT
000034c8: ISZERO
000034c9: PUSH2 0x34d1
000034cc: JUMPI
000034cd: PUSH1 0x00
000034cf: DUP1
000034d0: REVERT
000034d1: JUMPDEST
000034d2: DUP2
000034d3: MLOAD
000034d4: DUP1
000034d5: ISZERO
000034d6: ISZERO
000034d7: DUP2
000034d8: EQ
000034d9: PUSH2 0x15aa
000034dc: JUMPI
000034dd: PUSH1 0x00
000034df: DUP1
000034e0: REVERT
000034e1: JUMPDEST
000034e2: DUP1
000034e3: DUP3
000034e4: MUL
000034e5: DUP2
000034e6: ISZERO
000034e7: DUP3
000034e8: DUP3
000034e9: DIV
000034ea: DUP5
000034eb: EQ
000034ec: OR
000034ed: PUSH2 0x09f9
000034f0: JUMPI
000034f1: PUSH2 0x09f9
000034f4: PUSH2 0x32f4
000034f7: JUMP
000034f8: JUMPDEST
000034f9: DUP4
000034fa: DUP2
000034fb: MSTORE
000034fc: DUP3
000034fd: PUSH1 0x20
000034ff: DUP3
00003500: ADD
00003501: MSTORE
00003502: PUSH1 0x00
00003504: DUP3
00003505: MLOAD
00003506: PUSH2 0x3516
00003509: DUP2
0000350a: PUSH1 0x40
0000350c: DUP6
0000350d: ADD
0000350e: PUSH1 0x20
00003510: DUP8
00003511: ADD
00003512: PUSH2 0x3111
00003515: JUMP
00003516: JUMPDEST
00003517: SWAP2
00003518: SWAP1
00003519: SWAP2
0000351a: ADD
0000351b: PUSH1 0x40
0000351d: ADD
0000351e: SWAP5
0000351f: SWAP4
00003520: POP
00003521: POP
00003522: POP
00003523: POP
00003524: JUMP
00003525: JUMPDEST
00003526: PUSH4 0xffffffff
0000352b: DUP7
0000352c: AND
0000352d: DUP2
0000352e: MSTORE
0000352f: DUP5
00003530: PUSH1 0x20
00003532: DUP3
00003533: ADD
00003534: MSTORE
00003535: PUSH1 0xa0
00003537: PUSH1 0x40
00003539: DUP3
0000353a: ADD
0000353b: MSTORE
0000353c: PUSH1 0x00
0000353e: PUSH2 0x354a
00003541: PUSH1 0xa0
00003543: DUP4
00003544: ADD
00003545: DUP7
00003546: PUSH2 0x3135
00003549: JUMP
0000354a: JUMPDEST
0000354b: DUP3
0000354c: DUP2
0000354d: SUB
0000354e: PUSH1 0x60
00003550: DUP5
00003551: ADD
00003552: MSTORE
00003553: PUSH2 0x355c
00003556: DUP2
00003557: DUP7
00003558: PUSH2 0x3135
0000355b: JUMP
0000355c: JUMPDEST
0000355d: SWAP2
0000355e: POP
0000355f: POP
00003560: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003575: DUP4
00003576: AND
00003577: PUSH1 0x80
00003579: DUP4
0000357a: ADD
0000357b: MSTORE
0000357c: SWAP7
0000357d: SWAP6
0000357e: POP
0000357f: POP
00003580: POP
00003581: POP
00003582: POP
00003583: POP
00003584: JUMP
00003585: JUMPDEST
00003586: PUSH32 0xffff000000000000000000000000000000000000000000000000000000000000
000035a7: DUP7
000035a8: PUSH1 0xf0
000035aa: SHL
000035ab: AND
000035ac: DUP2
000035ad: MSTORE
000035ae: DUP5
000035af: PUSH1 0x02
000035b1: DUP3
000035b2: ADD
000035b3: MSTORE
000035b4: DUP4
000035b5: PUSH1 0x22
000035b7: DUP3
000035b8: ADD
000035b9: MSTORE
000035ba: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
000035db: DUP4
000035dc: PUSH1 0x60
000035de: SHL
000035df: AND
000035e0: PUSH1 0x42
000035e2: DUP3
000035e3: ADD
000035e4: MSTORE
000035e5: PUSH1 0x00
000035e7: DUP3
000035e8: MLOAD
000035e9: PUSH2 0x35f9
000035ec: DUP2
000035ed: PUSH1 0x56
000035ef: DUP6
000035f0: ADD
000035f1: PUSH1 0x20
000035f3: DUP8
000035f4: ADD
000035f5: PUSH2 0x3111
000035f8: JUMP
000035f9: JUMPDEST
000035fa: SWAP2
000035fb: SWAP1
000035fc: SWAP2
000035fd: ADD
000035fe: PUSH1 0x56
00003600: ADD
00003601: SWAP7
00003602: SWAP6
00003603: POP
00003604: POP
00003605: POP
00003606: POP
00003607: POP
00003608: POP
00003609: JUMP
0000360a: JUMPDEST
0000360b: PUSH1 0x00
0000360d: DUP3
0000360e: MLOAD
0000360f: PUSH2 0x361c
00003612: DUP2
00003613: DUP5
00003614: PUSH1 0x20
00003616: DUP8
00003617: ADD
00003618: PUSH2 0x3111
0000361b: JUMP
0000361c: JUMPDEST
0000361d: SWAP2
0000361e: SWAP1
0000361f: SWAP2
00003620: ADD
00003621: SWAP3
00003622: SWAP2
00003623: POP
00003624: POP
00003625: JUMP
00003626: INVALID
00003627: LOG2
00003628: PUSH5 0x6970667358
0000362e: UNKNOWN(0x22)
0000362f: SLT
00003630: KECCAK256
00003631: PUSH28 0x7a63b9bc34bca952723e011d8b336662e3808e238d9284cc20d385c8
0000364e: DUP4
0000364f: UNKNOWN(0xAE)
00003650: CODECOPY
00003651: PUSH5 0x736f6c6343
00003657: STOP
00003658: ADDMOD
00003659: AND
0000365a: STOP
0000365b: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability codex Unprotected initializer enables ownership takeover and collateral drain via rebalance 90 no
view
evidence_json
{
    "evidence": "`HypNative.initialize` is public `initializer` and calls `_MailboxClient_initialize`, which sets ownership to the caller-provided `_owner`; ownership then allows adding bridges/rebalancers and calling `rebalance`, which forwards ETH to the chosen bridge.",
    "locations": [
        "contracts/contracts/token/HypNative.sol:39",
        "contracts/contracts/client/MailboxClient.sol:109",
        "contracts/contracts/client/MailboxClient.sol:117",
        "contracts/contracts/client/Router.sol:54",
        "contracts/contracts/token/libs/MovableCollateralRouter.sol:69",
        "contracts/contracts/token/libs/MovableCollateralRouter.sol:98",
        "contracts/contracts/token/libs/MovableCollateralRouter.sol:114",
        "contracts/contracts/token/HypNative.sol:119"
    ],
    "recommendation": "Disable initializers in the constructor (`_disableInitializers()`), or remove `initialize` entirely for non-proxy deployments. If initialization is required, restrict it (e.g., onlyOwner) and ensure deployment tooling calls it atomically before any third party can interact.",
    "exploit_scenario": "1) Find a deployed `HypNative` instance where `initialize()` has not been called yet. 2) Call `initialize(address(0), address(0), attacker)`; `onlyContractOrNull` allows zero addresses and `_MailboxClient_initialize` sets the owner to the attacker-provided `_owner`. 3) As owner, call `enrollRemoteRouter` to register any domain, then `addBridge(domain, maliciousBridge)` and `addRebalancer(attacker)` to whitelist attacker-controlled bridge and self. 4) Call `rebalance(domain, amount, maliciousBridge)` with `amount` equal to the contract\u2019s ETH balance (and `msg.value = 0`). `HypNative._rebalance` sends `amount` ETH to `maliciousBridge`, which can simply keep the funds. 5) Repeat until the contract balance is drained."
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x4b86b6f0d3b7696169c119c19370f9f3d5c072d2d1892c6b0977ab975271c4d6
call_targets: 0x522a1bc31fa8d9421c29506d4e600aecefaa1b7d
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x4b86b6f0d3b7696169c119c19370f9f3d5c072d2d1892c6b0977ab975271c4d6",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x522a1bc31fa8d9421c29506d4e600aecefaa1b7d"
    ],
    "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": 6463,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9809,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10011,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [
        {
            "pc": 3138,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 4
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x4b86b6f0d3b7696169c119c19370f9f3d5c072d2d1892c6b0977ab975271c4d6
call_targets: 0x522a1bc31fa8d9421c29506d4e600aecefaa1b7d
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x4b86b6f0d3b7696169c119c19370f9f3d5c072d2d1892c6b0977ab975271c4d6",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x522a1bc31fa8d9421c29506d4e600aecefaa1b7d"
    ],
    "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": 6463,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9809,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10011,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": [
        {
            "pc": 3138,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 5
}