bcc94c41-02bf-4d4c-8fe8-6e59b9b5a0b0
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 30854 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 94135 | artifact.fetch | failed | 1 / 3 | 2 weeks ago |
| 94136 | tool.cast_disasm | complete | 1 / 3 | 2 weeks ago |
| 94137 | analysis.bundle | complete | 1 / 3 | 2 weeks ago |
| 94138 | capability.graph | complete | 1 / 3 | 2 weeks ago |
| 94139 | detector.run | complete | 1 / 3 | 2 weeks ago |
| 94140 | validation.fork | complete | 1 / 3 | 2 weeks ago |
No slither job recorded yet.
[codex:903603] OpenAI Codex v0.77.0 (research preview)
[codex:903603] --------
[codex:903603] workdir: /tmp/codex-multi-np0lhgsm
[codex:903603] model: gpt-5.2-codex
[codex:903603] provider: openai
[codex:903603] approval: never
[codex:903603] sandbox: read-only
[codex:903603] reasoning effort: xhigh
[codex:903603] reasoning summaries: auto
[codex:903603] session id: 019b753c-949e-7ae2-8747-470824b9a31a
[codex:903603] --------
[codex:903603] user
[codex:903603] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:903603]
[codex:903603] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:903603]
[codex:903603] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:903603] - Gas inefficiency, code quality, naming, or best practices
[codex:903603] - Theoretical vulnerabilities without a clear extraction path
[codex:903603] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:903603] - Front-running unless it enables theft beyond MEV
[codex:903603] - DoS, griefing, or issues that don't result in attacker profit
[codex:903603] - Missing events, view function issues, or informational findings
[codex:903603]
[codex:903603] HIGH-VALUE PATTERNS TO HUNT:
[codex:903603] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:903603] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:903603] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:903603] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:903603] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:903603] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:903603] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:903603] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:903603] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:903603]
[codex:903603] For each finding, you MUST provide:
[codex:903603] 1. Exact file and line numbers of vulnerable code
[codex:903603] 2. Step-by-step exploit transaction sequence
[codex:903603] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:903603]
[codex:903603] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:903603]
[codex:903603] Output MUST be valid JSON matching the provided schema.
[codex:903603] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:903603] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:903603] mcp startup: no servers
[codex:903603]
[codex:903603] thinking
[codex:903603] **Reviewing instructions and audit file**
[codex:903603] exec
[codex:903603] /bin/bash -lc ls in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] AUDIT_BUNDLE.txt
[codex:903603] codex-output-schema.json
[codex:903603] contracts
[codex:903603] exec
[codex:903603] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:903603]
[codex:903603] ================================================================================
[codex:903603] FILE: contracts/contracts/L1/L1StandardBridge.sol
[codex:903603] ================================================================================
[codex:903603] // SPDX-License-Identifier: MIT
[codex:903603] pragma solidity 0.8.15;
[codex:903603]
[codex:903603] import { Predeploys } from "../libraries/Predeploys.sol";
[codex:903603] import { StandardBridge } from "../universal/StandardBridge.sol";
[codex:903603] import { Semver } from "../universal/Semver.sol";
[codex:903603] import { SafeCall } from "../libraries/SafeCall.sol";
[codex:903603] import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:903603] import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:903603] import { OptimismMintableERC20 } from "../universal/OptimismMintableERC20.sol";
[codex:903603] import { L2StandardBridge } from "../L2/L2StandardBridge.sol";
[codex:903603]
[codex:903603] /**
[codex:903603] * @custom:proxied
[codex:903603] * @title L1StandardBridge
[codex:903603]
[codex:903603] thinking
[codex:903603] **Starting audit bundle analysis**
[codex:903603] exec
[codex:903603] /bin/bash -lc 'rg -n "initialize|init" -S contracts' in /tmp/codex-multi-np0lhgsm succeeded in 11ms:
[codex:903603] contracts/node_modules/@rari-capital/solmate/src/utils/FixedPointMathLib.sol:290: let y := x // We start y at x, which will help us make our initial estimate.
[codex:903603] contracts/node_modules/@rari-capital/solmate/src/utils/FixedPointMathLib.sol:294: // This segment is to get a reasonable initial estimate for the Babylonian method. With a bad
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:2:// OpenZeppelin Contracts (last updated v4.7.0) (proxy/utils/Initializable.sol)
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:11: * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:12: * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:14: * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:15: * reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:16: * case an upgrade adds a module that needs to be initialized.
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:23: * function initialize() initializer public {
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:24: * __ERC20_init("MyToken", "MTK");
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:28: * function initializeV2() reinitializer(2) public {
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:29: * __ERC20Permit_init("MyToken");
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:34: * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:37: * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:38: * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:42: * Avoid leaving a contract uninitialized.
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:44: * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:46: * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:52: * _disableInitializers();
[codex:903603] contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:57:abstract contract Initializable {
[codex:903603]
[codex:903603] thinking
[codex:903603] **Preparing to analyze potential exploits**
[codex:903603] exec
[codex:903603] /bin/bash -lc 'rg --files contracts/contracts' in /tmp/codex-multi-np0lhgsm succeeded in 8ms:
[codex:903603] contracts/contracts/universal/StandardBridge.sol
[codex:903603] contracts/contracts/universal/Semver.sol
[codex:903603] contracts/contracts/universal/IOptimismMintableERC20.sol
[codex:903603] contracts/contracts/universal/CrossDomainMessenger.sol
[codex:903603] contracts/contracts/universal/OptimismMintableERC20.sol
[codex:903603] contracts/contracts/L2/L2StandardBridge.sol
[codex:903603] contracts/contracts/libraries/Types.sol
[codex:903603] contracts/contracts/libraries/Predeploys.sol
[codex:903603] contracts/contracts/libraries/Encoding.sol
[codex:903603] contracts/contracts/libraries/SafeCall.sol
[codex:903603] contracts/contracts/libraries/Burn.sol
[codex:903603] contracts/contracts/libraries/Constants.sol
[codex:903603] contracts/contracts/libraries/Arithmetic.sol
[codex:903603] contracts/contracts/libraries/Hashing.sol
[codex:903603] contracts/contracts/libraries/rlp/RLPWriter.sol
[codex:903603] contracts/contracts/L1/ResourceMetering.sol
[codex:903603] contracts/contracts/L1/L1StandardBridge.sol
[codex:903603]
[codex:903603] thinking
[codex:903603] **Examining bridge contract security**
[codex:903603] exec
[codex:903603] /bin/bash -lc 'rg -n "finalizeBridgeMNT|_initiateBridgeMNT|finalizeMantleWithdrawal" -n contracts/contracts/L1/L1StandardBridge.sol' in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] 299: function finalizeMantleWithdrawal(
[codex:903603] 305: finalizeBridgeMNT(_from, _to, _amount, _extraData);
[codex:903603] 414: _initiateBridgeMNT(_from, _to, _amount, _minGasLimit, _extraData);
[codex:903603] 562: _initiateBridgeMNT(msg.sender, msg.sender, _amount, _minGasLimit, _extraData);
[codex:903603] 581: _initiateBridgeMNT(msg.sender, _to, _amount, _minGasLimit, _extraData);
[codex:903603] 733: function finalizeBridgeMNT(
[codex:903603] 864: function _initiateBridgeMNT(
[codex:903603] 884: L2StandardBridge.finalizeBridgeMNT.selector,
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '700,910p' contracts/contracts/L1/L1StandardBridge.sol" in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] if (_isOptimismMintableERC20(_localToken)) {
[codex:903603] require(
[codex:903603] _isCorrectTokenPair(_localToken, _remoteToken),
[codex:903603] "StandardBridge: wrong remote token for Optimism Mintable ERC20 local token"
[codex:903603] );
[codex:903603]
[codex:903603] OptimismMintableERC20(_localToken).mint(_to, _amount);
[codex:903603] } else {
[codex:903603]
[codex:903603] uint256 balanceBefore = IERC20(_localToken).balanceOf(address(this));
[codex:903603] IERC20(_localToken).safeTransfer(_to, _amount);
[codex:903603] uint256 balanceAfter = IERC20(_localToken).balanceOf(address(this));
[codex:903603] uint256 sentAmount = balanceBefore - balanceAfter;
[codex:903603]
[codex:903603] deposits[_localToken][_remoteToken] = deposits[_localToken][_remoteToken] - sentAmount;
[codex:903603] }
[codex:903603]
[codex:903603] // Emit the correct events. By default this will be ERC20BridgeFinalized, but child
[codex:903603] // contracts may override this function in order to emit legacy events as well.
[codex:903603] _emitERC20BridgeFinalized(_localToken, _remoteToken, _from, _to, _amount, _extraData);
[codex:903603]
[codex:903603] thinking
[codex:903603] **Examining token transfer flow in L1StandardBridge**
[codex:903603] exec
[codex:903603] /bin/bash -lc 'rg -n "function sendMessage" -n contracts/contracts/universal/CrossDomainMessenger.sol' in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] 283: function sendMessage(
[codex:903603] 327: function sendMessage(
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '260,360p' contracts/contracts/universal/CrossDomainMessenger.sol" in /tmp/codex-multi-np0lhgsm succeeded in 5ms:
[codex:903603] *
[codex:903603] * @param msgHash Hash of the message that failed to be relayed.
[codex:903603] */
[codex:903603] event FailedRelayedMessage(bytes32 indexed msgHash);
[codex:903603]
[codex:903603] /**
[codex:903603] * @param _otherMessenger Address of the messenger on the paired chain.
[codex:903603] */
[codex:903603] constructor(address _otherMessenger) {
[codex:903603] OTHER_MESSENGER = _otherMessenger;
[codex:903603] }
[codex:903603]
[codex:903603] /**
[codex:903603] * @notice Sends a message to some target address on the other chain. Note that if the call
[codex:903603] * always reverts, then the message will be unrelayable, and any ETH sent will be
[codex:903603] * permanently locked. The same will occur if the target on the other chain is
[codex:903603] * considered unsafe (see the _isUnsafeTarget() function).
[codex:903603] *
[codex:903603] * @param _otherSideNativeTokenAmount Bridge the other side native token amount.
[codex:903603] * @param _target Target contract or wallet address.
[codex:903603]
[codex:903603] thinking
[codex:903603] **Analyzing CrossDomainMessenger sendMessage parameter**
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '1,220p' contracts/contracts/L2/L2StandardBridge.sol" in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] // SPDX-License-Identifier: MIT
[codex:903603] pragma solidity 0.8.15;
[codex:903603]
[codex:903603] import { Predeploys } from "../libraries/Predeploys.sol";
[codex:903603] import { StandardBridge } from "../universal/StandardBridge.sol";
[codex:903603] import { Semver } from "../universal/Semver.sol";
[codex:903603] import { SafeCall } from "../libraries/SafeCall.sol";
[codex:903603] import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:903603] import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:903603] import { OptimismMintableERC20 } from "../universal/OptimismMintableERC20.sol";
[codex:903603] import { L1StandardBridge } from "../L1/L1StandardBridge.sol";
[codex:903603]
[codex:903603] /**
[codex:903603] * @custom:proxied
[codex:903603] * @custom:predeploy 0x4200000000000000000000000000000000000010
[codex:903603] * @title L2StandardBridge
[codex:903603] * @notice The L2StandardBridge is responsible for transfering ETH and ERC20 tokens between L1 and
[codex:903603] * L2. In the case that an ERC20 token is native to L2, it will be escrowed within this
[codex:903603] * contract. If the ERC20 token is native to L1, it will be burnt.
[codex:903603] * NOTE: this contract is not intended to support all variations of ERC20 tokens. Examples
[codex:903603]
[codex:903603] thinking
[codex:903603] **Investigating withdraw flow restrictions**
[codex:903603] exec
[codex:903603] /bin/bash -lc 'rg -n "finalizeBridgeMNT" -n contracts/contracts/L2/L2StandardBridge.sol' in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] 162: finalizeBridgeMNT(_from, _to, _amount, _extraData);
[codex:903603] 279: L1StandardBridge.finalizeBridgeMNT.selector,
[codex:903603] 695: function finalizeBridgeMNT(
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '640,760p' contracts/contracts/L2/L2StandardBridge.sol" in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] _emitETHBridgeFinalized(_from, _to, _amount, _extraData);
[codex:903603]
[codex:903603] }
[codex:903603]
[codex:903603] /**
[codex:903603] * @notice Finalizes an ERC20 bridge on this chain. Can only be triggered by the other
[codex:903603] * StandardBridge contract on the remote chain.
[codex:903603] *
[codex:903603] * @param _localToken Address of the ERC20 on this chain.
[codex:903603] * @param _remoteToken Address of the corresponding token on the remote chain.
[codex:903603] * @param _from Address of the sender.
[codex:903603] * @param _to Address of the receiver.
[codex:903603] * @param _amount Amount of the ERC20 being bridged.
[codex:903603] * @param _extraData Extra data to be sent with the transaction. Note that the recipient will
[codex:903603] * not be triggered with this data, but it will be emitted and can be used
[codex:903603] * to identify the transaction.
[codex:903603] */
[codex:903603] function finalizeBridgeERC20(
[codex:903603] address _localToken,
[codex:903603] address _remoteToken,
[codex:903603]
[codex:903603] thinking
[codex:903603] **Analyzing token transfer logic in bridge functions**
[codex:903603]
[codex:903603] I'm examining how finalizeDeposit and finalizeBridgeMNT interact with msg.sender and the messenger role to ensure proper access and message flow. There’s a curious mismatch where finalizeBridgeMNT uses safeTransferFrom from the messenger address, but tokens seem held by the bridge contract, not the messenger. I'm checking whether the messenger actually holds tokens or if the flow involves transferring tokens to the messenger beforehand, possibly via the cross-domain messenger’s _sendMessage handling. This analysis might uncover unusual token custody or allowance setups tied to cross-domain messaging.
[codex:903603] exec
[codex:903603] /bin/bash -lc 'rg -n "_sendMessage" -n contracts/contracts/universal/CrossDomainMessenger.sol' in /tmp/codex-multi-np0lhgsm succeeded in 7ms:
[codex:903603] 293: _sendMessage(
[codex:903603] 336: _sendMessage(
[codex:903603] 570: function _sendMessage(
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '520,660p' contracts/contracts/universal/CrossDomainMessenger.sol" in /tmp/codex-multi-np0lhgsm succeeded in 5ms:
[codex:903603] * @param _minGasLimit Minimum desired gas limit when message goes to target.
[codex:903603] *
[codex:903603] * @return Amount of gas required to guarantee message receipt.
[codex:903603] */
[codex:903603] function baseGas(bytes calldata _message, uint32 _minGasLimit) public pure returns (uint64) {
[codex:903603] return
[codex:903603] // Constant overhead
[codex:903603] RELAY_CONSTANT_OVERHEAD +
[codex:903603] // Calldata overhead
[codex:903603] (uint64(_message.length) * MIN_GAS_CALLDATA_OVERHEAD) +
[codex:903603] // Hash message
[codex:903603] (uint64(_message.length) * HASH_MESSAGE_GAS_PER_BYTE) + HASH_MESSAGE_BASE_GAS +
[codex:903603] // Dynamic overhead (EIP-150)
[codex:903603] ((_minGasLimit * MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR) /
[codex:903603] MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR) +
[codex:903603] // Gas reserved for the worst-case cost of 3/5 of the `CALL` opcode's dynamic gas
[codex:903603] // factors. (Conservative)
[codex:903603] RELAY_CALL_OVERHEAD +
[codex:903603] // Relay reserved gas (to ensure execution of `relayMessage` completes after the
[codex:903603] // subcontext finishes executing) (Conservative)
[codex:903603]
[codex:903603] thinking
[codex:903603] **Analyzing token transfer roles in bridge and messenger**
[codex:903603] exec
[codex:903603] /bin/bash -lc 'rg -n "contract L1CrossDomainMessenger|L2CrossDomainMessenger" -S contracts/contracts' in /tmp/codex-multi-np0lhgsm succeeded in 9ms:
[codex:903603] contracts/contracts/libraries/Predeploys.sol:22: * @notice Address of the L2CrossDomainMessenger predeploy.
[codex:903603] contracts/contracts/libraries/Predeploys.sol:67: * @notice Address of the L1MessageSender predeploy. Deprecated. Use L2CrossDomainMessenger
[codex:903603]
[codex:903603] thinking
[codex:903603] **Investigating potential exploit vectors**
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '1,260p' contracts/contracts/universal/OptimismMintableERC20.sol" in /tmp/codex-multi-np0lhgsm succeeded in 5ms:
[codex:903603] // SPDX-License-Identifier: MIT
[codex:903603] pragma solidity 0.8.15;
[codex:903603]
[codex:903603] import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
[codex:903603] import { IERC165 } from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
[codex:903603] import { ILegacyMintableERC20, IOptimismMintableERC20 } from "./IOptimismMintableERC20.sol";
[codex:903603] import { Semver } from "../universal/Semver.sol";
[codex:903603]
[codex:903603] /**
[codex:903603] * @title OptimismMintableERC20
[codex:903603] * @notice OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed
[codex:903603] * to allow the StandardBridge contracts to mint and burn tokens. This makes it possible to
[codex:903603] * use an OptimismMintablERC20 as the L2 representation of an L1 token, or vice-versa.
[codex:903603] * Designed to be backwards compatible with the older StandardL2ERC20 token which was only
[codex:903603] * meant for use on L2.
[codex:903603] */
[codex:903603] contract OptimismMintableERC20 is IOptimismMintableERC20, ILegacyMintableERC20, ERC20, Semver {
[codex:903603] /**
[codex:903603] * @notice Address of the corresponding version of this token on the remote chain.
[codex:903603] */
[codex:903603]
[codex:903603] thinking
[codex:903603] **Reviewing bridge contract risks**
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '1,220p' contracts/contracts/universal/StandardBridge.sol" in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] // SPDX-License-Identifier: MIT
[codex:903603] pragma solidity 0.8.15;
[codex:903603]
[codex:903603] import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:903603] import { ERC165Checker } from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
[codex:903603] import { Address } from "@openzeppelin/contracts/utils/Address.sol";
[codex:903603] import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:903603] import { SafeCall } from "../libraries/SafeCall.sol";
[codex:903603] import { IOptimismMintableERC20, ILegacyMintableERC20 } from "./IOptimismMintableERC20.sol";
[codex:903603] import { CrossDomainMessenger } from "./CrossDomainMessenger.sol";
[codex:903603] import { OptimismMintableERC20 } from "./OptimismMintableERC20.sol";
[codex:903603] import { Predeploys } from "../libraries/Predeploys.sol";
[codex:903603]
[codex:903603] /**
[codex:903603] * @custom:upgradeable
[codex:903603] * @title StandardBridge
[codex:903603] * @notice StandardBridge is a base contract for the L1 and L2 standard ERC20 bridges. It handles
[codex:903603] * the core bridging logic, including escrowing tokens that are native to the local chain
[codex:903603] * and minting/burning tokens that are native to the remote chain.
[codex:903603] */
[codex:903603]
[codex:903603] thinking
[codex:903603] **Inspecting message relay logic**
[codex:903603] exec
[codex:903603] /bin/bash -lc 'rg -n "relayMessage" -n contracts/contracts/universal/CrossDomainMessenger.sol' in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] 150: * @notice Gas reserved for performing the external call in `relayMessage`.
[codex:903603] 155: * @notice Gas reserved for finalizing the execution of `relayMessage` after the safe call.
[codex:903603] 161: * call in `relayMessage`.
[codex:903603] 298: this.relayMessage.selector,
[codex:903603] 341: this.relayMessage.selector,
[codex:903603] 372: function relayMessage(
[codex:903603] 538: // Relay reserved gas (to ensure execution of `relayMessage` completes after the
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '360,520p' contracts/contracts/universal/CrossDomainMessenger.sol" in /tmp/codex-multi-np0lhgsm succeeded in 5ms:
[codex:903603] /**
[codex:903603] * @notice Relays a message that was sent by the other CrossDomainMessenger contract. Can only
[codex:903603] * be executed via cross-chain call from the other messenger OR if the message was
[codex:903603] * already received once and is currently being replayed.
[codex:903603] *
[codex:903603] * @param _nonce Nonce of the message being relayed.
[codex:903603] * @param _sender Address of the user who sent the message.
[codex:903603] * @param _target Address that the message is targeted at.
[codex:903603] * @param _value ETH value to send with the message.
[codex:903603] * @param _minGasLimit Minimum amount of gas that the message can be executed with.
[codex:903603] * @param _message Message to send to the target.
[codex:903603] */
[codex:903603] function relayMessage(
[codex:903603] uint256 _nonce,
[codex:903603] address _sender,
[codex:903603] address _target,
[codex:903603] uint256 _mntValue,
[codex:903603] uint256 _value,
[codex:903603] uint256 _minGasLimit,
[codex:903603] bytes calldata _message
[codex:903603]
[codex:903603] thinking
[codex:903603] **Analyzing potential reentrancy risks**
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '1,220p' contracts/contracts/L1/ResourceMetering.sol" in /tmp/codex-multi-np0lhgsm succeeded in 5ms:
[codex:903603] // SPDX-License-Identifier: MIT
[codex:903603] pragma solidity 0.8.15;
[codex:903603]
[codex:903603] import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
[codex:903603] import { Math } from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:903603] import { Burn } from "../libraries/Burn.sol";
[codex:903603] import { Arithmetic } from "../libraries/Arithmetic.sol";
[codex:903603]
[codex:903603] /**
[codex:903603] * @custom:upgradeable
[codex:903603] * @title ResourceMetering
[codex:903603] * @notice ResourceMetering implements an EIP-1559 style resource metering system where pricing
[codex:903603] * updates automatically based on current demand.
[codex:903603] */
[codex:903603] abstract contract ResourceMetering is Initializable {
[codex:903603] /**
[codex:903603] * @notice Represents the various parameters that control the way in which resources are
[codex:903603] * metered. Corresponds to the EIP-1559 resource metering system.
[codex:903603] *
[codex:903603] * @custom:field prevBaseFee Base fee from the previous block(s).
[codex:903603]
[codex:903603] thinking
[codex:903603] **Inspecting ResourceMetering charges**
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '1,200p' contracts/contracts/libraries/Burn.sol" in /tmp/codex-multi-np0lhgsm succeeded in 5ms:
[codex:903603] // SPDX-License-Identifier: MIT
[codex:903603] pragma solidity 0.8.15;
[codex:903603]
[codex:903603] /**
[codex:903603] * @title Burn
[codex:903603] * @notice Utilities for burning stuff.
[codex:903603] */
[codex:903603] library Burn {
[codex:903603] /**
[codex:903603] * Burns a given amount of MNT.
[codex:903603] *
[codex:903603] * @param _amount Amount of MNT to burn.
[codex:903603] */
[codex:903603] function mnt(uint256 _amount) internal {
[codex:903603] new Burner{ value: _amount }();
[codex:903603] }
[codex:903603]
[codex:903603] /**
[codex:903603] * Consumes a given amount of gas.
[codex:903603] *
[codex:903603]
[codex:903603] thinking
[codex:903603] **Analyzing cross-chain token bridging vulnerabilities**
[codex:903603] exec
[codex:903603] /bin/bash -lc 'rg -n "bridgeERC20" -n contracts/contracts/L2/L2StandardBridge.sol' in /tmp/codex-multi-np0lhgsm succeeded in 7ms:
[codex:903603] 99: * `bridgeERC20` function to bridge native L2 tokens to L1.
[codex:903603] 123: * `bridgeERC20To` function to bridge native L2 tokens to L1.
[codex:903603] 564: function bridgeERC20(
[codex:903603] 597: function bridgeERC20To(
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '520,640p' contracts/contracts/L2/L2StandardBridge.sol" in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] */
[codex:903603] function bridgeMNT(
[codex:903603] uint32 _minGasLimit,
[codex:903603] bytes calldata _extraData
[codex:903603] ) public payable onlyEOA {
[codex:903603] _initiateBridgeMNT(msg.sender, msg.sender, msg.value, _minGasLimit, _extraData);
[codex:903603] }
[codex:903603]
[codex:903603] /**
[codex:903603] * @notice Sends MNT to a receiver's address on the other chain. Note that if MNT is sent to a
[codex:903603] * smart contract and the call fails, the MNT will be temporarily locked in the
[codex:903603] * StandardBridge on the other chain until the call is replayed. If the call cannot be
[codex:903603] * replayed with any amount of gas (call always reverts), then the MNT will be
[codex:903603] * permanently locked in the StandardBridge on the other chain. MNT will also
[codex:903603] * be locked if the receiver is the other bridge, because finalizeBridgeETH will revert
[codex:903603] * in that case.
[codex:903603] * @param _to Address of the receiver.
[codex:903603] * @param _minGasLimit Minimum amount of gas that the bridge can be relayed with.
[codex:903603] * @param _extraData Extra data to be sent with the transaction. Note that the recipient will
[codex:903603] * not be triggered with this data, but it will be emitted and can be used
[codex:903603]
[codex:903603] thinking
[codex:903603] **Analyzing L2 bridge token validation**
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '260,360p' contracts/contracts/L2/L2StandardBridge.sol" in /tmp/codex-multi-np0lhgsm succeeded in 5ms:
[codex:903603] address _from,
[codex:903603] address _to,
[codex:903603] uint256 _amount,
[codex:903603] uint32 _minGasLimit,
[codex:903603] bytes memory _extraData
[codex:903603] ) internal override {
[codex:903603] require(
[codex:903603] msg.value == _amount,
[codex:903603] "StandardBridge: bridging MNT must include sufficient MNT value"
[codex:903603] );
[codex:903603]
[codex:903603] // Emit the correct events. By default this will be ERC20BridgeInitiated, but child
[codex:903603] // contracts may override this function in order to emit legacy events as well.
[codex:903603] _emitMNTBridgeInitiated(_from, _to, _amount, _extraData);
[codex:903603] uint256 zeroETHValue = 0;
[codex:903603] MESSENGER.sendMessage{value: msg.value}(
[codex:903603] zeroETHValue,
[codex:903603] address(OTHER_BRIDGE),
[codex:903603] abi.encodeWithSelector(
[codex:903603] L1StandardBridge.finalizeBridgeMNT.selector,
[codex:903603]
[codex:903603] thinking
[codex:903603] **Analyzing token bridging logic and deposit mappings**
[codex:903603]
[codex:903603] I'm tracing how different tokens are handled during cross-chain bridging—especially mintable vs. non-mintable tokens—and how deposit mappings and escrow balances interact. I’m examining potential for exploiting deposit accounting mismatches or malicious tokens to withdraw or manipulate funds, while also checking messaging flow between L1 and L2 contracts for vulnerabilities in finalizing bridges or access control.
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '1,180p' contracts/contracts/universal/CrossDomainMessenger.sol" in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] // SPDX-License-Identifier: MIT
[codex:903603] pragma solidity 0.8.15;
[codex:903603]
[codex:903603] import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:903603] import { SafeCall } from "../libraries/SafeCall.sol";
[codex:903603] import { Hashing } from "../libraries/Hashing.sol";
[codex:903603] import { Encoding } from "../libraries/Encoding.sol";
[codex:903603] import { Constants } from "../libraries/Constants.sol";
[codex:903603] import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:903603] import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:903603]
[codex:903603]
[codex:903603] /**
[codex:903603] * @custom:legacy
[codex:903603] * @title CrossDomainMessengerLegacySpacer0
[codex:903603] * @notice Contract only exists to add a spacer to the CrossDomainMessenger where the
[codex:903603] * libAddressManager variable used to exist. Must be the first contract in the inheritance
[codex:903603] * tree of the CrossDomainMessenger.
[codex:903603] */
[codex:903603] contract CrossDomainMessengerLegacySpacer0 {
[codex:903603]
[codex:903603] thinking
[codex:903603] **Investigating CrossDomainMessenger and IERC20 usage**
[codex:903603] exec
[codex:903603] /bin/bash -lc 'rg -n "MNT|mnt|native" contracts/contracts/universal/CrossDomainMessenger.sol' in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] 246: * @param mntValue MNT value sent along with the message to the recipient.
[codex:903603] 249: event SentMessageExtension1(address indexed sender, uint256 mntValue,uint256 ethValue);
[codex:903603] 278: * @param _otherSideNativeTokenAmount Bridge the other side native token amount.
[codex:903603] 376: uint256 _mntValue,
[codex:903603] 403: _mntValue,
[codex:903603] 565: * @param _otherSideNativeTokenAmount Bridge the other side native token amount.
[codex:903603]
[codex:903603] thinking
[codex:903603] **Examining CrossDomainMessenger events and token handling**
[codex:903603] exec
[codex:903603] /bin/bash -lc "sed -n '200,320p' contracts/contracts/universal/CrossDomainMessenger.sol" in /tmp/codex-multi-np0lhgsm succeeded in 6ms:
[codex:903603] */
[codex:903603] address internal pauseOwner_spacer;
[codex:903603]
[codex:903603] /**
[codex:903603] * @notice Nonce for the next message to be sent, without the message version applied. Use the
[codex:903603] * messageNonce getter which will insert the message version into the nonce to give you
[codex:903603] * the actual nonce to be used for the message.
[codex:903603] */
[codex:903603] uint240 internal msgNonce;
[codex:903603]
[codex:903603] /**
[codex:903603] * @notice Mapping of message hashes to a boolean if and only if the message has failed to be
[codex:903603] * executed at least once. A message will not be present in this mapping if it
[codex:903603] * successfully executed on the first attempt.
[codex:903603] */
[codex:903603] mapping(bytes32 => bool) public failedMessages;
[codex:903603]
[codex:903603] /**
[codex:903603] * @notice Reserve extra slots in the storage layout for future upgrades.
[codex:903603] * A gap size of 41 was chosen here, so that the first slot used in a child contract
[codex:903603]
[codex:903603]
[codex:903603] thinking
[codex:903603] **Analyzing cross-chain messaging and bridging logic**
[codex:903603] thinking
[codex:903603] **Reviewing message replay, reentrancy, and initialization risks**
[codex:903603]
[codex:903603] I'll carefully check for possible message replay via failedMessages flags, reentrancy attacks especially involving token callbacks in finalizeBridgeERC20, and missing initializer vulnerabilities in upgradeable contracts. After reviewing cross-domain messenger flow, onlyEOA restrictions, and transfer mechanics, I see no concrete exploit that yields profit. I'll prepare a JSON output confirming no findings with a brief summary.
[codex:903603] exec
[codex:903603] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-np0lhgsm succeeded in 5ms:
[codex:903603] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:903603]
[codex:903603] thinking
[codex:903603] **Preparing JSON output compliance**
[codex:903603] codex
[codex:903603] {"no_findings":true,"summary":"No concrete, exploitable profit path identified after reviewing AUDIT_BUNDLE.txt.","findings":[]}
[codex:903603] tokens used
[codex:903603] 92,232
[codex:903603] {"no_findings":true,"summary":"No concrete, exploitable profit path identified after reviewing AUDIT_BUNDLE.txt.","findings":[]}
{
"codex": {
"ran_at": "2025-12-31T16:32:23.661665+00:00",
"returncode": 0
},
"summary": "No concrete, exploitable profit path identified after reviewing AUDIT_BUNDLE.txt.",
"raw_final": {
"summary": "No concrete, exploitable profit path identified after reviewing AUDIT_BUNDLE.txt.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x019a 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x87087623 00000019: GT 0000001a: PUSH2 0x00e1 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xac6986c5 00000024: GT 00000025: PUSH2 0x008a 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xc8beb965 0000002f: GT 00000030: PUSH2 0x0064 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xc8beb965 0000003a: EQ 0000003b: PUSH2 0x05dc 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xe11013dd 00000045: EQ 00000046: PUSH2 0x05ef 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf407a99e 00000050: EQ 00000051: PUSH2 0x0602 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf82b418e 0000005b: EQ 0000005c: PUSH2 0x0615 0000005f: JUMPI 00000060: PUSH1 0x00 00000062: DUP1 00000063: REVERT 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xac6986c5 0000006b: EQ 0000006c: PUSH2 0x0582 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xb1a1a882 00000076: EQ 00000077: PUSH2 0x05b6 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xb6a611e9 00000081: EQ 00000082: PUSH2 0x05c9 00000085: JUMPI 00000086: PUSH1 0x00 00000088: DUP1 00000089: REVERT 0000008a: JUMPDEST 0000008b: DUP1 0000008c: PUSH4 0x927ede2d 00000091: GT 00000092: PUSH2 0x00bb 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0x927ede2d 0000009c: EQ 0000009d: PUSH2 0x051b 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x9a2ac6d5 000000a7: EQ 000000a8: PUSH2 0x054f 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xa9f9e675 000000b2: EQ 000000b3: PUSH2 0x0562 000000b6: JUMPI 000000b7: PUSH1 0x00 000000b9: DUP1 000000ba: REVERT 000000bb: JUMPDEST 000000bc: DUP1 000000bd: PUSH4 0x87087623 000000c2: EQ 000000c3: PUSH2 0x0482 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0x8f601f66 000000cd: EQ 000000ce: PUSH2 0x04a2 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0x91c49bf8 000000d8: EQ 000000d9: PUSH2 0x04e8 000000dc: JUMPI 000000dd: PUSH1 0x00 000000df: DUP1 000000e0: REVERT 000000e1: JUMPDEST 000000e2: DUP1 000000e3: PUSH4 0x540abf73 000000e8: GT 000000e9: PUSH2 0x0143 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0x69516df5 000000f3: GT 000000f4: PUSH2 0x011d 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0x69516df5 000000fe: EQ 000000ff: PUSH2 0x041b 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0x7f46ddb2 00000109: EQ 0000010a: PUSH2 0x042e 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x838b2520 00000114: EQ 00000115: PUSH2 0x0462 00000118: JUMPI 00000119: PUSH1 0x00 0000011b: DUP1 0000011c: REVERT 0000011d: JUMPDEST 0000011e: DUP1 0000011f: PUSH4 0x540abf73 00000124: EQ 00000125: PUSH2 0x03b9 00000128: JUMPI 00000129: DUP1 0000012a: PUSH4 0x54fd4d50 0000012f: EQ 00000130: PUSH2 0x03d9 00000133: JUMPI 00000134: DUP1 00000135: PUSH4 0x58a997f6 0000013a: EQ 0000013b: PUSH2 0x03fb 0000013e: JUMPI 0000013f: PUSH1 0x00 00000141: DUP1 00000142: REVERT 00000143: JUMPDEST 00000144: DUP1 00000145: PUSH4 0x1635f5fd 0000014a: GT 0000014b: PUSH2 0x0174 0000014e: JUMPI 0000014f: DUP1 00000150: PUSH4 0x1635f5fd 00000155: EQ 00000156: PUSH2 0x032d 00000159: JUMPI 0000015a: DUP1 0000015b: PUSH4 0x24e00ccb 00000160: EQ 00000161: PUSH2 0x0340 00000164: JUMPI 00000165: DUP1 00000166: PUSH4 0x3cb747bf 0000016b: EQ 0000016c: PUSH2 0x0360 0000016f: JUMPI 00000170: PUSH1 0x00 00000172: DUP1 00000173: REVERT 00000174: JUMPDEST 00000175: DUP1 00000176: PUSH4 0x0166a07a 0000017b: EQ 0000017c: PUSH2 0x02e7 0000017f: JUMPI 00000180: DUP1 00000181: PUSH4 0x09fc8843 00000186: EQ 00000187: PUSH2 0x0307 0000018a: JUMPI 0000018b: DUP1 0000018c: PUSH4 0x1532ec34 00000191: EQ 00000192: PUSH2 0x031a 00000195: JUMPI 00000196: PUSH1 0x00 00000198: DUP1 00000199: REVERT 0000019a: JUMPDEST 0000019b: CALLDATASIZE 0000019c: PUSH2 0x02e2 0000019f: JUMPI 000001a0: CALLER 000001a1: EXTCODESIZE 000001a2: ISZERO 000001a3: PUSH2 0x0233 000001a6: JUMPI 000001a7: PUSH1 0x40 000001a9: MLOAD 000001aa: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000001cb: DUP2 000001cc: MSTORE 000001cd: PUSH1 0x20 000001cf: PUSH1 0x04 000001d1: DUP3 000001d2: ADD 000001d3: MSTORE 000001d4: PUSH1 0x37 000001d6: PUSH1 0x24 000001d8: DUP3 000001d9: ADD 000001da: MSTORE 000001db: PUSH32 0x5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c 000001fc: PUSH1 0x44 000001fe: DUP3 000001ff: ADD 00000200: MSTORE 00000201: PUSH32 0x792062652063616c6c65642066726f6d20616e20454f41000000000000000000 00000222: PUSH1 0x64 00000224: DUP3 00000225: ADD 00000226: MSTORE 00000227: PUSH1 0x84 00000229: ADD 0000022a: JUMPDEST 0000022b: PUSH1 0x40 0000022d: MLOAD 0000022e: DUP1 0000022f: SWAP2 00000230: SUB 00000231: SWAP1 00000232: REVERT 00000233: JUMPDEST 00000234: CALLER 00000235: ORIGIN 00000236: EQ 00000237: PUSH2 0x02c2 0000023a: JUMPI 0000023b: PUSH1 0x40 0000023d: MLOAD 0000023e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000025f: DUP2 00000260: MSTORE 00000261: PUSH1 0x20 00000263: PUSH1 0x04 00000265: DUP3 00000266: ADD 00000267: MSTORE 00000268: PUSH1 0x32 0000026a: PUSH1 0x24 0000026c: DUP3 0000026d: ADD 0000026e: MSTORE 0000026f: PUSH32 0x5374616e646172644272696467653a206d73672073656e646572206d75737420 00000290: PUSH1 0x44 00000292: DUP3 00000293: ADD 00000294: MSTORE 00000295: PUSH32 0x657175616c20746f207478206f726967696e0000000000000000000000000000 000002b6: PUSH1 0x64 000002b8: DUP3 000002b9: ADD 000002ba: MSTORE 000002bb: PUSH1 0x84 000002bd: ADD 000002be: PUSH2 0x022a 000002c1: JUMP 000002c2: JUMPDEST 000002c3: PUSH2 0x02e0 000002c6: CALLER 000002c7: CALLER 000002c8: PUSH3 0x030d40 000002cc: PUSH1 0x40 000002ce: MLOAD 000002cf: DUP1 000002d0: PUSH1 0x20 000002d2: ADD 000002d3: PUSH1 0x40 000002d5: MSTORE 000002d6: DUP1 000002d7: PUSH1 0x00 000002d9: DUP2 000002da: MSTORE 000002db: POP 000002dc: PUSH2 0x0628 000002df: JUMP 000002e0: JUMPDEST 000002e1: STOP 000002e2: JUMPDEST 000002e3: PUSH1 0x00 000002e5: DUP1 000002e6: REVERT 000002e7: JUMPDEST 000002e8: CALLVALUE 000002e9: DUP1 000002ea: ISZERO 000002eb: PUSH2 0x02f3 000002ee: JUMPI 000002ef: PUSH1 0x00 000002f1: DUP1 000002f2: REVERT 000002f3: JUMPDEST 000002f4: POP 000002f5: PUSH2 0x02e0 000002f8: PUSH2 0x0302 000002fb: CALLDATASIZE 000002fc: PUSH1 0x04 000002fe: PUSH2 0x3892 00000301: JUMP 00000302: JUMPDEST 00000303: PUSH2 0x063b 00000306: JUMP 00000307: JUMPDEST 00000308: PUSH2 0x02e0 0000030b: PUSH2 0x0315 0000030e: CALLDATASIZE 0000030f: PUSH1 0x04 00000311: PUSH2 0x3943 00000314: JUMP 00000315: JUMPDEST 00000316: PUSH2 0x0b7a 00000319: JUMP 0000031a: JUMPDEST 0000031b: PUSH2 0x02e0 0000031e: PUSH2 0x0328 00000321: CALLDATASIZE 00000322: PUSH1 0x04 00000324: PUSH2 0x3996 00000327: JUMP 00000328: JUMPDEST 00000329: PUSH2 0x0ce0 0000032c: JUMP 0000032d: JUMPDEST 0000032e: PUSH2 0x02e0 00000331: PUSH2 0x033b 00000334: CALLDATASIZE 00000335: PUSH1 0x04 00000337: PUSH2 0x3996 0000033a: JUMP 0000033b: JUMPDEST 0000033c: PUSH2 0x0cf4 0000033f: JUMP 00000340: JUMPDEST 00000341: CALLVALUE 00000342: DUP1 00000343: ISZERO 00000344: PUSH2 0x034c 00000347: JUMPI 00000348: PUSH1 0x00 0000034a: DUP1 0000034b: REVERT 0000034c: JUMPDEST 0000034d: POP 0000034e: PUSH2 0x02e0 00000351: PUSH2 0x035b 00000354: CALLDATASIZE 00000355: PUSH1 0x04 00000357: PUSH2 0x3a09 0000035a: JUMP 0000035b: JUMPDEST 0000035c: PUSH2 0x11c9 0000035f: JUMP 00000360: JUMPDEST 00000361: CALLVALUE 00000362: DUP1 00000363: ISZERO 00000364: PUSH2 0x036c 00000367: JUMPI 00000368: PUSH1 0x00 0000036a: DUP1 0000036b: REVERT 0000036c: JUMPDEST 0000036d: POP 0000036e: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 0000038f: JUMPDEST 00000390: PUSH1 0x40 00000392: MLOAD 00000393: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003a8: SWAP1 000003a9: SWAP2 000003aa: AND 000003ab: DUP2 000003ac: MSTORE 000003ad: PUSH1 0x20 000003af: ADD 000003b0: JUMPDEST 000003b1: PUSH1 0x40 000003b3: MLOAD 000003b4: DUP1 000003b5: SWAP2 000003b6: SUB 000003b7: SWAP1 000003b8: RETURN 000003b9: JUMPDEST 000003ba: CALLVALUE 000003bb: DUP1 000003bc: ISZERO 000003bd: PUSH2 0x03c5 000003c0: JUMPI 000003c1: PUSH1 0x00 000003c3: DUP1 000003c4: REVERT 000003c5: JUMPDEST 000003c6: POP 000003c7: PUSH2 0x02e0 000003ca: PUSH2 0x03d4 000003cd: CALLDATASIZE 000003ce: PUSH1 0x04 000003d0: PUSH2 0x3a63 000003d3: JUMP 000003d4: JUMPDEST 000003d5: PUSH2 0x132a 000003d8: JUMP 000003d9: JUMPDEST 000003da: CALLVALUE 000003db: DUP1 000003dc: ISZERO 000003dd: PUSH2 0x03e5 000003e0: JUMPI 000003e1: PUSH1 0x00 000003e3: DUP1 000003e4: REVERT 000003e5: JUMPDEST 000003e6: POP 000003e7: PUSH2 0x03ee 000003ea: PUSH2 0x136f 000003ed: JUMP 000003ee: JUMPDEST 000003ef: PUSH1 0x40 000003f1: MLOAD 000003f2: PUSH2 0x03b0 000003f5: SWAP2 000003f6: SWAP1 000003f7: PUSH2 0x3b50 000003fa: JUMP 000003fb: JUMPDEST 000003fc: CALLVALUE 000003fd: DUP1 000003fe: ISZERO 000003ff: PUSH2 0x0407 00000402: JUMPI 00000403: PUSH1 0x00 00000405: DUP1 00000406: REVERT 00000407: JUMPDEST 00000408: POP 00000409: PUSH2 0x02e0 0000040c: PUSH2 0x0416 0000040f: CALLDATASIZE 00000410: PUSH1 0x04 00000412: PUSH2 0x3b63 00000415: JUMP 00000416: JUMPDEST 00000417: PUSH2 0x1412 0000041a: JUMP 0000041b: JUMPDEST 0000041c: PUSH2 0x02e0 0000041f: PUSH2 0x0429 00000422: CALLDATASIZE 00000423: PUSH1 0x04 00000425: PUSH2 0x3be6 00000428: JUMP 00000429: JUMPDEST 0000042a: PUSH2 0x1575 0000042d: JUMP 0000042e: JUMPDEST 0000042f: CALLVALUE 00000430: DUP1 00000431: ISZERO 00000432: PUSH2 0x043a 00000435: JUMPI 00000436: PUSH1 0x00 00000438: DUP1 00000439: REVERT 0000043a: JUMPDEST 0000043b: POP 0000043c: PUSH2 0x038f 0000043f: PUSH32 0x0000000000000000000000004200000000000000000000000000000000000010 00000460: DUP2 00000461: JUMP 00000462: JUMPDEST 00000463: CALLVALUE 00000464: DUP1 00000465: ISZERO 00000466: PUSH2 0x046e 00000469: JUMPI 0000046a: PUSH1 0x00 0000046c: DUP1 0000046d: REVERT 0000046e: JUMPDEST 0000046f: POP 00000470: PUSH2 0x02e0 00000473: PUSH2 0x047d 00000476: CALLDATASIZE 00000477: PUSH1 0x04 00000479: PUSH2 0x3a63 0000047c: JUMP 0000047d: JUMPDEST 0000047e: PUSH2 0x15b8 00000481: JUMP 00000482: JUMPDEST 00000483: CALLVALUE 00000484: DUP1 00000485: ISZERO 00000486: PUSH2 0x048e 00000489: JUMPI 0000048a: PUSH1 0x00 0000048c: DUP1 0000048d: REVERT 0000048e: JUMPDEST 0000048f: POP 00000490: PUSH2 0x02e0 00000493: PUSH2 0x049d 00000496: CALLDATASIZE 00000497: PUSH1 0x04 00000499: PUSH2 0x3b63 0000049c: JUMP 0000049d: JUMPDEST 0000049e: PUSH2 0x15fd 000004a1: JUMP 000004a2: JUMPDEST 000004a3: CALLVALUE 000004a4: DUP1 000004a5: ISZERO 000004a6: PUSH2 0x04ae 000004a9: JUMPI 000004aa: PUSH1 0x00 000004ac: DUP1 000004ad: REVERT 000004ae: JUMPDEST 000004af: POP 000004b0: PUSH2 0x04da 000004b3: PUSH2 0x04bd 000004b6: CALLDATASIZE 000004b7: PUSH1 0x04 000004b9: PUSH2 0x3c3a 000004bc: JUMP 000004bd: JUMPDEST 000004be: PUSH1 0x03 000004c0: PUSH1 0x20 000004c2: SWAP1 000004c3: DUP2 000004c4: MSTORE 000004c5: PUSH1 0x00 000004c7: SWAP3 000004c8: DUP4 000004c9: MSTORE 000004ca: PUSH1 0x40 000004cc: DUP1 000004cd: DUP5 000004ce: KECCAK256 000004cf: SWAP1 000004d0: SWAP2 000004d1: MSTORE 000004d2: SWAP1 000004d3: DUP3 000004d4: MSTORE 000004d5: SWAP1 000004d6: KECCAK256 000004d7: SLOAD 000004d8: DUP2 000004d9: JUMP 000004da: JUMPDEST 000004db: PUSH1 0x40 000004dd: MLOAD 000004de: SWAP1 000004df: DUP2 000004e0: MSTORE 000004e1: PUSH1 0x20 000004e3: ADD 000004e4: PUSH2 0x03b0 000004e7: JUMP 000004e8: JUMPDEST 000004e9: CALLVALUE 000004ea: DUP1 000004eb: ISZERO 000004ec: PUSH2 0x04f4 000004ef: JUMPI 000004f0: PUSH1 0x00 000004f2: DUP1 000004f3: REVERT 000004f4: JUMPDEST 000004f5: POP 000004f6: PUSH32 0x0000000000000000000000004200000000000000000000000000000000000010 00000517: PUSH2 0x038f 0000051a: JUMP 0000051b: JUMPDEST 0000051c: CALLVALUE 0000051d: DUP1 0000051e: ISZERO 0000051f: PUSH2 0x0527 00000522: JUMPI 00000523: PUSH1 0x00 00000525: DUP1 00000526: REVERT 00000527: JUMPDEST 00000528: POP 00000529: PUSH2 0x038f 0000052c: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 0000054d: DUP2 0000054e: JUMP 0000054f: JUMPDEST 00000550: PUSH2 0x02e0 00000553: PUSH2 0x055d 00000556: CALLDATASIZE 00000557: PUSH1 0x04 00000559: PUSH2 0x3c73 0000055c: JUMP 0000055d: JUMPDEST 0000055e: PUSH2 0x1760 00000561: JUMP 00000562: JUMPDEST 00000563: CALLVALUE 00000564: DUP1 00000565: ISZERO 00000566: PUSH2 0x056e 00000569: JUMPI 0000056a: PUSH1 0x00 0000056c: DUP1 0000056d: REVERT 0000056e: JUMPDEST 0000056f: POP 00000570: PUSH2 0x02e0 00000573: PUSH2 0x057d 00000576: CALLDATASIZE 00000577: PUSH1 0x04 00000579: PUSH2 0x3892 0000057c: JUMP 0000057d: JUMPDEST 0000057e: PUSH2 0x17a2 00000581: JUMP 00000582: JUMPDEST 00000583: CALLVALUE 00000584: DUP1 00000585: ISZERO 00000586: PUSH2 0x058e 00000589: JUMPI 0000058a: PUSH1 0x00 0000058c: DUP1 0000058d: REVERT 0000058e: JUMPDEST 0000058f: POP 00000590: PUSH2 0x038f 00000593: PUSH32 0x0000000000000000000000003c3a81e81dc49a522a592e7622a7e711c06bf354 000005b4: DUP2 000005b5: JUMP 000005b6: JUMPDEST 000005b7: PUSH2 0x02e0 000005ba: PUSH2 0x05c4 000005bd: CALLDATASIZE 000005be: PUSH1 0x04 000005c0: PUSH2 0x3943 000005c3: JUMP 000005c4: JUMPDEST 000005c5: PUSH2 0x17b1 000005c8: JUMP 000005c9: JUMPDEST 000005ca: PUSH2 0x02e0 000005cd: PUSH2 0x05d7 000005d0: CALLDATASIZE 000005d1: PUSH1 0x04 000005d3: PUSH2 0x3be6 000005d6: JUMP 000005d7: JUMPDEST 000005d8: PUSH2 0x1911 000005db: JUMP 000005dc: JUMPDEST 000005dd: PUSH2 0x02e0 000005e0: PUSH2 0x05ea 000005e3: CALLDATASIZE 000005e4: PUSH1 0x04 000005e6: PUSH2 0x3a09 000005e9: JUMP 000005ea: JUMPDEST 000005eb: PUSH2 0x1954 000005ee: JUMP 000005ef: JUMPDEST 000005f0: PUSH2 0x02e0 000005f3: PUSH2 0x05fd 000005f6: CALLDATASIZE 000005f7: PUSH1 0x04 000005f9: PUSH2 0x3c73 000005fc: JUMP 000005fd: JUMPDEST 000005fe: PUSH2 0x1ab5 00000601: JUMP 00000602: JUMPDEST 00000603: PUSH2 0x02e0 00000606: PUSH2 0x0610 00000609: CALLDATASIZE 0000060a: PUSH1 0x04 0000060c: PUSH2 0x3996 0000060f: JUMP 00000610: JUMPDEST 00000611: PUSH2 0x1af8 00000614: JUMP 00000615: JUMPDEST 00000616: PUSH2 0x02e0 00000619: PUSH2 0x0623 0000061c: CALLDATASIZE 0000061d: PUSH1 0x04 0000061f: PUSH2 0x3996 00000622: JUMP 00000623: JUMPDEST 00000624: PUSH2 0x1eec 00000627: JUMP 00000628: JUMPDEST 00000629: PUSH2 0x0635 0000062c: DUP5 0000062d: DUP5 0000062e: CALLVALUE 0000062f: DUP6 00000630: DUP6 00000631: PUSH2 0x1ef9 00000634: JUMP 00000635: JUMPDEST 00000636: POP 00000637: POP 00000638: POP 00000639: POP 0000063a: JUMP 0000063b: JUMPDEST 0000063c: CALLER 0000063d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000652: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 00000673: AND 00000674: EQ 00000675: DUP1 00000676: ISZERO 00000677: PUSH2 0x0759 0000067a: JUMPI 0000067b: POP 0000067c: PUSH32 0x0000000000000000000000004200000000000000000000000000000000000010 0000069d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006b2: AND 000006b3: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 000006d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006e9: AND 000006ea: PUSH4 0x6e296e45 000006ef: PUSH1 0x40 000006f1: MLOAD 000006f2: DUP2 000006f3: PUSH4 0xffffffff 000006f8: AND 000006f9: PUSH1 0xe0 000006fb: SHL 000006fc: DUP2 000006fd: MSTORE 000006fe: PUSH1 0x04 00000700: ADD 00000701: PUSH1 0x20 00000703: PUSH1 0x40 00000705: MLOAD 00000706: DUP1 00000707: DUP4 00000708: SUB 00000709: DUP2 0000070a: DUP7 0000070b: GAS 0000070c: STATICCALL 0000070d: ISZERO 0000070e: DUP1 0000070f: ISZERO 00000710: PUSH2 0x071d 00000713: JUMPI 00000714: RETURNDATASIZE 00000715: PUSH1 0x00 00000717: DUP1 00000718: RETURNDATACOPY 00000719: RETURNDATASIZE 0000071a: PUSH1 0x00 0000071c: REVERT 0000071d: JUMPDEST 0000071e: POP 0000071f: POP 00000720: POP 00000721: POP 00000722: PUSH1 0x40 00000724: MLOAD 00000725: RETURNDATASIZE 00000726: PUSH1 0x1f 00000728: NOT 00000729: PUSH1 0x1f 0000072b: DUP3 0000072c: ADD 0000072d: AND 0000072e: DUP3 0000072f: ADD 00000730: DUP1 00000731: PUSH1 0x40 00000733: MSTORE 00000734: POP 00000735: DUP2 00000736: ADD 00000737: SWAP1 00000738: PUSH2 0x0741 0000073b: SWAP2 0000073c: SWAP1 0000073d: PUSH2 0x3ca2 00000740: JUMP 00000741: JUMPDEST 00000742: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000757: AND 00000758: EQ 00000759: JUMPDEST 0000075a: PUSH2 0x080b 0000075d: JUMPI 0000075e: PUSH1 0x40 00000760: MLOAD 00000761: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000782: DUP2 00000783: MSTORE 00000784: PUSH1 0x20 00000786: PUSH1 0x04 00000788: DUP3 00000789: ADD 0000078a: MSTORE 0000078b: PUSH1 0x41 0000078d: PUSH1 0x24 0000078f: DUP3 00000790: ADD 00000791: MSTORE 00000792: PUSH32 0x5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c 000007b3: PUSH1 0x44 000007b5: DUP3 000007b6: ADD 000007b7: MSTORE 000007b8: PUSH32 0x792062652063616c6c65642066726f6d20746865206f74686572206272696467 000007d9: PUSH1 0x64 000007db: DUP3 000007dc: ADD 000007dd: MSTORE 000007de: PUSH32 0x6500000000000000000000000000000000000000000000000000000000000000 000007ff: PUSH1 0x84 00000801: DUP3 00000802: ADD 00000803: MSTORE 00000804: PUSH1 0xa4 00000806: ADD 00000807: PUSH2 0x022a 0000080a: JUMP 0000080b: JUMPDEST 0000080c: PUSH2 0x0814 0000080f: DUP8 00000810: PUSH2 0x20e4 00000813: JUMP 00000814: JUMPDEST 00000815: ISZERO 00000816: PUSH2 0x0962 00000819: JUMPI 0000081a: PUSH2 0x0823 0000081d: DUP8 0000081e: DUP8 0000081f: PUSH2 0x2146 00000822: JUMP 00000823: JUMPDEST 00000824: PUSH2 0x08d5 00000827: JUMPI 00000828: PUSH1 0x40 0000082a: MLOAD 0000082b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000084c: DUP2 0000084d: MSTORE 0000084e: PUSH1 0x20 00000850: PUSH1 0x04 00000852: DUP3 00000853: ADD 00000854: MSTORE 00000855: PUSH1 0x4a 00000857: PUSH1 0x24 00000859: DUP3 0000085a: ADD 0000085b: MSTORE 0000085c: PUSH32 0x5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b 0000087d: PUSH1 0x44 0000087f: DUP3 00000880: ADD 00000881: MSTORE 00000882: PUSH32 0x656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c 000008a3: PUSH1 0x64 000008a5: DUP3 000008a6: ADD 000008a7: MSTORE 000008a8: PUSH32 0x6f63616c20746f6b656e00000000000000000000000000000000000000000000 000008c9: PUSH1 0x84 000008cb: DUP3 000008cc: ADD 000008cd: MSTORE 000008ce: PUSH1 0xa4 000008d0: ADD 000008d1: PUSH2 0x022a 000008d4: JUMP 000008d5: JUMPDEST 000008d6: PUSH1 0x40 000008d8: MLOAD 000008d9: PUSH32 0x40c10f1900000000000000000000000000000000000000000000000000000000 000008fa: DUP2 000008fb: MSTORE 000008fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000911: DUP6 00000912: DUP2 00000913: AND 00000914: PUSH1 0x04 00000916: DUP4 00000917: ADD 00000918: MSTORE 00000919: PUSH1 0x24 0000091b: DUP3 0000091c: ADD 0000091d: DUP6 0000091e: SWAP1 0000091f: MSTORE 00000920: DUP9 00000921: AND 00000922: SWAP1 00000923: PUSH4 0x40c10f19 00000928: SWAP1 00000929: PUSH1 0x44 0000092b: ADD 0000092c: PUSH1 0x00 0000092e: PUSH1 0x40 00000930: MLOAD 00000931: DUP1 00000932: DUP4 00000933: SUB 00000934: DUP2 00000935: PUSH1 0x00 00000937: DUP8 00000938: DUP1 00000939: EXTCODESIZE 0000093a: ISZERO 0000093b: DUP1 0000093c: ISZERO 0000093d: PUSH2 0x0945 00000940: JUMPI 00000941: PUSH1 0x00 00000943: DUP1 00000944: REVERT 00000945: JUMPDEST 00000946: POP 00000947: GAS 00000948: CALL 00000949: ISZERO 0000094a: DUP1 0000094b: ISZERO 0000094c: PUSH2 0x0959 0000094f: JUMPI 00000950: RETURNDATASIZE 00000951: PUSH1 0x00 00000953: DUP1 00000954: RETURNDATACOPY 00000955: RETURNDATASIZE 00000956: PUSH1 0x00 00000958: REVERT 00000959: JUMPDEST 0000095a: POP 0000095b: POP 0000095c: POP 0000095d: POP 0000095e: PUSH2 0x0b2d 00000961: JUMP 00000962: JUMPDEST 00000963: PUSH1 0x40 00000965: MLOAD 00000966: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00000987: DUP2 00000988: MSTORE 00000989: ADDRESS 0000098a: PUSH1 0x04 0000098c: DUP3 0000098d: ADD 0000098e: MSTORE 0000098f: PUSH1 0x00 00000991: SWAP1 00000992: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009a7: DUP10 000009a8: AND 000009a9: SWAP1 000009aa: PUSH4 0x70a08231 000009af: SWAP1 000009b0: PUSH1 0x24 000009b2: ADD 000009b3: PUSH1 0x20 000009b5: PUSH1 0x40 000009b7: MLOAD 000009b8: DUP1 000009b9: DUP4 000009ba: SUB 000009bb: DUP2 000009bc: DUP7 000009bd: GAS 000009be: STATICCALL 000009bf: ISZERO 000009c0: DUP1 000009c1: ISZERO 000009c2: PUSH2 0x09cf 000009c5: JUMPI 000009c6: RETURNDATASIZE 000009c7: PUSH1 0x00 000009c9: DUP1 000009ca: RETURNDATACOPY 000009cb: RETURNDATASIZE 000009cc: PUSH1 0x00 000009ce: REVERT 000009cf: JUMPDEST 000009d0: POP 000009d1: POP 000009d2: POP 000009d3: POP 000009d4: PUSH1 0x40 000009d6: MLOAD 000009d7: RETURNDATASIZE 000009d8: PUSH1 0x1f 000009da: NOT 000009db: PUSH1 0x1f 000009dd: DUP3 000009de: ADD 000009df: AND 000009e0: DUP3 000009e1: ADD 000009e2: DUP1 000009e3: PUSH1 0x40 000009e5: MSTORE 000009e6: POP 000009e7: DUP2 000009e8: ADD 000009e9: SWAP1 000009ea: PUSH2 0x09f3 000009ed: SWAP2 000009ee: SWAP1 000009ef: PUSH2 0x3cbf 000009f2: JUMP 000009f3: JUMPDEST 000009f4: SWAP1 000009f5: POP 000009f6: PUSH2 0x0a16 000009f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a0e: DUP10 00000a0f: AND 00000a10: DUP7 00000a11: DUP7 00000a12: PUSH2 0x2266 00000a15: JUMP 00000a16: JUMPDEST 00000a17: PUSH1 0x40 00000a19: MLOAD 00000a1a: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00000a3b: DUP2 00000a3c: MSTORE 00000a3d: ADDRESS 00000a3e: PUSH1 0x04 00000a40: DUP3 00000a41: ADD 00000a42: MSTORE 00000a43: PUSH1 0x00 00000a45: SWAP1 00000a46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a5b: DUP11 00000a5c: AND 00000a5d: SWAP1 00000a5e: PUSH4 0x70a08231 00000a63: SWAP1 00000a64: PUSH1 0x24 00000a66: ADD 00000a67: PUSH1 0x20 00000a69: PUSH1 0x40 00000a6b: MLOAD 00000a6c: DUP1 00000a6d: DUP4 00000a6e: SUB 00000a6f: DUP2 00000a70: DUP7 00000a71: GAS 00000a72: STATICCALL 00000a73: ISZERO 00000a74: DUP1 00000a75: ISZERO 00000a76: PUSH2 0x0a83 00000a79: JUMPI 00000a7a: RETURNDATASIZE 00000a7b: PUSH1 0x00 00000a7d: DUP1 00000a7e: RETURNDATACOPY 00000a7f: RETURNDATASIZE 00000a80: PUSH1 0x00 00000a82: REVERT 00000a83: JUMPDEST 00000a84: POP 00000a85: POP 00000a86: POP 00000a87: POP 00000a88: PUSH1 0x40 00000a8a: MLOAD 00000a8b: RETURNDATASIZE 00000a8c: PUSH1 0x1f 00000a8e: NOT 00000a8f: PUSH1 0x1f 00000a91: DUP3 00000a92: ADD 00000a93: AND 00000a94: DUP3 00000a95: ADD 00000a96: DUP1 00000a97: PUSH1 0x40 00000a99: MSTORE 00000a9a: POP 00000a9b: DUP2 00000a9c: ADD 00000a9d: SWAP1 00000a9e: PUSH2 0x0aa7 00000aa1: SWAP2 00000aa2: SWAP1 00000aa3: PUSH2 0x3cbf 00000aa6: JUMP 00000aa7: JUMPDEST 00000aa8: SWAP1 00000aa9: POP 00000aaa: PUSH1 0x00 00000aac: PUSH2 0x0ab5 00000aaf: DUP3 00000ab0: DUP5 00000ab1: PUSH2 0x3d07 00000ab4: JUMP 00000ab5: JUMPDEST 00000ab6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000acb: DUP1 00000acc: DUP13 00000acd: AND 00000ace: PUSH1 0x00 00000ad0: SWAP1 00000ad1: DUP2 00000ad2: MSTORE 00000ad3: PUSH1 0x03 00000ad5: PUSH1 0x20 00000ad7: SWAP1 00000ad8: DUP2 00000ad9: MSTORE 00000ada: PUSH1 0x40 00000adc: DUP1 00000add: DUP4 00000ade: KECCAK256 00000adf: SWAP4 00000ae0: DUP15 00000ae1: AND 00000ae2: DUP4 00000ae3: MSTORE 00000ae4: SWAP3 00000ae5: SWAP1 00000ae6: MSTORE 00000ae7: KECCAK256 00000ae8: SLOAD 00000ae9: SWAP1 00000aea: SWAP2 00000aeb: POP 00000aec: PUSH2 0x0af6 00000aef: SWAP1 00000af0: DUP3 00000af1: SWAP1 00000af2: PUSH2 0x3d07 00000af5: JUMP 00000af6: JUMPDEST 00000af7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b0c: DUP1 00000b0d: DUP13 00000b0e: AND 00000b0f: PUSH1 0x00 00000b11: SWAP1 00000b12: DUP2 00000b13: MSTORE 00000b14: PUSH1 0x03 00000b16: PUSH1 0x20 00000b18: SWAP1 00000b19: DUP2 00000b1a: MSTORE 00000b1b: PUSH1 0x40 00000b1d: DUP1 00000b1e: DUP4 00000b1f: KECCAK256 00000b20: SWAP4 00000b21: DUP15 00000b22: AND 00000b23: DUP4 00000b24: MSTORE 00000b25: SWAP3 00000b26: SWAP1 00000b27: MSTORE 00000b28: KECCAK256 00000b29: SSTORE 00000b2a: POP 00000b2b: POP 00000b2c: POP 00000b2d: JUMPDEST 00000b2e: PUSH2 0x0b71 00000b31: DUP8 00000b32: DUP8 00000b33: DUP8 00000b34: DUP8 00000b35: DUP8 00000b36: DUP8 00000b37: DUP8 00000b38: DUP1 00000b39: DUP1 00000b3a: PUSH1 0x1f 00000b3c: ADD 00000b3d: PUSH1 0x20 00000b3f: DUP1 00000b40: SWAP2 00000b41: DIV 00000b42: MUL 00000b43: PUSH1 0x20 00000b45: ADD 00000b46: PUSH1 0x40 00000b48: MLOAD 00000b49: SWAP1 00000b4a: DUP2 00000b4b: ADD 00000b4c: PUSH1 0x40 00000b4e: MSTORE 00000b4f: DUP1 00000b50: SWAP4 00000b51: SWAP3 00000b52: SWAP2 00000b53: SWAP1 00000b54: DUP2 00000b55: DUP2 00000b56: MSTORE 00000b57: PUSH1 0x20 00000b59: ADD 00000b5a: DUP4 00000b5b: DUP4 00000b5c: DUP1 00000b5d: DUP3 00000b5e: DUP5 00000b5f: CALLDATACOPY 00000b60: PUSH1 0x00 00000b62: SWAP3 00000b63: ADD 00000b64: SWAP2 00000b65: SWAP1 00000b66: SWAP2 00000b67: MSTORE 00000b68: POP 00000b69: PUSH2 0x233a 00000b6c: SWAP3 00000b6d: POP 00000b6e: POP 00000b6f: POP 00000b70: JUMP 00000b71: JUMPDEST 00000b72: POP 00000b73: POP 00000b74: POP 00000b75: POP 00000b76: POP 00000b77: POP 00000b78: POP 00000b79: JUMP 00000b7a: JUMPDEST 00000b7b: CALLER 00000b7c: EXTCODESIZE 00000b7d: ISZERO 00000b7e: PUSH2 0x0c09 00000b81: JUMPI 00000b82: PUSH1 0x40 00000b84: MLOAD 00000b85: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000ba6: DUP2 00000ba7: MSTORE 00000ba8: PUSH1 0x20 00000baa: PUSH1 0x04 00000bac: DUP3 00000bad: ADD 00000bae: MSTORE 00000baf: PUSH1 0x37 00000bb1: PUSH1 0x24 00000bb3: DUP3 00000bb4: ADD 00000bb5: MSTORE 00000bb6: PUSH32 0x5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c 00000bd7: PUSH1 0x44 00000bd9: DUP3 00000bda: ADD 00000bdb: MSTORE 00000bdc: PUSH32 0x792062652063616c6c65642066726f6d20616e20454f41000000000000000000 00000bfd: PUSH1 0x64 00000bff: DUP3 00000c00: ADD 00000c01: MSTORE 00000c02: PUSH1 0x84 00000c04: ADD 00000c05: PUSH2 0x022a 00000c08: JUMP 00000c09: JUMPDEST 00000c0a: CALLER 00000c0b: ORIGIN 00000c0c: EQ 00000c0d: PUSH2 0x0c98 00000c10: JUMPI 00000c11: PUSH1 0x40 00000c13: MLOAD 00000c14: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000c35: DUP2 00000c36: MSTORE 00000c37: PUSH1 0x20 00000c39: PUSH1 0x04 00000c3b: DUP3 00000c3c: ADD 00000c3d: MSTORE 00000c3e: PUSH1 0x32 00000c40: PUSH1 0x24 00000c42: DUP3 00000c43: ADD 00000c44: MSTORE 00000c45: PUSH32 0x5374616e646172644272696467653a206d73672073656e646572206d75737420 00000c66: PUSH1 0x44 00000c68: DUP3 00000c69: ADD 00000c6a: MSTORE 00000c6b: PUSH32 0x657175616c20746f207478206f726967696e0000000000000000000000000000 00000c8c: PUSH1 0x64 00000c8e: DUP3 00000c8f: ADD 00000c90: MSTORE 00000c91: PUSH1 0x84 00000c93: ADD 00000c94: PUSH2 0x022a 00000c97: JUMP 00000c98: JUMPDEST 00000c99: PUSH2 0x0cdb 00000c9c: CALLER 00000c9d: CALLER 00000c9e: CALLVALUE 00000c9f: DUP7 00000ca0: DUP7 00000ca1: DUP7 00000ca2: DUP1 00000ca3: DUP1 00000ca4: PUSH1 0x1f 00000ca6: ADD 00000ca7: PUSH1 0x20 00000ca9: DUP1 00000caa: SWAP2 00000cab: DIV 00000cac: MUL 00000cad: PUSH1 0x20 00000caf: ADD 00000cb0: PUSH1 0x40 00000cb2: MLOAD 00000cb3: SWAP1 00000cb4: DUP2 00000cb5: ADD 00000cb6: PUSH1 0x40 00000cb8: MSTORE 00000cb9: DUP1 00000cba: SWAP4 00000cbb: SWAP3 00000cbc: SWAP2 00000cbd: SWAP1 00000cbe: DUP2 00000cbf: DUP2 00000cc0: MSTORE 00000cc1: PUSH1 0x20 00000cc3: ADD 00000cc4: DUP4 00000cc5: DUP4 00000cc6: DUP1 00000cc7: DUP3 00000cc8: DUP5 00000cc9: CALLDATACOPY 00000cca: PUSH1 0x00 00000ccc: SWAP3 00000ccd: ADD 00000cce: SWAP2 00000ccf: SWAP1 00000cd0: SWAP2 00000cd1: MSTORE 00000cd2: POP 00000cd3: PUSH2 0x1ef9 00000cd6: SWAP3 00000cd7: POP 00000cd8: POP 00000cd9: POP 00000cda: JUMP 00000cdb: JUMPDEST 00000cdc: POP 00000cdd: POP 00000cde: POP 00000cdf: JUMP 00000ce0: JUMPDEST 00000ce1: PUSH2 0x0ced 00000ce4: DUP6 00000ce5: DUP6 00000ce6: DUP6 00000ce7: DUP6 00000ce8: DUP6 00000ce9: PUSH2 0x0cf4 00000cec: JUMP 00000ced: JUMPDEST 00000cee: POP 00000cef: POP 00000cf0: POP 00000cf1: POP 00000cf2: POP 00000cf3: JUMP 00000cf4: JUMPDEST 00000cf5: CALLER 00000cf6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d0b: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 00000d2c: AND 00000d2d: EQ 00000d2e: DUP1 00000d2f: ISZERO 00000d30: PUSH2 0x0e12 00000d33: JUMPI 00000d34: POP 00000d35: PUSH32 0x0000000000000000000000004200000000000000000000000000000000000010 00000d56: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d6b: AND 00000d6c: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 00000d8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000da2: AND 00000da3: PUSH4 0x6e296e45 00000da8: PUSH1 0x40 00000daa: MLOAD 00000dab: DUP2 00000dac: PUSH4 0xffffffff 00000db1: AND 00000db2: PUSH1 0xe0 00000db4: SHL 00000db5: DUP2 00000db6: MSTORE 00000db7: PUSH1 0x04 00000db9: ADD 00000dba: PUSH1 0x20 00000dbc: PUSH1 0x40 00000dbe: MLOAD 00000dbf: DUP1 00000dc0: DUP4 00000dc1: SUB 00000dc2: DUP2 00000dc3: DUP7 00000dc4: GAS 00000dc5: STATICCALL 00000dc6: ISZERO 00000dc7: DUP1 00000dc8: ISZERO 00000dc9: PUSH2 0x0dd6 00000dcc: JUMPI 00000dcd: RETURNDATASIZE 00000dce: PUSH1 0x00 00000dd0: DUP1 00000dd1: RETURNDATACOPY 00000dd2: RETURNDATASIZE 00000dd3: PUSH1 0x00 00000dd5: REVERT 00000dd6: JUMPDEST 00000dd7: POP 00000dd8: POP 00000dd9: POP 00000dda: POP 00000ddb: PUSH1 0x40 00000ddd: MLOAD 00000dde: RETURNDATASIZE 00000ddf: PUSH1 0x1f 00000de1: NOT 00000de2: PUSH1 0x1f 00000de4: DUP3 00000de5: ADD 00000de6: AND 00000de7: DUP3 00000de8: ADD 00000de9: DUP1 00000dea: PUSH1 0x40 00000dec: MSTORE 00000ded: POP 00000dee: DUP2 00000def: ADD 00000df0: SWAP1 00000df1: PUSH2 0x0dfa 00000df4: SWAP2 00000df5: SWAP1 00000df6: PUSH2 0x3ca2 00000df9: JUMP 00000dfa: JUMPDEST 00000dfb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e10: AND 00000e11: EQ 00000e12: JUMPDEST 00000e13: PUSH2 0x0ec4 00000e16: JUMPI 00000e17: PUSH1 0x40 00000e19: MLOAD 00000e1a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000e3b: DUP2 00000e3c: MSTORE 00000e3d: PUSH1 0x20 00000e3f: PUSH1 0x04 00000e41: DUP3 00000e42: ADD 00000e43: MSTORE 00000e44: PUSH1 0x41 00000e46: PUSH1 0x24 00000e48: DUP3 00000e49: ADD 00000e4a: MSTORE 00000e4b: PUSH32 0x5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c 00000e6c: PUSH1 0x44 00000e6e: DUP3 00000e6f: ADD 00000e70: MSTORE 00000e71: PUSH32 0x792062652063616c6c65642066726f6d20746865206f74686572206272696467 00000e92: PUSH1 0x64 00000e94: DUP3 00000e95: ADD 00000e96: MSTORE 00000e97: PUSH32 0x6500000000000000000000000000000000000000000000000000000000000000 00000eb8: PUSH1 0x84 00000eba: DUP3 00000ebb: ADD 00000ebc: MSTORE 00000ebd: PUSH1 0xa4 00000ebf: ADD 00000ec0: PUSH2 0x022a 00000ec3: JUMP 00000ec4: JUMPDEST 00000ec5: DUP3 00000ec6: CALLVALUE 00000ec7: EQ 00000ec8: PUSH2 0x0f53 00000ecb: JUMPI 00000ecc: PUSH1 0x40 00000ece: MLOAD 00000ecf: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000ef0: DUP2 00000ef1: MSTORE 00000ef2: PUSH1 0x20 00000ef4: PUSH1 0x04 00000ef6: DUP3 00000ef7: ADD 00000ef8: MSTORE 00000ef9: PUSH1 0x3a 00000efb: PUSH1 0x24 00000efd: DUP3 00000efe: ADD 00000eff: MSTORE 00000f00: PUSH32 0x5374616e646172644272696467653a20616d6f756e742073656e7420646f6573 00000f21: PUSH1 0x44 00000f23: DUP3 00000f24: ADD 00000f25: MSTORE 00000f26: PUSH32 0x206e6f74206d6174636820616d6f756e74207265717569726564000000000000 00000f47: PUSH1 0x64 00000f49: DUP3 00000f4a: ADD 00000f4b: MSTORE 00000f4c: PUSH1 0x84 00000f4e: ADD 00000f4f: PUSH2 0x022a 00000f52: JUMP 00000f53: JUMPDEST 00000f54: ADDRESS 00000f55: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f6a: DUP6 00000f6b: AND 00000f6c: SUB 00000f6d: PUSH2 0x0ff8 00000f70: JUMPI 00000f71: PUSH1 0x40 00000f73: MLOAD 00000f74: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000f95: DUP2 00000f96: MSTORE 00000f97: PUSH1 0x20 00000f99: PUSH1 0x04 00000f9b: DUP3 00000f9c: ADD 00000f9d: MSTORE 00000f9e: PUSH1 0x23 00000fa0: PUSH1 0x24 00000fa2: DUP3 00000fa3: ADD 00000fa4: MSTORE 00000fa5: PUSH32 0x5374616e646172644272696467653a2063616e6e6f742073656e6420746f2073 00000fc6: PUSH1 0x44 00000fc8: DUP3 00000fc9: ADD 00000fca: MSTORE 00000fcb: PUSH32 0x656c660000000000000000000000000000000000000000000000000000000000 00000fec: PUSH1 0x64 00000fee: DUP3 00000fef: ADD 00000ff0: MSTORE 00000ff1: PUSH1 0x84 00000ff3: ADD 00000ff4: PUSH2 0x022a 00000ff7: JUMP 00000ff8: JUMPDEST 00000ff9: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 0000101a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000102f: AND 00001030: DUP5 00001031: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001046: AND 00001047: SUB 00001048: PUSH2 0x10d3 0000104b: JUMPI 0000104c: PUSH1 0x40 0000104e: MLOAD 0000104f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001070: DUP2 00001071: MSTORE 00001072: PUSH1 0x20 00001074: PUSH1 0x04 00001076: DUP3 00001077: ADD 00001078: MSTORE 00001079: PUSH1 0x28 0000107b: PUSH1 0x24 0000107d: DUP3 0000107e: ADD 0000107f: MSTORE 00001080: PUSH32 0x5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d 000010a1: PUSH1 0x44 000010a3: DUP3 000010a4: ADD 000010a5: MSTORE 000010a6: PUSH32 0x657373656e676572000000000000000000000000000000000000000000000000 000010c7: PUSH1 0x64 000010c9: DUP3 000010ca: ADD 000010cb: MSTORE 000010cc: PUSH1 0x84 000010ce: ADD 000010cf: PUSH2 0x022a 000010d2: JUMP 000010d3: JUMPDEST 000010d4: PUSH2 0x1115 000010d7: DUP6 000010d8: DUP6 000010d9: DUP6 000010da: DUP6 000010db: DUP6 000010dc: DUP1 000010dd: DUP1 000010de: PUSH1 0x1f 000010e0: ADD 000010e1: PUSH1 0x20 000010e3: DUP1 000010e4: SWAP2 000010e5: DIV 000010e6: MUL 000010e7: PUSH1 0x20 000010e9: ADD 000010ea: PUSH1 0x40 000010ec: MLOAD 000010ed: SWAP1 000010ee: DUP2 000010ef: ADD 000010f0: PUSH1 0x40 000010f2: MSTORE 000010f3: DUP1 000010f4: SWAP4 000010f5: SWAP3 000010f6: SWAP2 000010f7: SWAP1 000010f8: DUP2 000010f9: DUP2 000010fa: MSTORE 000010fb: PUSH1 0x20 000010fd: ADD 000010fe: DUP4 000010ff: DUP4 00001100: DUP1 00001101: DUP3 00001102: DUP5 00001103: CALLDATACOPY 00001104: PUSH1 0x00 00001106: SWAP3 00001107: ADD 00001108: SWAP2 00001109: SWAP1 0000110a: SWAP2 0000110b: MSTORE 0000110c: POP 0000110d: PUSH2 0x23c8 00001110: SWAP3 00001111: POP 00001112: POP 00001113: POP 00001114: JUMP 00001115: JUMPDEST 00001116: PUSH1 0x00 00001118: PUSH2 0x1132 0000111b: DUP6 0000111c: GAS 0000111d: DUP7 0000111e: PUSH1 0x40 00001120: MLOAD 00001121: DUP1 00001122: PUSH1 0x20 00001124: ADD 00001125: PUSH1 0x40 00001127: MSTORE 00001128: DUP1 00001129: PUSH1 0x00 0000112b: DUP2 0000112c: MSTORE 0000112d: POP 0000112e: PUSH2 0x243b 00001131: JUMP 00001132: JUMPDEST 00001133: SWAP1 00001134: POP 00001135: DUP1 00001136: PUSH2 0x11c1 00001139: JUMPI 0000113a: PUSH1 0x40 0000113c: MLOAD 0000113d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000115e: DUP2 0000115f: MSTORE 00001160: PUSH1 0x20 00001162: PUSH1 0x04 00001164: DUP3 00001165: ADD 00001166: MSTORE 00001167: PUSH1 0x23 00001169: PUSH1 0x24 0000116b: DUP3 0000116c: ADD 0000116d: MSTORE 0000116e: PUSH32 0x5374616e646172644272696467653a20455448207472616e7366657220666169 0000118f: PUSH1 0x44 00001191: DUP3 00001192: ADD 00001193: MSTORE 00001194: PUSH32 0x6c65640000000000000000000000000000000000000000000000000000000000 000011b5: PUSH1 0x64 000011b7: DUP3 000011b8: ADD 000011b9: MSTORE 000011ba: PUSH1 0x84 000011bc: ADD 000011bd: PUSH2 0x022a 000011c0: JUMP 000011c1: JUMPDEST 000011c2: POP 000011c3: POP 000011c4: POP 000011c5: POP 000011c6: POP 000011c7: POP 000011c8: JUMP 000011c9: JUMPDEST 000011ca: CALLER 000011cb: EXTCODESIZE 000011cc: ISZERO 000011cd: PUSH2 0x1258 000011d0: JUMPI 000011d1: PUSH1 0x40 000011d3: MLOAD 000011d4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000011f5: DUP2 000011f6: MSTORE 000011f7: PUSH1 0x20 000011f9: PUSH1 0x04 000011fb: DUP3 000011fc: ADD 000011fd: MSTORE 000011fe: PUSH1 0x37 00001200: PUSH1 0x24 00001202: DUP3 00001203: ADD 00001204: MSTORE 00001205: PUSH32 0x5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c 00001226: PUSH1 0x44 00001228: DUP3 00001229: ADD 0000122a: MSTORE 0000122b: PUSH32 0x792062652063616c6c65642066726f6d20616e20454f41000000000000000000 0000124c: PUSH1 0x64 0000124e: DUP3 0000124f: ADD 00001250: MSTORE 00001251: PUSH1 0x84 00001253: ADD 00001254: PUSH2 0x022a 00001257: JUMP 00001258: JUMPDEST 00001259: CALLER 0000125a: ORIGIN 0000125b: EQ 0000125c: PUSH2 0x12e7 0000125f: JUMPI 00001260: PUSH1 0x40 00001262: MLOAD 00001263: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001284: DUP2 00001285: MSTORE 00001286: PUSH1 0x20 00001288: PUSH1 0x04 0000128a: DUP3 0000128b: ADD 0000128c: MSTORE 0000128d: PUSH1 0x32 0000128f: PUSH1 0x24 00001291: DUP3 00001292: ADD 00001293: MSTORE 00001294: PUSH32 0x5374616e646172644272696467653a206d73672073656e646572206d75737420 000012b5: PUSH1 0x44 000012b7: DUP3 000012b8: ADD 000012b9: MSTORE 000012ba: PUSH32 0x657175616c20746f207478206f726967696e0000000000000000000000000000 000012db: PUSH1 0x64 000012dd: DUP3 000012de: ADD 000012df: MSTORE 000012e0: PUSH1 0x84 000012e2: ADD 000012e3: PUSH2 0x022a 000012e6: JUMP 000012e7: JUMPDEST 000012e8: PUSH2 0x0635 000012eb: CALLER 000012ec: CALLER 000012ed: DUP7 000012ee: DUP7 000012ef: DUP7 000012f0: DUP7 000012f1: DUP1 000012f2: DUP1 000012f3: PUSH1 0x1f 000012f5: ADD 000012f6: PUSH1 0x20 000012f8: DUP1 000012f9: SWAP2 000012fa: DIV 000012fb: MUL 000012fc: PUSH1 0x20 000012fe: ADD 000012ff: PUSH1 0x40 00001301: MLOAD 00001302: SWAP1 00001303: DUP2 00001304: ADD 00001305: PUSH1 0x40 00001307: MSTORE 00001308: DUP1 00001309: SWAP4 0000130a: SWAP3 0000130b: SWAP2 0000130c: SWAP1 0000130d: DUP2 0000130e: DUP2 0000130f: MSTORE 00001310: PUSH1 0x20 00001312: ADD 00001313: DUP4 00001314: DUP4 00001315: DUP1 00001316: DUP3 00001317: DUP5 00001318: CALLDATACOPY 00001319: PUSH1 0x00 0000131b: SWAP3 0000131c: ADD 0000131d: SWAP2 0000131e: SWAP1 0000131f: SWAP2 00001320: MSTORE 00001321: POP 00001322: PUSH2 0x2455 00001325: SWAP3 00001326: POP 00001327: POP 00001328: POP 00001329: JUMP 0000132a: JUMPDEST 0000132b: PUSH2 0x0b71 0000132e: DUP8 0000132f: DUP8 00001330: CALLER 00001331: DUP9 00001332: DUP9 00001333: DUP9 00001334: DUP9 00001335: DUP9 00001336: DUP1 00001337: DUP1 00001338: PUSH1 0x1f 0000133a: ADD 0000133b: PUSH1 0x20 0000133d: DUP1 0000133e: SWAP2 0000133f: DIV 00001340: MUL 00001341: PUSH1 0x20 00001343: ADD 00001344: PUSH1 0x40 00001346: MLOAD 00001347: SWAP1 00001348: DUP2 00001349: ADD 0000134a: PUSH1 0x40 0000134c: MSTORE 0000134d: DUP1 0000134e: SWAP4 0000134f: SWAP3 00001350: SWAP2 00001351: SWAP1 00001352: DUP2 00001353: DUP2 00001354: MSTORE 00001355: PUSH1 0x20 00001357: ADD 00001358: DUP4 00001359: DUP4 0000135a: DUP1 0000135b: DUP3 0000135c: DUP5 0000135d: CALLDATACOPY 0000135e: PUSH1 0x00 00001360: SWAP3 00001361: ADD 00001362: SWAP2 00001363: SWAP1 00001364: SWAP2 00001365: MSTORE 00001366: POP 00001367: PUSH2 0x2462 0000136a: SWAP3 0000136b: POP 0000136c: POP 0000136d: POP 0000136e: JUMP 0000136f: JUMPDEST 00001370: PUSH1 0x60 00001372: PUSH2 0x139a 00001375: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 00001396: PUSH2 0x2abe 00001399: JUMP 0000139a: JUMPDEST 0000139b: PUSH2 0x13c3 0000139e: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 000013bf: PUSH2 0x2abe 000013c2: JUMP 000013c3: JUMPDEST 000013c4: PUSH2 0x13ec 000013c7: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000000 000013e8: PUSH2 0x2abe 000013eb: JUMP 000013ec: JUMPDEST 000013ed: PUSH1 0x40 000013ef: MLOAD 000013f0: PUSH1 0x20 000013f2: ADD 000013f3: PUSH2 0x13fe 000013f6: SWAP4 000013f7: SWAP3 000013f8: SWAP2 000013f9: SWAP1 000013fa: PUSH2 0x3d1e 000013fd: JUMP 000013fe: JUMPDEST 000013ff: PUSH1 0x40 00001401: MLOAD 00001402: PUSH1 0x20 00001404: DUP2 00001405: DUP4 00001406: SUB 00001407: SUB 00001408: DUP2 00001409: MSTORE 0000140a: SWAP1 0000140b: PUSH1 0x40 0000140d: MSTORE 0000140e: SWAP1 0000140f: POP 00001410: SWAP1 00001411: JUMP 00001412: JUMPDEST 00001413: CALLER 00001414: EXTCODESIZE 00001415: ISZERO 00001416: PUSH2 0x14a1 00001419: JUMPI 0000141a: PUSH1 0x40 0000141c: MLOAD 0000141d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000143e: DUP2 0000143f: MSTORE 00001440: PUSH1 0x20 00001442: PUSH1 0x04 00001444: DUP3 00001445: ADD 00001446: MSTORE 00001447: PUSH1 0x37 00001449: PUSH1 0x24 0000144b: DUP3 0000144c: ADD 0000144d: MSTORE 0000144e: PUSH32 0x5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c 0000146f: PUSH1 0x44 00001471: DUP3 00001472: ADD 00001473: MSTORE 00001474: PUSH32 0x792062652063616c6c65642066726f6d20616e20454f41000000000000000000 00001495: PUSH1 0x64 00001497: DUP3 00001498: ADD 00001499: MSTORE 0000149a: PUSH1 0x84 0000149c: ADD 0000149d: PUSH2 0x022a 000014a0: JUMP 000014a1: JUMPDEST 000014a2: CALLER 000014a3: ORIGIN 000014a4: EQ 000014a5: PUSH2 0x1530 000014a8: JUMPI 000014a9: PUSH1 0x40 000014ab: MLOAD 000014ac: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000014cd: DUP2 000014ce: MSTORE 000014cf: PUSH1 0x20 000014d1: PUSH1 0x04 000014d3: DUP3 000014d4: ADD 000014d5: MSTORE 000014d6: PUSH1 0x32 000014d8: PUSH1 0x24 000014da: DUP3 000014db: ADD 000014dc: MSTORE 000014dd: PUSH32 0x5374616e646172644272696467653a206d73672073656e646572206d75737420 000014fe: PUSH1 0x44 00001500: DUP3 00001501: ADD 00001502: MSTORE 00001503: PUSH32 0x657175616c20746f207478206f726967696e0000000000000000000000000000 00001524: PUSH1 0x64 00001526: DUP3 00001527: ADD 00001528: MSTORE 00001529: PUSH1 0x84 0000152b: ADD 0000152c: PUSH2 0x022a 0000152f: JUMP 00001530: JUMPDEST 00001531: PUSH2 0x11c1 00001534: DUP7 00001535: DUP7 00001536: CALLER 00001537: CALLER 00001538: DUP9 00001539: DUP9 0000153a: DUP9 0000153b: DUP9 0000153c: DUP1 0000153d: DUP1 0000153e: PUSH1 0x1f 00001540: ADD 00001541: PUSH1 0x20 00001543: DUP1 00001544: SWAP2 00001545: DIV 00001546: MUL 00001547: PUSH1 0x20 00001549: ADD 0000154a: PUSH1 0x40 0000154c: MLOAD 0000154d: SWAP1 0000154e: DUP2 0000154f: ADD 00001550: PUSH1 0x40 00001552: MSTORE 00001553: DUP1 00001554: SWAP4 00001555: SWAP3 00001556: SWAP2 00001557: SWAP1 00001558: DUP2 00001559: DUP2 0000155a: MSTORE 0000155b: PUSH1 0x20 0000155d: ADD 0000155e: DUP4 0000155f: DUP4 00001560: DUP1 00001561: DUP3 00001562: DUP5 00001563: CALLDATACOPY 00001564: PUSH1 0x00 00001566: SWAP3 00001567: ADD 00001568: SWAP2 00001569: SWAP1 0000156a: SWAP2 0000156b: MSTORE 0000156c: POP 0000156d: PUSH2 0x2bfb 00001570: SWAP3 00001571: POP 00001572: POP 00001573: POP 00001574: JUMP 00001575: JUMPDEST 00001576: PUSH2 0x0ced 00001579: CALLER 0000157a: DUP7 0000157b: DUP7 0000157c: DUP7 0000157d: DUP7 0000157e: DUP7 0000157f: DUP1 00001580: DUP1 00001581: PUSH1 0x1f 00001583: ADD 00001584: PUSH1 0x20 00001586: DUP1 00001587: SWAP2 00001588: DIV 00001589: MUL 0000158a: PUSH1 0x20 0000158c: ADD 0000158d: PUSH1 0x40 0000158f: MLOAD 00001590: SWAP1 00001591: DUP2 00001592: ADD 00001593: PUSH1 0x40 00001595: MSTORE 00001596: DUP1 00001597: SWAP4 00001598: SWAP3 00001599: SWAP2 0000159a: SWAP1 0000159b: DUP2 0000159c: DUP2 0000159d: MSTORE 0000159e: PUSH1 0x20 000015a0: ADD 000015a1: DUP4 000015a2: DUP4 000015a3: DUP1 000015a4: DUP3 000015a5: DUP5 000015a6: CALLDATACOPY 000015a7: PUSH1 0x00 000015a9: SWAP3 000015aa: ADD 000015ab: SWAP2 000015ac: SWAP1 000015ad: SWAP2 000015ae: MSTORE 000015af: POP 000015b0: PUSH2 0x2455 000015b3: SWAP3 000015b4: POP 000015b5: POP 000015b6: POP 000015b7: JUMP 000015b8: JUMPDEST 000015b9: PUSH2 0x0b71 000015bc: DUP8 000015bd: DUP8 000015be: CALLER 000015bf: DUP9 000015c0: DUP9 000015c1: DUP9 000015c2: DUP9 000015c3: DUP9 000015c4: DUP1 000015c5: DUP1 000015c6: PUSH1 0x1f 000015c8: ADD 000015c9: PUSH1 0x20 000015cb: DUP1 000015cc: SWAP2 000015cd: DIV 000015ce: MUL 000015cf: PUSH1 0x20 000015d1: ADD 000015d2: PUSH1 0x40 000015d4: MLOAD 000015d5: SWAP1 000015d6: DUP2 000015d7: ADD 000015d8: PUSH1 0x40 000015da: MSTORE 000015db: DUP1 000015dc: SWAP4 000015dd: SWAP3 000015de: SWAP2 000015df: SWAP1 000015e0: DUP2 000015e1: DUP2 000015e2: MSTORE 000015e3: PUSH1 0x20 000015e5: ADD 000015e6: DUP4 000015e7: DUP4 000015e8: DUP1 000015e9: DUP3 000015ea: DUP5 000015eb: CALLDATACOPY 000015ec: PUSH1 0x00 000015ee: SWAP3 000015ef: ADD 000015f0: SWAP2 000015f1: SWAP1 000015f2: SWAP2 000015f3: MSTORE 000015f4: POP 000015f5: PUSH2 0x2bfb 000015f8: SWAP3 000015f9: POP 000015fa: POP 000015fb: POP 000015fc: JUMP 000015fd: JUMPDEST 000015fe: CALLER 000015ff: EXTCODESIZE 00001600: ISZERO 00001601: PUSH2 0x168c 00001604: JUMPI 00001605: PUSH1 0x40 00001607: MLOAD 00001608: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001629: DUP2 0000162a: MSTORE 0000162b: PUSH1 0x20 0000162d: PUSH1 0x04 0000162f: DUP3 00001630: ADD 00001631: MSTORE 00001632: PUSH1 0x37 00001634: PUSH1 0x24 00001636: DUP3 00001637: ADD 00001638: MSTORE 00001639: PUSH32 0x5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c 0000165a: PUSH1 0x44 0000165c: DUP3 0000165d: ADD 0000165e: MSTORE 0000165f: PUSH32 0x792062652063616c6c65642066726f6d20616e20454f41000000000000000000 00001680: PUSH1 0x64 00001682: DUP3 00001683: ADD 00001684: MSTORE 00001685: PUSH1 0x84 00001687: ADD 00001688: PUSH2 0x022a 0000168b: JUMP 0000168c: JUMPDEST 0000168d: CALLER 0000168e: ORIGIN 0000168f: EQ 00001690: PUSH2 0x171b 00001693: JUMPI 00001694: PUSH1 0x40 00001696: MLOAD 00001697: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000016b8: DUP2 000016b9: MSTORE 000016ba: PUSH1 0x20 000016bc: PUSH1 0x04 000016be: DUP3 000016bf: ADD 000016c0: MSTORE 000016c1: PUSH1 0x32 000016c3: PUSH1 0x24 000016c5: DUP3 000016c6: ADD 000016c7: MSTORE 000016c8: PUSH32 0x5374616e646172644272696467653a206d73672073656e646572206d75737420 000016e9: PUSH1 0x44 000016eb: DUP3 000016ec: ADD 000016ed: MSTORE 000016ee: PUSH32 0x657175616c20746f207478206f726967696e0000000000000000000000000000 0000170f: PUSH1 0x64 00001711: DUP3 00001712: ADD 00001713: MSTORE 00001714: PUSH1 0x84 00001716: ADD 00001717: PUSH2 0x022a 0000171a: JUMP 0000171b: JUMPDEST 0000171c: PUSH2 0x11c1 0000171f: DUP7 00001720: DUP7 00001721: CALLER 00001722: CALLER 00001723: DUP9 00001724: DUP9 00001725: DUP9 00001726: DUP9 00001727: DUP1 00001728: DUP1 00001729: PUSH1 0x1f 0000172b: ADD 0000172c: PUSH1 0x20 0000172e: DUP1 0000172f: SWAP2 00001730: DIV 00001731: MUL 00001732: PUSH1 0x20 00001734: ADD 00001735: PUSH1 0x40 00001737: MLOAD 00001738: SWAP1 00001739: DUP2 0000173a: ADD 0000173b: PUSH1 0x40 0000173d: MSTORE 0000173e: DUP1 0000173f: SWAP4 00001740: SWAP3 00001741: SWAP2 00001742: SWAP1 00001743: DUP2 00001744: DUP2 00001745: MSTORE 00001746: PUSH1 0x20 00001748: ADD 00001749: DUP4 0000174a: DUP4 0000174b: DUP1 0000174c: DUP3 0000174d: DUP5 0000174e: CALLDATACOPY 0000174f: PUSH1 0x00 00001751: SWAP3 00001752: ADD 00001753: SWAP2 00001754: SWAP1 00001755: SWAP2 00001756: MSTORE 00001757: POP 00001758: PUSH2 0x2462 0000175b: SWAP3 0000175c: POP 0000175d: POP 0000175e: POP 0000175f: JUMP 00001760: JUMPDEST 00001761: PUSH2 0x0635 00001764: CALLER 00001765: DUP6 00001766: DUP6 00001767: DUP6 00001768: DUP6 00001769: DUP1 0000176a: DUP1 0000176b: PUSH1 0x1f 0000176d: ADD 0000176e: PUSH1 0x20 00001770: DUP1 00001771: SWAP2 00001772: DIV 00001773: MUL 00001774: PUSH1 0x20 00001776: ADD 00001777: PUSH1 0x40 00001779: MLOAD 0000177a: SWAP1 0000177b: DUP2 0000177c: ADD 0000177d: PUSH1 0x40 0000177f: MSTORE 00001780: DUP1 00001781: SWAP4 00001782: SWAP3 00001783: SWAP2 00001784: SWAP1 00001785: DUP2 00001786: DUP2 00001787: MSTORE 00001788: PUSH1 0x20 0000178a: ADD 0000178b: DUP4 0000178c: DUP4 0000178d: DUP1 0000178e: DUP3 0000178f: DUP5 00001790: CALLDATACOPY 00001791: PUSH1 0x00 00001793: SWAP3 00001794: ADD 00001795: SWAP2 00001796: SWAP1 00001797: SWAP2 00001798: MSTORE 00001799: POP 0000179a: PUSH2 0x0628 0000179d: SWAP3 0000179e: POP 0000179f: POP 000017a0: POP 000017a1: JUMP 000017a2: JUMPDEST 000017a3: PUSH2 0x0b71 000017a6: DUP8 000017a7: DUP8 000017a8: DUP8 000017a9: DUP8 000017aa: DUP8 000017ab: DUP8 000017ac: DUP8 000017ad: PUSH2 0x063b 000017b0: JUMP 000017b1: JUMPDEST 000017b2: CALLER 000017b3: EXTCODESIZE 000017b4: ISZERO 000017b5: PUSH2 0x1840 000017b8: JUMPI 000017b9: PUSH1 0x40 000017bb: MLOAD 000017bc: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000017dd: DUP2 000017de: MSTORE 000017df: PUSH1 0x20 000017e1: PUSH1 0x04 000017e3: DUP3 000017e4: ADD 000017e5: MSTORE 000017e6: PUSH1 0x37 000017e8: PUSH1 0x24 000017ea: DUP3 000017eb: ADD 000017ec: MSTORE 000017ed: PUSH32 0x5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c 0000180e: PUSH1 0x44 00001810: DUP3 00001811: ADD 00001812: MSTORE 00001813: PUSH32 0x792062652063616c6c65642066726f6d20616e20454f41000000000000000000 00001834: PUSH1 0x64 00001836: DUP3 00001837: ADD 00001838: MSTORE 00001839: PUSH1 0x84 0000183b: ADD 0000183c: PUSH2 0x022a 0000183f: JUMP 00001840: JUMPDEST 00001841: CALLER 00001842: ORIGIN 00001843: EQ 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 0x32 00001877: PUSH1 0x24 00001879: DUP3 0000187a: ADD 0000187b: MSTORE 0000187c: PUSH32 0x5374616e646172644272696467653a206d73672073656e646572206d75737420 0000189d: PUSH1 0x44 0000189f: DUP3 000018a0: ADD 000018a1: MSTORE 000018a2: PUSH32 0x657175616c20746f207478206f726967696e0000000000000000000000000000 000018c3: PUSH1 0x64 000018c5: DUP3 000018c6: ADD 000018c7: MSTORE 000018c8: PUSH1 0x84 000018ca: ADD 000018cb: PUSH2 0x022a 000018ce: JUMP 000018cf: JUMPDEST 000018d0: PUSH2 0x0cdb 000018d3: CALLER 000018d4: CALLER 000018d5: DUP6 000018d6: DUP6 000018d7: DUP6 000018d8: DUP1 000018d9: DUP1 000018da: PUSH1 0x1f 000018dc: ADD 000018dd: PUSH1 0x20 000018df: DUP1 000018e0: SWAP2 000018e1: DIV 000018e2: MUL 000018e3: PUSH1 0x20 000018e5: ADD 000018e6: PUSH1 0x40 000018e8: MLOAD 000018e9: SWAP1 000018ea: DUP2 000018eb: ADD 000018ec: PUSH1 0x40 000018ee: MSTORE 000018ef: DUP1 000018f0: SWAP4 000018f1: SWAP3 000018f2: SWAP2 000018f3: SWAP1 000018f4: DUP2 000018f5: DUP2 000018f6: MSTORE 000018f7: PUSH1 0x20 000018f9: ADD 000018fa: DUP4 000018fb: DUP4 000018fc: DUP1 000018fd: DUP3 000018fe: DUP5 000018ff: CALLDATACOPY 00001900: PUSH1 0x00 00001902: SWAP3 00001903: ADD 00001904: SWAP2 00001905: SWAP1 00001906: SWAP2 00001907: MSTORE 00001908: POP 00001909: PUSH2 0x0628 0000190c: SWAP3 0000190d: POP 0000190e: POP 0000190f: POP 00001910: JUMP 00001911: JUMPDEST 00001912: PUSH2 0x0ced 00001915: CALLER 00001916: DUP7 00001917: DUP7 00001918: DUP7 00001919: DUP7 0000191a: DUP7 0000191b: DUP1 0000191c: DUP1 0000191d: PUSH1 0x1f 0000191f: ADD 00001920: PUSH1 0x20 00001922: DUP1 00001923: SWAP2 00001924: DIV 00001925: MUL 00001926: PUSH1 0x20 00001928: ADD 00001929: PUSH1 0x40 0000192b: MLOAD 0000192c: SWAP1 0000192d: DUP2 0000192e: ADD 0000192f: PUSH1 0x40 00001931: MSTORE 00001932: DUP1 00001933: SWAP4 00001934: SWAP3 00001935: SWAP2 00001936: SWAP1 00001937: DUP2 00001938: DUP2 00001939: MSTORE 0000193a: PUSH1 0x20 0000193c: ADD 0000193d: DUP4 0000193e: DUP4 0000193f: DUP1 00001940: DUP3 00001941: DUP5 00001942: CALLDATACOPY 00001943: PUSH1 0x00 00001945: SWAP3 00001946: ADD 00001947: SWAP2 00001948: SWAP1 00001949: SWAP2 0000194a: MSTORE 0000194b: POP 0000194c: PUSH2 0x2c0a 0000194f: SWAP3 00001950: POP 00001951: POP 00001952: POP 00001953: JUMP 00001954: JUMPDEST 00001955: CALLER 00001956: EXTCODESIZE 00001957: ISZERO 00001958: PUSH2 0x19e3 0000195b: JUMPI 0000195c: PUSH1 0x40 0000195e: MLOAD 0000195f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001980: DUP2 00001981: MSTORE 00001982: PUSH1 0x20 00001984: PUSH1 0x04 00001986: DUP3 00001987: ADD 00001988: MSTORE 00001989: PUSH1 0x37 0000198b: PUSH1 0x24 0000198d: DUP3 0000198e: ADD 0000198f: MSTORE 00001990: PUSH32 0x5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c 000019b1: PUSH1 0x44 000019b3: DUP3 000019b4: ADD 000019b5: MSTORE 000019b6: PUSH32 0x792062652063616c6c65642066726f6d20616e20454f41000000000000000000 000019d7: PUSH1 0x64 000019d9: DUP3 000019da: ADD 000019db: MSTORE 000019dc: PUSH1 0x84 000019de: ADD 000019df: PUSH2 0x022a 000019e2: JUMP 000019e3: JUMPDEST 000019e4: CALLER 000019e5: ORIGIN 000019e6: EQ 000019e7: PUSH2 0x1a72 000019ea: JUMPI 000019eb: PUSH1 0x40 000019ed: MLOAD 000019ee: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001a0f: DUP2 00001a10: MSTORE 00001a11: PUSH1 0x20 00001a13: PUSH1 0x04 00001a15: DUP3 00001a16: ADD 00001a17: MSTORE 00001a18: PUSH1 0x32 00001a1a: PUSH1 0x24 00001a1c: DUP3 00001a1d: ADD 00001a1e: MSTORE 00001a1f: PUSH32 0x5374616e646172644272696467653a206d73672073656e646572206d75737420 00001a40: PUSH1 0x44 00001a42: DUP3 00001a43: ADD 00001a44: MSTORE 00001a45: PUSH32 0x657175616c20746f207478206f726967696e0000000000000000000000000000 00001a66: PUSH1 0x64 00001a68: DUP3 00001a69: ADD 00001a6a: MSTORE 00001a6b: PUSH1 0x84 00001a6d: ADD 00001a6e: PUSH2 0x022a 00001a71: JUMP 00001a72: JUMPDEST 00001a73: PUSH2 0x0635 00001a76: CALLER 00001a77: CALLER 00001a78: DUP7 00001a79: DUP7 00001a7a: DUP7 00001a7b: DUP7 00001a7c: DUP1 00001a7d: DUP1 00001a7e: PUSH1 0x1f 00001a80: ADD 00001a81: PUSH1 0x20 00001a83: DUP1 00001a84: SWAP2 00001a85: DIV 00001a86: MUL 00001a87: PUSH1 0x20 00001a89: ADD 00001a8a: PUSH1 0x40 00001a8c: MLOAD 00001a8d: SWAP1 00001a8e: DUP2 00001a8f: ADD 00001a90: PUSH1 0x40 00001a92: MSTORE 00001a93: DUP1 00001a94: SWAP4 00001a95: SWAP3 00001a96: SWAP2 00001a97: SWAP1 00001a98: DUP2 00001a99: DUP2 00001a9a: MSTORE 00001a9b: PUSH1 0x20 00001a9d: ADD 00001a9e: DUP4 00001a9f: DUP4 00001aa0: DUP1 00001aa1: DUP3 00001aa2: DUP5 00001aa3: CALLDATACOPY 00001aa4: PUSH1 0x00 00001aa6: SWAP3 00001aa7: ADD 00001aa8: SWAP2 00001aa9: SWAP1 00001aaa: SWAP2 00001aab: MSTORE 00001aac: POP 00001aad: PUSH2 0x2c0a 00001ab0: SWAP3 00001ab1: POP 00001ab2: POP 00001ab3: POP 00001ab4: JUMP 00001ab5: JUMPDEST 00001ab6: PUSH2 0x0635 00001ab9: CALLER 00001aba: DUP6 00001abb: CALLVALUE 00001abc: DUP7 00001abd: DUP7 00001abe: DUP7 00001abf: DUP1 00001ac0: DUP1 00001ac1: PUSH1 0x1f 00001ac3: ADD 00001ac4: PUSH1 0x20 00001ac6: DUP1 00001ac7: SWAP2 00001ac8: DIV 00001ac9: MUL 00001aca: PUSH1 0x20 00001acc: ADD 00001acd: PUSH1 0x40 00001acf: MLOAD 00001ad0: SWAP1 00001ad1: DUP2 00001ad2: ADD 00001ad3: PUSH1 0x40 00001ad5: MSTORE 00001ad6: DUP1 00001ad7: SWAP4 00001ad8: SWAP3 00001ad9: SWAP2 00001ada: SWAP1 00001adb: DUP2 00001adc: DUP2 00001add: MSTORE 00001ade: PUSH1 0x20 00001ae0: ADD 00001ae1: DUP4 00001ae2: DUP4 00001ae3: DUP1 00001ae4: DUP3 00001ae5: DUP5 00001ae6: CALLDATACOPY 00001ae7: PUSH1 0x00 00001ae9: SWAP3 00001aea: ADD 00001aeb: SWAP2 00001aec: SWAP1 00001aed: SWAP2 00001aee: MSTORE 00001aef: POP 00001af0: PUSH2 0x1ef9 00001af3: SWAP3 00001af4: POP 00001af5: POP 00001af6: POP 00001af7: JUMP 00001af8: JUMPDEST 00001af9: CALLER 00001afa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b0f: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 00001b30: AND 00001b31: EQ 00001b32: DUP1 00001b33: ISZERO 00001b34: PUSH2 0x1c16 00001b37: JUMPI 00001b38: POP 00001b39: PUSH32 0x0000000000000000000000004200000000000000000000000000000000000010 00001b5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b6f: AND 00001b70: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 00001b91: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ba6: AND 00001ba7: PUSH4 0x6e296e45 00001bac: PUSH1 0x40 00001bae: MLOAD 00001baf: DUP2 00001bb0: PUSH4 0xffffffff 00001bb5: AND 00001bb6: PUSH1 0xe0 00001bb8: SHL 00001bb9: DUP2 00001bba: MSTORE 00001bbb: PUSH1 0x04 00001bbd: ADD 00001bbe: PUSH1 0x20 00001bc0: PUSH1 0x40 00001bc2: MLOAD 00001bc3: DUP1 00001bc4: DUP4 00001bc5: SUB 00001bc6: DUP2 00001bc7: DUP7 00001bc8: GAS 00001bc9: STATICCALL 00001bca: ISZERO 00001bcb: DUP1 00001bcc: ISZERO 00001bcd: PUSH2 0x1bda 00001bd0: JUMPI 00001bd1: RETURNDATASIZE 00001bd2: PUSH1 0x00 00001bd4: DUP1 00001bd5: RETURNDATACOPY 00001bd6: RETURNDATASIZE 00001bd7: PUSH1 0x00 00001bd9: REVERT 00001bda: JUMPDEST 00001bdb: POP 00001bdc: POP 00001bdd: POP 00001bde: POP 00001bdf: PUSH1 0x40 00001be1: MLOAD 00001be2: RETURNDATASIZE 00001be3: PUSH1 0x1f 00001be5: NOT 00001be6: PUSH1 0x1f 00001be8: DUP3 00001be9: ADD 00001bea: AND 00001beb: DUP3 00001bec: ADD 00001bed: DUP1 00001bee: PUSH1 0x40 00001bf0: MSTORE 00001bf1: POP 00001bf2: DUP2 00001bf3: ADD 00001bf4: SWAP1 00001bf5: PUSH2 0x1bfe 00001bf8: SWAP2 00001bf9: SWAP1 00001bfa: PUSH2 0x3ca2 00001bfd: JUMP 00001bfe: JUMPDEST 00001bff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c14: AND 00001c15: EQ 00001c16: JUMPDEST 00001c17: PUSH2 0x1cc8 00001c1a: JUMPI 00001c1b: PUSH1 0x40 00001c1d: MLOAD 00001c1e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001c3f: DUP2 00001c40: MSTORE 00001c41: PUSH1 0x20 00001c43: PUSH1 0x04 00001c45: DUP3 00001c46: ADD 00001c47: MSTORE 00001c48: PUSH1 0x41 00001c4a: PUSH1 0x24 00001c4c: DUP3 00001c4d: ADD 00001c4e: MSTORE 00001c4f: PUSH32 0x5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c 00001c70: PUSH1 0x44 00001c72: DUP3 00001c73: ADD 00001c74: MSTORE 00001c75: PUSH32 0x792062652063616c6c65642066726f6d20746865206f74686572206272696467 00001c96: PUSH1 0x64 00001c98: DUP3 00001c99: ADD 00001c9a: MSTORE 00001c9b: PUSH32 0x6500000000000000000000000000000000000000000000000000000000000000 00001cbc: PUSH1 0x84 00001cbe: DUP3 00001cbf: ADD 00001cc0: MSTORE 00001cc1: PUSH1 0xa4 00001cc3: ADD 00001cc4: PUSH2 0x022a 00001cc7: JUMP 00001cc8: JUMPDEST 00001cc9: ADDRESS 00001cca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cdf: DUP6 00001ce0: AND 00001ce1: SUB 00001ce2: PUSH2 0x1d6d 00001ce5: JUMPI 00001ce6: PUSH1 0x40 00001ce8: MLOAD 00001ce9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001d0a: DUP2 00001d0b: MSTORE 00001d0c: PUSH1 0x20 00001d0e: PUSH1 0x04 00001d10: DUP3 00001d11: ADD 00001d12: MSTORE 00001d13: PUSH1 0x23 00001d15: PUSH1 0x24 00001d17: DUP3 00001d18: ADD 00001d19: MSTORE 00001d1a: PUSH32 0x5374616e646172644272696467653a2063616e6e6f742073656e6420746f2073 00001d3b: PUSH1 0x44 00001d3d: DUP3 00001d3e: ADD 00001d3f: MSTORE 00001d40: PUSH32 0x656c660000000000000000000000000000000000000000000000000000000000 00001d61: PUSH1 0x64 00001d63: DUP3 00001d64: ADD 00001d65: MSTORE 00001d66: PUSH1 0x84 00001d68: ADD 00001d69: PUSH2 0x022a 00001d6c: JUMP 00001d6d: JUMPDEST 00001d6e: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 00001d8f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001da4: AND 00001da5: DUP5 00001da6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dbb: AND 00001dbc: SUB 00001dbd: PUSH2 0x1e48 00001dc0: JUMPI 00001dc1: PUSH1 0x40 00001dc3: MLOAD 00001dc4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001de5: DUP2 00001de6: MSTORE 00001de7: PUSH1 0x20 00001de9: PUSH1 0x04 00001deb: DUP3 00001dec: ADD 00001ded: MSTORE 00001dee: PUSH1 0x28 00001df0: PUSH1 0x24 00001df2: DUP3 00001df3: ADD 00001df4: MSTORE 00001df5: PUSH32 0x5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d 00001e16: PUSH1 0x44 00001e18: DUP3 00001e19: ADD 00001e1a: MSTORE 00001e1b: PUSH32 0x657373656e676572000000000000000000000000000000000000000000000000 00001e3c: PUSH1 0x64 00001e3e: DUP3 00001e3f: ADD 00001e40: MSTORE 00001e41: PUSH1 0x84 00001e43: ADD 00001e44: PUSH2 0x022a 00001e47: JUMP 00001e48: JUMPDEST 00001e49: PUSH2 0x1eaa 00001e4c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e61: PUSH32 0x0000000000000000000000003c3a81e81dc49a522a592e7622a7e711c06bf354 00001e82: AND 00001e83: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 00001ea4: DUP7 00001ea5: DUP7 00001ea6: PUSH2 0x2f0b 00001ea9: JUMP 00001eaa: JUMPDEST 00001eab: PUSH2 0x0ced 00001eae: DUP6 00001eaf: DUP6 00001eb0: DUP6 00001eb1: DUP6 00001eb2: DUP6 00001eb3: DUP1 00001eb4: DUP1 00001eb5: PUSH1 0x1f 00001eb7: ADD 00001eb8: PUSH1 0x20 00001eba: DUP1 00001ebb: SWAP2 00001ebc: DIV 00001ebd: MUL 00001ebe: PUSH1 0x20 00001ec0: ADD 00001ec1: PUSH1 0x40 00001ec3: MLOAD 00001ec4: SWAP1 00001ec5: DUP2 00001ec6: ADD 00001ec7: PUSH1 0x40 00001ec9: MSTORE 00001eca: DUP1 00001ecb: SWAP4 00001ecc: SWAP3 00001ecd: SWAP2 00001ece: SWAP1 00001ecf: DUP2 00001ed0: DUP2 00001ed1: MSTORE 00001ed2: PUSH1 0x20 00001ed4: ADD 00001ed5: DUP4 00001ed6: DUP4 00001ed7: DUP1 00001ed8: DUP3 00001ed9: DUP5 00001eda: CALLDATACOPY 00001edb: PUSH1 0x00 00001edd: SWAP3 00001ede: ADD 00001edf: SWAP2 00001ee0: SWAP1 00001ee1: SWAP2 00001ee2: MSTORE 00001ee3: POP 00001ee4: PUSH2 0x2f69 00001ee7: SWAP3 00001ee8: POP 00001ee9: POP 00001eea: POP 00001eeb: JUMP 00001eec: JUMPDEST 00001eed: PUSH2 0x0ced 00001ef0: DUP6 00001ef1: DUP6 00001ef2: DUP6 00001ef3: DUP6 00001ef4: DUP6 00001ef5: PUSH2 0x1af8 00001ef8: JUMP 00001ef9: JUMPDEST 00001efa: DUP3 00001efb: CALLVALUE 00001efc: EQ 00001efd: PUSH2 0x1f8a 00001f00: JUMPI 00001f01: PUSH1 0x40 00001f03: DUP1 00001f04: MLOAD 00001f05: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001f26: DUP2 00001f27: MSTORE 00001f28: PUSH1 0x20 00001f2a: PUSH1 0x04 00001f2c: DUP3 00001f2d: ADD 00001f2e: MSTORE 00001f2f: PUSH1 0x24 00001f31: DUP2 00001f32: ADD 00001f33: SWAP2 00001f34: SWAP1 00001f35: SWAP2 00001f36: MSTORE 00001f37: PUSH32 0x4c315374616e646172644272696467653a206272696467696e6720455448206d 00001f58: PUSH1 0x44 00001f5a: DUP3 00001f5b: ADD 00001f5c: MSTORE 00001f5d: PUSH32 0x75737420696e636c7564652073756666696369656e74204554482076616c7565 00001f7e: PUSH1 0x64 00001f80: DUP3 00001f81: ADD 00001f82: MSTORE 00001f83: PUSH1 0x84 00001f85: ADD 00001f86: PUSH2 0x022a 00001f89: JUMP 00001f8a: JUMPDEST 00001f8b: PUSH2 0x1f96 00001f8e: DUP6 00001f8f: DUP6 00001f90: DUP6 00001f91: DUP5 00001f92: PUSH2 0x2fdc 00001f95: JUMP 00001f96: JUMPDEST 00001f97: PUSH1 0x00 00001f99: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 00001fba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fcf: AND 00001fd0: PUSH4 0xb575e300 00001fd5: CALLVALUE 00001fd6: DUP4 00001fd7: PUSH32 0x0000000000000000000000004200000000000000000000000000000000000010 00001ff8: PUSH4 0x1635f5fd 00001ffd: PUSH1 0xe0 00001fff: SHL 00002000: DUP12 00002001: DUP12 00002002: DUP12 00002003: DUP11 00002004: PUSH1 0x40 00002006: MLOAD 00002007: PUSH1 0x24 00002009: ADD 0000200a: PUSH2 0x2016 0000200d: SWAP5 0000200e: SWAP4 0000200f: SWAP3 00002010: SWAP2 00002011: SWAP1 00002012: PUSH2 0x3d94 00002015: JUMP 00002016: JUMPDEST 00002017: PUSH1 0x40 00002019: DUP1 0000201a: MLOAD 0000201b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000203c: DUP2 0000203d: DUP5 0000203e: SUB 0000203f: ADD 00002040: DUP2 00002041: MSTORE 00002042: SWAP2 00002043: DUP2 00002044: MSTORE 00002045: PUSH1 0x20 00002047: DUP3 00002048: ADD 00002049: DUP1 0000204a: MLOAD 0000204b: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002068: AND 00002069: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000208a: SWAP5 0000208b: DUP6 0000208c: AND 0000208d: OR 0000208e: SWAP1 0000208f: MSTORE 00002090: MLOAD 00002091: PUSH1 0xe0 00002093: DUP8 00002094: SWAP1 00002095: SHL 00002096: SWAP1 00002097: SWAP3 00002098: AND 00002099: DUP3 0000209a: MSTORE 0000209b: PUSH2 0x20aa 0000209e: SWAP4 0000209f: SWAP3 000020a0: SWAP2 000020a1: DUP11 000020a2: SWAP1 000020a3: PUSH1 0x04 000020a5: ADD 000020a6: PUSH2 0x3ddd 000020a9: JUMP 000020aa: JUMPDEST 000020ab: PUSH1 0x00 000020ad: PUSH1 0x40 000020af: MLOAD 000020b0: DUP1 000020b1: DUP4 000020b2: SUB 000020b3: DUP2 000020b4: DUP6 000020b5: DUP9 000020b6: DUP1 000020b7: EXTCODESIZE 000020b8: ISZERO 000020b9: DUP1 000020ba: ISZERO 000020bb: PUSH2 0x20c3 000020be: JUMPI 000020bf: PUSH1 0x00 000020c1: DUP1 000020c2: REVERT 000020c3: JUMPDEST 000020c4: POP 000020c5: GAS 000020c6: CALL 000020c7: ISZERO 000020c8: DUP1 000020c9: ISZERO 000020ca: PUSH2 0x20d7 000020cd: JUMPI 000020ce: RETURNDATASIZE 000020cf: PUSH1 0x00 000020d1: DUP1 000020d2: RETURNDATACOPY 000020d3: RETURNDATASIZE 000020d4: PUSH1 0x00 000020d6: REVERT 000020d7: JUMPDEST 000020d8: POP 000020d9: POP 000020da: POP 000020db: POP 000020dc: POP 000020dd: POP 000020de: POP 000020df: POP 000020e0: POP 000020e1: POP 000020e2: POP 000020e3: JUMP 000020e4: JUMPDEST 000020e5: PUSH1 0x00 000020e7: PUSH2 0x2110 000020ea: DUP3 000020eb: PUSH32 0x1d1d8b6300000000000000000000000000000000000000000000000000000000 0000210c: PUSH2 0x304f 0000210f: JUMP 00002110: JUMPDEST 00002111: DUP1 00002112: PUSH2 0x2140 00002115: JUMPI 00002116: POP 00002117: PUSH2 0x2140 0000211a: DUP3 0000211b: PUSH32 0xec4fc8e300000000000000000000000000000000000000000000000000000000 0000213c: PUSH2 0x304f 0000213f: JUMP 00002140: JUMPDEST 00002141: SWAP3 00002142: SWAP2 00002143: POP 00002144: POP 00002145: JUMP 00002146: JUMPDEST 00002147: PUSH1 0x00 00002149: PUSH2 0x2172 0000214c: DUP4 0000214d: PUSH32 0x1d1d8b6300000000000000000000000000000000000000000000000000000000 0000216e: PUSH2 0x304f 00002171: JUMP 00002172: JUMPDEST 00002173: ISZERO 00002174: PUSH2 0x221b 00002177: JUMPI 00002178: DUP3 00002179: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000218e: AND 0000218f: PUSH4 0xc01e1bd6 00002194: PUSH1 0x40 00002196: MLOAD 00002197: DUP2 00002198: PUSH4 0xffffffff 0000219d: AND 0000219e: PUSH1 0xe0 000021a0: SHL 000021a1: DUP2 000021a2: MSTORE 000021a3: PUSH1 0x04 000021a5: ADD 000021a6: PUSH1 0x20 000021a8: PUSH1 0x40 000021aa: MLOAD 000021ab: DUP1 000021ac: DUP4 000021ad: SUB 000021ae: DUP2 000021af: DUP7 000021b0: GAS 000021b1: STATICCALL 000021b2: ISZERO 000021b3: DUP1 000021b4: ISZERO 000021b5: PUSH2 0x21c2 000021b8: JUMPI 000021b9: RETURNDATASIZE 000021ba: PUSH1 0x00 000021bc: DUP1 000021bd: RETURNDATACOPY 000021be: RETURNDATASIZE 000021bf: PUSH1 0x00 000021c1: REVERT 000021c2: JUMPDEST 000021c3: POP 000021c4: POP 000021c5: POP 000021c6: POP 000021c7: PUSH1 0x40 000021c9: MLOAD 000021ca: RETURNDATASIZE 000021cb: PUSH1 0x1f 000021cd: NOT 000021ce: PUSH1 0x1f 000021d0: DUP3 000021d1: ADD 000021d2: AND 000021d3: DUP3 000021d4: ADD 000021d5: DUP1 000021d6: PUSH1 0x40 000021d8: MSTORE 000021d9: POP 000021da: DUP2 000021db: ADD 000021dc: SWAP1 000021dd: PUSH2 0x21e6 000021e0: SWAP2 000021e1: SWAP1 000021e2: PUSH2 0x3ca2 000021e5: JUMP 000021e6: JUMPDEST 000021e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021fc: AND 000021fd: DUP3 000021fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002213: AND 00002214: EQ 00002215: SWAP1 00002216: POP 00002217: PUSH2 0x2140 0000221a: JUMP 0000221b: JUMPDEST 0000221c: DUP3 0000221d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002232: AND 00002233: PUSH4 0xd6c0b2c4 00002238: PUSH1 0x40 0000223a: MLOAD 0000223b: DUP2 0000223c: PUSH4 0xffffffff 00002241: AND 00002242: PUSH1 0xe0 00002244: SHL 00002245: DUP2 00002246: MSTORE 00002247: PUSH1 0x04 00002249: ADD 0000224a: PUSH1 0x20 0000224c: PUSH1 0x40 0000224e: MLOAD 0000224f: DUP1 00002250: DUP4 00002251: SUB 00002252: DUP2 00002253: DUP7 00002254: GAS 00002255: STATICCALL 00002256: ISZERO 00002257: DUP1 00002258: ISZERO 00002259: PUSH2 0x21c2 0000225c: JUMPI 0000225d: RETURNDATASIZE 0000225e: PUSH1 0x00 00002260: DUP1 00002261: RETURNDATACOPY 00002262: RETURNDATASIZE 00002263: PUSH1 0x00 00002265: REVERT 00002266: JUMPDEST 00002267: PUSH1 0x40 00002269: MLOAD 0000226a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000227f: DUP4 00002280: AND 00002281: PUSH1 0x24 00002283: DUP3 00002284: ADD 00002285: MSTORE 00002286: PUSH1 0x44 00002288: DUP2 00002289: ADD 0000228a: DUP3 0000228b: SWAP1 0000228c: MSTORE 0000228d: PUSH2 0x0cdb 00002290: SWAP1 00002291: DUP5 00002292: SWAP1 00002293: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 000022b4: SWAP1 000022b5: PUSH1 0x64 000022b7: ADD 000022b8: JUMPDEST 000022b9: PUSH1 0x40 000022bb: DUP1 000022bc: MLOAD 000022bd: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000022de: DUP2 000022df: DUP5 000022e0: SUB 000022e1: ADD 000022e2: DUP2 000022e3: MSTORE 000022e4: SWAP2 000022e5: SWAP1 000022e6: MSTORE 000022e7: PUSH1 0x20 000022e9: DUP2 000022ea: ADD 000022eb: DUP1 000022ec: MLOAD 000022ed: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000230a: AND 0000230b: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000232c: SWAP1 0000232d: SWAP4 0000232e: AND 0000232f: SWAP3 00002330: SWAP1 00002331: SWAP3 00002332: OR 00002333: SWAP1 00002334: SWAP2 00002335: MSTORE 00002336: PUSH2 0x3072 00002339: JUMP 0000233a: JUMPDEST 0000233b: DUP4 0000233c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002351: AND 00002352: DUP6 00002353: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002368: AND 00002369: DUP8 0000236a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000237f: AND 00002380: PUSH32 0x3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b3 000023a1: DUP7 000023a2: DUP7 000023a3: DUP7 000023a4: PUSH1 0x40 000023a6: MLOAD 000023a7: PUSH2 0x23b2 000023aa: SWAP4 000023ab: SWAP3 000023ac: SWAP2 000023ad: SWAP1 000023ae: PUSH2 0x3e29 000023b1: JUMP 000023b2: JUMPDEST 000023b3: PUSH1 0x40 000023b5: MLOAD 000023b6: DUP1 000023b7: SWAP2 000023b8: SUB 000023b9: SWAP1 000023ba: LOG4 000023bb: PUSH2 0x11c1 000023be: DUP7 000023bf: DUP7 000023c0: DUP7 000023c1: DUP7 000023c2: DUP7 000023c3: DUP7 000023c4: PUSH2 0x317e 000023c7: JUMP 000023c8: JUMPDEST 000023c9: DUP3 000023ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023df: AND 000023e0: DUP5 000023e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023f6: AND 000023f7: PUSH32 0x2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e631 00002418: DUP5 00002419: DUP5 0000241a: PUSH1 0x40 0000241c: MLOAD 0000241d: PUSH2 0x2427 00002420: SWAP3 00002421: SWAP2 00002422: SWAP1 00002423: PUSH2 0x3e67 00002426: JUMP 00002427: JUMPDEST 00002428: PUSH1 0x40 0000242a: MLOAD 0000242b: DUP1 0000242c: SWAP2 0000242d: SUB 0000242e: SWAP1 0000242f: LOG3 00002430: PUSH2 0x0635 00002433: DUP5 00002434: DUP5 00002435: DUP5 00002436: DUP5 00002437: PUSH2 0x3206 0000243a: JUMP 0000243b: JUMPDEST 0000243c: PUSH1 0x00 0000243e: DUP1 0000243f: PUSH1 0x00 00002441: DUP1 00002442: DUP5 00002443: MLOAD 00002444: PUSH1 0x20 00002446: DUP7 00002447: ADD 00002448: DUP8 00002449: DUP11 0000244a: DUP11 0000244b: CALL 0000244c: SWAP7 0000244d: SWAP6 0000244e: POP 0000244f: POP 00002450: POP 00002451: POP 00002452: POP 00002453: POP 00002454: JUMP 00002455: JUMPDEST 00002456: PUSH2 0x0ced 00002459: DUP6 0000245a: DUP6 0000245b: DUP6 0000245c: DUP6 0000245d: DUP6 0000245e: PUSH2 0x2c0a 00002461: JUMP 00002462: JUMPDEST 00002463: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002478: DUP8 00002479: AND 0000247a: ISZERO 0000247b: DUP1 0000247c: ISZERO 0000247d: SWAP1 0000247e: PUSH2 0x24b1 00002481: JUMPI 00002482: POP 00002483: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002498: DUP7 00002499: AND 0000249a: PUSH20 0xdeaddeaddeaddeaddeaddeaddeaddeaddead1111 000024af: EQ 000024b0: ISZERO 000024b1: JUMPDEST 000024b2: PUSH2 0x253d 000024b5: JUMPI 000024b6: PUSH1 0x40 000024b8: MLOAD 000024b9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000024da: DUP2 000024db: MSTORE 000024dc: PUSH1 0x20 000024de: PUSH1 0x04 000024e0: DUP3 000024e1: ADD 000024e2: MSTORE 000024e3: PUSH1 0x3a 000024e5: PUSH1 0x24 000024e7: DUP3 000024e8: ADD 000024e9: MSTORE 000024ea: PUSH32 0x4c315374616e646172644272696467653a20427269646765455243323020646f 0000250b: PUSH1 0x44 0000250d: DUP3 0000250e: ADD 0000250f: MSTORE 00002510: PUSH32 0x206e6f7420737570706f727420455448206272696467696e672e000000000000 00002531: PUSH1 0x64 00002533: DUP3 00002534: ADD 00002535: MSTORE 00002536: PUSH1 0x84 00002538: ADD 00002539: PUSH2 0x022a 0000253c: JUMP 0000253d: JUMPDEST 0000253e: PUSH32 0x0000000000000000000000003c3a81e81dc49a522a592e7622a7e711c06bf354 0000255f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002574: AND 00002575: DUP8 00002576: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000258b: AND 0000258c: EQ 0000258d: ISZERO 0000258e: DUP1 0000258f: ISZERO 00002590: PUSH2 0x25ae 00002593: JUMPI 00002594: POP 00002595: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025aa: DUP7 000025ab: AND 000025ac: ISZERO 000025ad: ISZERO 000025ae: JUMPDEST 000025af: PUSH2 0x263a 000025b2: JUMPI 000025b3: PUSH1 0x40 000025b5: MLOAD 000025b6: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000025d7: DUP2 000025d8: MSTORE 000025d9: PUSH1 0x20 000025db: PUSH1 0x04 000025dd: DUP3 000025de: ADD 000025df: MSTORE 000025e0: PUSH1 0x3a 000025e2: PUSH1 0x24 000025e4: DUP3 000025e5: ADD 000025e6: MSTORE 000025e7: PUSH32 0x4c315374616e646172644272696467653a20427269646765455243323020646f 00002608: PUSH1 0x44 0000260a: DUP3 0000260b: ADD 0000260c: MSTORE 0000260d: PUSH32 0x206e6f7420737570706f7274204d4e54206272696467696e672e000000000000 0000262e: PUSH1 0x64 00002630: DUP3 00002631: ADD 00002632: MSTORE 00002633: PUSH1 0x84 00002635: ADD 00002636: PUSH2 0x022a 00002639: JUMP 0000263a: JUMPDEST 0000263b: PUSH2 0x2643 0000263e: DUP8 0000263f: PUSH2 0x20e4 00002642: JUMP 00002643: JUMPDEST 00002644: ISZERO 00002645: PUSH2 0x2791 00002648: JUMPI 00002649: PUSH2 0x2652 0000264c: DUP8 0000264d: DUP8 0000264e: PUSH2 0x2146 00002651: JUMP 00002652: JUMPDEST 00002653: PUSH2 0x2704 00002656: JUMPI 00002657: PUSH1 0x40 00002659: MLOAD 0000265a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000267b: DUP2 0000267c: MSTORE 0000267d: PUSH1 0x20 0000267f: PUSH1 0x04 00002681: DUP3 00002682: ADD 00002683: MSTORE 00002684: PUSH1 0x4a 00002686: PUSH1 0x24 00002688: DUP3 00002689: ADD 0000268a: MSTORE 0000268b: PUSH32 0x5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b 000026ac: PUSH1 0x44 000026ae: DUP3 000026af: ADD 000026b0: MSTORE 000026b1: PUSH32 0x656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c 000026d2: PUSH1 0x64 000026d4: DUP3 000026d5: ADD 000026d6: MSTORE 000026d7: PUSH32 0x6f63616c20746f6b656e00000000000000000000000000000000000000000000 000026f8: PUSH1 0x84 000026fa: DUP3 000026fb: ADD 000026fc: MSTORE 000026fd: PUSH1 0xa4 000026ff: ADD 00002700: PUSH2 0x022a 00002703: JUMP 00002704: JUMPDEST 00002705: PUSH1 0x40 00002707: MLOAD 00002708: PUSH32 0x9dc29fac00000000000000000000000000000000000000000000000000000000 00002729: DUP2 0000272a: MSTORE 0000272b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002740: DUP7 00002741: DUP2 00002742: AND 00002743: PUSH1 0x04 00002745: DUP4 00002746: ADD 00002747: MSTORE 00002748: PUSH1 0x24 0000274a: DUP3 0000274b: ADD 0000274c: DUP6 0000274d: SWAP1 0000274e: MSTORE 0000274f: DUP9 00002750: AND 00002751: SWAP1 00002752: PUSH4 0x9dc29fac 00002757: SWAP1 00002758: PUSH1 0x44 0000275a: ADD 0000275b: PUSH1 0x00 0000275d: PUSH1 0x40 0000275f: MLOAD 00002760: DUP1 00002761: DUP4 00002762: SUB 00002763: DUP2 00002764: PUSH1 0x00 00002766: DUP8 00002767: DUP1 00002768: EXTCODESIZE 00002769: ISZERO 0000276a: DUP1 0000276b: ISZERO 0000276c: PUSH2 0x2774 0000276f: JUMPI 00002770: PUSH1 0x00 00002772: DUP1 00002773: REVERT 00002774: JUMPDEST 00002775: POP 00002776: GAS 00002777: CALL 00002778: ISZERO 00002779: DUP1 0000277a: ISZERO 0000277b: PUSH2 0x2788 0000277e: JUMPI 0000277f: RETURNDATASIZE 00002780: PUSH1 0x00 00002782: DUP1 00002783: RETURNDATACOPY 00002784: RETURNDATASIZE 00002785: PUSH1 0x00 00002787: REVERT 00002788: JUMPDEST 00002789: POP 0000278a: POP 0000278b: POP 0000278c: POP 0000278d: PUSH2 0x295d 00002790: JUMP 00002791: JUMPDEST 00002792: PUSH1 0x40 00002794: MLOAD 00002795: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 000027b6: DUP2 000027b7: MSTORE 000027b8: ADDRESS 000027b9: PUSH1 0x04 000027bb: DUP3 000027bc: ADD 000027bd: MSTORE 000027be: PUSH1 0x00 000027c0: SWAP1 000027c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027d6: DUP10 000027d7: AND 000027d8: SWAP1 000027d9: PUSH4 0x70a08231 000027de: SWAP1 000027df: PUSH1 0x24 000027e1: ADD 000027e2: PUSH1 0x20 000027e4: PUSH1 0x40 000027e6: MLOAD 000027e7: DUP1 000027e8: DUP4 000027e9: SUB 000027ea: DUP2 000027eb: DUP7 000027ec: GAS 000027ed: STATICCALL 000027ee: ISZERO 000027ef: DUP1 000027f0: ISZERO 000027f1: PUSH2 0x27fe 000027f4: JUMPI 000027f5: RETURNDATASIZE 000027f6: PUSH1 0x00 000027f8: DUP1 000027f9: RETURNDATACOPY 000027fa: RETURNDATASIZE 000027fb: PUSH1 0x00 000027fd: REVERT 000027fe: JUMPDEST 000027ff: POP 00002800: POP 00002801: POP 00002802: POP 00002803: PUSH1 0x40 00002805: MLOAD 00002806: RETURNDATASIZE 00002807: PUSH1 0x1f 00002809: NOT 0000280a: PUSH1 0x1f 0000280c: DUP3 0000280d: ADD 0000280e: AND 0000280f: DUP3 00002810: ADD 00002811: DUP1 00002812: PUSH1 0x40 00002814: MSTORE 00002815: POP 00002816: DUP2 00002817: ADD 00002818: SWAP1 00002819: PUSH2 0x2822 0000281c: SWAP2 0000281d: SWAP1 0000281e: PUSH2 0x3cbf 00002821: JUMP 00002822: JUMPDEST 00002823: SWAP1 00002824: POP 00002825: PUSH2 0x2846 00002828: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000283d: DUP10 0000283e: AND 0000283f: DUP8 00002840: ADDRESS 00002841: DUP8 00002842: PUSH2 0x2f0b 00002845: JUMP 00002846: JUMPDEST 00002847: PUSH1 0x40 00002849: MLOAD 0000284a: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 0000286b: DUP2 0000286c: MSTORE 0000286d: ADDRESS 0000286e: PUSH1 0x04 00002870: DUP3 00002871: ADD 00002872: MSTORE 00002873: PUSH1 0x00 00002875: SWAP1 00002876: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000288b: DUP11 0000288c: AND 0000288d: SWAP1 0000288e: PUSH4 0x70a08231 00002893: SWAP1 00002894: PUSH1 0x24 00002896: ADD 00002897: PUSH1 0x20 00002899: PUSH1 0x40 0000289b: MLOAD 0000289c: DUP1 0000289d: DUP4 0000289e: SUB 0000289f: DUP2 000028a0: DUP7 000028a1: GAS 000028a2: STATICCALL 000028a3: ISZERO 000028a4: DUP1 000028a5: ISZERO 000028a6: PUSH2 0x28b3 000028a9: JUMPI 000028aa: RETURNDATASIZE 000028ab: PUSH1 0x00 000028ad: DUP1 000028ae: RETURNDATACOPY 000028af: RETURNDATASIZE 000028b0: PUSH1 0x00 000028b2: REVERT 000028b3: JUMPDEST 000028b4: POP 000028b5: POP 000028b6: POP 000028b7: POP 000028b8: PUSH1 0x40 000028ba: MLOAD 000028bb: RETURNDATASIZE 000028bc: PUSH1 0x1f 000028be: NOT 000028bf: PUSH1 0x1f 000028c1: DUP3 000028c2: ADD 000028c3: AND 000028c4: DUP3 000028c5: ADD 000028c6: DUP1 000028c7: PUSH1 0x40 000028c9: MSTORE 000028ca: POP 000028cb: DUP2 000028cc: ADD 000028cd: SWAP1 000028ce: PUSH2 0x28d7 000028d1: SWAP2 000028d2: SWAP1 000028d3: PUSH2 0x3cbf 000028d6: JUMP 000028d7: JUMPDEST 000028d8: SWAP1 000028d9: POP 000028da: PUSH1 0x00 000028dc: PUSH2 0x28e5 000028df: DUP4 000028e0: DUP4 000028e1: PUSH2 0x3d07 000028e4: JUMP 000028e5: JUMPDEST 000028e6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028fb: DUP1 000028fc: DUP13 000028fd: AND 000028fe: PUSH1 0x00 00002900: SWAP1 00002901: DUP2 00002902: MSTORE 00002903: PUSH1 0x03 00002905: PUSH1 0x20 00002907: SWAP1 00002908: DUP2 00002909: MSTORE 0000290a: PUSH1 0x40 0000290c: DUP1 0000290d: DUP4 0000290e: KECCAK256 0000290f: SWAP4 00002910: DUP15 00002911: AND 00002912: DUP4 00002913: MSTORE 00002914: SWAP3 00002915: SWAP1 00002916: MSTORE 00002917: KECCAK256 00002918: SLOAD 00002919: SWAP1 0000291a: SWAP2 0000291b: POP 0000291c: PUSH2 0x2926 0000291f: SWAP1 00002920: DUP3 00002921: SWAP1 00002922: PUSH2 0x3e80 00002925: JUMP 00002926: JUMPDEST 00002927: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000293c: DUP1 0000293d: DUP13 0000293e: AND 0000293f: PUSH1 0x00 00002941: SWAP1 00002942: DUP2 00002943: MSTORE 00002944: PUSH1 0x03 00002946: PUSH1 0x20 00002948: SWAP1 00002949: DUP2 0000294a: MSTORE 0000294b: PUSH1 0x40 0000294d: DUP1 0000294e: DUP4 0000294f: KECCAK256 00002950: SWAP4 00002951: DUP15 00002952: AND 00002953: DUP4 00002954: MSTORE 00002955: SWAP3 00002956: SWAP1 00002957: MSTORE 00002958: KECCAK256 00002959: SSTORE 0000295a: POP 0000295b: POP 0000295c: POP 0000295d: JUMPDEST 0000295e: PUSH2 0x296b 00002961: DUP8 00002962: DUP8 00002963: DUP8 00002964: DUP8 00002965: DUP8 00002966: DUP7 00002967: PUSH2 0x3273 0000296a: JUMP 0000296b: JUMPDEST 0000296c: PUSH1 0x00 0000296e: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 0000298f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029a4: AND 000029a5: PUSH4 0xb575e300 000029aa: DUP3 000029ab: PUSH32 0x0000000000000000000000004200000000000000000000000000000000000010 000029cc: PUSH4 0x0166a07a 000029d1: PUSH1 0xe0 000029d3: SHL 000029d4: DUP12 000029d5: DUP14 000029d6: DUP13 000029d7: DUP13 000029d8: DUP13 000029d9: DUP12 000029da: PUSH1 0x40 000029dc: MLOAD 000029dd: PUSH1 0x24 000029df: ADD 000029e0: PUSH2 0x29ee 000029e3: SWAP7 000029e4: SWAP6 000029e5: SWAP5 000029e6: SWAP4 000029e7: SWAP3 000029e8: SWAP2 000029e9: SWAP1 000029ea: PUSH2 0x3e98 000029ed: JUMP 000029ee: JUMPDEST 000029ef: PUSH1 0x40 000029f1: DUP1 000029f2: MLOAD 000029f3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00002a14: DUP2 00002a15: DUP5 00002a16: SUB 00002a17: ADD 00002a18: DUP2 00002a19: MSTORE 00002a1a: SWAP2 00002a1b: DUP2 00002a1c: MSTORE 00002a1d: PUSH1 0x20 00002a1f: DUP3 00002a20: ADD 00002a21: DUP1 00002a22: MLOAD 00002a23: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002a40: AND 00002a41: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00002a62: SWAP5 00002a63: DUP6 00002a64: AND 00002a65: OR 00002a66: SWAP1 00002a67: MSTORE 00002a68: MLOAD 00002a69: PUSH1 0xe0 00002a6b: DUP7 00002a6c: SWAP1 00002a6d: SHL 00002a6e: SWAP1 00002a6f: SWAP3 00002a70: AND 00002a71: DUP3 00002a72: MSTORE 00002a73: PUSH2 0x2a82 00002a76: SWAP4 00002a77: SWAP3 00002a78: SWAP2 00002a79: DUP10 00002a7a: SWAP1 00002a7b: PUSH1 0x04 00002a7d: ADD 00002a7e: PUSH2 0x3ddd 00002a81: JUMP 00002a82: JUMPDEST 00002a83: PUSH1 0x00 00002a85: PUSH1 0x40 00002a87: MLOAD 00002a88: DUP1 00002a89: DUP4 00002a8a: SUB 00002a8b: DUP2 00002a8c: PUSH1 0x00 00002a8e: DUP8 00002a8f: DUP1 00002a90: EXTCODESIZE 00002a91: ISZERO 00002a92: DUP1 00002a93: ISZERO 00002a94: PUSH2 0x2a9c 00002a97: JUMPI 00002a98: PUSH1 0x00 00002a9a: DUP1 00002a9b: REVERT 00002a9c: JUMPDEST 00002a9d: POP 00002a9e: GAS 00002a9f: CALL 00002aa0: ISZERO 00002aa1: DUP1 00002aa2: ISZERO 00002aa3: PUSH2 0x2ab0 00002aa6: JUMPI 00002aa7: RETURNDATASIZE 00002aa8: PUSH1 0x00 00002aaa: DUP1 00002aab: RETURNDATACOPY 00002aac: RETURNDATASIZE 00002aad: PUSH1 0x00 00002aaf: REVERT 00002ab0: JUMPDEST 00002ab1: POP 00002ab2: POP 00002ab3: POP 00002ab4: POP 00002ab5: POP 00002ab6: POP 00002ab7: POP 00002ab8: POP 00002ab9: POP 00002aba: POP 00002abb: POP 00002abc: POP 00002abd: JUMP 00002abe: JUMPDEST 00002abf: PUSH1 0x60 00002ac1: DUP2 00002ac2: PUSH1 0x00 00002ac4: SUB 00002ac5: PUSH2 0x2b01 00002ac8: JUMPI 00002ac9: POP 00002aca: POP 00002acb: PUSH1 0x40 00002acd: DUP1 00002ace: MLOAD 00002acf: DUP1 00002ad0: DUP3 00002ad1: ADD 00002ad2: SWAP1 00002ad3: SWAP2 00002ad4: MSTORE 00002ad5: PUSH1 0x01 00002ad7: DUP2 00002ad8: MSTORE 00002ad9: PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 00002afa: PUSH1 0x20 00002afc: DUP3 00002afd: ADD 00002afe: MSTORE 00002aff: SWAP1 00002b00: JUMP 00002b01: JUMPDEST 00002b02: DUP2 00002b03: PUSH1 0x00 00002b05: JUMPDEST 00002b06: DUP2 00002b07: ISZERO 00002b08: PUSH2 0x2b2b 00002b0b: JUMPI 00002b0c: DUP1 00002b0d: PUSH2 0x2b15 00002b10: DUP2 00002b11: PUSH2 0x3ef3 00002b14: JUMP 00002b15: JUMPDEST 00002b16: SWAP2 00002b17: POP 00002b18: PUSH2 0x2b24 00002b1b: SWAP1 00002b1c: POP 00002b1d: PUSH1 0x0a 00002b1f: DUP4 00002b20: PUSH2 0x3f5a 00002b23: JUMP 00002b24: JUMPDEST 00002b25: SWAP2 00002b26: POP 00002b27: PUSH2 0x2b05 00002b2a: JUMP 00002b2b: JUMPDEST 00002b2c: PUSH1 0x00 00002b2e: DUP2 00002b2f: PUSH8 0xffffffffffffffff 00002b38: DUP2 00002b39: GT 00002b3a: ISZERO 00002b3b: PUSH2 0x2b46 00002b3e: JUMPI 00002b3f: PUSH2 0x2b46 00002b42: PUSH2 0x3f6e 00002b45: JUMP 00002b46: JUMPDEST 00002b47: PUSH1 0x40 00002b49: MLOAD 00002b4a: SWAP1 00002b4b: DUP1 00002b4c: DUP3 00002b4d: MSTORE 00002b4e: DUP1 00002b4f: PUSH1 0x1f 00002b51: ADD 00002b52: PUSH1 0x1f 00002b54: NOT 00002b55: AND 00002b56: PUSH1 0x20 00002b58: ADD 00002b59: DUP3 00002b5a: ADD 00002b5b: PUSH1 0x40 00002b5d: MSTORE 00002b5e: DUP1 00002b5f: ISZERO 00002b60: PUSH2 0x2b70 00002b63: JUMPI 00002b64: PUSH1 0x20 00002b66: DUP3 00002b67: ADD 00002b68: DUP2 00002b69: DUP1 00002b6a: CALLDATASIZE 00002b6b: DUP4 00002b6c: CALLDATACOPY 00002b6d: ADD 00002b6e: SWAP1 00002b6f: POP 00002b70: JUMPDEST 00002b71: POP 00002b72: SWAP1 00002b73: POP 00002b74: JUMPDEST 00002b75: DUP5 00002b76: ISZERO 00002b77: PUSH2 0x2bf3 00002b7a: JUMPI 00002b7b: PUSH2 0x2b85 00002b7e: PUSH1 0x01 00002b80: DUP4 00002b81: PUSH2 0x3d07 00002b84: JUMP 00002b85: JUMPDEST 00002b86: SWAP2 00002b87: POP 00002b88: PUSH2 0x2b92 00002b8b: PUSH1 0x0a 00002b8d: DUP7 00002b8e: PUSH2 0x3f9d 00002b91: JUMP 00002b92: JUMPDEST 00002b93: PUSH2 0x2b9d 00002b96: SWAP1 00002b97: PUSH1 0x30 00002b99: PUSH2 0x3e80 00002b9c: JUMP 00002b9d: JUMPDEST 00002b9e: PUSH1 0xf8 00002ba0: SHL 00002ba1: DUP2 00002ba2: DUP4 00002ba3: DUP2 00002ba4: MLOAD 00002ba5: DUP2 00002ba6: LT 00002ba7: PUSH2 0x2bb2 00002baa: JUMPI 00002bab: PUSH2 0x2bb2 00002bae: PUSH2 0x3fb1 00002bb1: JUMP 00002bb2: JUMPDEST 00002bb3: PUSH1 0x20 00002bb5: ADD 00002bb6: ADD 00002bb7: SWAP1 00002bb8: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002bd8: NOT 00002bd9: AND 00002bda: SWAP1 00002bdb: DUP2 00002bdc: PUSH1 0x00 00002bde: BYTE 00002bdf: SWAP1 00002be0: MSTORE8 00002be1: POP 00002be2: PUSH2 0x2bec 00002be5: PUSH1 0x0a 00002be7: DUP7 00002be8: PUSH2 0x3f5a 00002beb: JUMP 00002bec: JUMPDEST 00002bed: SWAP5 00002bee: POP 00002bef: PUSH2 0x2b74 00002bf2: JUMP 00002bf3: JUMPDEST 00002bf4: SWAP5 00002bf5: SWAP4 00002bf6: POP 00002bf7: POP 00002bf8: POP 00002bf9: POP 00002bfa: JUMP 00002bfb: JUMPDEST 00002bfc: PUSH2 0x0b71 00002bff: DUP8 00002c00: DUP8 00002c01: DUP8 00002c02: DUP8 00002c03: DUP8 00002c04: DUP8 00002c05: DUP8 00002c06: PUSH2 0x2462 00002c09: JUMP 00002c0a: JUMPDEST 00002c0b: CALLVALUE 00002c0c: ISZERO 00002c0d: PUSH2 0x2c98 00002c10: JUMPI 00002c11: PUSH1 0x40 00002c13: MLOAD 00002c14: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002c35: DUP2 00002c36: MSTORE 00002c37: PUSH1 0x20 00002c39: PUSH1 0x04 00002c3b: DUP3 00002c3c: ADD 00002c3d: MSTORE 00002c3e: PUSH1 0x3b 00002c40: PUSH1 0x24 00002c42: DUP3 00002c43: ADD 00002c44: MSTORE 00002c45: PUSH32 0x4c315374616e646172644272696467653a206465706f736974204d4e54207368 00002c66: PUSH1 0x44 00002c68: DUP3 00002c69: ADD 00002c6a: MSTORE 00002c6b: PUSH32 0x6f756c64206e6f7420696e636c756465204554482076616c75652e0000000000 00002c8c: PUSH1 0x64 00002c8e: DUP3 00002c8f: ADD 00002c90: MSTORE 00002c91: PUSH1 0x84 00002c93: ADD 00002c94: PUSH2 0x022a 00002c97: JUMP 00002c98: JUMPDEST 00002c99: PUSH2 0x2cda 00002c9c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002cb1: PUSH32 0x0000000000000000000000003c3a81e81dc49a522a592e7622a7e711c06bf354 00002cd2: AND 00002cd3: DUP7 00002cd4: ADDRESS 00002cd5: DUP7 00002cd6: PUSH2 0x2f0b 00002cd9: JUMP 00002cda: JUMPDEST 00002cdb: PUSH1 0x40 00002cdd: MLOAD 00002cde: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000 00002cff: DUP2 00002d00: MSTORE 00002d01: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d16: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 00002d37: DUP2 00002d38: AND 00002d39: PUSH1 0x04 00002d3b: DUP4 00002d3c: ADD 00002d3d: MSTORE 00002d3e: PUSH1 0x24 00002d40: DUP3 00002d41: ADD 00002d42: DUP6 00002d43: SWAP1 00002d44: MSTORE 00002d45: PUSH32 0x0000000000000000000000003c3a81e81dc49a522a592e7622a7e711c06bf354 00002d66: AND 00002d67: SWAP1 00002d68: PUSH4 0x095ea7b3 00002d6d: SWAP1 00002d6e: PUSH1 0x44 00002d70: ADD 00002d71: PUSH1 0x20 00002d73: PUSH1 0x40 00002d75: MLOAD 00002d76: DUP1 00002d77: DUP4 00002d78: SUB 00002d79: DUP2 00002d7a: PUSH1 0x00 00002d7c: DUP8 00002d7d: GAS 00002d7e: CALL 00002d7f: ISZERO 00002d80: DUP1 00002d81: ISZERO 00002d82: PUSH2 0x2d8f 00002d85: JUMPI 00002d86: RETURNDATASIZE 00002d87: PUSH1 0x00 00002d89: DUP1 00002d8a: RETURNDATACOPY 00002d8b: RETURNDATASIZE 00002d8c: PUSH1 0x00 00002d8e: REVERT 00002d8f: JUMPDEST 00002d90: POP 00002d91: POP 00002d92: POP 00002d93: POP 00002d94: PUSH1 0x40 00002d96: MLOAD 00002d97: RETURNDATASIZE 00002d98: PUSH1 0x1f 00002d9a: NOT 00002d9b: PUSH1 0x1f 00002d9d: DUP3 00002d9e: ADD 00002d9f: AND 00002da0: DUP3 00002da1: ADD 00002da2: DUP1 00002da3: PUSH1 0x40 00002da5: MSTORE 00002da6: POP 00002da7: DUP2 00002da8: ADD 00002da9: SWAP1 00002daa: PUSH2 0x2db3 00002dad: SWAP2 00002dae: SWAP1 00002daf: PUSH2 0x3fe0 00002db2: JUMP 00002db3: JUMPDEST 00002db4: POP 00002db5: PUSH2 0x2dc0 00002db8: DUP6 00002db9: DUP6 00002dba: DUP6 00002dbb: DUP5 00002dbc: PUSH2 0x3301 00002dbf: JUMP 00002dc0: JUMPDEST 00002dc1: PUSH32 0x000000000000000000000000676a795fe6e43c17c668de16730c3f690feb7120 00002de2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002df7: AND 00002df8: PUSH4 0xb575e300 00002dfd: CALLVALUE 00002dfe: DUP6 00002dff: PUSH32 0x0000000000000000000000004200000000000000000000000000000000000010 00002e20: PUSH4 0xf407a99e 00002e25: PUSH1 0xe0 00002e27: SHL 00002e28: DUP11 00002e29: DUP11 00002e2a: DUP11 00002e2b: DUP10 00002e2c: PUSH1 0x40 00002e2e: MLOAD 00002e2f: PUSH1 0x24 00002e31: ADD 00002e32: PUSH2 0x2e3e 00002e35: SWAP5 00002e36: SWAP4 00002e37: SWAP3 00002e38: SWAP2 00002e39: SWAP1 00002e3a: PUSH2 0x3d94 00002e3d: JUMP 00002e3e: JUMPDEST 00002e3f: PUSH1 0x40 00002e41: DUP1 00002e42: MLOAD 00002e43: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00002e64: DUP2 00002e65: DUP5 00002e66: SUB 00002e67: ADD 00002e68: DUP2 00002e69: MSTORE 00002e6a: SWAP2 00002e6b: DUP2 00002e6c: MSTORE 00002e6d: PUSH1 0x20 00002e6f: DUP3 00002e70: ADD 00002e71: DUP1 00002e72: MLOAD 00002e73: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002e90: AND 00002e91: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00002eb2: SWAP5 00002eb3: DUP6 00002eb4: AND 00002eb5: OR 00002eb6: SWAP1 00002eb7: MSTORE 00002eb8: MLOAD 00002eb9: PUSH1 0xe0 00002ebb: DUP8 00002ebc: SWAP1 00002ebd: SHL 00002ebe: SWAP1 00002ebf: SWAP3 00002ec0: AND 00002ec1: DUP3 00002ec2: MSTORE 00002ec3: PUSH2 0x2ed2 00002ec6: SWAP4 00002ec7: SWAP3 00002ec8: SWAP2 00002ec9: DUP10 00002eca: SWAP1 00002ecb: PUSH1 0x04 00002ecd: ADD 00002ece: PUSH2 0x3ddd 00002ed1: JUMP 00002ed2: JUMPDEST 00002ed3: PUSH1 0x00 00002ed5: PUSH1 0x40 00002ed7: MLOAD 00002ed8: DUP1 00002ed9: DUP4 00002eda: SUB 00002edb: DUP2 00002edc: DUP6 00002edd: DUP9 00002ede: DUP1 00002edf: EXTCODESIZE 00002ee0: ISZERO 00002ee1: DUP1 00002ee2: ISZERO 00002ee3: PUSH2 0x2eeb 00002ee6: JUMPI 00002ee7: PUSH1 0x00 00002ee9: DUP1 00002eea: REVERT 00002eeb: JUMPDEST 00002eec: POP 00002eed: GAS 00002eee: CALL 00002eef: ISZERO 00002ef0: DUP1 00002ef1: ISZERO 00002ef2: PUSH2 0x2eff 00002ef5: JUMPI 00002ef6: RETURNDATASIZE 00002ef7: PUSH1 0x00 00002ef9: DUP1 00002efa: RETURNDATACOPY 00002efb: RETURNDATASIZE 00002efc: PUSH1 0x00 00002efe: REVERT 00002eff: JUMPDEST 00002f00: POP 00002f01: POP 00002f02: POP 00002f03: POP 00002f04: POP 00002f05: POP 00002f06: POP 00002f07: POP 00002f08: POP 00002f09: POP 00002f0a: JUMP 00002f0b: JUMPDEST 00002f0c: PUSH1 0x40 00002f0e: MLOAD 00002f0f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f24: DUP1 00002f25: DUP6 00002f26: AND 00002f27: PUSH1 0x24 00002f29: DUP4 00002f2a: ADD 00002f2b: MSTORE 00002f2c: DUP4 00002f2d: AND 00002f2e: PUSH1 0x44 00002f30: DUP3 00002f31: ADD 00002f32: MSTORE 00002f33: PUSH1 0x64 00002f35: DUP2 00002f36: ADD 00002f37: DUP3 00002f38: SWAP1 00002f39: MSTORE 00002f3a: PUSH2 0x0635 00002f3d: SWAP1 00002f3e: DUP6 00002f3f: SWAP1 00002f40: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 00002f61: SWAP1 00002f62: PUSH1 0x84 00002f64: ADD 00002f65: PUSH2 0x22b8 00002f68: JUMP 00002f69: JUMPDEST 00002f6a: DUP3 00002f6b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f80: AND 00002f81: DUP5 00002f82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f97: AND 00002f98: PUSH32 0xd140b1626a1caf5ae4717fcfdace5983543949ab0d32ceb0ca635c3913983e28 00002fb9: DUP5 00002fba: DUP5 00002fbb: PUSH1 0x40 00002fbd: MLOAD 00002fbe: PUSH2 0x2fc8 00002fc1: SWAP3 00002fc2: SWAP2 00002fc3: SWAP1 00002fc4: PUSH2 0x3e67 00002fc7: JUMP 00002fc8: JUMPDEST 00002fc9: PUSH1 0x40 00002fcb: MLOAD 00002fcc: DUP1 00002fcd: SWAP2 00002fce: SUB 00002fcf: SWAP1 00002fd0: LOG3 00002fd1: PUSH2 0x0635 00002fd4: DUP5 00002fd5: DUP5 00002fd6: DUP5 00002fd7: DUP5 00002fd8: PUSH2 0x3374 00002fdb: JUMP 00002fdc: JUMPDEST 00002fdd: DUP3 00002fde: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ff3: AND 00002ff4: DUP5 00002ff5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000300a: AND 0000300b: PUSH32 0x35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f23 0000302c: DUP5 0000302d: DUP5 0000302e: PUSH1 0x40 00003030: MLOAD 00003031: PUSH2 0x303b 00003034: SWAP3 00003035: SWAP2 00003036: SWAP1 00003037: PUSH2 0x3e67 0000303a: JUMP 0000303b: JUMPDEST 0000303c: PUSH1 0x40 0000303e: MLOAD 0000303f: DUP1 00003040: SWAP2 00003041: SUB 00003042: SWAP1 00003043: LOG3 00003044: PUSH2 0x0635 00003047: DUP5 00003048: DUP5 00003049: DUP5 0000304a: DUP5 0000304b: PUSH2 0x33d3 0000304e: JUMP 0000304f: JUMPDEST 00003050: PUSH1 0x00 00003052: PUSH2 0x305a 00003055: DUP4 00003056: PUSH2 0x3432 00003059: JUMP 0000305a: JUMPDEST 0000305b: DUP1 0000305c: ISZERO 0000305d: PUSH2 0x306b 00003060: JUMPI 00003061: POP 00003062: PUSH2 0x306b 00003065: DUP4 00003066: DUP4 00003067: PUSH2 0x3496 0000306a: JUMP 0000306b: JUMPDEST 0000306c: SWAP4 0000306d: SWAP3 0000306e: POP 0000306f: POP 00003070: POP 00003071: JUMP 00003072: JUMPDEST 00003073: PUSH1 0x00 00003075: PUSH2 0x30d4 00003078: DUP3 00003079: PUSH1 0x40 0000307b: MLOAD 0000307c: DUP1 0000307d: PUSH1 0x40 0000307f: ADD 00003080: PUSH1 0x40 00003082: MSTORE 00003083: DUP1 00003084: PUSH1 0x20 00003086: DUP2 00003087: MSTORE 00003088: PUSH1 0x20 0000308a: ADD 0000308b: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 000030ac: DUP2 000030ad: MSTORE 000030ae: POP 000030af: DUP6 000030b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030c5: AND 000030c6: PUSH2 0x3565 000030c9: SWAP1 000030ca: SWAP3 000030cb: SWAP2 000030cc: SWAP1 000030cd: PUSH4 0xffffffff 000030d2: AND 000030d3: JUMP 000030d4: JUMPDEST 000030d5: DUP1 000030d6: MLOAD 000030d7: SWAP1 000030d8: SWAP2 000030d9: POP 000030da: ISZERO 000030db: PUSH2 0x0cdb 000030de: JUMPI 000030df: DUP1 000030e0: DUP1 000030e1: PUSH1 0x20 000030e3: ADD 000030e4: SWAP1 000030e5: MLOAD 000030e6: DUP2 000030e7: ADD 000030e8: SWAP1 000030e9: PUSH2 0x30f2 000030ec: SWAP2 000030ed: SWAP1 000030ee: PUSH2 0x3fe0 000030f1: JUMP 000030f2: JUMPDEST 000030f3: PUSH2 0x0cdb 000030f6: JUMPI 000030f7: PUSH1 0x40 000030f9: MLOAD 000030fa: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000311b: DUP2 0000311c: MSTORE 0000311d: PUSH1 0x20 0000311f: PUSH1 0x04 00003121: DUP3 00003122: ADD 00003123: MSTORE 00003124: PUSH1 0x2a 00003126: PUSH1 0x24 00003128: DUP3 00003129: ADD 0000312a: MSTORE 0000312b: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 0000314c: PUSH1 0x44 0000314e: DUP3 0000314f: ADD 00003150: MSTORE 00003151: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000 00003172: PUSH1 0x64 00003174: DUP3 00003175: ADD 00003176: MSTORE 00003177: PUSH1 0x84 00003179: ADD 0000317a: PUSH2 0x022a 0000317d: JUMP 0000317e: JUMPDEST 0000317f: DUP4 00003180: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003195: AND 00003196: DUP6 00003197: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031ac: AND 000031ad: DUP8 000031ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031c3: AND 000031c4: PUSH32 0xd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd 000031e5: DUP7 000031e6: DUP7 000031e7: DUP7 000031e8: PUSH1 0x40 000031ea: MLOAD 000031eb: PUSH2 0x31f6 000031ee: SWAP4 000031ef: SWAP3 000031f0: SWAP2 000031f1: SWAP1 000031f2: PUSH2 0x3e29 000031f5: JUMP 000031f6: JUMPDEST 000031f7: PUSH1 0x40 000031f9: MLOAD 000031fa: DUP1 000031fb: SWAP2 000031fc: SUB 000031fd: SWAP1 000031fe: LOG4 000031ff: POP 00003200: POP 00003201: POP 00003202: POP 00003203: POP 00003204: POP 00003205: JUMP 00003206: JUMPDEST 00003207: DUP3 00003208: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000321d: AND 0000321e: DUP5 0000321f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003234: AND 00003235: PUSH32 0x31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d 00003256: DUP5 00003257: DUP5 00003258: PUSH1 0x40 0000325a: MLOAD 0000325b: PUSH2 0x3265 0000325e: SWAP3 0000325f: SWAP2 00003260: SWAP1 00003261: PUSH2 0x3e67 00003264: JUMP 00003265: JUMPDEST 00003266: PUSH1 0x40 00003268: MLOAD 00003269: DUP1 0000326a: SWAP2 0000326b: SUB 0000326c: SWAP1 0000326d: LOG3 0000326e: POP 0000326f: POP 00003270: POP 00003271: POP 00003272: JUMP 00003273: JUMPDEST 00003274: DUP4 00003275: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000328a: AND 0000328b: DUP6 0000328c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032a1: AND 000032a2: DUP8 000032a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032b8: AND 000032b9: PUSH32 0x718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396 000032da: DUP7 000032db: DUP7 000032dc: DUP7 000032dd: PUSH1 0x40 000032df: MLOAD 000032e0: PUSH2 0x32eb 000032e3: SWAP4 000032e4: SWAP3 000032e5: SWAP2 000032e6: SWAP1 000032e7: PUSH2 0x3e29 000032ea: JUMP 000032eb: JUMPDEST 000032ec: PUSH1 0x40 000032ee: MLOAD 000032ef: DUP1 000032f0: SWAP2 000032f1: SUB 000032f2: SWAP1 000032f3: LOG4 000032f4: PUSH2 0x11c1 000032f7: DUP7 000032f8: DUP7 000032f9: DUP7 000032fa: DUP7 000032fb: DUP7 000032fc: DUP7 000032fd: PUSH2 0x3574 00003300: JUMP 00003301: JUMPDEST 00003302: DUP3 00003303: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003318: AND 00003319: DUP5 0000331a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000332f: AND 00003330: PUSH32 0x321b860de8dcec5080cae77af335971688a4c0bc3d79d6cf3d6f2cc3894798bc 00003351: DUP5 00003352: DUP5 00003353: PUSH1 0x40 00003355: MLOAD 00003356: PUSH2 0x3360 00003359: SWAP3 0000335a: SWAP2 0000335b: SWAP1 0000335c: PUSH2 0x3e67 0000335f: JUMP 00003360: JUMPDEST 00003361: PUSH1 0x40 00003363: MLOAD 00003364: DUP1 00003365: SWAP2 00003366: SUB 00003367: SWAP1 00003368: LOG3 00003369: PUSH2 0x0635 0000336c: DUP5 0000336d: DUP5 0000336e: DUP5 0000336f: DUP5 00003370: PUSH2 0x35ec 00003373: JUMP 00003374: JUMPDEST 00003375: DUP3 00003376: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000338b: AND 0000338c: DUP5 0000338d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000033a2: AND 000033a3: PUSH32 0xef2dd684d0d947aa195ea84c18e3b5c457d3462c09eb29b20aac4f7d4d4f0035 000033c4: DUP5 000033c5: DUP5 000033c6: PUSH1 0x40 000033c8: MLOAD 000033c9: PUSH2 0x3265 000033cc: SWAP3 000033cd: SWAP2 000033ce: SWAP1 000033cf: PUSH2 0x3e67 000033d2: JUMP 000033d3: JUMPDEST 000033d4: DUP3 000033d5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000033ea: AND 000033eb: DUP5 000033ec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003401: AND 00003402: PUSH32 0x2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af5 00003423: DUP5 00003424: DUP5 00003425: PUSH1 0x40 00003427: MLOAD 00003428: PUSH2 0x3265 0000342b: SWAP3 0000342c: SWAP2 0000342d: SWAP1 0000342e: PUSH2 0x3e67 00003431: JUMP 00003432: JUMPDEST 00003433: PUSH1 0x00 00003435: PUSH2 0x345e 00003438: DUP3 00003439: PUSH32 0x01ffc9a700000000000000000000000000000000000000000000000000000000 0000345a: PUSH2 0x3496 0000345d: JUMP 0000345e: JUMPDEST 0000345f: DUP1 00003460: ISZERO 00003461: PUSH2 0x2140 00003464: JUMPI 00003465: POP 00003466: PUSH2 0x348f 00003469: DUP3 0000346a: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000348b: PUSH2 0x3496 0000348e: JUMP 0000348f: JUMPDEST 00003490: ISZERO 00003491: SWAP3 00003492: SWAP2 00003493: POP 00003494: POP 00003495: JUMP 00003496: JUMPDEST 00003497: PUSH1 0x40 00003499: DUP1 0000349a: MLOAD 0000349b: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000034bc: DUP4 000034bd: AND 000034be: PUSH1 0x24 000034c0: DUP1 000034c1: DUP4 000034c2: ADD 000034c3: SWAP2 000034c4: SWAP1 000034c5: SWAP2 000034c6: MSTORE 000034c7: DUP3 000034c8: MLOAD 000034c9: DUP1 000034ca: DUP4 000034cb: SUB 000034cc: SWAP1 000034cd: SWAP2 000034ce: ADD 000034cf: DUP2 000034d0: MSTORE 000034d1: PUSH1 0x44 000034d3: SWAP1 000034d4: SWAP2 000034d5: ADD 000034d6: SWAP1 000034d7: SWAP2 000034d8: MSTORE 000034d9: PUSH1 0x20 000034db: DUP1 000034dc: DUP3 000034dd: ADD 000034de: DUP1 000034df: MLOAD 000034e0: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000034fd: AND 000034fe: PUSH32 0x01ffc9a700000000000000000000000000000000000000000000000000000000 0000351f: OR 00003520: DUP2 00003521: MSTORE 00003522: DUP3 00003523: MLOAD 00003524: PUSH1 0x00 00003526: SWAP4 00003527: SWAP3 00003528: DUP5 00003529: SWAP3 0000352a: DUP4 0000352b: SWAP3 0000352c: DUP4 0000352d: SWAP3 0000352e: SWAP2 0000352f: DUP4 00003530: SWAP2 00003531: SWAP1 00003532: DUP11 00003533: PUSH2 0x7530 00003536: STATICCALL 00003537: SWAP3 00003538: POP 00003539: RETURNDATASIZE 0000353a: SWAP2 0000353b: POP 0000353c: PUSH1 0x00 0000353e: MLOAD 0000353f: SWAP1 00003540: POP 00003541: DUP3 00003542: DUP1 00003543: ISZERO 00003544: PUSH2 0x354e 00003547: JUMPI 00003548: POP 00003549: PUSH1 0x20 0000354b: DUP3 0000354c: LT 0000354d: ISZERO 0000354e: JUMPDEST 0000354f: DUP1 00003550: ISZERO 00003551: PUSH2 0x355a 00003554: JUMPI 00003555: POP 00003556: PUSH1 0x00 00003558: DUP2 00003559: GT 0000355a: JUMPDEST 0000355b: SWAP8 0000355c: SWAP7 0000355d: POP 0000355e: POP 0000355f: POP 00003560: POP 00003561: POP 00003562: POP 00003563: POP 00003564: JUMP 00003565: JUMPDEST 00003566: PUSH1 0x60 00003568: PUSH2 0x2bf3 0000356b: DUP5 0000356c: DUP5 0000356d: PUSH1 0x00 0000356f: DUP6 00003570: PUSH2 0x364b 00003573: JUMP 00003574: JUMPDEST 00003575: DUP4 00003576: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000358b: AND 0000358c: DUP6 0000358d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035a2: AND 000035a3: DUP8 000035a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035b9: AND 000035ba: PUSH32 0x7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf 000035db: DUP7 000035dc: DUP7 000035dd: DUP7 000035de: PUSH1 0x40 000035e0: MLOAD 000035e1: PUSH2 0x31f6 000035e4: SWAP4 000035e5: SWAP3 000035e6: SWAP2 000035e7: SWAP1 000035e8: PUSH2 0x3e29 000035eb: JUMP 000035ec: JUMPDEST 000035ed: DUP3 000035ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003603: AND 00003604: DUP5 00003605: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000361a: AND 0000361b: PUSH32 0x74bbfec0d26a17c2367408038090a9a4e1cd1671129dc8fdf57f146a499fe3d5 0000363c: DUP5 0000363d: DUP5 0000363e: PUSH1 0x40 00003640: MLOAD 00003641: PUSH2 0x3265 00003644: SWAP3 00003645: SWAP2 00003646: SWAP1 00003647: PUSH2 0x3e67 0000364a: JUMP 0000364b: JUMPDEST 0000364c: PUSH1 0x60 0000364e: DUP3 0000364f: SELFBALANCE 00003650: LT 00003651: ISZERO 00003652: PUSH2 0x36dd 00003655: JUMPI 00003656: PUSH1 0x40 00003658: MLOAD 00003659: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000367a: DUP2 0000367b: MSTORE 0000367c: PUSH1 0x20 0000367e: PUSH1 0x04 00003680: DUP3 00003681: ADD 00003682: MSTORE 00003683: PUSH1 0x26 00003685: PUSH1 0x24 00003687: DUP3 00003688: ADD 00003689: MSTORE 0000368a: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 000036ab: PUSH1 0x44 000036ad: DUP3 000036ae: ADD 000036af: MSTORE 000036b0: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000 000036d1: PUSH1 0x64 000036d3: DUP3 000036d4: ADD 000036d5: MSTORE 000036d6: PUSH1 0x84 000036d8: ADD 000036d9: PUSH2 0x022a 000036dc: JUMP 000036dd: JUMPDEST 000036de: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000036f3: DUP6 000036f4: AND 000036f5: EXTCODESIZE 000036f6: PUSH2 0x375b 000036f9: JUMPI 000036fa: PUSH1 0x40 000036fc: MLOAD 000036fd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000371e: DUP2 0000371f: MSTORE 00003720: PUSH1 0x20 00003722: PUSH1 0x04 00003724: DUP3 00003725: ADD 00003726: MSTORE 00003727: PUSH1 0x1d 00003729: PUSH1 0x24 0000372b: DUP3 0000372c: ADD 0000372d: MSTORE 0000372e: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 0000374f: PUSH1 0x44 00003751: DUP3 00003752: ADD 00003753: MSTORE 00003754: PUSH1 0x64 00003756: ADD 00003757: PUSH2 0x022a 0000375a: JUMP 0000375b: JUMPDEST 0000375c: PUSH1 0x00 0000375e: DUP1 0000375f: DUP7 00003760: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003775: AND 00003776: DUP6 00003777: DUP8 00003778: PUSH1 0x40 0000377a: MLOAD 0000377b: PUSH2 0x3784 0000377e: SWAP2 0000377f: SWAP1 00003780: PUSH2 0x4002 00003783: JUMP 00003784: JUMPDEST 00003785: PUSH1 0x00 00003787: PUSH1 0x40 00003789: MLOAD 0000378a: DUP1 0000378b: DUP4 0000378c: SUB 0000378d: DUP2 0000378e: DUP6 0000378f: DUP8 00003790: GAS 00003791: CALL 00003792: SWAP3 00003793: POP 00003794: POP 00003795: POP 00003796: RETURNDATASIZE 00003797: DUP1 00003798: PUSH1 0x00 0000379a: DUP2 0000379b: EQ 0000379c: PUSH2 0x37c1 0000379f: JUMPI 000037a0: PUSH1 0x40 000037a2: MLOAD 000037a3: SWAP2 000037a4: POP 000037a5: PUSH1 0x1f 000037a7: NOT 000037a8: PUSH1 0x3f 000037aa: RETURNDATASIZE 000037ab: ADD 000037ac: AND 000037ad: DUP3 000037ae: ADD 000037af: PUSH1 0x40 000037b1: MSTORE 000037b2: RETURNDATASIZE 000037b3: DUP3 000037b4: MSTORE 000037b5: RETURNDATASIZE 000037b6: PUSH1 0x00 000037b8: PUSH1 0x20 000037ba: DUP5 000037bb: ADD 000037bc: RETURNDATACOPY 000037bd: PUSH2 0x37c6 000037c0: JUMP 000037c1: JUMPDEST 000037c2: PUSH1 0x60 000037c4: SWAP2 000037c5: POP 000037c6: JUMPDEST 000037c7: POP 000037c8: SWAP2 000037c9: POP 000037ca: SWAP2 000037cb: POP 000037cc: PUSH2 0x355a 000037cf: DUP3 000037d0: DUP3 000037d1: DUP7 000037d2: PUSH1 0x60 000037d4: DUP4 000037d5: ISZERO 000037d6: PUSH2 0x37e0 000037d9: JUMPI 000037da: POP 000037db: DUP2 000037dc: PUSH2 0x306b 000037df: JUMP 000037e0: JUMPDEST 000037e1: DUP3 000037e2: MLOAD 000037e3: ISZERO 000037e4: PUSH2 0x37f0 000037e7: JUMPI 000037e8: DUP3 000037e9: MLOAD 000037ea: DUP1 000037eb: DUP5 000037ec: PUSH1 0x20 000037ee: ADD 000037ef: REVERT 000037f0: JUMPDEST 000037f1: DUP2 000037f2: PUSH1 0x40 000037f4: MLOAD 000037f5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003816: DUP2 00003817: MSTORE 00003818: PUSH1 0x04 0000381a: ADD 0000381b: PUSH2 0x022a 0000381e: SWAP2 0000381f: SWAP1 00003820: PUSH2 0x3b50 00003823: JUMP 00003824: JUMPDEST 00003825: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000383a: DUP2 0000383b: AND 0000383c: DUP2 0000383d: EQ 0000383e: PUSH2 0x3846 00003841: JUMPI 00003842: PUSH1 0x00 00003844: DUP1 00003845: REVERT 00003846: JUMPDEST 00003847: POP 00003848: JUMP 00003849: JUMPDEST 0000384a: PUSH1 0x00 0000384c: DUP1 0000384d: DUP4 0000384e: PUSH1 0x1f 00003850: DUP5 00003851: ADD 00003852: SLT 00003853: PUSH2 0x385b 00003856: JUMPI 00003857: PUSH1 0x00 00003859: DUP1 0000385a: REVERT 0000385b: JUMPDEST 0000385c: POP 0000385d: DUP2 0000385e: CALLDATALOAD 0000385f: PUSH8 0xffffffffffffffff 00003868: DUP2 00003869: GT 0000386a: ISZERO 0000386b: PUSH2 0x3873 0000386e: JUMPI 0000386f: PUSH1 0x00 00003871: DUP1 00003872: REVERT 00003873: JUMPDEST 00003874: PUSH1 0x20 00003876: DUP4 00003877: ADD 00003878: SWAP2 00003879: POP 0000387a: DUP4 0000387b: PUSH1 0x20 0000387d: DUP3 0000387e: DUP6 0000387f: ADD 00003880: ADD 00003881: GT 00003882: ISZERO 00003883: PUSH2 0x388b 00003886: JUMPI 00003887: PUSH1 0x00 00003889: DUP1 0000388a: REVERT 0000388b: JUMPDEST 0000388c: SWAP3 0000388d: POP 0000388e: SWAP3 0000388f: SWAP1 00003890: POP 00003891: JUMP 00003892: JUMPDEST 00003893: PUSH1 0x00 00003895: DUP1 00003896: PUSH1 0x00 00003898: DUP1 00003899: PUSH1 0x00 0000389b: DUP1 0000389c: PUSH1 0x00 0000389e: PUSH1 0xc0 000038a0: DUP9 000038a1: DUP11 000038a2: SUB 000038a3: SLT 000038a4: ISZERO 000038a5: PUSH2 0x38ad 000038a8: JUMPI 000038a9: PUSH1 0x00 000038ab: DUP1 000038ac: REVERT 000038ad: JUMPDEST 000038ae: DUP8 000038af: CALLDATALOAD 000038b0: PUSH2 0x38b8 000038b3: DUP2 000038b4: PUSH2 0x3824 000038b7: JUMP 000038b8: JUMPDEST 000038b9: SWAP7 000038ba: POP 000038bb: PUSH1 0x20 000038bd: DUP9 000038be: ADD 000038bf: CALLDATALOAD 000038c0: PUSH2 0x38c8 000038c3: DUP2 000038c4: PUSH2 0x3824 000038c7: JUMP 000038c8: JUMPDEST 000038c9: SWAP6 000038ca: POP 000038cb: PUSH1 0x40 000038cd: DUP9 000038ce: ADD 000038cf: CALLDATALOAD 000038d0: PUSH2 0x38d8 000038d3: DUP2 000038d4: PUSH2 0x3824 000038d7: JUMP 000038d8: JUMPDEST 000038d9: SWAP5 000038da: POP 000038db: PUSH1 0x60 000038dd: DUP9 000038de: ADD 000038df: CALLDATALOAD 000038e0: PUSH2 0x38e8 000038e3: DUP2 000038e4: PUSH2 0x3824 000038e7: JUMP 000038e8: JUMPDEST 000038e9: SWAP4 000038ea: POP 000038eb: PUSH1 0x80 000038ed: DUP9 000038ee: ADD 000038ef: CALLDATALOAD 000038f0: SWAP3 000038f1: POP 000038f2: PUSH1 0xa0 000038f4: DUP9 000038f5: ADD 000038f6: CALLDATALOAD 000038f7: PUSH8 0xffffffffffffffff 00003900: DUP2 00003901: GT 00003902: ISZERO 00003903: PUSH2 0x390b 00003906: JUMPI 00003907: PUSH1 0x00 00003909: DUP1 0000390a: REVERT 0000390b: JUMPDEST 0000390c: PUSH2 0x3917 0000390f: DUP11 00003910: DUP3 00003911: DUP12 00003912: ADD 00003913: PUSH2 0x3849 00003916: JUMP 00003917: JUMPDEST 00003918: SWAP9 00003919: SWAP12 0000391a: SWAP8 0000391b: SWAP11 0000391c: POP 0000391d: SWAP6 0000391e: SWAP9 0000391f: POP 00003920: SWAP4 00003921: SWAP7 00003922: SWAP3 00003923: SWAP6 00003924: SWAP3 00003925: SWAP4 00003926: POP 00003927: POP 00003928: POP 00003929: JUMP 0000392a: JUMPDEST 0000392b: DUP1 0000392c: CALLDATALOAD 0000392d: PUSH4 0xffffffff 00003932: DUP2 00003933: AND 00003934: DUP2 00003935: EQ 00003936: PUSH2 0x393e 00003939: JUMPI 0000393a: PUSH1 0x00 0000393c: DUP1 0000393d: REVERT 0000393e: JUMPDEST 0000393f: SWAP2 00003940: SWAP1 00003941: POP 00003942: JUMP 00003943: JUMPDEST 00003944: PUSH1 0x00 00003946: DUP1 00003947: PUSH1 0x00 00003949: PUSH1 0x40 0000394b: DUP5 0000394c: DUP7 0000394d: SUB 0000394e: SLT 0000394f: ISZERO 00003950: PUSH2 0x3958 00003953: JUMPI 00003954: PUSH1 0x00 00003956: DUP1 00003957: REVERT 00003958: JUMPDEST 00003959: PUSH2 0x3961 0000395c: DUP5 0000395d: PUSH2 0x392a 00003960: JUMP 00003961: JUMPDEST 00003962: SWAP3 00003963: POP 00003964: PUSH1 0x20 00003966: DUP5 00003967: ADD 00003968: CALLDATALOAD 00003969: PUSH8 0xffffffffffffffff 00003972: DUP2 00003973: GT 00003974: ISZERO 00003975: PUSH2 0x397d 00003978: JUMPI 00003979: PUSH1 0x00 0000397b: DUP1 0000397c: REVERT 0000397d: JUMPDEST 0000397e: PUSH2 0x3989 00003981: DUP7 00003982: DUP3 00003983: DUP8 00003984: ADD 00003985: PUSH2 0x3849 00003988: JUMP 00003989: JUMPDEST 0000398a: SWAP5 0000398b: SWAP8 0000398c: SWAP1 0000398d: SWAP7 0000398e: POP 0000398f: SWAP4 00003990: SWAP5 00003991: POP 00003992: POP 00003993: POP 00003994: POP 00003995: JUMP 00003996: JUMPDEST 00003997: PUSH1 0x00 00003999: DUP1 0000399a: PUSH1 0x00 0000399c: DUP1 0000399d: PUSH1 0x00 0000399f: PUSH1 0x80 000039a1: DUP7 000039a2: DUP9 000039a3: SUB 000039a4: SLT 000039a5: ISZERO 000039a6: PUSH2 0x39ae 000039a9: JUMPI 000039aa: PUSH1 0x00 000039ac: DUP1 000039ad: REVERT 000039ae: JUMPDEST 000039af: DUP6 000039b0: CALLDATALOAD 000039b1: PUSH2 0x39b9 000039b4: DUP2 000039b5: PUSH2 0x3824 000039b8: JUMP 000039b9: JUMPDEST 000039ba: SWAP5 000039bb: POP 000039bc: PUSH1 0x20 000039be: DUP7 000039bf: ADD 000039c0: CALLDATALOAD 000039c1: PUSH2 0x39c9 000039c4: DUP2 000039c5: PUSH2 0x3824 000039c8: JUMP 000039c9: JUMPDEST 000039ca: SWAP4 000039cb: POP 000039cc: PUSH1 0x40 000039ce: DUP7 000039cf: ADD 000039d0: CALLDATALOAD 000039d1: SWAP3 000039d2: POP 000039d3: PUSH1 0x60 000039d5: DUP7 000039d6: ADD 000039d7: CALLDATALOAD 000039d8: PUSH8 0xffffffffffffffff 000039e1: DUP2 000039e2: GT 000039e3: ISZERO 000039e4: PUSH2 0x39ec 000039e7: JUMPI 000039e8: PUSH1 0x00 000039ea: DUP1 000039eb: REVERT 000039ec: JUMPDEST 000039ed: PUSH2 0x39f8 000039f0: DUP9 000039f1: DUP3 000039f2: DUP10 000039f3: ADD 000039f4: PUSH2 0x3849 000039f7: JUMP 000039f8: JUMPDEST 000039f9: SWAP7 000039fa: SWAP10 000039fb: SWAP6 000039fc: SWAP9 000039fd: POP 000039fe: SWAP4 000039ff: SWAP7 00003a00: POP 00003a01: SWAP3 00003a02: SWAP5 00003a03: SWAP4 00003a04: SWAP3 00003a05: POP 00003a06: POP 00003a07: POP 00003a08: JUMP 00003a09: JUMPDEST 00003a0a: PUSH1 0x00 00003a0c: DUP1 00003a0d: PUSH1 0x00 00003a0f: DUP1 00003a10: PUSH1 0x60 00003a12: DUP6 00003a13: DUP8 00003a14: SUB 00003a15: SLT 00003a16: ISZERO 00003a17: PUSH2 0x3a1f 00003a1a: JUMPI 00003a1b: PUSH1 0x00 00003a1d: DUP1 00003a1e: REVERT 00003a1f: JUMPDEST 00003a20: DUP5 00003a21: CALLDATALOAD 00003a22: SWAP4 00003a23: POP 00003a24: PUSH2 0x3a2f 00003a27: PUSH1 0x20 00003a29: DUP7 00003a2a: ADD 00003a2b: PUSH2 0x392a 00003a2e: JUMP 00003a2f: JUMPDEST 00003a30: SWAP3 00003a31: POP 00003a32: PUSH1 0x40 00003a34: DUP6 00003a35: ADD 00003a36: CALLDATALOAD 00003a37: PUSH8 0xffffffffffffffff 00003a40: DUP2 00003a41: GT 00003a42: ISZERO 00003a43: PUSH2 0x3a4b 00003a46: JUMPI 00003a47: PUSH1 0x00 00003a49: DUP1 00003a4a: REVERT 00003a4b: JUMPDEST 00003a4c: PUSH2 0x3a57 00003a4f: DUP8 00003a50: DUP3 00003a51: DUP9 00003a52: ADD 00003a53: PUSH2 0x3849 00003a56: JUMP 00003a57: JUMPDEST 00003a58: SWAP6 00003a59: SWAP9 00003a5a: SWAP5 00003a5b: SWAP8 00003a5c: POP 00003a5d: SWAP6 00003a5e: POP 00003a5f: POP 00003a60: POP 00003a61: POP 00003a62: JUMP 00003a63: JUMPDEST 00003a64: PUSH1 0x00 00003a66: DUP1 00003a67: PUSH1 0x00 00003a69: DUP1 00003a6a: PUSH1 0x00 00003a6c: DUP1 00003a6d: PUSH1 0x00 00003a6f: PUSH1 0xc0 00003a71: DUP9 00003a72: DUP11 00003a73: SUB 00003a74: SLT 00003a75: ISZERO 00003a76: PUSH2 0x3a7e 00003a79: JUMPI 00003a7a: PUSH1 0x00 00003a7c: DUP1 00003a7d: REVERT 00003a7e: JUMPDEST 00003a7f: DUP8 00003a80: CALLDATALOAD 00003a81: PUSH2 0x3a89 00003a84: DUP2 00003a85: PUSH2 0x3824 00003a88: JUMP 00003a89: JUMPDEST 00003a8a: SWAP7 00003a8b: POP 00003a8c: PUSH1 0x20 00003a8e: DUP9 00003a8f: ADD 00003a90: CALLDATALOAD 00003a91: PUSH2 0x3a99 00003a94: DUP2 00003a95: PUSH2 0x3824 00003a98: JUMP 00003a99: JUMPDEST 00003a9a: SWAP6 00003a9b: POP 00003a9c: PUSH1 0x40 00003a9e: DUP9 00003a9f: ADD 00003aa0: CALLDATALOAD 00003aa1: PUSH2 0x3aa9 00003aa4: DUP2 00003aa5: PUSH2 0x3824 00003aa8: JUMP 00003aa9: JUMPDEST 00003aaa: SWAP5 00003aab: POP 00003aac: PUSH1 0x60 00003aae: DUP9 00003aaf: ADD 00003ab0: CALLDATALOAD 00003ab1: SWAP4 00003ab2: POP 00003ab3: PUSH2 0x3abe 00003ab6: PUSH1 0x80 00003ab8: DUP10 00003ab9: ADD 00003aba: PUSH2 0x392a 00003abd: JUMP 00003abe: JUMPDEST 00003abf: SWAP3 00003ac0: POP 00003ac1: PUSH1 0xa0 00003ac3: DUP9 00003ac4: ADD 00003ac5: CALLDATALOAD 00003ac6: PUSH8 0xffffffffffffffff 00003acf: DUP2 00003ad0: GT 00003ad1: ISZERO 00003ad2: PUSH2 0x390b 00003ad5: JUMPI 00003ad6: PUSH1 0x00 00003ad8: DUP1 00003ad9: REVERT 00003ada: JUMPDEST 00003adb: PUSH1 0x00 00003add: JUMPDEST 00003ade: DUP4 00003adf: DUP2 00003ae0: LT 00003ae1: ISZERO 00003ae2: PUSH2 0x3af5 00003ae5: JUMPI 00003ae6: DUP2 00003ae7: DUP2 00003ae8: ADD 00003ae9: MLOAD 00003aea: DUP4 00003aeb: DUP3 00003aec: ADD 00003aed: MSTORE 00003aee: PUSH1 0x20 00003af0: ADD 00003af1: PUSH2 0x3add 00003af4: JUMP 00003af5: JUMPDEST 00003af6: DUP4 00003af7: DUP2 00003af8: GT 00003af9: ISZERO 00003afa: PUSH2 0x0635 00003afd: JUMPI 00003afe: POP 00003aff: POP 00003b00: PUSH1 0x00 00003b02: SWAP2 00003b03: ADD 00003b04: MSTORE 00003b05: JUMP 00003b06: JUMPDEST 00003b07: PUSH1 0x00 00003b09: DUP2 00003b0a: MLOAD 00003b0b: DUP1 00003b0c: DUP5 00003b0d: MSTORE 00003b0e: PUSH2 0x3b1e 00003b11: DUP2 00003b12: PUSH1 0x20 00003b14: DUP7 00003b15: ADD 00003b16: PUSH1 0x20 00003b18: DUP7 00003b19: ADD 00003b1a: PUSH2 0x3ada 00003b1d: JUMP 00003b1e: JUMPDEST 00003b1f: PUSH1 0x1f 00003b21: ADD 00003b22: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00003b43: AND 00003b44: SWAP3 00003b45: SWAP1 00003b46: SWAP3 00003b47: ADD 00003b48: PUSH1 0x20 00003b4a: ADD 00003b4b: SWAP3 00003b4c: SWAP2 00003b4d: POP 00003b4e: POP 00003b4f: JUMP 00003b50: JUMPDEST 00003b51: PUSH1 0x20 00003b53: DUP2 00003b54: MSTORE 00003b55: PUSH1 0x00 00003b57: PUSH2 0x306b 00003b5a: PUSH1 0x20 00003b5c: DUP4 00003b5d: ADD 00003b5e: DUP5 00003b5f: PUSH2 0x3b06 00003b62: JUMP 00003b63: JUMPDEST 00003b64: PUSH1 0x00 00003b66: DUP1 00003b67: PUSH1 0x00 00003b69: DUP1 00003b6a: PUSH1 0x00 00003b6c: DUP1 00003b6d: PUSH1 0xa0 00003b6f: DUP8 00003b70: DUP10 00003b71: SUB 00003b72: SLT 00003b73: ISZERO 00003b74: PUSH2 0x3b7c 00003b77: JUMPI 00003b78: PUSH1 0x00 00003b7a: DUP1 00003b7b: REVERT 00003b7c: JUMPDEST 00003b7d: DUP7 00003b7e: CALLDATALOAD 00003b7f: PUSH2 0x3b87 00003b82: DUP2 00003b83: PUSH2 0x3824 00003b86: JUMP 00003b87: JUMPDEST 00003b88: SWAP6 00003b89: POP 00003b8a: PUSH1 0x20 00003b8c: DUP8 00003b8d: ADD 00003b8e: CALLDATALOAD 00003b8f: PUSH2 0x3b97 00003b92: DUP2 00003b93: PUSH2 0x3824 00003b96: JUMP 00003b97: JUMPDEST 00003b98: SWAP5 00003b99: POP 00003b9a: PUSH1 0x40 00003b9c: DUP8 00003b9d: ADD 00003b9e: CALLDATALOAD 00003b9f: SWAP4 00003ba0: POP 00003ba1: PUSH2 0x3bac 00003ba4: PUSH1 0x60 00003ba6: DUP9 00003ba7: ADD 00003ba8: PUSH2 0x392a 00003bab: JUMP 00003bac: JUMPDEST 00003bad: SWAP3 00003bae: POP 00003baf: PUSH1 0x80 00003bb1: DUP8 00003bb2: ADD 00003bb3: CALLDATALOAD 00003bb4: PUSH8 0xffffffffffffffff 00003bbd: DUP2 00003bbe: GT 00003bbf: ISZERO 00003bc0: PUSH2 0x3bc8 00003bc3: JUMPI 00003bc4: PUSH1 0x00 00003bc6: DUP1 00003bc7: REVERT 00003bc8: JUMPDEST 00003bc9: PUSH2 0x3bd4 00003bcc: DUP10 00003bcd: DUP3 00003bce: DUP11 00003bcf: ADD 00003bd0: PUSH2 0x3849 00003bd3: JUMP 00003bd4: JUMPDEST 00003bd5: SWAP8 00003bd6: SWAP11 00003bd7: SWAP7 00003bd8: SWAP10 00003bd9: POP 00003bda: SWAP5 00003bdb: SWAP8 00003bdc: POP 00003bdd: SWAP3 00003bde: SWAP6 00003bdf: SWAP4 00003be0: SWAP5 00003be1: SWAP3 00003be2: POP 00003be3: POP 00003be4: POP 00003be5: JUMP 00003be6: JUMPDEST 00003be7: PUSH1 0x00 00003be9: DUP1 00003bea: PUSH1 0x00 00003bec: DUP1 00003bed: PUSH1 0x00 00003bef: PUSH1 0x80 00003bf1: DUP7 00003bf2: DUP9 00003bf3: SUB 00003bf4: SLT 00003bf5: ISZERO 00003bf6: PUSH2 0x3bfe 00003bf9: JUMPI 00003bfa: PUSH1 0x00 00003bfc: DUP1 00003bfd: REVERT 00003bfe: JUMPDEST 00003bff: DUP6 00003c00: CALLDATALOAD 00003c01: PUSH2 0x3c09 00003c04: DUP2 00003c05: PUSH2 0x3824 00003c08: JUMP 00003c09: JUMPDEST 00003c0a: SWAP5 00003c0b: POP 00003c0c: PUSH1 0x20 00003c0e: DUP7 00003c0f: ADD 00003c10: CALLDATALOAD 00003c11: SWAP4 00003c12: POP 00003c13: PUSH2 0x3c1e 00003c16: PUSH1 0x40 00003c18: DUP8 00003c19: ADD 00003c1a: PUSH2 0x392a 00003c1d: JUMP 00003c1e: JUMPDEST 00003c1f: SWAP3 00003c20: POP 00003c21: PUSH1 0x60 00003c23: DUP7 00003c24: ADD 00003c25: CALLDATALOAD 00003c26: PUSH8 0xffffffffffffffff 00003c2f: DUP2 00003c30: GT 00003c31: ISZERO 00003c32: PUSH2 0x39ec 00003c35: JUMPI 00003c36: PUSH1 0x00 00003c38: DUP1 00003c39: REVERT 00003c3a: JUMPDEST 00003c3b: PUSH1 0x00 00003c3d: DUP1 00003c3e: PUSH1 0x40 00003c40: DUP4 00003c41: DUP6 00003c42: SUB 00003c43: SLT 00003c44: ISZERO 00003c45: PUSH2 0x3c4d 00003c48: JUMPI 00003c49: PUSH1 0x00 00003c4b: DUP1 00003c4c: REVERT 00003c4d: JUMPDEST 00003c4e: DUP3 00003c4f: CALLDATALOAD 00003c50: PUSH2 0x3c58 00003c53: DUP2 00003c54: PUSH2 0x3824 00003c57: JUMP 00003c58: JUMPDEST 00003c59: SWAP2 00003c5a: POP 00003c5b: PUSH1 0x20 00003c5d: DUP4 00003c5e: ADD 00003c5f: CALLDATALOAD 00003c60: PUSH2 0x3c68 00003c63: DUP2 00003c64: PUSH2 0x3824 00003c67: JUMP 00003c68: JUMPDEST 00003c69: DUP1 00003c6a: SWAP2 00003c6b: POP 00003c6c: POP 00003c6d: SWAP3 00003c6e: POP 00003c6f: SWAP3 00003c70: SWAP1 00003c71: POP 00003c72: JUMP 00003c73: JUMPDEST 00003c74: PUSH1 0x00 00003c76: DUP1 00003c77: PUSH1 0x00 00003c79: DUP1 00003c7a: PUSH1 0x60 00003c7c: DUP6 00003c7d: DUP8 00003c7e: SUB 00003c7f: SLT 00003c80: ISZERO 00003c81: PUSH2 0x3c89 00003c84: JUMPI 00003c85: PUSH1 0x00 00003c87: DUP1 00003c88: REVERT 00003c89: JUMPDEST 00003c8a: DUP5 00003c8b: CALLDATALOAD 00003c8c: PUSH2 0x3c94 00003c8f: DUP2 00003c90: PUSH2 0x3824 00003c93: JUMP 00003c94: JUMPDEST 00003c95: SWAP4 00003c96: POP 00003c97: PUSH2 0x3a2f 00003c9a: PUSH1 0x20 00003c9c: DUP7 00003c9d: ADD 00003c9e: PUSH2 0x392a 00003ca1: JUMP 00003ca2: JUMPDEST 00003ca3: PUSH1 0x00 00003ca5: PUSH1 0x20 00003ca7: DUP3 00003ca8: DUP5 00003ca9: SUB 00003caa: SLT 00003cab: ISZERO 00003cac: PUSH2 0x3cb4 00003caf: JUMPI 00003cb0: PUSH1 0x00 00003cb2: DUP1 00003cb3: REVERT 00003cb4: JUMPDEST 00003cb5: DUP2 00003cb6: MLOAD 00003cb7: PUSH2 0x306b 00003cba: DUP2 00003cbb: PUSH2 0x3824 00003cbe: JUMP 00003cbf: JUMPDEST 00003cc0: PUSH1 0x00 00003cc2: PUSH1 0x20 00003cc4: DUP3 00003cc5: DUP5 00003cc6: SUB 00003cc7: SLT 00003cc8: ISZERO 00003cc9: PUSH2 0x3cd1 00003ccc: JUMPI 00003ccd: PUSH1 0x00 00003ccf: DUP1 00003cd0: REVERT 00003cd1: JUMPDEST 00003cd2: POP 00003cd3: MLOAD 00003cd4: SWAP2 00003cd5: SWAP1 00003cd6: POP 00003cd7: JUMP 00003cd8: JUMPDEST 00003cd9: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003cfa: PUSH1 0x00 00003cfc: MSTORE 00003cfd: PUSH1 0x11 00003cff: PUSH1 0x04 00003d01: MSTORE 00003d02: PUSH1 0x24 00003d04: PUSH1 0x00 00003d06: REVERT 00003d07: JUMPDEST 00003d08: PUSH1 0x00 00003d0a: DUP3 00003d0b: DUP3 00003d0c: LT 00003d0d: ISZERO 00003d0e: PUSH2 0x3d19 00003d11: JUMPI 00003d12: PUSH2 0x3d19 00003d15: PUSH2 0x3cd8 00003d18: JUMP 00003d19: JUMPDEST 00003d1a: POP 00003d1b: SUB 00003d1c: SWAP1 00003d1d: JUMP 00003d1e: JUMPDEST 00003d1f: PUSH1 0x00 00003d21: DUP5 00003d22: MLOAD 00003d23: PUSH2 0x3d30 00003d26: DUP2 00003d27: DUP5 00003d28: PUSH1 0x20 00003d2a: DUP10 00003d2b: ADD 00003d2c: PUSH2 0x3ada 00003d2f: JUMP 00003d30: JUMPDEST 00003d31: DUP1 00003d32: DUP4 00003d33: ADD 00003d34: SWAP1 00003d35: POP 00003d36: PUSH32 0x2e00000000000000000000000000000000000000000000000000000000000000 00003d57: DUP1 00003d58: DUP3 00003d59: MSTORE 00003d5a: DUP6 00003d5b: MLOAD 00003d5c: PUSH2 0x3d6c 00003d5f: DUP2 00003d60: PUSH1 0x01 00003d62: DUP6 00003d63: ADD 00003d64: PUSH1 0x20 00003d66: DUP11 00003d67: ADD 00003d68: PUSH2 0x3ada 00003d6b: JUMP 00003d6c: JUMPDEST 00003d6d: PUSH1 0x01 00003d6f: SWAP3 00003d70: ADD 00003d71: SWAP2 00003d72: DUP3 00003d73: ADD 00003d74: MSTORE 00003d75: DUP4 00003d76: MLOAD 00003d77: PUSH2 0x3d87 00003d7a: DUP2 00003d7b: PUSH1 0x02 00003d7d: DUP5 00003d7e: ADD 00003d7f: PUSH1 0x20 00003d81: DUP9 00003d82: ADD 00003d83: PUSH2 0x3ada 00003d86: JUMP 00003d87: JUMPDEST 00003d88: ADD 00003d89: PUSH1 0x02 00003d8b: ADD 00003d8c: SWAP6 00003d8d: SWAP5 00003d8e: POP 00003d8f: POP 00003d90: POP 00003d91: POP 00003d92: POP 00003d93: JUMP 00003d94: JUMPDEST 00003d95: PUSH1 0x00 00003d97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003dac: DUP1 00003dad: DUP8 00003dae: AND 00003daf: DUP4 00003db0: MSTORE 00003db1: DUP1 00003db2: DUP7 00003db3: AND 00003db4: PUSH1 0x20 00003db6: DUP5 00003db7: ADD 00003db8: MSTORE 00003db9: POP 00003dba: DUP4 00003dbb: PUSH1 0x40 00003dbd: DUP4 00003dbe: ADD 00003dbf: MSTORE 00003dc0: PUSH1 0x80 00003dc2: PUSH1 0x60 00003dc4: DUP4 00003dc5: ADD 00003dc6: MSTORE 00003dc7: PUSH2 0x3dd3 00003dca: PUSH1 0x80 00003dcc: DUP4 00003dcd: ADD 00003dce: DUP5 00003dcf: PUSH2 0x3b06 00003dd2: JUMP 00003dd3: JUMPDEST 00003dd4: SWAP7 00003dd5: SWAP6 00003dd6: POP 00003dd7: POP 00003dd8: POP 00003dd9: POP 00003dda: POP 00003ddb: POP 00003ddc: JUMP 00003ddd: JUMPDEST 00003dde: DUP5 00003ddf: DUP2 00003de0: MSTORE 00003de1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003df6: DUP5 00003df7: AND 00003df8: PUSH1 0x20 00003dfa: DUP3 00003dfb: ADD 00003dfc: MSTORE 00003dfd: PUSH1 0x80 00003dff: PUSH1 0x40 00003e01: DUP3 00003e02: ADD 00003e03: MSTORE 00003e04: PUSH1 0x00 00003e06: PUSH2 0x3e12 00003e09: PUSH1 0x80 00003e0b: DUP4 00003e0c: ADD 00003e0d: DUP6 00003e0e: PUSH2 0x3b06 00003e11: JUMP 00003e12: JUMPDEST 00003e13: SWAP1 00003e14: POP 00003e15: PUSH4 0xffffffff 00003e1a: DUP4 00003e1b: AND 00003e1c: PUSH1 0x60 00003e1e: DUP4 00003e1f: ADD 00003e20: MSTORE 00003e21: SWAP6 00003e22: SWAP5 00003e23: POP 00003e24: POP 00003e25: POP 00003e26: POP 00003e27: POP 00003e28: JUMP 00003e29: JUMPDEST 00003e2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003e3f: DUP5 00003e40: AND 00003e41: DUP2 00003e42: MSTORE 00003e43: DUP3 00003e44: PUSH1 0x20 00003e46: DUP3 00003e47: ADD 00003e48: MSTORE 00003e49: PUSH1 0x60 00003e4b: PUSH1 0x40 00003e4d: DUP3 00003e4e: ADD 00003e4f: MSTORE 00003e50: PUSH1 0x00 00003e52: PUSH2 0x3e5e 00003e55: PUSH1 0x60 00003e57: DUP4 00003e58: ADD 00003e59: DUP5 00003e5a: PUSH2 0x3b06 00003e5d: JUMP 00003e5e: JUMPDEST 00003e5f: SWAP6 00003e60: SWAP5 00003e61: POP 00003e62: POP 00003e63: POP 00003e64: POP 00003e65: POP 00003e66: JUMP 00003e67: JUMPDEST 00003e68: DUP3 00003e69: DUP2 00003e6a: MSTORE 00003e6b: PUSH1 0x40 00003e6d: PUSH1 0x20 00003e6f: DUP3 00003e70: ADD 00003e71: MSTORE 00003e72: PUSH1 0x00 00003e74: PUSH2 0x2bf3 00003e77: PUSH1 0x40 00003e79: DUP4 00003e7a: ADD 00003e7b: DUP5 00003e7c: PUSH2 0x3b06 00003e7f: JUMP 00003e80: JUMPDEST 00003e81: PUSH1 0x00 00003e83: DUP3 00003e84: NOT 00003e85: DUP3 00003e86: GT 00003e87: ISZERO 00003e88: PUSH2 0x3e93 00003e8b: JUMPI 00003e8c: PUSH2 0x3e93 00003e8f: PUSH2 0x3cd8 00003e92: JUMP 00003e93: JUMPDEST 00003e94: POP 00003e95: ADD 00003e96: SWAP1 00003e97: JUMP 00003e98: JUMPDEST 00003e99: PUSH1 0x00 00003e9b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003eb0: DUP1 00003eb1: DUP10 00003eb2: AND 00003eb3: DUP4 00003eb4: MSTORE 00003eb5: DUP1 00003eb6: DUP9 00003eb7: AND 00003eb8: PUSH1 0x20 00003eba: DUP5 00003ebb: ADD 00003ebc: MSTORE 00003ebd: DUP1 00003ebe: DUP8 00003ebf: AND 00003ec0: PUSH1 0x40 00003ec2: DUP5 00003ec3: ADD 00003ec4: MSTORE 00003ec5: DUP1 00003ec6: DUP7 00003ec7: AND 00003ec8: PUSH1 0x60 00003eca: DUP5 00003ecb: ADD 00003ecc: MSTORE 00003ecd: POP 00003ece: DUP4 00003ecf: PUSH1 0x80 00003ed1: DUP4 00003ed2: ADD 00003ed3: MSTORE 00003ed4: PUSH1 0xc0 00003ed6: PUSH1 0xa0 00003ed8: DUP4 00003ed9: ADD 00003eda: MSTORE 00003edb: PUSH2 0x3ee7 00003ede: PUSH1 0xc0 00003ee0: DUP4 00003ee1: ADD 00003ee2: DUP5 00003ee3: PUSH2 0x3b06 00003ee6: JUMP 00003ee7: JUMPDEST 00003ee8: SWAP9 00003ee9: SWAP8 00003eea: POP 00003eeb: POP 00003eec: POP 00003eed: POP 00003eee: POP 00003eef: POP 00003ef0: POP 00003ef1: POP 00003ef2: JUMP 00003ef3: JUMPDEST 00003ef4: PUSH1 0x00 00003ef6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003f17: DUP3 00003f18: SUB 00003f19: PUSH2 0x3f24 00003f1c: JUMPI 00003f1d: PUSH2 0x3f24 00003f20: PUSH2 0x3cd8 00003f23: JUMP 00003f24: JUMPDEST 00003f25: POP 00003f26: PUSH1 0x01 00003f28: ADD 00003f29: SWAP1 00003f2a: JUMP 00003f2b: JUMPDEST 00003f2c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003f4d: PUSH1 0x00 00003f4f: MSTORE 00003f50: PUSH1 0x12 00003f52: PUSH1 0x04 00003f54: MSTORE 00003f55: PUSH1 0x24 00003f57: PUSH1 0x00 00003f59: REVERT 00003f5a: JUMPDEST 00003f5b: PUSH1 0x00 00003f5d: DUP3 00003f5e: PUSH2 0x3f69 00003f61: JUMPI 00003f62: PUSH2 0x3f69 00003f65: PUSH2 0x3f2b 00003f68: JUMP 00003f69: JUMPDEST 00003f6a: POP 00003f6b: DIV 00003f6c: SWAP1 00003f6d: JUMP 00003f6e: JUMPDEST 00003f6f: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003f90: PUSH1 0x00 00003f92: MSTORE 00003f93: PUSH1 0x41 00003f95: PUSH1 0x04 00003f97: MSTORE 00003f98: PUSH1 0x24 00003f9a: PUSH1 0x00 00003f9c: REVERT 00003f9d: JUMPDEST 00003f9e: PUSH1 0x00 00003fa0: DUP3 00003fa1: PUSH2 0x3fac 00003fa4: JUMPI 00003fa5: PUSH2 0x3fac 00003fa8: PUSH2 0x3f2b 00003fab: JUMP 00003fac: JUMPDEST 00003fad: POP 00003fae: MOD 00003faf: SWAP1 00003fb0: JUMP 00003fb1: JUMPDEST 00003fb2: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003fd3: PUSH1 0x00 00003fd5: MSTORE 00003fd6: PUSH1 0x32 00003fd8: PUSH1 0x04 00003fda: MSTORE 00003fdb: PUSH1 0x24 00003fdd: PUSH1 0x00 00003fdf: REVERT 00003fe0: JUMPDEST 00003fe1: PUSH1 0x00 00003fe3: PUSH1 0x20 00003fe5: DUP3 00003fe6: DUP5 00003fe7: SUB 00003fe8: SLT 00003fe9: ISZERO 00003fea: PUSH2 0x3ff2 00003fed: JUMPI 00003fee: PUSH1 0x00 00003ff0: DUP1 00003ff1: REVERT 00003ff2: JUMPDEST 00003ff3: DUP2 00003ff4: MLOAD 00003ff5: DUP1 00003ff6: ISZERO 00003ff7: ISZERO 00003ff8: DUP2 00003ff9: EQ 00003ffa: PUSH2 0x306b 00003ffd: JUMPI 00003ffe: PUSH1 0x00 00004000: DUP1 00004001: REVERT 00004002: JUMPDEST 00004003: PUSH1 0x00 00004005: DUP3 00004006: MLOAD 00004007: PUSH2 0x4014 0000400a: DUP2 0000400b: DUP5 0000400c: PUSH1 0x20 0000400e: DUP8 0000400f: ADD 00004010: PUSH2 0x3ada 00004013: JUMP 00004014: JUMPDEST 00004015: SWAP2 00004016: SWAP1 00004017: SWAP2 00004018: ADD 00004019: SWAP3 0000401a: SWAP2 0000401b: POP 0000401c: POP 0000401d: JUMP 0000401e: INVALID 0000401f: LOG1 00004020: PUSH5 0x736f6c6343 00004026: STOP 00004027: ADDMOD 00004028: UNKNOWN(0x0F) 00004029: STOP 0000402a: EXP
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xc8beb965",
"selector": "0xc8beb965",
"calldata_variants": [
"0xc8beb965",
"0xc8beb9650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe11013dd",
"selector": "0xe11013dd",
"calldata_variants": [
"0xe11013dd",
"0xe11013dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf407a99e",
"selector": "0xf407a99e",
"calldata_variants": [
"0xf407a99e",
"0xf407a99e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf82b418e",
"selector": "0xf82b418e",
"calldata_variants": [
"0xf82b418e",
"0xf82b418e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xac6986c5",
"selector": "0xac6986c5",
"calldata_variants": [
"0xac6986c5",
"0xac6986c50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb1a1a882",
"selector": "0xb1a1a882",
"calldata_variants": [
"0xb1a1a882",
"0xb1a1a8820000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb6a611e9",
"selector": "0xb6a611e9",
"calldata_variants": [
"0xb6a611e9",
"0xb6a611e90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x927ede2d",
"selector": "0x927ede2d",
"calldata_variants": [
"0x927ede2d",
"0x927ede2d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 566,
"type": "tx_origin_used"
},
{
"pc": 3084,
"type": "tx_origin_used"
},
{
"pc": 4699,
"type": "tx_origin_used"
},
{
"pc": 5284,
"type": "tx_origin_used"
},
{
"pc": 5775,
"type": "tx_origin_used"
},
{
"pc": 6211,
"type": "tx_origin_used"
},
{
"pc": 6630,
"type": "tx_origin_used"
},
{
"pc": 565,
"type": "tx_origin_used"
},
{
"pc": 1596,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3083,
"type": "tx_origin_used"
},
{
"pc": 3317,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4698,
"type": "tx_origin_used"
},
{
"pc": 5283,
"type": "tx_origin_used"
},
{
"pc": 5774,
"type": "tx_origin_used"
},
{
"pc": 6210,
"type": "tx_origin_used"
},
{
"pc": 6629,
"type": "tx_origin_used"
},
{
"pc": 6905,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x336fc02206230b03339db4a80fda0dcf20c754991f75568950fe9c86a62a6d6d
call_targets:
0xb4133552ba49dfb60da6eb5ca0102d0f94ce071f
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x336fc02206230b03339db4a80fda0dcf20c754991f75568950fe9c86a62a6d6d",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb4133552ba49dfb60da6eb5ca0102d0f94ce071f"
],
"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": "0xc8beb965",
"selector": "0xc8beb965",
"calldata_variants": [
"0xc8beb965",
"0xc8beb9650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe11013dd",
"selector": "0xe11013dd",
"calldata_variants": [
"0xe11013dd",
"0xe11013dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf407a99e",
"selector": "0xf407a99e",
"calldata_variants": [
"0xf407a99e",
"0xf407a99e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf82b418e",
"selector": "0xf82b418e",
"calldata_variants": [
"0xf82b418e",
"0xf82b418e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xac6986c5",
"selector": "0xac6986c5",
"calldata_variants": [
"0xac6986c5",
"0xac6986c50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb1a1a882",
"selector": "0xb1a1a882",
"calldata_variants": [
"0xb1a1a882",
"0xb1a1a8820000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb6a611e9",
"selector": "0xb6a611e9",
"calldata_variants": [
"0xb6a611e9",
"0xb6a611e90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x927ede2d",
"selector": "0x927ede2d",
"calldata_variants": [
"0x927ede2d",
"0x927ede2d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2376,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8390,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9291,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 8,
"guards_detected": [
{
"pc": 566,
"type": "tx_origin_used"
},
{
"pc": 3084,
"type": "tx_origin_used"
},
{
"pc": 4699,
"type": "tx_origin_used"
},
{
"pc": 5284,
"type": "tx_origin_used"
},
{
"pc": 5775,
"type": "tx_origin_used"
},
{
"pc": 6211,
"type": "tx_origin_used"
},
{
"pc": 6630,
"type": "tx_origin_used"
},
{
"pc": 565,
"type": "tx_origin_used"
},
{
"pc": 1596,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3083,
"type": "tx_origin_used"
},
{
"pc": 3317,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4698,
"type": "tx_origin_used"
},
{
"pc": 5283,
"type": "tx_origin_used"
},
{
"pc": 5774,
"type": "tx_origin_used"
},
{
"pc": 6210,
"type": "tx_origin_used"
},
{
"pc": 6629,
"type": "tx_origin_used"
},
{
"pc": 6905,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 8
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x336fc02206230b03339db4a80fda0dcf20c754991f75568950fe9c86a62a6d6d
call_targets:
0xb4133552ba49dfb60da6eb5ca0102d0f94ce071f
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x336fc02206230b03339db4a80fda0dcf20c754991f75568950fe9c86a62a6d6d",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb4133552ba49dfb60da6eb5ca0102d0f94ce071f"
],
"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": "0xc8beb965",
"selector": "0xc8beb965",
"calldata_variants": [
"0xc8beb965",
"0xc8beb9650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe11013dd",
"selector": "0xe11013dd",
"calldata_variants": [
"0xe11013dd",
"0xe11013dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf407a99e",
"selector": "0xf407a99e",
"calldata_variants": [
"0xf407a99e",
"0xf407a99e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf82b418e",
"selector": "0xf82b418e",
"calldata_variants": [
"0xf82b418e",
"0xf82b418e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xac6986c5",
"selector": "0xac6986c5",
"calldata_variants": [
"0xac6986c5",
"0xac6986c50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb1a1a882",
"selector": "0xb1a1a882",
"calldata_variants": [
"0xb1a1a882",
"0xb1a1a8820000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb6a611e9",
"selector": "0xb6a611e9",
"calldata_variants": [
"0xb6a611e9",
"0xb6a611e90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x927ede2d",
"selector": "0x927ede2d",
"calldata_variants": [
"0x927ede2d",
"0x927ede2d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2376,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8390,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9291,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 8,
"guards_detected": [
{
"pc": 566,
"type": "tx_origin_used"
},
{
"pc": 3084,
"type": "tx_origin_used"
},
{
"pc": 4699,
"type": "tx_origin_used"
},
{
"pc": 5284,
"type": "tx_origin_used"
},
{
"pc": 5775,
"type": "tx_origin_used"
},
{
"pc": 6211,
"type": "tx_origin_used"
},
{
"pc": 6630,
"type": "tx_origin_used"
},
{
"pc": 565,
"type": "tx_origin_used"
},
{
"pc": 1596,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3083,
"type": "tx_origin_used"
},
{
"pc": 3317,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4698,
"type": "tx_origin_used"
},
{
"pc": 5283,
"type": "tx_origin_used"
},
{
"pc": 5774,
"type": "tx_origin_used"
},
{
"pc": 6210,
"type": "tx_origin_used"
},
{
"pc": 6629,
"type": "tx_origin_used"
},
{
"pc": 6905,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 13
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 18
}
|