1e6b6a15-2941-4d1e-8cea-d31117070bed
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 |
|---|---|---|---|---|
| 30718 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 75304 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 75305 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 75306 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 75307 | capability.graph | complete | 1 / 3 | 1 week ago |
| 75308 | detector.run | complete | 1 / 3 | 1 week ago |
| 75309 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:542750] OpenAI Codex v0.77.0 (research preview)
[codex:542750] --------
[codex:542750] workdir: /tmp/codex-multi-bhjp5pzw
[codex:542750] model: gpt-5.2-codex
[codex:542750] provider: openai
[codex:542750] approval: never
[codex:542750] sandbox: read-only
[codex:542750] reasoning effort: xhigh
[codex:542750] reasoning summaries: auto
[codex:542750] session id: 019b6fee-1095-7291-bda8-e667a480c6d2
[codex:542750] --------
[codex:542750] user
[codex:542750] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:542750] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:542750] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:542750]
[codex:542750] Scope rules:
[codex:542750] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:542750] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:542750]
[codex:542750] Output MUST be valid JSON matching the provided schema.
[codex:542750] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:542750] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:542750]
[codex:542750] Output constraints (IMPORTANT):
[codex:542750] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:542750] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:542750] mcp startup: no servers
[codex:542750]
[codex:542750] thinking
[codex:542750] **Preparing to read skill and audit files**
[codex:542750] exec
[codex:542750] /bin/bash -lc ls in /tmp/codex-multi-bhjp5pzw succeeded in 5ms:
[codex:542750] AUDIT_BUNDLE.txt
[codex:542750] codex-output-schema.json
[codex:542750] contracts
[codex:542750]
[codex:542750] thinking
[codex:542750] **Checking audit bundle relevance**
[codex:542750] exec
[codex:542750] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-bhjp5pzw succeeded in 6ms:
[codex:542750] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:542750]
[codex:542750] ================================================================================
[codex:542750] FILE: contracts/@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol
[codex:542750] ================================================================================
[codex:542750] // SPDX-License-Identifier: MIT
[codex:542750] pragma solidity >=0.6.0;
[codex:542750]
[codex:542750] interface AggregatorV3Interface {
[codex:542750]
[codex:542750] function decimals() external view returns (uint8);
[codex:542750] function description() external view returns (string memory);
[codex:542750] function version() external view returns (uint256);
[codex:542750]
[codex:542750] // getRoundData and latestRoundData should both raise "No data present"
[codex:542750] // if they do not have data to report, instead of returning unset values
[codex:542750] // which could be misinterpreted as actual reported values.
[codex:542750] function getRoundData(uint80 _roundId)
[codex:542750] external
[codex:542750] view
[codex:542750]
[codex:542750] thinking
[codex:542750] **Reviewing AUDIT_BUNDLE contents**
[codex:542750] exec
[codex:542750] /bin/bash -lc 'rg -n "FILE: contracts/contracts" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-bhjp5pzw succeeded in 6ms:
[codex:542750] 2023:FILE: contracts/contracts/ETHVaultHandler.sol
[codex:542750] 2153:FILE: contracts/contracts/IVaultHandler.sol
[codex:542750] 2947:FILE: contracts/contracts/IWETH.sol
[codex:542750] 3032:FILE: contracts/contracts/Orchestrator.sol
[codex:542750] 3384:FILE: contracts/contracts/TCAP.sol
[codex:542750] 3588:FILE: contracts/contracts/oracles/ChainlinkOracle.sol
[codex:542750]
[codex:542750] thinking
[codex:542750] **Preparing to examine vault handler contracts**
[codex:542750] exec
[codex:542750] /bin/bash -lc "sed -n '2023,2152p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-bhjp5pzw succeeded in 6ms:
[codex:542750] FILE: contracts/contracts/ETHVaultHandler.sol
[codex:542750] ================================================================================
[codex:542750] // SPDX-License-Identifier: MIT
[codex:542750] pragma solidity 0.7.5;
[codex:542750]
[codex:542750] import "./IVaultHandler.sol";
[codex:542750] import "./Orchestrator.sol";
[codex:542750] import "./IWETH.sol";
[codex:542750] import "@openzeppelin/contracts/math/SafeMath.sol";
[codex:542750]
[codex:542750] /**
[codex:542750] * @title ETH TCAP Vault
[codex:542750] * @author Cryptex.finance
[codex:542750] * @notice Contract in charge of handling the TCAP Vault and stake using a ETH and WETH
[codex:542750] */
[codex:542750] contract ETHVaultHandler is IVaultHandler {
[codex:542750] /// @notice Open Zeppelin libraries
[codex:542750] using SafeMath for uint256;
[codex:542750]
[codex:542750] /**
[codex:542750]
[codex:542750] thinking
[codex:542750] **Reviewing IVaultHandler and IWETH interfaces**
[codex:542750] exec
[codex:542750] /bin/bash -lc "sed -n '2153,2946p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-bhjp5pzw succeeded in 6ms:
[codex:542750] FILE: contracts/contracts/IVaultHandler.sol
[codex:542750] ================================================================================
[codex:542750] // SPDX-License-Identifier: MIT
[codex:542750] pragma solidity 0.7.5;
[codex:542750]
[codex:542750] import "@openzeppelin/contracts/access/Ownable.sol";
[codex:542750] import "@openzeppelin/contracts/access/AccessControl.sol";
[codex:542750] import "@openzeppelin/contracts/math/SafeMath.sol";
[codex:542750] import "@openzeppelin/contracts/utils/SafeCast.sol";
[codex:542750] import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
[codex:542750] import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
[codex:542750] import "@openzeppelin/contracts/utils/Counters.sol";
[codex:542750] import "@openzeppelin/contracts/utils/Pausable.sol";
[codex:542750] import "@openzeppelin/contracts/introspection/IERC165.sol";
[codex:542750] import "./TCAP.sol";
[codex:542750] import "./Orchestrator.sol";
[codex:542750] import "./oracles/ChainlinkOracle.sol";
[codex:542750]
[codex:542750] interface IRewardHandler {
[codex:542750] function stake(address _staker, uint256 amount) external;
[codex:542750]
[codex:542750] thinking
[codex:542750] **Identifying dependency requirement**
[codex:542750] exec
[codex:542750] /bin/bash -lc "sed -n '2947,3031p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-bhjp5pzw succeeded in 6ms:
[codex:542750] FILE: contracts/contracts/IWETH.sol
[codex:542750] ================================================================================
[codex:542750] // SPDX-License-Identifier: MIT
[codex:542750] pragma solidity 0.7.5;
[codex:542750]
[codex:542750] interface IWETH {
[codex:542750] function deposit() external payable;
[codex:542750]
[codex:542750] function withdraw(uint256) external;
[codex:542750]
[codex:542750] function totalSupply() external view returns (uint256);
[codex:542750]
[codex:542750] /**
[codex:542750] * @dev Returns the amount of tokens owned by `account`.
[codex:542750] */
[codex:542750] function balanceOf(address account) external view returns (uint256);
[codex:542750]
[codex:542750] /**
[codex:542750] * @dev Moves `amount` tokens from the caller's account to `recipient`.
[codex:542750] *
[codex:542750]
[codex:542750]
[codex:542750]
[codex:542750]
[codex:542750] thinking
[codex:542750] **Analyzing first-party contracts for vulnerabilities**
[codex:542750] thinking
[codex:542750] **Continuing detailed vulnerability review**
[codex:542750]
[codex:542750] This is a thorough follow-up exploring edge cases around access control, oracle freshness, reentrancy, and arithmetic safeguards in vault and oracle handling. I’m carefully weighing possible misconfigurations, subtle reentrancy paths, and oracle manipulation risks while seeking meaningful issues beyond intended admin controls. Lots of nuances here!
[codex:542750] thinking
[codex:542750] **Identifying collateral withdrawal rounding flaw**
[codex:542750]
[codex:542750] I’m unpacking how removing collateral skips ratio checks when computed ratio rounds to zero, allowing vault owners to drain collateral if their vault is extremely undercollateralized—this subtle bug could let users circumvent collateral requirements under rare but plausible price crash scenarios. It’s a neat catch with important accounting implications!
[codex:542750] thinking
[codex:542750] **Preparing detailed findings and line references**
[codex:542750]
[codex:542750] I’m finalizing the main issues to report—missing oracle staleness check, ratio check skipping due to rounding in collateral removal—and planning to pull exact file paths and line numbers with tooling like ripgrep to back findings with precise code locations. This will help deliver a clear, actionable summary!
[codex:542750] exec
[codex:542750] /bin/bash -lc 'rg -n "removeCollateral" contracts/contracts/IVaultHandler.sol' in /tmp/codex-multi-bhjp5pzw succeeded in 8ms:
[codex:542750] 380: function removeCollateral(uint256 _amount)
[codex:542750] 393: "VaultHandler::removeCollateral: retrieve amount higher than collateral"
[codex:542750] 400: "VaultHandler::removeCollateral: collateral below min required ratio"
[codex:542750] 405: "VaultHandler::removeCollateral: ERC20 transfer did not succeed"
[codex:542750]
[codex:542750] thinking
[codex:542750] **Locating specific code lines**
[codex:542750] exec
[codex:542750] /bin/bash -lc "nl -ba contracts/contracts/IVaultHandler.sol | sed -n '380,410p'" in /tmp/codex-multi-bhjp5pzw succeeded in 21ms:
[codex:542750] 380 function removeCollateral(uint256 _amount)
[codex:542750] 381 external
[codex:542750] 382 virtual
[codex:542750] 383 nonReentrant
[codex:542750] 384 vaultExists
[codex:542750] 385 whenNotPaused
[codex:542750] 386 notZero(_amount)
[codex:542750] 387 {
[codex:542750] 388 Vault storage vault = vaults[userToVault[msg.sender]];
[codex:542750] 389 uint256 currentRatio = getVaultRatio(vault.Id);
[codex:542750] 390
[codex:542750] 391 require(
[codex:542750] 392 vault.Collateral >= _amount,
[codex:542750] 393 "VaultHandler::removeCollateral: retrieve amount higher than collateral"
[codex:542750] 394 );
[codex:542750] 395
[codex:542750] 396 vault.Collateral = vault.Collateral.sub(_amount);
[codex:542750] 397 if (currentRatio != 0) {
[codex:542750] 398 require(
[codex:542750] 399 getVaultRatio(vault.Id) >= ratio,
[codex:542750]
[codex:542750] thinking
[codex:542750] **Planning ETHVaultHandler update**
[codex:542750] exec
[codex:542750] /bin/bash -lc "nl -ba contracts/contracts/ETHVaultHandler.sol | sed -n '70,130p'" in /tmp/codex-multi-bhjp5pzw succeeded in 6ms:
[codex:542750] 70 /**
[codex:542750] 71 * @notice Adds collateral to vault using ETH
[codex:542750] 72 * @dev value should be higher than 0
[codex:542750] 73 * @dev ETH is turned into WETH
[codex:542750] 74 */
[codex:542750] 75 function addCollateralETH()
[codex:542750] 76 external
[codex:542750] 77 payable
[codex:542750] 78 nonReentrant
[codex:542750] 79 vaultExists
[codex:542750] 80 whenNotPaused
[codex:542750] 81 {
[codex:542750] 82 require(
[codex:542750] 83 msg.value > 0,
[codex:542750] 84 "ETHVaultHandler::addCollateralETH: value can't be 0"
[codex:542750] 85 );
[codex:542750] 86 IWETH(address(collateralContract)).deposit{value: msg.value}();
[codex:542750] 87 Vault storage vault = vaults[userToVault[msg.sender]];
[codex:542750] 88 vault.Collateral = vault.Collateral.add(msg.value);
[codex:542750] 89 emit CollateralAdded(msg.sender, vault.Id, msg.value);
[codex:542750]
[codex:542750] thinking
[codex:542750] **Identifying relevant lines in ChainlinkOracle**
[codex:542750] exec
[codex:542750] /bin/bash -lc "nl -ba contracts/contracts/oracles/ChainlinkOracle.sol | sed -n '50,120p'" in /tmp/codex-multi-bhjp5pzw succeeded in 6ms:
[codex:542750] 50 function getLatestAnswer() public view returns (int256) {
[codex:542750] 51 (
[codex:542750] 52 uint80 roundID,
[codex:542750] 53 int256 price,
[codex:542750] 54 ,
[codex:542750] 55 uint256 timeStamp,
[codex:542750] 56 uint80 answeredInRound
[codex:542750] 57 ) = aggregatorContract.latestRoundData();
[codex:542750] 58 require(
[codex:542750] 59 timeStamp != 0,
[codex:542750] 60 "ChainlinkOracle::getLatestAnswer: round is not complete"
[codex:542750] 61 );
[codex:542750] 62 require(
[codex:542750] 63 answeredInRound >= roundID,
[codex:542750] 64 "ChainlinkOracle::getLatestAnswer: stale data"
[codex:542750] 65 );
[codex:542750] 66 return price;
[codex:542750] 67 }
[codex:542750] 68
[codex:542750] 69 /**
[codex:542750]
[codex:542750] thinking
[codex:542750] **Preparing to cite getOraclePrice usage**
[codex:542750] exec
[codex:542750] /bin/bash -lc "nl -ba contracts/contracts/IVaultHandler.sol | sed -n '470,540p'" in /tmp/codex-multi-bhjp5pzw succeeded in 6ms:
[codex:542750] 470 Vault memory vault = vaults[userToVault[msg.sender]];
[codex:542750] 471
[codex:542750] 472 _burn(vault.Id, _amount);
[codex:542750] 473
[codex:542750] 474 if (address(rewardHandler) != address(0)) {
[codex:542750] 475 rewardHandler.withdraw(msg.sender, _amount);
[codex:542750] 476 rewardHandler.getRewardFromVault(msg.sender);
[codex:542750] 477 }
[codex:542750] 478 safeTransferETH(treasury, fee);
[codex:542750] 479
[codex:542750] 480 //send back ETH above fee
[codex:542750] 481 safeTransferETH(msg.sender, msg.value.sub(fee));
[codex:542750] 482 emit TokensBurned(msg.sender, vault.Id, _amount);
[codex:542750] 483 }
[codex:542750] 484
[codex:542750] 485 /**
[codex:542750] 486 * @notice Allow users to burn TCAP tokens to liquidate vaults with vault collateral ratio under the minium ratio, the liquidator receives the staked collateral of the liquidated vault at a premium
[codex:542750] 487 * @param _vaultId to liquidate
[codex:542750] 488 * @param _maxTCAP max amount of TCAP the liquidator is willing to pay to liquidate vault
[codex:542750] 489 * @dev Resulting ratio must be above or equal minimun ratio
[codex:542750]
[codex:542750] thinking
[codex:542750] **Locating getOraclePrice implementation**
[codex:542750] exec
[codex:542750] /bin/bash -lc "nl -ba contracts/contracts/IVaultHandler.sol | sed -n '560,660p'" in /tmp/codex-multi-bhjp5pzw succeeded in 6ms:
[codex:542750] 560 * @dev Only owner can call it
[codex:542750] 561 */
[codex:542750] 562 function recoverERC20(address _tokenAddress, uint256 _tokenAmount)
[codex:542750] 563 external
[codex:542750] 564 onlyOwner
[codex:542750] 565 {
[codex:542750] 566 // Cannot recover the collateral token
[codex:542750] 567 require(
[codex:542750] 568 _tokenAddress != address(collateralContract),
[codex:542750] 569 "Cannot withdraw the collateral tokens"
[codex:542750] 570 );
[codex:542750] 571 IERC20(_tokenAddress).safeTransfer(owner(), _tokenAmount);
[codex:542750] 572 emit Recovered(_tokenAddress, _tokenAmount);
[codex:542750] 573 }
[codex:542750] 574
[codex:542750] 575 /**
[codex:542750] 576 * @notice Allows the safe transfer of ETH
[codex:542750] 577 * @param _to account to transfer ETH
[codex:542750] 578 * @param _value amount of ETH
[codex:542750] 579 */
[codex:542750]
[codex:542750] thinking
[codex:542750] **Analyzing oracle and collateral vulnerabilities**
[codex:542750] exec
[codex:542750] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-bhjp5pzw succeeded in 5ms:
[codex:542750] {"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:542750]
[codex:542750] thinking
[codex:542750] **Composing detailed JSON vulnerability report**
[codex:542750]
[codex:542750] I’m putting together a JSON report with a concise summary and two detailed findings: one about the collateral withdrawal ratio bypass due to integer truncation, and one about missing oracle data freshness enforcement. I’m carefully matching the schema with severity, categories, evidence referencing specific file lines, exploit scenarios, and recommendations—all as strings. This will help clearly highlight the risks and fixes.
[codex:542750] codex
[codex:542750] {"no_findings":false,"summary":"Found 2 issues: stale oracle data is accepted without a freshness bound, and collateral withdrawal can bypass the min-ratio check when the computed ratio truncates to zero.","findings":[{"severity":"medium","category":"oracle","title":"Oracle price freshness is not enforced, allowing stale prices","exploit_scenario":"If a Chainlink feed stops updating during a sharp market move, `getLatestAnswer` will still return the last value (timestamp != 0 and answeredInRound >= roundID) and the protocol will use that stale price for minting, burning fees, and liquidation checks. An attacker (or any vault owner) can then mint/withdraw based on an outdated high collateral price (or outdated low TCAP price), leaving the system undercollateralized and delaying liquidations.","recommendation":"Add a configurable max staleness window per feed and require `block.timestamp - timeStamp <= maxDelay` (and optionally `price > 0`) before using the value. Fail closed when the data is stale.","evidence":"`ChainlinkOracle.getLatestAnswer` only checks that `timeStamp != 0` and `answeredInRound >= roundID` but never bounds staleness; `IVaultHandler.getOraclePrice` relies on it for all pricing.","locations":["contracts/contracts/oracles/ChainlinkOracle.sol:50","contracts/contracts/oracles/ChainlinkOracle.sol:58","contracts/contracts/oracles/ChainlinkOracle.sol:62","contracts/contracts/IVaultHandler.sol:625"]},{"severity":"low","category":"math","title":"Collateral withdrawal can skip ratio enforcement when computed ratio rounds to zero","exploit_scenario":"If a vault becomes severely undercollateralized such that `getVaultRatio` truncates to 0 (ratio < 1%), `removeCollateral`/`removeCollateralETH` will skip the min-ratio check (`currentRatio != 0`). The vault owner can then withdraw remaining collateral even though debt is still outstanding, worsening protocol losses and bypassing intended invariant checks.","recommendation":"Gate the ratio check on `vault.Debt > 0` (or always enforce it when debt exists) instead of `currentRatio != 0`, or compute ratios with higher precision to avoid truncation to zero.","evidence":"Both collateral removal functions only enforce the ratio check when `currentRatio != 0`, but `getVaultRatio` returns 0 not only for zero debt, but also for very low ratios due to integer truncation.","locations":["contracts/contracts/IVaultHandler.sol:388","contracts/contracts/IVaultHandler.sol:397","contracts/contracts/ETHVaultHandler.sol:108","contracts/contracts/ETHVaultHandler.sol:115"]}]}
[codex:542750] tokens used
[codex:542750] 40,231
[codex:542750] {"no_findings":false,"summary":"Found 2 issues: stale oracle data is accepted without a freshness bound, and collateral withdrawal can bypass the min-ratio check when the computed ratio truncates to zero.","findings":[{"severity":"medium","category":"oracle","title":"Oracle price freshness is not enforced, allowing stale prices","exploit_scenario":"If a Chainlink feed stops updating during a sharp market move, `getLatestAnswer` will still return the last value (timestamp != 0 and answeredInRound >= roundID) and the protocol will use that stale price for minting, burning fees, and liquidation checks. An attacker (or any vault owner) can then mint/withdraw based on an outdated high collateral price (or outdated low TCAP price), leaving the system undercollateralized and delaying liquidations.","recommendation":"Add a configurable max staleness window per feed and require `block.timestamp - timeStamp <= maxDelay` (and optionally `price > 0`) before using the value. Fail closed when the data is stale.","evidence":"`ChainlinkOracle.getLatestAnswer` only checks that `timeStamp != 0` and `answeredInRound >= roundID` but never bounds staleness; `IVaultHandler.getOraclePrice` relies on it for all pricing.","locations":["contracts/contracts/oracles/ChainlinkOracle.sol:50","contracts/contracts/oracles/ChainlinkOracle.sol:58","contracts/contracts/oracles/ChainlinkOracle.sol:62","contracts/contracts/IVaultHandler.sol:625"]},{"severity":"low","category":"math","title":"Collateral withdrawal can skip ratio enforcement when computed ratio rounds to zero","exploit_scenario":"If a vault becomes severely undercollateralized such that `getVaultRatio` truncates to 0 (ratio < 1%), `removeCollateral`/`removeCollateralETH` will skip the min-ratio check (`currentRatio != 0`). The vault owner can then withdraw remaining collateral even though debt is still outstanding, worsening protocol losses and bypassing intended invariant checks.","recommendation":"Gate the ratio check on `vault.Debt > 0` (or always enforce it when debt exists) instead of `currentRatio != 0`, or compute ratios with higher precision to avoid truncation to zero.","evidence":"Both collateral removal functions only enforce the ratio check when `currentRatio != 0`, but `getVaultRatio` returns 0 not only for zero debt, but also for very low ratios due to integer truncation.","locations":["contracts/contracts/IVaultHandler.sol:388","contracts/contracts/IVaultHandler.sol:397","contracts/contracts/ETHVaultHandler.sol:108","contracts/contracts/ETHVaultHandler.sol:115"]}]}
{
"codex": {
"ran_at": "2025-12-30T15:49:04.220914+00:00",
"returncode": 0
},
"summary": "Found 2 issues: stale oracle data is accepted without a freshness bound, and collateral withdrawal can bypass the min-ratio check when the computed ratio truncates to zero.",
"raw_final": {
"summary": "Found 2 issues: stale oracle data is accepted without a freshness bound, and collateral withdrawal can bypass the min-ratio check when the computed ratio truncates to zero.",
"findings": [
{
"title": "Oracle price freshness is not enforced, allowing stale prices",
"category": "oracle",
"evidence": "`ChainlinkOracle.getLatestAnswer` only checks that `timeStamp != 0` and `answeredInRound >= roundID` but never bounds staleness; `IVaultHandler.getOraclePrice` relies on it for all pricing.",
"severity": "medium",
"locations": [
"contracts/contracts/oracles/ChainlinkOracle.sol:50",
"contracts/contracts/oracles/ChainlinkOracle.sol:58",
"contracts/contracts/oracles/ChainlinkOracle.sol:62",
"contracts/contracts/IVaultHandler.sol:625"
],
"recommendation": "Add a configurable max staleness window per feed and require `block.timestamp - timeStamp <= maxDelay` (and optionally `price > 0`) before using the value. Fail closed when the data is stale.",
"exploit_scenario": "If a Chainlink feed stops updating during a sharp market move, `getLatestAnswer` will still return the last value (timestamp != 0 and answeredInRound >= roundID) and the protocol will use that stale price for minting, burning fees, and liquidation checks. An attacker (or any vault owner) can then mint/withdraw based on an outdated high collateral price (or outdated low TCAP price), leaving the system undercollateralized and delaying liquidations."
},
{
"title": "Collateral withdrawal can skip ratio enforcement when computed ratio rounds to zero",
"category": "math",
"evidence": "Both collateral removal functions only enforce the ratio check when `currentRatio != 0`, but `getVaultRatio` returns 0 not only for zero debt, but also for very low ratios due to integer truncation.",
"severity": "low",
"locations": [
"contracts/contracts/IVaultHandler.sol:388",
"contracts/contracts/IVaultHandler.sol:397",
"contracts/contracts/ETHVaultHandler.sol:108",
"contracts/contracts/ETHVaultHandler.sol:115"
],
"recommendation": "Gate the ratio check on `vault.Debt > 0` (or always enforce it when debt exists) instead of `currentRatio != 0`, or compute ratios with higher precision to avoid truncation to zero.",
"exploit_scenario": "If a vault becomes severely undercollateralized such that `getVaultRatio` truncates to 0 (ratio < 1%), `removeCollateral`/`removeCollateralETH` will skip the min-ratio check (`currentRatio != 0`). The vault owner can then withdraw remaining collateral even though debt is still outstanding, worsening protocol losses and bypassing intended invariant checks."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x031e 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x842e357c 00000019: GT 0000001a: PUSH2 0x01ab 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xabb7bc4a 00000024: GT 00000025: PUSH2 0x00f7 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xd318a7df 0000002f: GT 00000030: PUSH2 0x0095 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xf0f44260 0000003a: GT 0000003b: PUSH2 0x006f 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xf0f44260 00000045: EQ 00000046: PUSH2 0x0a6e 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf2fde38b 00000050: EQ 00000051: PUSH2 0x0aa1 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xfce589d8 0000005b: EQ 0000005c: PUSH2 0x0ad4 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xfcee45f4 00000066: EQ 00000067: PUSH2 0x0ae9 0000006a: JUMPI 0000006b: PUSH2 0x0357 0000006e: JUMP 0000006f: JUMPDEST 00000070: DUP1 00000071: PUSH4 0xd318a7df 00000076: EQ 00000077: PUSH2 0x09e1 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xd547741f 00000081: EQ 00000082: PUSH2 0x0a0b 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xde9952c9 0000008c: EQ 0000008d: PUSH2 0x0a44 00000090: JUMPI 00000091: PUSH2 0x0357 00000094: JUMP 00000095: JUMPDEST 00000096: DUP1 00000097: PUSH4 0xbc721a96 0000009c: GT 0000009d: PUSH2 0x00d1 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xbc721a96 000000a7: EQ 000000a8: PUSH2 0x0945 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xbcc46e83 000000b2: EQ 000000b3: PUSH2 0x0978 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0xc6e1c7c9 000000bd: EQ 000000be: PUSH2 0x09a2 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0xca15c873 000000c8: EQ 000000c9: PUSH2 0x09b7 000000cc: JUMPI 000000cd: PUSH2 0x0357 000000d0: JUMP 000000d1: JUMPDEST 000000d2: DUP1 000000d3: PUSH4 0xabb7bc4a 000000d8: EQ 000000d9: PUSH2 0x08dc 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0xb2237ba3 000000e3: EQ 000000e4: PUSH2 0x0906 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0xbc063e1a 000000ee: EQ 000000ef: PUSH2 0x0930 000000f2: JUMPI 000000f3: PUSH2 0x0357 000000f6: JUMP 000000f7: JUMPDEST 000000f8: DUP1 000000f9: PUSH4 0x9010d07c 000000fe: GT 000000ff: PUSH2 0x0164 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0x952cc86a 00000109: GT 0000010a: PUSH2 0x013e 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x952cc86a 00000114: EQ 00000115: PUSH2 0x0865 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x97994e30 0000011f: EQ 00000120: PUSH2 0x0888 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0xa0712d68 0000012a: EQ 0000012b: PUSH2 0x089d 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0xa217fddf 00000135: EQ 00000136: PUSH2 0x08c7 00000139: JUMPI 0000013a: PUSH2 0x0357 0000013d: JUMP 0000013e: JUMPDEST 0000013f: DUP1 00000140: PUSH4 0x9010d07c 00000145: EQ 00000146: PUSH2 0x07a4 00000149: JUMPI 0000014a: DUP1 0000014b: PUSH4 0x91d14854 00000150: EQ 00000151: PUSH2 0x07d4 00000154: JUMPI 00000155: DUP1 00000156: PUSH4 0x9403b634 0000015b: EQ 0000015c: PUSH2 0x080d 0000015f: JUMPI 00000160: PUSH2 0x0357 00000163: JUMP 00000164: JUMPDEST 00000165: DUP1 00000166: PUSH4 0x842e357c 0000016b: EQ 0000016c: PUSH2 0x06a9 0000016f: JUMPI 00000170: DUP1 00000171: PUSH4 0x8456cb59 00000176: EQ 00000177: PUSH2 0x06be 0000017a: JUMPI 0000017b: DUP1 0000017c: PUSH4 0x8980f11f 00000181: EQ 00000182: PUSH2 0x06d3 00000185: JUMPI 00000186: DUP1 00000187: PUSH4 0x8c01f211 0000018c: EQ 0000018d: PUSH2 0x070c 00000190: JUMPI 00000191: DUP1 00000192: PUSH4 0x8c64ea4a 00000197: EQ 00000198: PUSH2 0x0736 0000019b: JUMPI 0000019c: DUP1 0000019d: PUSH4 0x8da5cb5b 000001a2: EQ 000001a3: PUSH2 0x078f 000001a6: JUMPI 000001a7: PUSH2 0x0357 000001aa: JUMP 000001ab: JUMPDEST 000001ac: DUP1 000001ad: PUSH4 0x42966c68 000001b2: GT 000001b3: PUSH2 0x026a 000001b6: JUMPI 000001b7: DUP1 000001b8: PUSH4 0x61d027b3 000001bd: GT 000001be: PUSH2 0x0223 000001c1: JUMPI 000001c2: DUP1 000001c3: PUSH4 0x6ca2143c 000001c8: GT 000001c9: PUSH2 0x01fd 000001cc: JUMPI 000001cd: DUP1 000001ce: PUSH4 0x6ca2143c 000001d3: EQ 000001d4: PUSH2 0x0637 000001d7: JUMPI 000001d8: DUP1 000001d9: PUSH4 0x715018a6 000001de: EQ 000001df: PUSH2 0x064c 000001e2: JUMPI 000001e3: DUP1 000001e4: PUSH4 0x71ca337d 000001e9: EQ 000001ea: PUSH2 0x0661 000001ed: JUMPI 000001ee: DUP1 000001ef: PUSH4 0x75f620ac 000001f4: EQ 000001f5: PUSH2 0x0676 000001f8: JUMPI 000001f9: PUSH2 0x0357 000001fc: JUMP 000001fd: JUMPDEST 000001fe: DUP1 000001ff: PUSH4 0x61d027b3 00000204: EQ 00000205: PUSH2 0x05f8 00000208: JUMPI 00000209: DUP1 0000020a: PUSH4 0x670fb821 0000020f: EQ 00000210: PUSH2 0x060d 00000213: JUMPI 00000214: DUP1 00000215: PUSH4 0x6ae7adc1 0000021a: EQ 0000021b: PUSH2 0x0622 0000021e: JUMPI 0000021f: PUSH2 0x0357 00000222: JUMP 00000223: JUMPDEST 00000224: DUP1 00000225: PUSH4 0x42966c68 0000022a: EQ 0000022b: PUSH2 0x055d 0000022e: JUMPI 0000022f: DUP1 00000230: PUSH4 0x46dc9007 00000235: EQ 00000236: PUSH2 0x057a 00000239: JUMPI 0000023a: DUP1 0000023b: PUSH4 0x4bf2c7c9 00000240: EQ 00000241: PUSH2 0x058f 00000244: JUMPI 00000245: DUP1 00000246: PUSH4 0x5c975abb 0000024b: EQ 0000024c: PUSH2 0x05b9 0000024f: JUMPI 00000250: DUP1 00000251: PUSH4 0x5d12928b 00000256: EQ 00000257: PUSH2 0x05ce 0000025a: JUMPI 0000025b: DUP1 0000025c: PUSH4 0x61bc221a 00000261: EQ 00000262: PUSH2 0x05e3 00000265: JUMPI 00000266: PUSH2 0x0357 00000269: JUMP 0000026a: JUMPDEST 0000026b: DUP1 0000026c: PUSH4 0x23f5589a 00000271: GT 00000272: PUSH2 0x02d7 00000275: JUMPI 00000276: DUP1 00000277: PUSH4 0x2f2ff15d 0000027c: GT 0000027d: PUSH2 0x02b1 00000280: JUMPI 00000281: DUP1 00000282: PUSH4 0x2f2ff15d 00000287: EQ 00000288: PUSH2 0x04ac 0000028b: JUMPI 0000028c: DUP1 0000028d: PUSH4 0x3237c158 00000292: EQ 00000293: PUSH2 0x04e5 00000296: JUMPI 00000297: DUP1 00000298: PUSH4 0x36568abe 0000029d: EQ 0000029e: PUSH2 0x050f 000002a1: JUMPI 000002a2: DUP1 000002a3: PUSH4 0x3f4ba83a 000002a8: EQ 000002a9: PUSH2 0x0548 000002ac: JUMPI 000002ad: PUSH2 0x0357 000002b0: JUMP 000002b1: JUMPDEST 000002b2: DUP1 000002b3: PUSH4 0x23f5589a 000002b8: EQ 000002b9: PUSH2 0x0443 000002bc: JUMPI 000002bd: DUP1 000002be: PUSH4 0x248a9ca3 000002c3: EQ 000002c4: PUSH2 0x0458 000002c7: JUMPI 000002c8: DUP1 000002c9: PUSH4 0x2806a743 000002ce: EQ 000002cf: PUSH2 0x0482 000002d2: JUMPI 000002d3: PUSH2 0x0357 000002d6: JUMP 000002d7: JUMPDEST 000002d8: DUP1 000002d9: PUSH4 0x01ffc9a7 000002de: EQ 000002df: PUSH2 0x035c 000002e2: JUMPI 000002e3: DUP1 000002e4: PUSH4 0x0d23cc79 000002e9: EQ 000002ea: PUSH2 0x03a4 000002ed: JUMPI 000002ee: DUP1 000002ef: PUSH4 0x0f0aeb8d 000002f4: EQ 000002f5: PUSH2 0x03ac 000002f8: JUMPI 000002f9: DUP1 000002fa: PUSH4 0x11d850e8 000002ff: EQ 00000300: PUSH2 0x03d3 00000303: JUMPI 00000304: DUP1 00000305: PUSH4 0x1cc244ba 0000030a: EQ 0000030b: PUSH2 0x03fd 0000030e: JUMPI 0000030f: DUP1 00000310: PUSH4 0x1f2dc5ef 00000315: EQ 00000316: PUSH2 0x042e 00000319: JUMPI 0000031a: PUSH2 0x0357 0000031d: JUMP 0000031e: JUMPDEST 0000031f: CALLDATASIZE 00000320: PUSH2 0x0357 00000323: JUMPI 00000324: CALLER 00000325: PUSH1 0x01 00000327: PUSH1 0x01 00000329: PUSH1 0xa0 0000032b: SHL 0000032c: SUB 0000032d: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000034e: AND 0000034f: EQ 00000350: PUSH2 0x0355 00000353: JUMPI 00000354: INVALID 00000355: JUMPDEST 00000356: STOP 00000357: JUMPDEST 00000358: PUSH1 0x00 0000035a: DUP1 0000035b: REVERT 0000035c: JUMPDEST 0000035d: CALLVALUE 0000035e: DUP1 0000035f: ISZERO 00000360: PUSH2 0x0368 00000363: JUMPI 00000364: PUSH1 0x00 00000366: DUP1 00000367: REVERT 00000368: JUMPDEST 00000369: POP 0000036a: PUSH2 0x0390 0000036d: PUSH1 0x04 0000036f: DUP1 00000370: CALLDATASIZE 00000371: SUB 00000372: PUSH1 0x20 00000374: DUP2 00000375: LT 00000376: ISZERO 00000377: PUSH2 0x037f 0000037a: JUMPI 0000037b: PUSH1 0x00 0000037d: DUP1 0000037e: REVERT 0000037f: JUMPDEST 00000380: POP 00000381: CALLDATALOAD 00000382: PUSH1 0x01 00000384: PUSH1 0x01 00000386: PUSH1 0xe0 00000388: SHL 00000389: SUB 0000038a: NOT 0000038b: AND 0000038c: PUSH2 0x0b13 0000038f: JUMP 00000390: JUMPDEST 00000391: PUSH1 0x40 00000393: DUP1 00000394: MLOAD 00000395: SWAP2 00000396: ISZERO 00000397: ISZERO 00000398: DUP3 00000399: MSTORE 0000039a: MLOAD 0000039b: SWAP1 0000039c: DUP2 0000039d: SWAP1 0000039e: SUB 0000039f: PUSH1 0x20 000003a1: ADD 000003a2: SWAP1 000003a3: RETURN 000003a4: JUMPDEST 000003a5: PUSH2 0x0355 000003a8: PUSH2 0x0b4a 000003ab: JUMP 000003ac: JUMPDEST 000003ad: CALLVALUE 000003ae: DUP1 000003af: ISZERO 000003b0: PUSH2 0x03b8 000003b3: JUMPI 000003b4: PUSH1 0x00 000003b6: DUP1 000003b7: REVERT 000003b8: JUMPDEST 000003b9: POP 000003ba: PUSH2 0x03c1 000003bd: PUSH2 0x0d4f 000003c0: JUMP 000003c1: JUMPDEST 000003c2: PUSH1 0x40 000003c4: DUP1 000003c5: MLOAD 000003c6: SWAP2 000003c7: DUP3 000003c8: MSTORE 000003c9: MLOAD 000003ca: SWAP1 000003cb: DUP2 000003cc: SWAP1 000003cd: SUB 000003ce: PUSH1 0x20 000003d0: ADD 000003d1: SWAP1 000003d2: RETURN 000003d3: JUMPDEST 000003d4: CALLVALUE 000003d5: DUP1 000003d6: ISZERO 000003d7: PUSH2 0x03df 000003da: JUMPI 000003db: PUSH1 0x00 000003dd: DUP1 000003de: REVERT 000003df: JUMPDEST 000003e0: POP 000003e1: PUSH2 0x03c1 000003e4: PUSH1 0x04 000003e6: DUP1 000003e7: CALLDATASIZE 000003e8: SUB 000003e9: PUSH1 0x20 000003eb: DUP2 000003ec: LT 000003ed: ISZERO 000003ee: PUSH2 0x03f6 000003f1: JUMPI 000003f2: PUSH1 0x00 000003f4: DUP1 000003f5: REVERT 000003f6: JUMPDEST 000003f7: POP 000003f8: CALLDATALOAD 000003f9: PUSH2 0x0d54 000003fc: JUMP 000003fd: JUMPDEST 000003fe: CALLVALUE 000003ff: DUP1 00000400: ISZERO 00000401: PUSH2 0x0409 00000404: JUMPI 00000405: PUSH1 0x00 00000407: DUP1 00000408: REVERT 00000409: JUMPDEST 0000040a: POP 0000040b: PUSH2 0x0412 0000040e: PUSH2 0x0de7 00000411: JUMP 00000412: JUMPDEST 00000413: PUSH1 0x40 00000415: DUP1 00000416: MLOAD 00000417: PUSH1 0x01 00000419: PUSH1 0x01 0000041b: PUSH1 0xa0 0000041d: SHL 0000041e: SUB 0000041f: SWAP1 00000420: SWAP3 00000421: AND 00000422: DUP3 00000423: MSTORE 00000424: MLOAD 00000425: SWAP1 00000426: DUP2 00000427: SWAP1 00000428: SUB 00000429: PUSH1 0x20 0000042b: ADD 0000042c: SWAP1 0000042d: RETURN 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 0x03c1 0000043f: PUSH2 0x0e0b 00000442: JUMP 00000443: JUMPDEST 00000444: CALLVALUE 00000445: DUP1 00000446: ISZERO 00000447: PUSH2 0x044f 0000044a: JUMPI 0000044b: PUSH1 0x00 0000044d: DUP1 0000044e: REVERT 0000044f: JUMPDEST 00000450: POP 00000451: PUSH2 0x03c1 00000454: PUSH2 0x0e11 00000457: JUMP 00000458: JUMPDEST 00000459: CALLVALUE 0000045a: DUP1 0000045b: ISZERO 0000045c: PUSH2 0x0464 0000045f: JUMPI 00000460: PUSH1 0x00 00000462: DUP1 00000463: REVERT 00000464: JUMPDEST 00000465: POP 00000466: PUSH2 0x03c1 00000469: PUSH1 0x04 0000046b: DUP1 0000046c: CALLDATASIZE 0000046d: SUB 0000046e: PUSH1 0x20 00000470: DUP2 00000471: LT 00000472: ISZERO 00000473: PUSH2 0x047b 00000476: JUMPI 00000477: PUSH1 0x00 00000479: DUP1 0000047a: REVERT 0000047b: JUMPDEST 0000047c: POP 0000047d: CALLDATALOAD 0000047e: PUSH2 0x0e17 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 0x0355 00000493: PUSH1 0x04 00000495: DUP1 00000496: CALLDATASIZE 00000497: SUB 00000498: PUSH1 0x20 0000049a: DUP2 0000049b: LT 0000049c: ISZERO 0000049d: PUSH2 0x04a5 000004a0: JUMPI 000004a1: PUSH1 0x00 000004a3: DUP1 000004a4: REVERT 000004a5: JUMPDEST 000004a6: POP 000004a7: CALLDATALOAD 000004a8: PUSH2 0x0e2c 000004ab: JUMP 000004ac: JUMPDEST 000004ad: CALLVALUE 000004ae: DUP1 000004af: ISZERO 000004b0: PUSH2 0x04b8 000004b3: JUMPI 000004b4: PUSH1 0x00 000004b6: DUP1 000004b7: REVERT 000004b8: JUMPDEST 000004b9: POP 000004ba: PUSH2 0x0355 000004bd: PUSH1 0x04 000004bf: DUP1 000004c0: CALLDATASIZE 000004c1: SUB 000004c2: PUSH1 0x40 000004c4: DUP2 000004c5: LT 000004c6: ISZERO 000004c7: PUSH2 0x04cf 000004ca: JUMPI 000004cb: PUSH1 0x00 000004cd: DUP1 000004ce: REVERT 000004cf: JUMPDEST 000004d0: POP 000004d1: DUP1 000004d2: CALLDATALOAD 000004d3: SWAP1 000004d4: PUSH1 0x20 000004d6: ADD 000004d7: CALLDATALOAD 000004d8: PUSH1 0x01 000004da: PUSH1 0x01 000004dc: PUSH1 0xa0 000004de: SHL 000004df: SUB 000004e0: AND 000004e1: PUSH2 0x0f0c 000004e4: JUMP 000004e5: JUMPDEST 000004e6: CALLVALUE 000004e7: DUP1 000004e8: ISZERO 000004e9: PUSH2 0x04f1 000004ec: JUMPI 000004ed: PUSH1 0x00 000004ef: DUP1 000004f0: REVERT 000004f1: JUMPDEST 000004f2: POP 000004f3: PUSH2 0x0355 000004f6: PUSH1 0x04 000004f8: DUP1 000004f9: CALLDATASIZE 000004fa: SUB 000004fb: PUSH1 0x20 000004fd: DUP2 000004fe: LT 000004ff: ISZERO 00000500: PUSH2 0x0508 00000503: JUMPI 00000504: PUSH1 0x00 00000506: DUP1 00000507: REVERT 00000508: JUMPDEST 00000509: POP 0000050a: CALLDATALOAD 0000050b: PUSH2 0x0f78 0000050e: JUMP 0000050f: JUMPDEST 00000510: CALLVALUE 00000511: DUP1 00000512: ISZERO 00000513: PUSH2 0x051b 00000516: JUMPI 00000517: PUSH1 0x00 00000519: DUP1 0000051a: REVERT 0000051b: JUMPDEST 0000051c: POP 0000051d: PUSH2 0x0355 00000520: PUSH1 0x04 00000522: DUP1 00000523: CALLDATASIZE 00000524: SUB 00000525: PUSH1 0x40 00000527: DUP2 00000528: LT 00000529: ISZERO 0000052a: PUSH2 0x0532 0000052d: JUMPI 0000052e: PUSH1 0x00 00000530: DUP1 00000531: REVERT 00000532: JUMPDEST 00000533: POP 00000534: DUP1 00000535: CALLDATALOAD 00000536: SWAP1 00000537: PUSH1 0x20 00000539: ADD 0000053a: CALLDATALOAD 0000053b: PUSH1 0x01 0000053d: PUSH1 0x01 0000053f: PUSH1 0xa0 00000541: SHL 00000542: SUB 00000543: AND 00000544: PUSH2 0x1281 00000547: JUMP 00000548: JUMPDEST 00000549: CALLVALUE 0000054a: DUP1 0000054b: ISZERO 0000054c: PUSH2 0x0554 0000054f: JUMPI 00000550: PUSH1 0x00 00000552: DUP1 00000553: REVERT 00000554: JUMPDEST 00000555: POP 00000556: PUSH2 0x0355 00000559: PUSH2 0x12e2 0000055c: JUMP 0000055d: JUMPDEST 0000055e: PUSH2 0x0355 00000561: PUSH1 0x04 00000563: DUP1 00000564: CALLDATASIZE 00000565: SUB 00000566: PUSH1 0x20 00000568: DUP2 00000569: LT 0000056a: ISZERO 0000056b: PUSH2 0x0573 0000056e: JUMPI 0000056f: PUSH1 0x00 00000571: DUP1 00000572: REVERT 00000573: JUMPDEST 00000574: POP 00000575: CALLDATALOAD 00000576: PUSH2 0x1344 00000579: JUMP 0000057a: JUMPDEST 0000057b: CALLVALUE 0000057c: DUP1 0000057d: ISZERO 0000057e: PUSH2 0x0586 00000581: JUMPI 00000582: PUSH1 0x00 00000584: DUP1 00000585: REVERT 00000586: JUMPDEST 00000587: POP 00000588: PUSH2 0x03c1 0000058b: PUSH2 0x16b4 0000058e: JUMP 0000058f: JUMPDEST 00000590: CALLVALUE 00000591: DUP1 00000592: ISZERO 00000593: PUSH2 0x059b 00000596: JUMPI 00000597: PUSH1 0x00 00000599: DUP1 0000059a: REVERT 0000059b: JUMPDEST 0000059c: POP 0000059d: PUSH2 0x0355 000005a0: PUSH1 0x04 000005a2: DUP1 000005a3: CALLDATASIZE 000005a4: SUB 000005a5: PUSH1 0x20 000005a7: DUP2 000005a8: LT 000005a9: ISZERO 000005aa: PUSH2 0x05b2 000005ad: JUMPI 000005ae: PUSH1 0x00 000005b0: DUP1 000005b1: REVERT 000005b2: JUMPDEST 000005b3: POP 000005b4: CALLDATALOAD 000005b5: PUSH2 0x16fd 000005b8: JUMP 000005b9: JUMPDEST 000005ba: CALLVALUE 000005bb: DUP1 000005bc: ISZERO 000005bd: PUSH2 0x05c5 000005c0: JUMPI 000005c1: PUSH1 0x00 000005c3: DUP1 000005c4: REVERT 000005c5: JUMPDEST 000005c6: POP 000005c7: PUSH2 0x0390 000005ca: PUSH2 0x17d3 000005cd: JUMP 000005ce: JUMPDEST 000005cf: CALLVALUE 000005d0: DUP1 000005d1: ISZERO 000005d2: PUSH2 0x05da 000005d5: JUMPI 000005d6: PUSH1 0x00 000005d8: DUP1 000005d9: REVERT 000005da: JUMPDEST 000005db: POP 000005dc: PUSH2 0x0355 000005df: PUSH2 0x17dc 000005e2: JUMP 000005e3: JUMPDEST 000005e4: CALLVALUE 000005e5: DUP1 000005e6: ISZERO 000005e7: PUSH2 0x05ef 000005ea: JUMPI 000005eb: PUSH1 0x00 000005ed: DUP1 000005ee: REVERT 000005ef: JUMPDEST 000005f0: POP 000005f1: PUSH2 0x03c1 000005f4: PUSH2 0x193f 000005f7: JUMP 000005f8: JUMPDEST 000005f9: CALLVALUE 000005fa: DUP1 000005fb: ISZERO 000005fc: PUSH2 0x0604 000005ff: JUMPI 00000600: PUSH1 0x00 00000602: DUP1 00000603: REVERT 00000604: JUMPDEST 00000605: POP 00000606: PUSH2 0x0412 00000609: PUSH2 0x1945 0000060c: JUMP 0000060d: JUMPDEST 0000060e: CALLVALUE 0000060f: DUP1 00000610: ISZERO 00000611: PUSH2 0x0619 00000614: JUMPI 00000615: PUSH1 0x00 00000617: DUP1 00000618: REVERT 00000619: JUMPDEST 0000061a: POP 0000061b: PUSH2 0x0412 0000061e: PUSH2 0x1954 00000621: JUMP 00000622: JUMPDEST 00000623: CALLVALUE 00000624: DUP1 00000625: ISZERO 00000626: PUSH2 0x062e 00000629: JUMPI 0000062a: PUSH1 0x00 0000062c: DUP1 0000062d: REVERT 0000062e: JUMPDEST 0000062f: POP 00000630: PUSH2 0x03c1 00000633: PUSH2 0x1978 00000636: JUMP 00000637: JUMPDEST 00000638: CALLVALUE 00000639: DUP1 0000063a: ISZERO 0000063b: PUSH2 0x0643 0000063e: JUMPI 0000063f: PUSH1 0x00 00000641: DUP1 00000642: REVERT 00000643: JUMPDEST 00000644: POP 00000645: PUSH2 0x0412 00000648: PUSH2 0x1981 0000064b: JUMP 0000064c: JUMPDEST 0000064d: CALLVALUE 0000064e: DUP1 0000064f: ISZERO 00000650: PUSH2 0x0658 00000653: JUMPI 00000654: PUSH1 0x00 00000656: DUP1 00000657: REVERT 00000658: JUMPDEST 00000659: POP 0000065a: PUSH2 0x0355 0000065d: PUSH2 0x19a5 00000660: JUMP 00000661: JUMPDEST 00000662: CALLVALUE 00000663: DUP1 00000664: ISZERO 00000665: PUSH2 0x066d 00000668: JUMPI 00000669: PUSH1 0x00 0000066b: DUP1 0000066c: REVERT 0000066d: JUMPDEST 0000066e: POP 0000066f: PUSH2 0x03c1 00000672: PUSH2 0x1a47 00000675: JUMP 00000676: JUMPDEST 00000677: CALLVALUE 00000678: DUP1 00000679: ISZERO 0000067a: PUSH2 0x0682 0000067d: JUMPI 0000067e: PUSH1 0x00 00000680: DUP1 00000681: REVERT 00000682: JUMPDEST 00000683: POP 00000684: PUSH2 0x03c1 00000687: PUSH1 0x04 00000689: DUP1 0000068a: CALLDATASIZE 0000068b: SUB 0000068c: PUSH1 0x20 0000068e: DUP2 0000068f: LT 00000690: ISZERO 00000691: PUSH2 0x0699 00000694: JUMPI 00000695: PUSH1 0x00 00000697: DUP1 00000698: REVERT 00000699: JUMPDEST 0000069a: POP 0000069b: CALLDATALOAD 0000069c: PUSH1 0x01 0000069e: PUSH1 0x01 000006a0: PUSH1 0xa0 000006a2: SHL 000006a3: SUB 000006a4: AND 000006a5: PUSH2 0x1a4d 000006a8: JUMP 000006a9: JUMPDEST 000006aa: CALLVALUE 000006ab: DUP1 000006ac: ISZERO 000006ad: PUSH2 0x06b5 000006b0: JUMPI 000006b1: PUSH1 0x00 000006b3: DUP1 000006b4: REVERT 000006b5: JUMPDEST 000006b6: POP 000006b7: PUSH2 0x0412 000006ba: PUSH2 0x1acb 000006bd: JUMP 000006be: JUMPDEST 000006bf: CALLVALUE 000006c0: DUP1 000006c1: ISZERO 000006c2: PUSH2 0x06ca 000006c5: JUMPI 000006c6: PUSH1 0x00 000006c8: DUP1 000006c9: REVERT 000006ca: JUMPDEST 000006cb: POP 000006cc: PUSH2 0x0355 000006cf: PUSH2 0x1aef 000006d2: JUMP 000006d3: JUMPDEST 000006d4: CALLVALUE 000006d5: DUP1 000006d6: ISZERO 000006d7: PUSH2 0x06df 000006da: JUMPI 000006db: PUSH1 0x00 000006dd: DUP1 000006de: REVERT 000006df: JUMPDEST 000006e0: POP 000006e1: PUSH2 0x0355 000006e4: PUSH1 0x04 000006e6: DUP1 000006e7: CALLDATASIZE 000006e8: SUB 000006e9: PUSH1 0x40 000006eb: DUP2 000006ec: LT 000006ed: ISZERO 000006ee: PUSH2 0x06f6 000006f1: JUMPI 000006f2: PUSH1 0x00 000006f4: DUP1 000006f5: REVERT 000006f6: JUMPDEST 000006f7: POP 000006f8: PUSH1 0x01 000006fa: PUSH1 0x01 000006fc: PUSH1 0xa0 000006fe: SHL 000006ff: SUB 00000700: DUP2 00000701: CALLDATALOAD 00000702: AND 00000703: SWAP1 00000704: PUSH1 0x20 00000706: ADD 00000707: CALLDATALOAD 00000708: PUSH2 0x1b4f 0000070b: JUMP 0000070c: JUMPDEST 0000070d: CALLVALUE 0000070e: DUP1 0000070f: ISZERO 00000710: PUSH2 0x0718 00000713: JUMPI 00000714: PUSH1 0x00 00000716: DUP1 00000717: REVERT 00000718: JUMPDEST 00000719: POP 0000071a: PUSH2 0x03c1 0000071d: PUSH1 0x04 0000071f: DUP1 00000720: CALLDATASIZE 00000721: SUB 00000722: PUSH1 0x20 00000724: DUP2 00000725: LT 00000726: ISZERO 00000727: PUSH2 0x072f 0000072a: JUMPI 0000072b: PUSH1 0x00 0000072d: DUP1 0000072e: REVERT 0000072f: JUMPDEST 00000730: POP 00000731: CALLDATALOAD 00000732: PUSH2 0x1c7c 00000735: JUMP 00000736: JUMPDEST 00000737: CALLVALUE 00000738: DUP1 00000739: ISZERO 0000073a: PUSH2 0x0742 0000073d: JUMPI 0000073e: PUSH1 0x00 00000740: DUP1 00000741: REVERT 00000742: JUMPDEST 00000743: POP 00000744: PUSH2 0x0760 00000747: PUSH1 0x04 00000749: DUP1 0000074a: CALLDATASIZE 0000074b: SUB 0000074c: PUSH1 0x20 0000074e: DUP2 0000074f: LT 00000750: ISZERO 00000751: PUSH2 0x0759 00000754: JUMPI 00000755: PUSH1 0x00 00000757: DUP1 00000758: REVERT 00000759: JUMPDEST 0000075a: POP 0000075b: CALLDATALOAD 0000075c: PUSH2 0x1d57 0000075f: JUMP 00000760: JUMPDEST 00000761: PUSH1 0x40 00000763: DUP1 00000764: MLOAD 00000765: SWAP5 00000766: DUP6 00000767: MSTORE 00000768: PUSH1 0x20 0000076a: DUP6 0000076b: ADD 0000076c: SWAP4 0000076d: SWAP1 0000076e: SWAP4 0000076f: MSTORE 00000770: DUP4 00000771: DUP4 00000772: ADD 00000773: SWAP2 00000774: SWAP1 00000775: SWAP2 00000776: MSTORE 00000777: PUSH1 0x01 00000779: PUSH1 0x01 0000077b: PUSH1 0xa0 0000077d: SHL 0000077e: SUB 0000077f: AND 00000780: PUSH1 0x60 00000782: DUP4 00000783: ADD 00000784: MSTORE 00000785: MLOAD 00000786: SWAP1 00000787: DUP2 00000788: SWAP1 00000789: SUB 0000078a: PUSH1 0x80 0000078c: ADD 0000078d: SWAP1 0000078e: RETURN 0000078f: JUMPDEST 00000790: CALLVALUE 00000791: DUP1 00000792: ISZERO 00000793: PUSH2 0x079b 00000796: JUMPI 00000797: PUSH1 0x00 00000799: DUP1 0000079a: REVERT 0000079b: JUMPDEST 0000079c: POP 0000079d: PUSH2 0x0412 000007a0: PUSH2 0x1d87 000007a3: JUMP 000007a4: JUMPDEST 000007a5: CALLVALUE 000007a6: DUP1 000007a7: ISZERO 000007a8: PUSH2 0x07b0 000007ab: JUMPI 000007ac: PUSH1 0x00 000007ae: DUP1 000007af: REVERT 000007b0: JUMPDEST 000007b1: POP 000007b2: PUSH2 0x0412 000007b5: PUSH1 0x04 000007b7: DUP1 000007b8: CALLDATASIZE 000007b9: SUB 000007ba: PUSH1 0x40 000007bc: DUP2 000007bd: LT 000007be: ISZERO 000007bf: PUSH2 0x07c7 000007c2: JUMPI 000007c3: PUSH1 0x00 000007c5: DUP1 000007c6: REVERT 000007c7: JUMPDEST 000007c8: POP 000007c9: DUP1 000007ca: CALLDATALOAD 000007cb: SWAP1 000007cc: PUSH1 0x20 000007ce: ADD 000007cf: CALLDATALOAD 000007d0: PUSH2 0x1d96 000007d3: JUMP 000007d4: JUMPDEST 000007d5: CALLVALUE 000007d6: DUP1 000007d7: ISZERO 000007d8: PUSH2 0x07e0 000007db: JUMPI 000007dc: PUSH1 0x00 000007de: DUP1 000007df: REVERT 000007e0: JUMPDEST 000007e1: POP 000007e2: PUSH2 0x0390 000007e5: PUSH1 0x04 000007e7: DUP1 000007e8: CALLDATASIZE 000007e9: SUB 000007ea: PUSH1 0x40 000007ec: DUP2 000007ed: LT 000007ee: ISZERO 000007ef: PUSH2 0x07f7 000007f2: JUMPI 000007f3: PUSH1 0x00 000007f5: DUP1 000007f6: REVERT 000007f7: JUMPDEST 000007f8: POP 000007f9: DUP1 000007fa: CALLDATALOAD 000007fb: SWAP1 000007fc: PUSH1 0x20 000007fe: ADD 000007ff: CALLDATALOAD 00000800: PUSH1 0x01 00000802: PUSH1 0x01 00000804: PUSH1 0xa0 00000806: SHL 00000807: SUB 00000808: AND 00000809: PUSH2 0x1db5 0000080c: JUMP 0000080d: JUMPDEST 0000080e: CALLVALUE 0000080f: DUP1 00000810: ISZERO 00000811: PUSH2 0x0819 00000814: JUMPI 00000815: PUSH1 0x00 00000817: DUP1 00000818: REVERT 00000819: JUMPDEST 0000081a: POP 0000081b: PUSH2 0x0837 0000081e: PUSH1 0x04 00000820: DUP1 00000821: CALLDATASIZE 00000822: SUB 00000823: PUSH1 0x20 00000825: DUP2 00000826: LT 00000827: ISZERO 00000828: PUSH2 0x0830 0000082b: JUMPI 0000082c: PUSH1 0x00 0000082e: DUP1 0000082f: REVERT 00000830: JUMPDEST 00000831: POP 00000832: CALLDATALOAD 00000833: PUSH2 0x1dcd 00000836: JUMP 00000837: JUMPDEST 00000838: PUSH1 0x40 0000083a: DUP1 0000083b: MLOAD 0000083c: SWAP5 0000083d: DUP6 0000083e: MSTORE 0000083f: PUSH1 0x20 00000841: DUP6 00000842: ADD 00000843: SWAP4 00000844: SWAP1 00000845: SWAP4 00000846: MSTORE 00000847: PUSH1 0x01 00000849: PUSH1 0x01 0000084b: PUSH1 0xa0 0000084d: SHL 0000084e: SUB 0000084f: SWAP1 00000850: SWAP2 00000851: AND 00000852: DUP4 00000853: DUP4 00000854: ADD 00000855: MSTORE 00000856: PUSH1 0x60 00000858: DUP4 00000859: ADD 0000085a: MSTORE 0000085b: MLOAD 0000085c: SWAP1 0000085d: DUP2 0000085e: SWAP1 0000085f: SUB 00000860: PUSH1 0x80 00000862: ADD 00000863: SWAP1 00000864: RETURN 00000865: JUMPDEST 00000866: PUSH2 0x0355 00000869: PUSH1 0x04 0000086b: DUP1 0000086c: CALLDATASIZE 0000086d: SUB 0000086e: PUSH1 0x40 00000870: DUP2 00000871: LT 00000872: ISZERO 00000873: PUSH2 0x087b 00000876: JUMPI 00000877: PUSH1 0x00 00000879: DUP1 0000087a: REVERT 0000087b: JUMPDEST 0000087c: POP 0000087d: DUP1 0000087e: CALLDATALOAD 0000087f: SWAP1 00000880: PUSH1 0x20 00000882: ADD 00000883: CALLDATALOAD 00000884: PUSH2 0x1e34 00000887: JUMP 00000888: JUMPDEST 00000889: CALLVALUE 0000088a: DUP1 0000088b: ISZERO 0000088c: PUSH2 0x0894 0000088f: JUMPI 00000890: PUSH1 0x00 00000892: DUP1 00000893: REVERT 00000894: JUMPDEST 00000895: POP 00000896: PUSH2 0x0412 00000899: PUSH2 0x2238 0000089c: JUMP 0000089d: JUMPDEST 0000089e: CALLVALUE 0000089f: DUP1 000008a0: ISZERO 000008a1: PUSH2 0x08a9 000008a4: JUMPI 000008a5: PUSH1 0x00 000008a7: DUP1 000008a8: REVERT 000008a9: JUMPDEST 000008aa: POP 000008ab: PUSH2 0x0355 000008ae: PUSH1 0x04 000008b0: DUP1 000008b1: CALLDATASIZE 000008b2: SUB 000008b3: PUSH1 0x20 000008b5: DUP2 000008b6: LT 000008b7: ISZERO 000008b8: PUSH2 0x08c0 000008bb: JUMPI 000008bc: PUSH1 0x00 000008be: DUP1 000008bf: REVERT 000008c0: JUMPDEST 000008c1: POP 000008c2: CALLDATALOAD 000008c3: PUSH2 0x225c 000008c6: JUMP 000008c7: JUMPDEST 000008c8: CALLVALUE 000008c9: DUP1 000008ca: ISZERO 000008cb: PUSH2 0x08d3 000008ce: JUMPI 000008cf: PUSH1 0x00 000008d1: DUP1 000008d2: REVERT 000008d3: JUMPDEST 000008d4: POP 000008d5: PUSH2 0x03c1 000008d8: PUSH2 0x25c3 000008db: JUMP 000008dc: JUMPDEST 000008dd: CALLVALUE 000008de: DUP1 000008df: ISZERO 000008e0: PUSH2 0x08e8 000008e3: JUMPI 000008e4: PUSH1 0x00 000008e6: DUP1 000008e7: REVERT 000008e8: JUMPDEST 000008e9: POP 000008ea: PUSH2 0x03c1 000008ed: PUSH1 0x04 000008ef: DUP1 000008f0: CALLDATASIZE 000008f1: SUB 000008f2: PUSH1 0x20 000008f4: DUP2 000008f5: LT 000008f6: ISZERO 000008f7: PUSH2 0x08ff 000008fa: JUMPI 000008fb: PUSH1 0x00 000008fd: DUP1 000008fe: REVERT 000008ff: JUMPDEST 00000900: POP 00000901: CALLDATALOAD 00000902: PUSH2 0x25c8 00000905: JUMP 00000906: JUMPDEST 00000907: CALLVALUE 00000908: DUP1 00000909: ISZERO 0000090a: PUSH2 0x0912 0000090d: JUMPI 0000090e: PUSH1 0x00 00000910: DUP1 00000911: REVERT 00000912: JUMPDEST 00000913: POP 00000914: PUSH2 0x0355 00000917: PUSH1 0x04 00000919: DUP1 0000091a: CALLDATASIZE 0000091b: SUB 0000091c: PUSH1 0x20 0000091e: DUP2 0000091f: LT 00000920: ISZERO 00000921: PUSH2 0x0929 00000924: JUMPI 00000925: PUSH1 0x00 00000927: DUP1 00000928: REVERT 00000929: JUMPDEST 0000092a: POP 0000092b: CALLDATALOAD 0000092c: PUSH2 0x2624 0000092f: JUMP 00000930: JUMPDEST 00000931: CALLVALUE 00000932: DUP1 00000933: ISZERO 00000934: PUSH2 0x093c 00000937: JUMPI 00000938: PUSH1 0x00 0000093a: DUP1 0000093b: REVERT 0000093c: JUMPDEST 0000093d: POP 0000093e: PUSH2 0x03c1 00000941: PUSH2 0x26fa 00000944: JUMP 00000945: JUMPDEST 00000946: CALLVALUE 00000947: DUP1 00000948: ISZERO 00000949: PUSH2 0x0951 0000094c: JUMPI 0000094d: PUSH1 0x00 0000094f: DUP1 00000950: REVERT 00000951: JUMPDEST 00000952: POP 00000953: PUSH2 0x03c1 00000956: PUSH1 0x04 00000958: DUP1 00000959: CALLDATASIZE 0000095a: SUB 0000095b: PUSH1 0x20 0000095d: DUP2 0000095e: LT 0000095f: ISZERO 00000960: PUSH2 0x0968 00000963: JUMPI 00000964: PUSH1 0x00 00000966: DUP1 00000967: REVERT 00000968: JUMPDEST 00000969: POP 0000096a: CALLDATALOAD 0000096b: PUSH1 0x01 0000096d: PUSH1 0x01 0000096f: PUSH1 0xa0 00000971: SHL 00000972: SUB 00000973: AND 00000974: PUSH2 0x26ff 00000977: JUMP 00000978: JUMPDEST 00000979: CALLVALUE 0000097a: DUP1 0000097b: ISZERO 0000097c: PUSH2 0x0984 0000097f: JUMPI 00000980: PUSH1 0x00 00000982: DUP1 00000983: REVERT 00000984: JUMPDEST 00000985: POP 00000986: PUSH2 0x0355 00000989: PUSH1 0x04 0000098b: DUP1 0000098c: CALLDATASIZE 0000098d: SUB 0000098e: PUSH1 0x20 00000990: DUP2 00000991: LT 00000992: ISZERO 00000993: PUSH2 0x099b 00000996: JUMPI 00000997: PUSH1 0x00 00000999: DUP1 0000099a: REVERT 0000099b: JUMPDEST 0000099c: POP 0000099d: CALLDATALOAD 0000099e: PUSH2 0x2711 000009a1: JUMP 000009a2: JUMPDEST 000009a3: CALLVALUE 000009a4: DUP1 000009a5: ISZERO 000009a6: PUSH2 0x09ae 000009a9: JUMPI 000009aa: PUSH1 0x00 000009ac: DUP1 000009ad: REVERT 000009ae: JUMPDEST 000009af: POP 000009b0: PUSH2 0x0412 000009b3: PUSH2 0x297b 000009b6: JUMP 000009b7: JUMPDEST 000009b8: CALLVALUE 000009b9: DUP1 000009ba: ISZERO 000009bb: PUSH2 0x09c3 000009be: JUMPI 000009bf: PUSH1 0x00 000009c1: DUP1 000009c2: REVERT 000009c3: JUMPDEST 000009c4: POP 000009c5: PUSH2 0x03c1 000009c8: PUSH1 0x04 000009ca: DUP1 000009cb: CALLDATASIZE 000009cc: SUB 000009cd: PUSH1 0x20 000009cf: DUP2 000009d0: LT 000009d1: ISZERO 000009d2: PUSH2 0x09da 000009d5: JUMPI 000009d6: PUSH1 0x00 000009d8: DUP1 000009d9: REVERT 000009da: JUMPDEST 000009db: POP 000009dc: CALLDATALOAD 000009dd: PUSH2 0x299f 000009e0: JUMP 000009e1: JUMPDEST 000009e2: CALLVALUE 000009e3: DUP1 000009e4: ISZERO 000009e5: PUSH2 0x09ed 000009e8: JUMPI 000009e9: PUSH1 0x00 000009eb: DUP1 000009ec: REVERT 000009ed: JUMPDEST 000009ee: POP 000009ef: PUSH2 0x0355 000009f2: PUSH1 0x04 000009f4: DUP1 000009f5: CALLDATASIZE 000009f6: SUB 000009f7: PUSH1 0x20 000009f9: DUP2 000009fa: LT 000009fb: ISZERO 000009fc: PUSH2 0x0a04 000009ff: JUMPI 00000a00: PUSH1 0x00 00000a02: DUP1 00000a03: REVERT 00000a04: JUMPDEST 00000a05: POP 00000a06: CALLDATALOAD 00000a07: PUSH2 0x29b6 00000a0a: JUMP 00000a0b: JUMPDEST 00000a0c: CALLVALUE 00000a0d: DUP1 00000a0e: ISZERO 00000a0f: PUSH2 0x0a17 00000a12: JUMPI 00000a13: PUSH1 0x00 00000a15: DUP1 00000a16: REVERT 00000a17: JUMPDEST 00000a18: POP 00000a19: PUSH2 0x0355 00000a1c: PUSH1 0x04 00000a1e: DUP1 00000a1f: CALLDATASIZE 00000a20: SUB 00000a21: PUSH1 0x40 00000a23: DUP2 00000a24: LT 00000a25: ISZERO 00000a26: PUSH2 0x0a2e 00000a29: JUMPI 00000a2a: PUSH1 0x00 00000a2c: DUP1 00000a2d: REVERT 00000a2e: JUMPDEST 00000a2f: POP 00000a30: DUP1 00000a31: CALLDATALOAD 00000a32: SWAP1 00000a33: PUSH1 0x20 00000a35: ADD 00000a36: CALLDATALOAD 00000a37: PUSH1 0x01 00000a39: PUSH1 0x01 00000a3b: PUSH1 0xa0 00000a3d: SHL 00000a3e: SUB 00000a3f: AND 00000a40: PUSH2 0x2c72 00000a43: JUMP 00000a44: JUMPDEST 00000a45: CALLVALUE 00000a46: DUP1 00000a47: ISZERO 00000a48: PUSH2 0x0a50 00000a4b: JUMPI 00000a4c: PUSH1 0x00 00000a4e: DUP1 00000a4f: REVERT 00000a50: JUMPDEST 00000a51: POP 00000a52: PUSH2 0x03c1 00000a55: PUSH1 0x04 00000a57: DUP1 00000a58: CALLDATASIZE 00000a59: SUB 00000a5a: PUSH1 0x20 00000a5c: DUP2 00000a5d: LT 00000a5e: ISZERO 00000a5f: PUSH2 0x0a67 00000a62: JUMPI 00000a63: PUSH1 0x00 00000a65: DUP1 00000a66: REVERT 00000a67: JUMPDEST 00000a68: POP 00000a69: CALLDATALOAD 00000a6a: PUSH2 0x2ccb 00000a6d: JUMP 00000a6e: JUMPDEST 00000a6f: CALLVALUE 00000a70: DUP1 00000a71: ISZERO 00000a72: PUSH2 0x0a7a 00000a75: JUMPI 00000a76: PUSH1 0x00 00000a78: DUP1 00000a79: REVERT 00000a7a: JUMPDEST 00000a7b: POP 00000a7c: PUSH2 0x0355 00000a7f: PUSH1 0x04 00000a81: DUP1 00000a82: CALLDATASIZE 00000a83: SUB 00000a84: PUSH1 0x20 00000a86: DUP2 00000a87: LT 00000a88: ISZERO 00000a89: PUSH2 0x0a91 00000a8c: JUMPI 00000a8d: PUSH1 0x00 00000a8f: DUP1 00000a90: REVERT 00000a91: JUMPDEST 00000a92: POP 00000a93: CALLDATALOAD 00000a94: PUSH1 0x01 00000a96: PUSH1 0x01 00000a98: PUSH1 0xa0 00000a9a: SHL 00000a9b: SUB 00000a9c: AND 00000a9d: PUSH2 0x2de1 00000aa0: JUMP 00000aa1: JUMPDEST 00000aa2: CALLVALUE 00000aa3: DUP1 00000aa4: ISZERO 00000aa5: PUSH2 0x0aad 00000aa8: JUMPI 00000aa9: PUSH1 0x00 00000aab: DUP1 00000aac: REVERT 00000aad: JUMPDEST 00000aae: POP 00000aaf: PUSH2 0x0355 00000ab2: PUSH1 0x04 00000ab4: DUP1 00000ab5: CALLDATASIZE 00000ab6: SUB 00000ab7: PUSH1 0x20 00000ab9: DUP2 00000aba: LT 00000abb: ISZERO 00000abc: PUSH2 0x0ac4 00000abf: JUMPI 00000ac0: PUSH1 0x00 00000ac2: DUP1 00000ac3: REVERT 00000ac4: JUMPDEST 00000ac5: POP 00000ac6: CALLDATALOAD 00000ac7: PUSH1 0x01 00000ac9: PUSH1 0x01 00000acb: PUSH1 0xa0 00000acd: SHL 00000ace: SUB 00000acf: AND 00000ad0: PUSH2 0x2edc 00000ad3: JUMP 00000ad4: JUMPDEST 00000ad5: CALLVALUE 00000ad6: DUP1 00000ad7: ISZERO 00000ad8: PUSH2 0x0ae0 00000adb: JUMPI 00000adc: PUSH1 0x00 00000ade: DUP1 00000adf: REVERT 00000ae0: JUMPDEST 00000ae1: POP 00000ae2: PUSH2 0x03c1 00000ae5: PUSH2 0x2fd4 00000ae8: JUMP 00000ae9: JUMPDEST 00000aea: CALLVALUE 00000aeb: DUP1 00000aec: ISZERO 00000aed: PUSH2 0x0af5 00000af0: JUMPI 00000af1: PUSH1 0x00 00000af3: DUP1 00000af4: REVERT 00000af5: JUMPDEST 00000af6: POP 00000af7: PUSH2 0x03c1 00000afa: PUSH1 0x04 00000afc: DUP1 00000afd: CALLDATASIZE 00000afe: SUB 00000aff: PUSH1 0x20 00000b01: DUP2 00000b02: LT 00000b03: ISZERO 00000b04: PUSH2 0x0b0c 00000b07: JUMPI 00000b08: PUSH1 0x00 00000b0a: DUP1 00000b0b: REVERT 00000b0c: JUMPDEST 00000b0d: POP 00000b0e: CALLDATALOAD 00000b0f: PUSH2 0x2fda 00000b12: JUMP 00000b13: JUMPDEST 00000b14: PUSH1 0x00 00000b16: PUSH1 0x01 00000b18: PUSH1 0x01 00000b1a: PUSH1 0xe0 00000b1c: SHL 00000b1d: SUB 00000b1e: NOT 00000b1f: DUP3 00000b20: AND 00000b21: PUSH4 0x279d6ac3 00000b26: PUSH1 0xe2 00000b28: SHL 00000b29: EQ 00000b2a: DUP1 00000b2b: PUSH2 0x0b44 00000b2e: JUMPI 00000b2f: POP 00000b30: PUSH1 0x01 00000b32: PUSH1 0x01 00000b34: PUSH1 0xe0 00000b36: SHL 00000b37: SUB 00000b38: NOT 00000b39: DUP3 00000b3a: AND 00000b3b: PUSH4 0x01ffc9a7 00000b40: PUSH1 0xe0 00000b42: SHL 00000b43: EQ 00000b44: JUMPDEST 00000b45: SWAP3 00000b46: SWAP2 00000b47: POP 00000b48: POP 00000b49: JUMP 00000b4a: JUMPDEST 00000b4b: PUSH1 0x02 00000b4d: DUP1 00000b4e: SLOAD 00000b4f: EQ 00000b50: ISZERO 00000b51: PUSH2 0x0b8f 00000b54: JUMPI 00000b55: PUSH1 0x40 00000b57: DUP1 00000b58: MLOAD 00000b59: PUSH3 0x461bcd 00000b5d: PUSH1 0xe5 00000b5f: SHL 00000b60: DUP2 00000b61: MSTORE 00000b62: PUSH1 0x20 00000b64: PUSH1 0x04 00000b66: DUP3 00000b67: ADD 00000b68: MSTORE 00000b69: PUSH1 0x1f 00000b6b: PUSH1 0x24 00000b6d: DUP3 00000b6e: ADD 00000b6f: MSTORE 00000b70: PUSH1 0x00 00000b72: DUP1 00000b73: MLOAD 00000b74: PUSH1 0x20 00000b76: PUSH2 0x3df6 00000b79: DUP4 00000b7a: CODECOPY 00000b7b: DUP2 00000b7c: MLOAD 00000b7d: SWAP2 00000b7e: MSTORE 00000b7f: PUSH1 0x44 00000b81: DUP3 00000b82: ADD 00000b83: MSTORE 00000b84: SWAP1 00000b85: MLOAD 00000b86: SWAP1 00000b87: DUP2 00000b88: SWAP1 00000b89: SUB 00000b8a: PUSH1 0x64 00000b8c: ADD 00000b8d: SWAP1 00000b8e: REVERT 00000b8f: JUMPDEST 00000b90: PUSH1 0x02 00000b92: DUP1 00000b93: SSTORE 00000b94: CALLER 00000b95: PUSH1 0x00 00000b97: SWAP1 00000b98: DUP2 00000b99: MSTORE 00000b9a: PUSH1 0x0a 00000b9c: PUSH1 0x20 00000b9e: MSTORE 00000b9f: PUSH1 0x40 00000ba1: SWAP1 00000ba2: KECCAK256 00000ba3: SLOAD 00000ba4: PUSH2 0x0bde 00000ba7: JUMPI 00000ba8: PUSH1 0x40 00000baa: MLOAD 00000bab: PUSH3 0x461bcd 00000baf: PUSH1 0xe5 00000bb1: SHL 00000bb2: DUP2 00000bb3: MSTORE 00000bb4: PUSH1 0x04 00000bb6: ADD 00000bb7: DUP1 00000bb8: DUP1 00000bb9: PUSH1 0x20 00000bbb: ADD 00000bbc: DUP3 00000bbd: DUP2 00000bbe: SUB 00000bbf: DUP3 00000bc0: MSTORE 00000bc1: PUSH1 0x2b 00000bc3: DUP2 00000bc4: MSTORE 00000bc5: PUSH1 0x20 00000bc7: ADD 00000bc8: DUP1 00000bc9: PUSH2 0x3e3b 00000bcc: PUSH1 0x2b 00000bce: SWAP2 00000bcf: CODECOPY 00000bd0: PUSH1 0x40 00000bd2: ADD 00000bd3: SWAP2 00000bd4: POP 00000bd5: POP 00000bd6: PUSH1 0x40 00000bd8: MLOAD 00000bd9: DUP1 00000bda: SWAP2 00000bdb: SUB 00000bdc: SWAP1 00000bdd: REVERT 00000bde: JUMPDEST 00000bdf: PUSH1 0x03 00000be1: SLOAD 00000be2: PUSH1 0xff 00000be4: AND 00000be5: ISZERO 00000be6: PUSH2 0x0c29 00000be9: JUMPI 00000bea: PUSH1 0x40 00000bec: DUP1 00000bed: MLOAD 00000bee: PUSH3 0x461bcd 00000bf2: PUSH1 0xe5 00000bf4: SHL 00000bf5: DUP2 00000bf6: MSTORE 00000bf7: PUSH1 0x20 00000bf9: PUSH1 0x04 00000bfb: DUP3 00000bfc: ADD 00000bfd: MSTORE 00000bfe: PUSH1 0x10 00000c00: PUSH1 0x24 00000c02: DUP3 00000c03: ADD 00000c04: MSTORE 00000c05: PUSH16 0x14185d5cd8589b194e881c185d5cd959 00000c16: PUSH1 0x82 00000c18: SHL 00000c19: PUSH1 0x44 00000c1b: DUP3 00000c1c: ADD 00000c1d: MSTORE 00000c1e: SWAP1 00000c1f: MLOAD 00000c20: SWAP1 00000c21: DUP2 00000c22: SWAP1 00000c23: SUB 00000c24: PUSH1 0x64 00000c26: ADD 00000c27: SWAP1 00000c28: REVERT 00000c29: JUMPDEST 00000c2a: PUSH1 0x00 00000c2c: CALLVALUE 00000c2d: GT 00000c2e: PUSH2 0x0c68 00000c31: JUMPI 00000c32: PUSH1 0x40 00000c34: MLOAD 00000c35: PUSH3 0x461bcd 00000c39: PUSH1 0xe5 00000c3b: SHL 00000c3c: DUP2 00000c3d: MSTORE 00000c3e: PUSH1 0x04 00000c40: ADD 00000c41: DUP1 00000c42: DUP1 00000c43: PUSH1 0x20 00000c45: ADD 00000c46: DUP3 00000c47: DUP2 00000c48: SUB 00000c49: DUP3 00000c4a: MSTORE 00000c4b: PUSH1 0x33 00000c4d: DUP2 00000c4e: MSTORE 00000c4f: PUSH1 0x20 00000c51: ADD 00000c52: DUP1 00000c53: PUSH2 0x423d 00000c56: PUSH1 0x33 00000c58: SWAP2 00000c59: CODECOPY 00000c5a: PUSH1 0x40 00000c5c: ADD 00000c5d: SWAP2 00000c5e: POP 00000c5f: POP 00000c60: PUSH1 0x40 00000c62: MLOAD 00000c63: DUP1 00000c64: SWAP2 00000c65: SUB 00000c66: SWAP1 00000c67: REVERT 00000c68: JUMPDEST 00000c69: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000c8a: PUSH1 0x01 00000c8c: PUSH1 0x01 00000c8e: PUSH1 0xa0 00000c90: SHL 00000c91: SUB 00000c92: AND 00000c93: PUSH4 0xd0e30db0 00000c98: CALLVALUE 00000c99: PUSH1 0x40 00000c9b: MLOAD 00000c9c: DUP3 00000c9d: PUSH4 0xffffffff 00000ca2: AND 00000ca3: PUSH1 0xe0 00000ca5: SHL 00000ca6: DUP2 00000ca7: MSTORE 00000ca8: PUSH1 0x04 00000caa: ADD 00000cab: PUSH1 0x00 00000cad: PUSH1 0x40 00000caf: MLOAD 00000cb0: DUP1 00000cb1: DUP4 00000cb2: SUB 00000cb3: DUP2 00000cb4: DUP6 00000cb5: DUP9 00000cb6: DUP1 00000cb7: EXTCODESIZE 00000cb8: ISZERO 00000cb9: DUP1 00000cba: ISZERO 00000cbb: PUSH2 0x0cc3 00000cbe: JUMPI 00000cbf: PUSH1 0x00 00000cc1: DUP1 00000cc2: REVERT 00000cc3: JUMPDEST 00000cc4: POP 00000cc5: GAS 00000cc6: CALL 00000cc7: ISZERO 00000cc8: DUP1 00000cc9: ISZERO 00000cca: PUSH2 0x0cd7 00000ccd: JUMPI 00000cce: RETURNDATASIZE 00000ccf: PUSH1 0x00 00000cd1: DUP1 00000cd2: RETURNDATACOPY 00000cd3: RETURNDATASIZE 00000cd4: PUSH1 0x00 00000cd6: REVERT 00000cd7: JUMPDEST 00000cd8: POP 00000cd9: POP 00000cda: CALLER 00000cdb: PUSH1 0x00 00000cdd: SWAP1 00000cde: DUP2 00000cdf: MSTORE 00000ce0: PUSH1 0x0a 00000ce2: PUSH1 0x20 00000ce4: SWAP1 00000ce5: DUP2 00000ce6: MSTORE 00000ce7: PUSH1 0x40 00000ce9: DUP1 00000cea: DUP4 00000ceb: KECCAK256 00000cec: SLOAD 00000ced: DUP4 00000cee: MSTORE 00000cef: PUSH1 0x0b 00000cf1: SWAP1 00000cf2: SWAP2 00000cf3: MSTORE 00000cf4: SWAP1 00000cf5: KECCAK256 00000cf6: PUSH1 0x01 00000cf8: DUP2 00000cf9: ADD 00000cfa: SLOAD 00000cfb: SWAP1 00000cfc: SWAP4 00000cfd: POP 00000cfe: PUSH2 0x0d0a 00000d01: SWAP3 00000d02: POP 00000d03: SWAP1 00000d04: POP 00000d05: CALLVALUE 00000d06: PUSH2 0x3023 00000d09: JUMP 00000d0a: JUMPDEST 00000d0b: PUSH1 0x01 00000d0d: DUP3 00000d0e: ADD 00000d0f: SSTORE 00000d10: DUP1 00000d11: SLOAD 00000d12: PUSH1 0x40 00000d14: DUP1 00000d15: MLOAD 00000d16: CALLVALUE 00000d17: DUP2 00000d18: MSTORE 00000d19: SWAP1 00000d1a: MLOAD 00000d1b: CALLER 00000d1c: SWAP2 00000d1d: PUSH32 0x11f8990ac38271f23dea447d5728e9914fca7cea2edda43af6c43c415f8bc30b 00000d3e: SWAP2 00000d3f: SWAP1 00000d40: DUP2 00000d41: SWAP1 00000d42: SUB 00000d43: PUSH1 0x20 00000d45: ADD 00000d46: SWAP1 00000d47: LOG3 00000d48: POP 00000d49: PUSH1 0x01 00000d4b: PUSH1 0x02 00000d4d: SSTORE 00000d4e: JUMP 00000d4f: JUMPDEST 00000d50: PUSH1 0x96 00000d52: DUP2 00000d53: JUMP 00000d54: JUMPDEST 00000d55: PUSH1 0x00 00000d57: DUP1 00000d58: PUSH2 0x0d60 00000d5b: DUP4 00000d5c: PUSH2 0x2ccb 00000d5f: JUMP 00000d60: JUMPDEST 00000d61: SWAP1 00000d62: POP 00000d63: PUSH1 0x00 00000d65: PUSH2 0x0d6c 00000d68: PUSH2 0x16b4 00000d6b: JUMP 00000d6c: JUMPDEST 00000d6d: SWAP1 00000d6e: POP 00000d6f: PUSH1 0x00 00000d71: PUSH2 0x0d99 00000d74: PUSH32 0x0000000000000000000000002cfeaf282fe9ae050b210e7bda65d288c40c6104 00000d95: PUSH2 0x1a4d 00000d98: JUMP 00000d99: JUMPDEST 00000d9a: SWAP1 00000d9b: POP 00000d9c: PUSH1 0x00 00000d9e: PUSH2 0x0dbd 00000da1: PUSH2 0x0db6 00000da4: PUSH1 0x64 00000da6: PUSH1 0x08 00000da8: SLOAD 00000da9: PUSH2 0x3023 00000dac: SWAP1 00000dad: SWAP2 00000dae: SWAP1 00000daf: PUSH4 0xffffffff 00000db4: AND 00000db5: JUMP 00000db6: JUMPDEST 00000db7: DUP6 00000db8: SWAP1 00000db9: PUSH2 0x30b7 00000dbc: JUMP 00000dbd: JUMPDEST 00000dbe: SWAP1 00000dbf: POP 00000dc0: PUSH2 0x0ddd 00000dc3: PUSH2 0x0dcd 00000dc6: DUP4 00000dc7: PUSH1 0x64 00000dc9: PUSH2 0x30b7 00000dcc: JUMP 00000dcd: JUMPDEST 00000dce: PUSH2 0x0dd7 00000dd1: DUP4 00000dd2: DUP7 00000dd3: PUSH2 0x30b7 00000dd6: JUMP 00000dd7: JUMPDEST 00000dd8: SWAP1 00000dd9: PUSH2 0x3110 00000ddc: JUMP 00000ddd: JUMPDEST 00000dde: SWAP7 00000ddf: SWAP6 00000de0: POP 00000de1: POP 00000de2: POP 00000de3: POP 00000de4: POP 00000de5: POP 00000de6: JUMP 00000de7: JUMPDEST 00000de8: PUSH32 0x000000000000000000000000a4e581bd159b869e8290707a7fbf841fe7fe97b6 00000e09: DUP2 00000e0a: JUMP 00000e0b: JUMPDEST 00000e0c: PUSH1 0x05 00000e0e: SLOAD 00000e0f: DUP2 00000e10: JUMP 00000e11: JUMPDEST 00000e12: PUSH1 0x08 00000e14: SLOAD 00000e15: DUP2 00000e16: JUMP 00000e17: JUMPDEST 00000e18: PUSH1 0x00 00000e1a: SWAP1 00000e1b: DUP2 00000e1c: MSTORE 00000e1d: PUSH1 0x01 00000e1f: PUSH1 0x20 00000e21: MSTORE 00000e22: PUSH1 0x40 00000e24: SWAP1 00000e25: KECCAK256 00000e26: PUSH1 0x02 00000e28: ADD 00000e29: SLOAD 00000e2a: SWAP1 00000e2b: JUMP 00000e2c: JUMPDEST 00000e2d: PUSH2 0x0e34 00000e30: PUSH2 0x3152 00000e33: JUMP 00000e34: JUMPDEST 00000e35: PUSH1 0x00 00000e37: SLOAD 00000e38: PUSH1 0x01 00000e3a: PUSH1 0x01 00000e3c: PUSH1 0xa0 00000e3e: SHL 00000e3f: SUB 00000e40: SWAP1 00000e41: DUP2 00000e42: AND 00000e43: SWAP2 00000e44: AND 00000e45: EQ 00000e46: PUSH2 0x0e84 00000e49: JUMPI 00000e4a: PUSH1 0x40 00000e4c: DUP1 00000e4d: MLOAD 00000e4e: PUSH3 0x461bcd 00000e52: PUSH1 0xe5 00000e54: SHL 00000e55: DUP2 00000e56: MSTORE 00000e57: PUSH1 0x20 00000e59: PUSH1 0x04 00000e5b: DUP3 00000e5c: ADD 00000e5d: DUP2 00000e5e: SWAP1 00000e5f: MSTORE 00000e60: PUSH1 0x24 00000e62: DUP3 00000e63: ADD 00000e64: MSTORE 00000e65: PUSH1 0x00 00000e67: DUP1 00000e68: MLOAD 00000e69: PUSH1 0x20 00000e6b: PUSH2 0x4270 00000e6e: DUP4 00000e6f: CODECOPY 00000e70: DUP2 00000e71: MLOAD 00000e72: SWAP2 00000e73: MSTORE 00000e74: PUSH1 0x44 00000e76: DUP3 00000e77: ADD 00000e78: MSTORE 00000e79: SWAP1 00000e7a: MLOAD 00000e7b: SWAP1 00000e7c: DUP2 00000e7d: SWAP1 00000e7e: SUB 00000e7f: PUSH1 0x64 00000e81: ADD 00000e82: SWAP1 00000e83: REVERT 00000e84: JUMPDEST 00000e85: PUSH1 0x06 00000e87: SLOAD 00000e88: PUSH2 0x0e92 00000e8b: DUP3 00000e8c: PUSH1 0x64 00000e8e: PUSH2 0x3023 00000e91: JUMP 00000e92: JUMPDEST 00000e93: LT 00000e94: PUSH2 0x0ece 00000e97: JUMPI 00000e98: PUSH1 0x40 00000e9a: MLOAD 00000e9b: PUSH3 0x461bcd 00000e9f: PUSH1 0xe5 00000ea1: SHL 00000ea2: DUP2 00000ea3: MSTORE 00000ea4: PUSH1 0x04 00000ea6: ADD 00000ea7: DUP1 00000ea8: DUP1 00000ea9: PUSH1 0x20 00000eab: ADD 00000eac: DUP3 00000ead: DUP2 00000eae: SUB 00000eaf: DUP3 00000eb0: MSTORE 00000eb1: PUSH1 0x41 00000eb3: DUP2 00000eb4: MSTORE 00000eb5: PUSH1 0x20 00000eb7: ADD 00000eb8: DUP1 00000eb9: PUSH2 0x412d 00000ebc: PUSH1 0x41 00000ebe: SWAP2 00000ebf: CODECOPY 00000ec0: PUSH1 0x60 00000ec2: ADD 00000ec3: SWAP2 00000ec4: POP 00000ec5: POP 00000ec6: PUSH1 0x40 00000ec8: MLOAD 00000ec9: DUP1 00000eca: SWAP2 00000ecb: SUB 00000ecc: SWAP1 00000ecd: REVERT 00000ece: JUMPDEST 00000ecf: PUSH1 0x08 00000ed1: DUP2 00000ed2: SWAP1 00000ed3: SSTORE 00000ed4: PUSH1 0x40 00000ed6: DUP1 00000ed7: MLOAD 00000ed8: DUP3 00000ed9: DUP2 00000eda: MSTORE 00000edb: SWAP1 00000edc: MLOAD 00000edd: CALLER 00000ede: SWAP2 00000edf: PUSH32 0x76fea7ef18b6b073facb4f15d873d45dc60e1ac9448931a44b388f40c49e3267 00000f00: SWAP2 00000f01: SWAP1 00000f02: DUP2 00000f03: SWAP1 00000f04: SUB 00000f05: PUSH1 0x20 00000f07: ADD 00000f08: SWAP1 00000f09: LOG2 00000f0a: POP 00000f0b: JUMP 00000f0c: JUMPDEST 00000f0d: PUSH1 0x00 00000f0f: DUP3 00000f10: DUP2 00000f11: MSTORE 00000f12: PUSH1 0x01 00000f14: PUSH1 0x20 00000f16: MSTORE 00000f17: PUSH1 0x40 00000f19: SWAP1 00000f1a: KECCAK256 00000f1b: PUSH1 0x02 00000f1d: ADD 00000f1e: SLOAD 00000f1f: PUSH2 0x0f2f 00000f22: SWAP1 00000f23: PUSH2 0x0f2a 00000f26: PUSH2 0x3152 00000f29: JUMP 00000f2a: JUMPDEST 00000f2b: PUSH2 0x1db5 00000f2e: JUMP 00000f2f: JUMPDEST 00000f30: PUSH2 0x0f6a 00000f33: JUMPI 00000f34: PUSH1 0x40 00000f36: MLOAD 00000f37: PUSH3 0x461bcd 00000f3b: PUSH1 0xe5 00000f3d: SHL 00000f3e: DUP2 00000f3f: MSTORE 00000f40: PUSH1 0x04 00000f42: ADD 00000f43: DUP1 00000f44: DUP1 00000f45: PUSH1 0x20 00000f47: ADD 00000f48: DUP3 00000f49: DUP2 00000f4a: SUB 00000f4b: DUP3 00000f4c: MSTORE 00000f4d: PUSH1 0x2f 00000f4f: DUP2 00000f50: MSTORE 00000f51: PUSH1 0x20 00000f53: ADD 00000f54: DUP1 00000f55: PUSH2 0x3dc7 00000f58: PUSH1 0x2f 00000f5a: SWAP2 00000f5b: CODECOPY 00000f5c: PUSH1 0x40 00000f5e: ADD 00000f5f: SWAP2 00000f60: POP 00000f61: POP 00000f62: PUSH1 0x40 00000f64: MLOAD 00000f65: DUP1 00000f66: SWAP2 00000f67: SUB 00000f68: SWAP1 00000f69: REVERT 00000f6a: JUMPDEST 00000f6b: PUSH2 0x0f74 00000f6e: DUP3 00000f6f: DUP3 00000f70: PUSH2 0x3156 00000f73: JUMP 00000f74: JUMPDEST 00000f75: POP 00000f76: POP 00000f77: JUMP 00000f78: JUMPDEST 00000f79: PUSH1 0x02 00000f7b: DUP1 00000f7c: SLOAD 00000f7d: EQ 00000f7e: ISZERO 00000f7f: PUSH2 0x0fbd 00000f82: JUMPI 00000f83: PUSH1 0x40 00000f85: DUP1 00000f86: MLOAD 00000f87: PUSH3 0x461bcd 00000f8b: PUSH1 0xe5 00000f8d: SHL 00000f8e: DUP2 00000f8f: MSTORE 00000f90: PUSH1 0x20 00000f92: PUSH1 0x04 00000f94: DUP3 00000f95: ADD 00000f96: MSTORE 00000f97: PUSH1 0x1f 00000f99: PUSH1 0x24 00000f9b: DUP3 00000f9c: ADD 00000f9d: MSTORE 00000f9e: PUSH1 0x00 00000fa0: DUP1 00000fa1: MLOAD 00000fa2: PUSH1 0x20 00000fa4: PUSH2 0x3df6 00000fa7: DUP4 00000fa8: CODECOPY 00000fa9: DUP2 00000faa: MLOAD 00000fab: SWAP2 00000fac: MSTORE 00000fad: PUSH1 0x44 00000faf: DUP3 00000fb0: ADD 00000fb1: MSTORE 00000fb2: SWAP1 00000fb3: MLOAD 00000fb4: SWAP1 00000fb5: DUP2 00000fb6: SWAP1 00000fb7: SUB 00000fb8: PUSH1 0x64 00000fba: ADD 00000fbb: SWAP1 00000fbc: REVERT 00000fbd: JUMPDEST 00000fbe: PUSH1 0x02 00000fc0: DUP1 00000fc1: SSTORE 00000fc2: CALLER 00000fc3: PUSH1 0x00 00000fc5: SWAP1 00000fc6: DUP2 00000fc7: MSTORE 00000fc8: PUSH1 0x0a 00000fca: PUSH1 0x20 00000fcc: MSTORE 00000fcd: PUSH1 0x40 00000fcf: SWAP1 00000fd0: KECCAK256 00000fd1: SLOAD 00000fd2: PUSH2 0x100c 00000fd5: JUMPI 00000fd6: PUSH1 0x40 00000fd8: MLOAD 00000fd9: PUSH3 0x461bcd 00000fdd: PUSH1 0xe5 00000fdf: SHL 00000fe0: DUP2 00000fe1: MSTORE 00000fe2: PUSH1 0x04 00000fe4: ADD 00000fe5: DUP1 00000fe6: DUP1 00000fe7: PUSH1 0x20 00000fe9: ADD 00000fea: DUP3 00000feb: DUP2 00000fec: SUB 00000fed: DUP3 00000fee: MSTORE 00000fef: PUSH1 0x2b 00000ff1: DUP2 00000ff2: MSTORE 00000ff3: PUSH1 0x20 00000ff5: ADD 00000ff6: DUP1 00000ff7: PUSH2 0x3e3b 00000ffa: PUSH1 0x2b 00000ffc: SWAP2 00000ffd: CODECOPY 00000ffe: PUSH1 0x40 00001000: ADD 00001001: SWAP2 00001002: POP 00001003: POP 00001004: PUSH1 0x40 00001006: MLOAD 00001007: DUP1 00001008: SWAP2 00001009: SUB 0000100a: SWAP1 0000100b: REVERT 0000100c: JUMPDEST 0000100d: PUSH1 0x03 0000100f: SLOAD 00001010: PUSH1 0xff 00001012: AND 00001013: ISZERO 00001014: PUSH2 0x1057 00001017: JUMPI 00001018: PUSH1 0x40 0000101a: DUP1 0000101b: MLOAD 0000101c: PUSH3 0x461bcd 00001020: PUSH1 0xe5 00001022: SHL 00001023: DUP2 00001024: MSTORE 00001025: PUSH1 0x20 00001027: PUSH1 0x04 00001029: DUP3 0000102a: ADD 0000102b: MSTORE 0000102c: PUSH1 0x10 0000102e: PUSH1 0x24 00001030: DUP3 00001031: ADD 00001032: MSTORE 00001033: PUSH16 0x14185d5cd8589b194e881c185d5cd959 00001044: PUSH1 0x82 00001046: SHL 00001047: PUSH1 0x44 00001049: DUP3 0000104a: ADD 0000104b: MSTORE 0000104c: SWAP1 0000104d: MLOAD 0000104e: SWAP1 0000104f: DUP2 00001050: SWAP1 00001051: SUB 00001052: PUSH1 0x64 00001054: ADD 00001055: SWAP1 00001056: REVERT 00001057: JUMPDEST 00001058: DUP1 00001059: DUP1 0000105a: PUSH2 0x1094 0000105d: JUMPI 0000105e: PUSH1 0x40 00001060: MLOAD 00001061: PUSH3 0x461bcd 00001065: PUSH1 0xe5 00001067: SHL 00001068: DUP2 00001069: MSTORE 0000106a: PUSH1 0x04 0000106c: ADD 0000106d: DUP1 0000106e: DUP1 0000106f: PUSH1 0x20 00001071: ADD 00001072: DUP3 00001073: DUP2 00001074: SUB 00001075: DUP3 00001076: MSTORE 00001077: PUSH1 0x27 00001079: DUP2 0000107a: MSTORE 0000107b: PUSH1 0x20 0000107d: ADD 0000107e: DUP1 0000107f: PUSH2 0x433a 00001082: PUSH1 0x27 00001084: SWAP2 00001085: CODECOPY 00001086: PUSH1 0x40 00001088: ADD 00001089: SWAP2 0000108a: POP 0000108b: POP 0000108c: PUSH1 0x40 0000108e: MLOAD 0000108f: DUP1 00001090: SWAP2 00001091: SUB 00001092: SWAP1 00001093: REVERT 00001094: JUMPDEST 00001095: CALLER 00001096: PUSH1 0x00 00001098: SWAP1 00001099: DUP2 0000109a: MSTORE 0000109b: PUSH1 0x0a 0000109d: PUSH1 0x20 0000109f: SWAP1 000010a0: DUP2 000010a1: MSTORE 000010a2: PUSH1 0x40 000010a4: DUP1 000010a5: DUP4 000010a6: KECCAK256 000010a7: SLOAD 000010a8: DUP4 000010a9: MSTORE 000010aa: PUSH1 0x0b 000010ac: SWAP1 000010ad: SWAP2 000010ae: MSTORE 000010af: DUP2 000010b0: KECCAK256 000010b1: DUP1 000010b2: SLOAD 000010b3: SWAP1 000010b4: SWAP2 000010b5: SWAP1 000010b6: PUSH2 0x10be 000010b9: SWAP1 000010ba: PUSH2 0x1c7c 000010bd: JUMP 000010be: JUMPDEST 000010bf: SWAP1 000010c0: POP 000010c1: DUP4 000010c2: DUP3 000010c3: PUSH1 0x01 000010c5: ADD 000010c6: SLOAD 000010c7: LT 000010c8: ISZERO 000010c9: PUSH2 0x1103 000010cc: JUMPI 000010cd: PUSH1 0x40 000010cf: MLOAD 000010d0: PUSH3 0x461bcd 000010d4: PUSH1 0xe5 000010d6: SHL 000010d7: DUP2 000010d8: MSTORE 000010d9: PUSH1 0x04 000010db: ADD 000010dc: DUP1 000010dd: DUP1 000010de: PUSH1 0x20 000010e0: ADD 000010e1: DUP3 000010e2: DUP2 000010e3: SUB 000010e4: DUP3 000010e5: MSTORE 000010e6: PUSH1 0x46 000010e8: DUP2 000010e9: MSTORE 000010ea: PUSH1 0x20 000010ec: ADD 000010ed: DUP1 000010ee: PUSH2 0x40e7 000010f1: PUSH1 0x46 000010f3: SWAP2 000010f4: CODECOPY 000010f5: PUSH1 0x60 000010f7: ADD 000010f8: SWAP2 000010f9: POP 000010fa: POP 000010fb: PUSH1 0x40 000010fd: MLOAD 000010fe: DUP1 000010ff: SWAP2 00001100: SUB 00001101: SWAP1 00001102: REVERT 00001103: JUMPDEST 00001104: PUSH1 0x01 00001106: DUP3 00001107: ADD 00001108: SLOAD 00001109: PUSH2 0x1112 0000110c: SWAP1 0000110d: DUP6 0000110e: PUSH2 0x31bf 00001111: JUMP 00001112: JUMPDEST 00001113: PUSH1 0x01 00001115: DUP4 00001116: ADD 00001117: SSTORE 00001118: DUP1 00001119: ISZERO 0000111a: PUSH2 0x1168 0000111d: JUMPI 0000111e: PUSH1 0x06 00001120: SLOAD 00001121: DUP3 00001122: SLOAD 00001123: PUSH2 0x112b 00001126: SWAP1 00001127: PUSH2 0x1c7c 0000112a: JUMP 0000112b: JUMPDEST 0000112c: LT 0000112d: ISZERO 0000112e: PUSH2 0x1168 00001131: JUMPI 00001132: PUSH1 0x40 00001134: MLOAD 00001135: PUSH3 0x461bcd 00001139: PUSH1 0xe5 0000113b: SHL 0000113c: DUP2 0000113d: MSTORE 0000113e: PUSH1 0x04 00001140: ADD 00001141: DUP1 00001142: DUP1 00001143: PUSH1 0x20 00001145: ADD 00001146: DUP3 00001147: DUP2 00001148: SUB 00001149: DUP3 0000114a: MSTORE 0000114b: PUSH1 0x43 0000114d: DUP2 0000114e: MSTORE 0000114f: PUSH1 0x20 00001151: ADD 00001152: DUP1 00001153: PUSH2 0x41a4 00001156: PUSH1 0x43 00001158: SWAP2 00001159: CODECOPY 0000115a: PUSH1 0x60 0000115c: ADD 0000115d: SWAP2 0000115e: POP 0000115f: POP 00001160: PUSH1 0x40 00001162: MLOAD 00001163: DUP1 00001164: SWAP2 00001165: SUB 00001166: SWAP1 00001167: REVERT 00001168: JUMPDEST 00001169: PUSH1 0x40 0000116b: DUP1 0000116c: MLOAD 0000116d: PUSH4 0xa9059cbb 00001172: PUSH1 0xe0 00001174: SHL 00001175: DUP2 00001176: MSTORE 00001177: CALLER 00001178: PUSH1 0x04 0000117a: DUP3 0000117b: ADD 0000117c: MSTORE 0000117d: PUSH1 0x24 0000117f: DUP2 00001180: ADD 00001181: DUP7 00001182: SWAP1 00001183: MSTORE 00001184: SWAP1 00001185: MLOAD 00001186: PUSH1 0x01 00001188: PUSH1 0x01 0000118a: PUSH1 0xa0 0000118c: SHL 0000118d: SUB 0000118e: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000011af: AND 000011b0: SWAP2 000011b1: PUSH4 0xa9059cbb 000011b6: SWAP2 000011b7: PUSH1 0x44 000011b9: DUP1 000011ba: DUP4 000011bb: ADD 000011bc: SWAP3 000011bd: PUSH1 0x20 000011bf: SWAP3 000011c0: SWAP2 000011c1: SWAP1 000011c2: DUP3 000011c3: SWAP1 000011c4: SUB 000011c5: ADD 000011c6: DUP2 000011c7: PUSH1 0x00 000011c9: DUP8 000011ca: DUP1 000011cb: EXTCODESIZE 000011cc: ISZERO 000011cd: DUP1 000011ce: ISZERO 000011cf: PUSH2 0x11d7 000011d2: JUMPI 000011d3: PUSH1 0x00 000011d5: DUP1 000011d6: REVERT 000011d7: JUMPDEST 000011d8: POP 000011d9: GAS 000011da: CALL 000011db: ISZERO 000011dc: DUP1 000011dd: ISZERO 000011de: PUSH2 0x11eb 000011e1: JUMPI 000011e2: RETURNDATASIZE 000011e3: PUSH1 0x00 000011e5: DUP1 000011e6: RETURNDATACOPY 000011e7: RETURNDATASIZE 000011e8: PUSH1 0x00 000011ea: REVERT 000011eb: JUMPDEST 000011ec: POP 000011ed: POP 000011ee: POP 000011ef: POP 000011f0: PUSH1 0x40 000011f2: MLOAD 000011f3: RETURNDATASIZE 000011f4: PUSH1 0x20 000011f6: DUP2 000011f7: LT 000011f8: ISZERO 000011f9: PUSH2 0x1201 000011fc: JUMPI 000011fd: PUSH1 0x00 000011ff: DUP1 00001200: REVERT 00001201: JUMPDEST 00001202: POP 00001203: MLOAD 00001204: PUSH2 0x123e 00001207: JUMPI 00001208: PUSH1 0x40 0000120a: MLOAD 0000120b: PUSH3 0x461bcd 0000120f: PUSH1 0xe5 00001211: SHL 00001212: DUP2 00001213: MSTORE 00001214: PUSH1 0x04 00001216: ADD 00001217: DUP1 00001218: DUP1 00001219: PUSH1 0x20 0000121b: ADD 0000121c: DUP3 0000121d: DUP2 0000121e: SUB 0000121f: DUP3 00001220: MSTORE 00001221: PUSH1 0x3e 00001223: DUP2 00001224: MSTORE 00001225: PUSH1 0x20 00001227: ADD 00001228: DUP1 00001229: PUSH2 0x42c7 0000122c: PUSH1 0x3e 0000122e: SWAP2 0000122f: CODECOPY 00001230: PUSH1 0x40 00001232: ADD 00001233: SWAP2 00001234: POP 00001235: POP 00001236: PUSH1 0x40 00001238: MLOAD 00001239: DUP1 0000123a: SWAP2 0000123b: SUB 0000123c: SWAP1 0000123d: REVERT 0000123e: JUMPDEST 0000123f: DUP2 00001240: SLOAD 00001241: PUSH1 0x40 00001243: DUP1 00001244: MLOAD 00001245: DUP7 00001246: DUP2 00001247: MSTORE 00001248: SWAP1 00001249: MLOAD 0000124a: CALLER 0000124b: SWAP2 0000124c: PUSH32 0x47e1336b6fdb5f42c3a1d28b558fa98786d820c3705d726358dcc8e63a401eef 0000126d: SWAP2 0000126e: SWAP1 0000126f: DUP2 00001270: SWAP1 00001271: SUB 00001272: PUSH1 0x20 00001274: ADD 00001275: SWAP1 00001276: LOG3 00001277: POP 00001278: POP 00001279: PUSH1 0x01 0000127b: PUSH1 0x02 0000127d: SSTORE 0000127e: POP 0000127f: POP 00001280: JUMP 00001281: JUMPDEST 00001282: PUSH2 0x1289 00001285: PUSH2 0x3152 00001288: JUMP 00001289: JUMPDEST 0000128a: PUSH1 0x01 0000128c: PUSH1 0x01 0000128e: PUSH1 0xa0 00001290: SHL 00001291: SUB 00001292: AND 00001293: DUP2 00001294: PUSH1 0x01 00001296: PUSH1 0x01 00001298: PUSH1 0xa0 0000129a: SHL 0000129b: SUB 0000129c: AND 0000129d: EQ 0000129e: PUSH2 0x12d8 000012a1: JUMPI 000012a2: PUSH1 0x40 000012a4: MLOAD 000012a5: PUSH3 0x461bcd 000012a9: PUSH1 0xe5 000012ab: SHL 000012ac: DUP2 000012ad: MSTORE 000012ae: PUSH1 0x04 000012b0: ADD 000012b1: DUP1 000012b2: DUP1 000012b3: PUSH1 0x20 000012b5: ADD 000012b6: DUP3 000012b7: DUP2 000012b8: SUB 000012b9: DUP3 000012ba: MSTORE 000012bb: PUSH1 0x2f 000012bd: DUP2 000012be: MSTORE 000012bf: PUSH1 0x20 000012c1: ADD 000012c2: DUP1 000012c3: PUSH2 0x4421 000012c6: PUSH1 0x2f 000012c8: SWAP2 000012c9: CODECOPY 000012ca: PUSH1 0x40 000012cc: ADD 000012cd: SWAP2 000012ce: POP 000012cf: POP 000012d0: PUSH1 0x40 000012d2: MLOAD 000012d3: DUP1 000012d4: SWAP2 000012d5: SUB 000012d6: SWAP1 000012d7: REVERT 000012d8: JUMPDEST 000012d9: PUSH2 0x0f74 000012dc: DUP3 000012dd: DUP3 000012de: PUSH2 0x3201 000012e1: JUMP 000012e2: JUMPDEST 000012e3: PUSH2 0x12ea 000012e6: PUSH2 0x3152 000012e9: JUMP 000012ea: JUMPDEST 000012eb: PUSH1 0x00 000012ed: SLOAD 000012ee: PUSH1 0x01 000012f0: PUSH1 0x01 000012f2: PUSH1 0xa0 000012f4: SHL 000012f5: SUB 000012f6: SWAP1 000012f7: DUP2 000012f8: AND 000012f9: SWAP2 000012fa: AND 000012fb: EQ 000012fc: PUSH2 0x133a 000012ff: JUMPI 00001300: PUSH1 0x40 00001302: DUP1 00001303: MLOAD 00001304: PUSH3 0x461bcd 00001308: PUSH1 0xe5 0000130a: SHL 0000130b: DUP2 0000130c: MSTORE 0000130d: PUSH1 0x20 0000130f: PUSH1 0x04 00001311: DUP3 00001312: ADD 00001313: DUP2 00001314: SWAP1 00001315: MSTORE 00001316: PUSH1 0x24 00001318: DUP3 00001319: ADD 0000131a: MSTORE 0000131b: PUSH1 0x00 0000131d: DUP1 0000131e: MLOAD 0000131f: PUSH1 0x20 00001321: PUSH2 0x4270 00001324: DUP4 00001325: CODECOPY 00001326: DUP2 00001327: MLOAD 00001328: SWAP2 00001329: MSTORE 0000132a: PUSH1 0x44 0000132c: DUP3 0000132d: ADD 0000132e: MSTORE 0000132f: SWAP1 00001330: MLOAD 00001331: SWAP1 00001332: DUP2 00001333: SWAP1 00001334: SUB 00001335: PUSH1 0x64 00001337: ADD 00001338: SWAP1 00001339: REVERT 0000133a: JUMPDEST 0000133b: PUSH2 0x1342 0000133e: PUSH2 0x326a 00001341: JUMP 00001342: JUMPDEST 00001343: JUMP 00001344: JUMPDEST 00001345: PUSH1 0x02 00001347: DUP1 00001348: SLOAD 00001349: EQ 0000134a: ISZERO 0000134b: PUSH2 0x1389 0000134e: JUMPI 0000134f: PUSH1 0x40 00001351: DUP1 00001352: MLOAD 00001353: PUSH3 0x461bcd 00001357: PUSH1 0xe5 00001359: SHL 0000135a: DUP2 0000135b: MSTORE 0000135c: PUSH1 0x20 0000135e: PUSH1 0x04 00001360: DUP3 00001361: ADD 00001362: MSTORE 00001363: PUSH1 0x1f 00001365: PUSH1 0x24 00001367: DUP3 00001368: ADD 00001369: MSTORE 0000136a: PUSH1 0x00 0000136c: DUP1 0000136d: MLOAD 0000136e: PUSH1 0x20 00001370: PUSH2 0x3df6 00001373: DUP4 00001374: CODECOPY 00001375: DUP2 00001376: MLOAD 00001377: SWAP2 00001378: MSTORE 00001379: PUSH1 0x44 0000137b: DUP3 0000137c: ADD 0000137d: MSTORE 0000137e: SWAP1 0000137f: MLOAD 00001380: SWAP1 00001381: DUP2 00001382: SWAP1 00001383: SUB 00001384: PUSH1 0x64 00001386: ADD 00001387: SWAP1 00001388: REVERT 00001389: JUMPDEST 0000138a: PUSH1 0x02 0000138c: DUP1 0000138d: SSTORE 0000138e: CALLER 0000138f: PUSH1 0x00 00001391: SWAP1 00001392: DUP2 00001393: MSTORE 00001394: PUSH1 0x0a 00001396: PUSH1 0x20 00001398: MSTORE 00001399: PUSH1 0x40 0000139b: SWAP1 0000139c: KECCAK256 0000139d: SLOAD 0000139e: PUSH2 0x13d8 000013a1: JUMPI 000013a2: PUSH1 0x40 000013a4: MLOAD 000013a5: PUSH3 0x461bcd 000013a9: PUSH1 0xe5 000013ab: SHL 000013ac: DUP2 000013ad: MSTORE 000013ae: PUSH1 0x04 000013b0: ADD 000013b1: DUP1 000013b2: DUP1 000013b3: PUSH1 0x20 000013b5: ADD 000013b6: DUP3 000013b7: DUP2 000013b8: SUB 000013b9: DUP3 000013ba: MSTORE 000013bb: PUSH1 0x2b 000013bd: DUP2 000013be: MSTORE 000013bf: PUSH1 0x20 000013c1: ADD 000013c2: DUP1 000013c3: PUSH2 0x3e3b 000013c6: PUSH1 0x2b 000013c8: SWAP2 000013c9: CODECOPY 000013ca: PUSH1 0x40 000013cc: ADD 000013cd: SWAP2 000013ce: POP 000013cf: POP 000013d0: PUSH1 0x40 000013d2: MLOAD 000013d3: DUP1 000013d4: SWAP2 000013d5: SUB 000013d6: SWAP1 000013d7: REVERT 000013d8: JUMPDEST 000013d9: PUSH1 0x03 000013db: SLOAD 000013dc: PUSH1 0xff 000013de: AND 000013df: ISZERO 000013e0: PUSH2 0x1423 000013e3: JUMPI 000013e4: PUSH1 0x40 000013e6: DUP1 000013e7: MLOAD 000013e8: PUSH3 0x461bcd 000013ec: PUSH1 0xe5 000013ee: SHL 000013ef: DUP2 000013f0: MSTORE 000013f1: PUSH1 0x20 000013f3: PUSH1 0x04 000013f5: DUP3 000013f6: ADD 000013f7: MSTORE 000013f8: PUSH1 0x10 000013fa: PUSH1 0x24 000013fc: DUP3 000013fd: ADD 000013fe: MSTORE 000013ff: PUSH16 0x14185d5cd8589b194e881c185d5cd959 00001410: PUSH1 0x82 00001412: SHL 00001413: PUSH1 0x44 00001415: DUP3 00001416: ADD 00001417: MSTORE 00001418: SWAP1 00001419: MLOAD 0000141a: SWAP1 0000141b: DUP2 0000141c: SWAP1 0000141d: SUB 0000141e: PUSH1 0x64 00001420: ADD 00001421: SWAP1 00001422: REVERT 00001423: JUMPDEST 00001424: DUP1 00001425: DUP1 00001426: PUSH2 0x1460 00001429: JUMPI 0000142a: PUSH1 0x40 0000142c: MLOAD 0000142d: PUSH3 0x461bcd 00001431: PUSH1 0xe5 00001433: SHL 00001434: DUP2 00001435: MSTORE 00001436: PUSH1 0x04 00001438: ADD 00001439: DUP1 0000143a: DUP1 0000143b: PUSH1 0x20 0000143d: ADD 0000143e: DUP3 0000143f: DUP2 00001440: SUB 00001441: DUP3 00001442: MSTORE 00001443: PUSH1 0x27 00001445: DUP2 00001446: MSTORE 00001447: PUSH1 0x20 00001449: ADD 0000144a: DUP1 0000144b: PUSH2 0x433a 0000144e: PUSH1 0x27 00001450: SWAP2 00001451: CODECOPY 00001452: PUSH1 0x40 00001454: ADD 00001455: SWAP2 00001456: POP 00001457: POP 00001458: PUSH1 0x40 0000145a: MLOAD 0000145b: DUP1 0000145c: SWAP2 0000145d: SUB 0000145e: SWAP1 0000145f: REVERT 00001460: JUMPDEST 00001461: PUSH1 0x00 00001463: PUSH2 0x146b 00001466: DUP4 00001467: PUSH2 0x2fda 0000146a: JUMP 0000146b: JUMPDEST 0000146c: SWAP1 0000146d: POP 0000146e: DUP1 0000146f: CALLVALUE 00001470: LT 00001471: ISZERO 00001472: PUSH2 0x14ac 00001475: JUMPI 00001476: PUSH1 0x40 00001478: MLOAD 00001479: PUSH3 0x461bcd 0000147d: PUSH1 0xe5 0000147f: SHL 00001480: DUP2 00001481: MSTORE 00001482: PUSH1 0x04 00001484: ADD 00001485: DUP1 00001486: DUP1 00001487: PUSH1 0x20 00001489: ADD 0000148a: DUP3 0000148b: DUP2 0000148c: SUB 0000148d: DUP3 0000148e: MSTORE 0000148f: PUSH1 0x2f 00001491: DUP2 00001492: MSTORE 00001493: PUSH1 0x20 00001495: ADD 00001496: DUP1 00001497: PUSH2 0x43b9 0000149a: PUSH1 0x2f 0000149c: SWAP2 0000149d: CODECOPY 0000149e: PUSH1 0x40 000014a0: ADD 000014a1: SWAP2 000014a2: POP 000014a3: POP 000014a4: PUSH1 0x40 000014a6: MLOAD 000014a7: DUP1 000014a8: SWAP2 000014a9: SUB 000014aa: SWAP1 000014ab: REVERT 000014ac: JUMPDEST 000014ad: PUSH2 0x14b4 000014b0: PUSH2 0x3d08 000014b3: JUMP 000014b4: JUMPDEST 000014b5: POP 000014b6: CALLER 000014b7: PUSH1 0x00 000014b9: SWAP1 000014ba: DUP2 000014bb: MSTORE 000014bc: PUSH1 0x0a 000014be: PUSH1 0x20 000014c0: SWAP1 000014c1: DUP2 000014c2: MSTORE 000014c3: PUSH1 0x40 000014c5: DUP1 000014c6: DUP4 000014c7: KECCAK256 000014c8: SLOAD 000014c9: DUP4 000014ca: MSTORE 000014cb: PUSH1 0x0b 000014cd: DUP3 000014ce: MSTORE 000014cf: SWAP2 000014d0: DUP3 000014d1: SWAP1 000014d2: KECCAK256 000014d3: DUP3 000014d4: MLOAD 000014d5: PUSH1 0x80 000014d7: DUP2 000014d8: ADD 000014d9: DUP5 000014da: MSTORE 000014db: DUP2 000014dc: SLOAD 000014dd: DUP1 000014de: DUP3 000014df: MSTORE 000014e0: PUSH1 0x01 000014e2: DUP4 000014e3: ADD 000014e4: SLOAD 000014e5: SWAP4 000014e6: DUP3 000014e7: ADD 000014e8: SWAP4 000014e9: SWAP1 000014ea: SWAP4 000014eb: MSTORE 000014ec: PUSH1 0x02 000014ee: DUP3 000014ef: ADD 000014f0: SLOAD 000014f1: SWAP4 000014f2: DUP2 000014f3: ADD 000014f4: SWAP4 000014f5: SWAP1 000014f6: SWAP4 000014f7: MSTORE 000014f8: PUSH1 0x03 000014fa: ADD 000014fb: SLOAD 000014fc: PUSH1 0x01 000014fe: PUSH1 0x01 00001500: PUSH1 0xa0 00001502: SHL 00001503: SUB 00001504: AND 00001505: PUSH1 0x60 00001507: DUP4 00001508: ADD 00001509: MSTORE 0000150a: PUSH2 0x1513 0000150d: SWAP1 0000150e: DUP6 0000150f: PUSH2 0x3308 00001512: JUMP 00001513: JUMPDEST 00001514: PUSH32 0x0000000000000000000000005b577578565c2404bb84e734f583cf8523236ef1 00001535: PUSH1 0x01 00001537: PUSH1 0x01 00001539: PUSH1 0xa0 0000153b: SHL 0000153c: SUB 0000153d: AND 0000153e: ISZERO 0000153f: PUSH2 0x1648 00001542: JUMPI 00001543: PUSH1 0x40 00001545: DUP1 00001546: MLOAD 00001547: PUSH4 0xf3fef3a3 0000154c: PUSH1 0xe0 0000154e: SHL 0000154f: DUP2 00001550: MSTORE 00001551: CALLER 00001552: PUSH1 0x04 00001554: DUP3 00001555: ADD 00001556: MSTORE 00001557: PUSH1 0x24 00001559: DUP2 0000155a: ADD 0000155b: DUP7 0000155c: SWAP1 0000155d: MSTORE 0000155e: SWAP1 0000155f: MLOAD 00001560: PUSH1 0x01 00001562: PUSH1 0x01 00001564: PUSH1 0xa0 00001566: SHL 00001567: SUB 00001568: PUSH32 0x0000000000000000000000005b577578565c2404bb84e734f583cf8523236ef1 00001589: AND 0000158a: SWAP2 0000158b: PUSH4 0xf3fef3a3 00001590: SWAP2 00001591: PUSH1 0x44 00001593: DUP1 00001594: DUP4 00001595: ADD 00001596: SWAP3 00001597: PUSH1 0x00 00001599: SWAP3 0000159a: SWAP2 0000159b: SWAP1 0000159c: DUP3 0000159d: SWAP1 0000159e: SUB 0000159f: ADD 000015a0: DUP2 000015a1: DUP4 000015a2: DUP8 000015a3: DUP1 000015a4: EXTCODESIZE 000015a5: ISZERO 000015a6: DUP1 000015a7: ISZERO 000015a8: PUSH2 0x15b0 000015ab: JUMPI 000015ac: PUSH1 0x00 000015ae: DUP1 000015af: REVERT 000015b0: JUMPDEST 000015b1: POP 000015b2: GAS 000015b3: CALL 000015b4: ISZERO 000015b5: DUP1 000015b6: ISZERO 000015b7: PUSH2 0x15c4 000015ba: JUMPI 000015bb: RETURNDATASIZE 000015bc: PUSH1 0x00 000015be: DUP1 000015bf: RETURNDATACOPY 000015c0: RETURNDATASIZE 000015c1: PUSH1 0x00 000015c3: REVERT 000015c4: JUMPDEST 000015c5: POP 000015c6: POP 000015c7: PUSH1 0x40 000015c9: DUP1 000015ca: MLOAD 000015cb: PUSH4 0xe0588af7 000015d0: PUSH1 0xe0 000015d2: SHL 000015d3: DUP2 000015d4: MSTORE 000015d5: CALLER 000015d6: PUSH1 0x04 000015d8: DUP3 000015d9: ADD 000015da: MSTORE 000015db: SWAP1 000015dc: MLOAD 000015dd: PUSH1 0x01 000015df: PUSH1 0x01 000015e1: PUSH1 0xa0 000015e3: SHL 000015e4: SUB 000015e5: PUSH32 0x0000000000000000000000005b577578565c2404bb84e734f583cf8523236ef1 00001606: AND 00001607: SWAP4 00001608: POP 00001609: PUSH4 0xe0588af7 0000160e: SWAP3 0000160f: POP 00001610: PUSH1 0x24 00001612: DUP1 00001613: DUP4 00001614: ADD 00001615: SWAP3 00001616: PUSH1 0x00 00001618: SWAP3 00001619: SWAP2 0000161a: SWAP1 0000161b: DUP3 0000161c: SWAP1 0000161d: SUB 0000161e: ADD 0000161f: DUP2 00001620: DUP4 00001621: DUP8 00001622: DUP1 00001623: EXTCODESIZE 00001624: ISZERO 00001625: DUP1 00001626: ISZERO 00001627: PUSH2 0x162f 0000162a: JUMPI 0000162b: PUSH1 0x00 0000162d: DUP1 0000162e: REVERT 0000162f: JUMPDEST 00001630: POP 00001631: GAS 00001632: CALL 00001633: ISZERO 00001634: DUP1 00001635: ISZERO 00001636: PUSH2 0x1643 00001639: JUMPI 0000163a: RETURNDATASIZE 0000163b: PUSH1 0x00 0000163d: DUP1 0000163e: RETURNDATACOPY 0000163f: RETURNDATASIZE 00001640: PUSH1 0x00 00001642: REVERT 00001643: JUMPDEST 00001644: POP 00001645: POP 00001646: POP 00001647: POP 00001648: JUMPDEST 00001649: PUSH1 0x09 0000164b: SLOAD 0000164c: PUSH2 0x165e 0000164f: SWAP1 00001650: PUSH1 0x01 00001652: PUSH1 0x01 00001654: PUSH1 0xa0 00001656: SHL 00001657: SUB 00001658: AND 00001659: DUP4 0000165a: PUSH2 0x33f8 0000165d: JUMP 0000165e: JUMPDEST 0000165f: PUSH2 0x1671 00001662: CALLER 00001663: PUSH2 0x166c 00001666: CALLVALUE 00001667: DUP6 00001668: PUSH2 0x31bf 0000166b: JUMP 0000166c: JUMPDEST 0000166d: PUSH2 0x33f8 00001670: JUMP 00001671: JUMPDEST 00001672: DUP1 00001673: MLOAD 00001674: PUSH1 0x40 00001676: DUP1 00001677: MLOAD 00001678: DUP7 00001679: DUP2 0000167a: MSTORE 0000167b: SWAP1 0000167c: MLOAD 0000167d: CALLER 0000167e: SWAP2 0000167f: PUSH32 0xccbea4088a3b7ae9ca2d15fab9a9742a4075b4d7247768a1eecea917565aba00 000016a0: SWAP2 000016a1: SWAP1 000016a2: DUP2 000016a3: SWAP1 000016a4: SUB 000016a5: PUSH1 0x20 000016a7: ADD 000016a8: SWAP1 000016a9: LOG3 000016aa: POP 000016ab: POP 000016ac: PUSH1 0x01 000016ae: PUSH1 0x02 000016b0: SSTORE 000016b1: POP 000016b2: POP 000016b3: JUMP 000016b4: JUMPDEST 000016b5: PUSH1 0x00 000016b7: DUP1 000016b8: PUSH2 0x16e0 000016bb: PUSH32 0x000000000000000000000000a4e581bd159b869e8290707a7fbf841fe7fe97b6 000016dc: PUSH2 0x1a4d 000016df: JUMP 000016e0: JUMPDEST 000016e1: SWAP1 000016e2: POP 000016e3: PUSH2 0x16f7 000016e6: PUSH1 0x05 000016e8: SLOAD 000016e9: DUP3 000016ea: PUSH2 0x3110 000016ed: SWAP1 000016ee: SWAP2 000016ef: SWAP1 000016f0: PUSH4 0xffffffff 000016f5: AND 000016f6: JUMP 000016f7: JUMPDEST 000016f8: SWAP2 000016f9: POP 000016fa: POP 000016fb: SWAP1 000016fc: JUMP 000016fd: JUMPDEST 000016fe: PUSH2 0x1705 00001701: PUSH2 0x3152 00001704: JUMP 00001705: JUMPDEST 00001706: PUSH1 0x00 00001708: SLOAD 00001709: PUSH1 0x01 0000170b: PUSH1 0x01 0000170d: PUSH1 0xa0 0000170f: SHL 00001710: SUB 00001711: SWAP1 00001712: DUP2 00001713: AND 00001714: SWAP2 00001715: AND 00001716: EQ 00001717: PUSH2 0x1755 0000171a: JUMPI 0000171b: PUSH1 0x40 0000171d: DUP1 0000171e: MLOAD 0000171f: PUSH3 0x461bcd 00001723: PUSH1 0xe5 00001725: SHL 00001726: DUP2 00001727: MSTORE 00001728: PUSH1 0x20 0000172a: PUSH1 0x04 0000172c: DUP3 0000172d: ADD 0000172e: DUP2 0000172f: SWAP1 00001730: MSTORE 00001731: PUSH1 0x24 00001733: DUP3 00001734: ADD 00001735: MSTORE 00001736: PUSH1 0x00 00001738: DUP1 00001739: MLOAD 0000173a: PUSH1 0x20 0000173c: PUSH2 0x4270 0000173f: DUP4 00001740: CODECOPY 00001741: DUP2 00001742: MLOAD 00001743: SWAP2 00001744: MSTORE 00001745: PUSH1 0x44 00001747: DUP3 00001748: ADD 00001749: MSTORE 0000174a: SWAP1 0000174b: MLOAD 0000174c: SWAP1 0000174d: DUP2 0000174e: SWAP1 0000174f: SUB 00001750: PUSH1 0x64 00001752: ADD 00001753: SWAP1 00001754: REVERT 00001755: JUMPDEST 00001756: PUSH1 0x0a 00001758: DUP2 00001759: GT 0000175a: ISZERO 0000175b: PUSH2 0x1795 0000175e: JUMPI 0000175f: PUSH1 0x40 00001761: MLOAD 00001762: PUSH3 0x461bcd 00001766: PUSH1 0xe5 00001768: SHL 00001769: DUP2 0000176a: MSTORE 0000176b: PUSH1 0x04 0000176d: ADD 0000176e: DUP1 0000176f: DUP1 00001770: PUSH1 0x20 00001772: ADD 00001773: DUP3 00001774: DUP2 00001775: SUB 00001776: DUP3 00001777: MSTORE 00001778: PUSH1 0x36 0000177a: DUP2 0000177b: MSTORE 0000177c: PUSH1 0x20 0000177e: ADD 0000177f: DUP1 00001780: PUSH2 0x40b1 00001783: PUSH1 0x36 00001785: SWAP2 00001786: CODECOPY 00001787: PUSH1 0x40 00001789: ADD 0000178a: SWAP2 0000178b: POP 0000178c: POP 0000178d: PUSH1 0x40 0000178f: MLOAD 00001790: DUP1 00001791: SWAP2 00001792: SUB 00001793: SWAP1 00001794: REVERT 00001795: JUMPDEST 00001796: PUSH1 0x07 00001798: DUP2 00001799: SWAP1 0000179a: SSTORE 0000179b: PUSH1 0x40 0000179d: DUP1 0000179e: MLOAD 0000179f: DUP3 000017a0: DUP2 000017a1: MSTORE 000017a2: SWAP1 000017a3: MLOAD 000017a4: CALLER 000017a5: SWAP2 000017a6: PUSH32 0x2b29c7e5fe28010036a94929b56a0eb76bf5e90700e842a971eaa6e4abc45f04 000017c7: SWAP2 000017c8: SWAP1 000017c9: DUP2 000017ca: SWAP1 000017cb: SUB 000017cc: PUSH1 0x20 000017ce: ADD 000017cf: SWAP1 000017d0: LOG2 000017d1: POP 000017d2: JUMP 000017d3: JUMPDEST 000017d4: PUSH1 0x03 000017d6: SLOAD 000017d7: PUSH1 0xff 000017d9: AND 000017da: SWAP1 000017db: JUMP 000017dc: JUMPDEST 000017dd: PUSH1 0x03 000017df: SLOAD 000017e0: PUSH1 0xff 000017e2: AND 000017e3: ISZERO 000017e4: PUSH2 0x1827 000017e7: JUMPI 000017e8: PUSH1 0x40 000017ea: DUP1 000017eb: MLOAD 000017ec: PUSH3 0x461bcd 000017f0: PUSH1 0xe5 000017f2: SHL 000017f3: DUP2 000017f4: MSTORE 000017f5: PUSH1 0x20 000017f7: PUSH1 0x04 000017f9: DUP3 000017fa: ADD 000017fb: MSTORE 000017fc: PUSH1 0x10 000017fe: PUSH1 0x24 00001800: DUP3 00001801: ADD 00001802: MSTORE 00001803: PUSH16 0x14185d5cd8589b194e881c185d5cd959 00001814: PUSH1 0x82 00001816: SHL 00001817: PUSH1 0x44 00001819: DUP3 0000181a: ADD 0000181b: MSTORE 0000181c: SWAP1 0000181d: MLOAD 0000181e: SWAP1 0000181f: DUP2 00001820: SWAP1 00001821: SUB 00001822: PUSH1 0x64 00001824: ADD 00001825: SWAP1 00001826: REVERT 00001827: JUMPDEST 00001828: CALLER 00001829: PUSH1 0x00 0000182b: SWAP1 0000182c: DUP2 0000182d: MSTORE 0000182e: PUSH1 0x0a 00001830: PUSH1 0x20 00001832: MSTORE 00001833: PUSH1 0x40 00001835: SWAP1 00001836: KECCAK256 00001837: SLOAD 00001838: ISZERO 00001839: PUSH2 0x1873 0000183c: JUMPI 0000183d: PUSH1 0x40 0000183f: MLOAD 00001840: PUSH3 0x461bcd 00001844: PUSH1 0xe5 00001846: SHL 00001847: DUP2 00001848: MSTORE 00001849: PUSH1 0x04 0000184b: ADD 0000184c: DUP1 0000184d: DUP1 0000184e: PUSH1 0x20 00001850: ADD 00001851: DUP3 00001852: DUP2 00001853: SUB 00001854: DUP3 00001855: MSTORE 00001856: PUSH1 0x30 00001858: DUP2 00001859: MSTORE 0000185a: PUSH1 0x20 0000185c: ADD 0000185d: DUP1 0000185e: PUSH2 0x3d3a 00001861: PUSH1 0x30 00001863: SWAP2 00001864: CODECOPY 00001865: PUSH1 0x40 00001867: ADD 00001868: SWAP2 00001869: POP 0000186a: POP 0000186b: PUSH1 0x40 0000186d: MLOAD 0000186e: DUP1 0000186f: SWAP2 00001870: SUB 00001871: SWAP1 00001872: REVERT 00001873: JUMPDEST 00001874: PUSH1 0x00 00001876: PUSH2 0x187f 00001879: PUSH1 0x04 0000187b: PUSH2 0x34f0 0000187e: JUMP 0000187f: JUMPDEST 00001880: CALLER 00001881: PUSH1 0x00 00001883: SWAP1 00001884: DUP2 00001885: MSTORE 00001886: PUSH1 0x0a 00001888: PUSH1 0x20 0000188a: MSTORE 0000188b: PUSH1 0x40 0000188d: SWAP1 0000188e: KECCAK256 0000188f: DUP2 00001890: SWAP1 00001891: SSTORE 00001892: SWAP1 00001893: POP 00001894: PUSH2 0x189b 00001897: PUSH2 0x3d08 0000189a: JUMP 0000189b: JUMPDEST 0000189c: POP 0000189d: PUSH1 0x40 0000189f: DUP1 000018a0: MLOAD 000018a1: PUSH1 0x80 000018a3: DUP2 000018a4: ADD 000018a5: DUP3 000018a6: MSTORE 000018a7: DUP3 000018a8: DUP2 000018a9: MSTORE 000018aa: PUSH1 0x00 000018ac: PUSH1 0x20 000018ae: DUP1 000018af: DUP4 000018b0: ADD 000018b1: DUP3 000018b2: DUP2 000018b3: MSTORE 000018b4: DUP4 000018b5: DUP6 000018b6: ADD 000018b7: DUP4 000018b8: DUP2 000018b9: MSTORE 000018ba: CALLER 000018bb: PUSH1 0x60 000018bd: DUP7 000018be: ADD 000018bf: SWAP1 000018c0: DUP2 000018c1: MSTORE 000018c2: DUP8 000018c3: DUP6 000018c4: MSTORE 000018c5: PUSH1 0x0b 000018c7: SWAP1 000018c8: SWAP4 000018c9: MSTORE 000018ca: SWAP5 000018cb: SWAP1 000018cc: SWAP3 000018cd: KECCAK256 000018ce: DUP4 000018cf: MLOAD 000018d0: DUP2 000018d1: SSTORE 000018d2: SWAP2 000018d3: MLOAD 000018d4: PUSH1 0x01 000018d6: DUP4 000018d7: ADD 000018d8: SSTORE 000018d9: SWAP3 000018da: MLOAD 000018db: PUSH1 0x02 000018dd: DUP3 000018de: ADD 000018df: SSTORE 000018e0: SWAP2 000018e1: MLOAD 000018e2: PUSH1 0x03 000018e4: SWAP1 000018e5: SWAP3 000018e6: ADD 000018e7: DUP1 000018e8: SLOAD 000018e9: PUSH1 0x01 000018eb: PUSH1 0x01 000018ed: PUSH1 0xa0 000018ef: SHL 000018f0: SUB 000018f1: NOT 000018f2: AND 000018f3: PUSH1 0x01 000018f5: PUSH1 0x01 000018f7: PUSH1 0xa0 000018f9: SHL 000018fa: SUB 000018fb: SWAP1 000018fc: SWAP4 000018fd: AND 000018fe: SWAP3 000018ff: SWAP1 00001900: SWAP3 00001901: OR 00001902: SWAP1 00001903: SWAP2 00001904: SSTORE 00001905: PUSH2 0x190e 00001908: PUSH1 0x04 0000190a: PUSH2 0x3099 0000190d: JUMP 0000190e: JUMPDEST 0000190f: PUSH1 0x40 00001911: MLOAD 00001912: DUP3 00001913: SWAP1 00001914: CALLER 00001915: SWAP1 00001916: PUSH32 0xa510df27d6e51efd91d3f55722bad1f26bf924a63e5dcee07c2ab4c3d4992dcc 00001937: SWAP1 00001938: PUSH1 0x00 0000193a: SWAP1 0000193b: LOG3 0000193c: POP 0000193d: POP 0000193e: JUMP 0000193f: JUMPDEST 00001940: PUSH1 0x04 00001942: SLOAD 00001943: DUP2 00001944: JUMP 00001945: JUMPDEST 00001946: PUSH1 0x09 00001948: SLOAD 00001949: PUSH1 0x01 0000194b: PUSH1 0x01 0000194d: PUSH1 0xa0 0000194f: SHL 00001950: SUB 00001951: AND 00001952: DUP2 00001953: JUMP 00001954: JUMPDEST 00001955: PUSH32 0x0000000000000000000000005b577578565c2404bb84e734f583cf8523236ef1 00001976: DUP2 00001977: JUMP 00001978: JUMPDEST 00001979: PUSH5 0x02540be400 0000197f: DUP2 00001980: JUMP 00001981: JUMPDEST 00001982: PUSH32 0x00000000000000000000000016c52ceece2ed57dad87319d91b5e3637d50afa4 000019a3: DUP2 000019a4: JUMP 000019a5: JUMPDEST 000019a6: PUSH2 0x19ad 000019a9: PUSH2 0x3152 000019ac: JUMP 000019ad: JUMPDEST 000019ae: PUSH1 0x00 000019b0: SLOAD 000019b1: PUSH1 0x01 000019b3: PUSH1 0x01 000019b5: PUSH1 0xa0 000019b7: SHL 000019b8: SUB 000019b9: SWAP1 000019ba: DUP2 000019bb: AND 000019bc: SWAP2 000019bd: AND 000019be: EQ 000019bf: PUSH2 0x19fd 000019c2: JUMPI 000019c3: PUSH1 0x40 000019c5: DUP1 000019c6: MLOAD 000019c7: PUSH3 0x461bcd 000019cb: PUSH1 0xe5 000019cd: SHL 000019ce: DUP2 000019cf: MSTORE 000019d0: PUSH1 0x20 000019d2: PUSH1 0x04 000019d4: DUP3 000019d5: ADD 000019d6: DUP2 000019d7: SWAP1 000019d8: MSTORE 000019d9: PUSH1 0x24 000019db: DUP3 000019dc: ADD 000019dd: MSTORE 000019de: PUSH1 0x00 000019e0: DUP1 000019e1: MLOAD 000019e2: PUSH1 0x20 000019e4: PUSH2 0x4270 000019e7: DUP4 000019e8: CODECOPY 000019e9: DUP2 000019ea: MLOAD 000019eb: SWAP2 000019ec: MSTORE 000019ed: PUSH1 0x44 000019ef: DUP3 000019f0: ADD 000019f1: MSTORE 000019f2: SWAP1 000019f3: MLOAD 000019f4: SWAP1 000019f5: DUP2 000019f6: SWAP1 000019f7: SUB 000019f8: PUSH1 0x64 000019fa: ADD 000019fb: SWAP1 000019fc: REVERT 000019fd: JUMPDEST 000019fe: PUSH1 0x00 00001a00: DUP1 00001a01: SLOAD 00001a02: PUSH1 0x40 00001a04: MLOAD 00001a05: PUSH1 0x01 00001a07: PUSH1 0x01 00001a09: PUSH1 0xa0 00001a0b: SHL 00001a0c: SUB 00001a0d: SWAP1 00001a0e: SWAP2 00001a0f: AND 00001a10: SWAP1 00001a11: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001a32: SWAP1 00001a33: DUP4 00001a34: SWAP1 00001a35: LOG3 00001a36: PUSH1 0x00 00001a38: DUP1 00001a39: SLOAD 00001a3a: PUSH1 0x01 00001a3c: PUSH1 0x01 00001a3e: PUSH1 0xa0 00001a40: SHL 00001a41: SUB 00001a42: NOT 00001a43: AND 00001a44: SWAP1 00001a45: SSTORE 00001a46: JUMP 00001a47: JUMPDEST 00001a48: PUSH1 0x06 00001a4a: SLOAD 00001a4b: DUP2 00001a4c: JUMP 00001a4d: JUMPDEST 00001a4e: PUSH1 0x00 00001a50: PUSH2 0x0b44 00001a53: PUSH5 0x02540be400 00001a59: PUSH2 0x1ac5 00001a5c: DUP5 00001a5d: PUSH1 0x01 00001a5f: PUSH1 0x01 00001a61: PUSH1 0xa0 00001a63: SHL 00001a64: SUB 00001a65: AND 00001a66: PUSH4 0x96237c02 00001a6b: PUSH1 0x40 00001a6d: MLOAD 00001a6e: DUP2 00001a6f: PUSH4 0xffffffff 00001a74: AND 00001a75: PUSH1 0xe0 00001a77: SHL 00001a78: DUP2 00001a79: MSTORE 00001a7a: PUSH1 0x04 00001a7c: ADD 00001a7d: PUSH1 0x20 00001a7f: PUSH1 0x40 00001a81: MLOAD 00001a82: DUP1 00001a83: DUP4 00001a84: SUB 00001a85: DUP2 00001a86: DUP7 00001a87: DUP1 00001a88: EXTCODESIZE 00001a89: ISZERO 00001a8a: DUP1 00001a8b: ISZERO 00001a8c: PUSH2 0x1a94 00001a8f: JUMPI 00001a90: PUSH1 0x00 00001a92: DUP1 00001a93: REVERT 00001a94: JUMPDEST 00001a95: POP 00001a96: GAS 00001a97: STATICCALL 00001a98: ISZERO 00001a99: DUP1 00001a9a: ISZERO 00001a9b: PUSH2 0x1aa8 00001a9e: JUMPI 00001a9f: RETURNDATASIZE 00001aa0: PUSH1 0x00 00001aa2: DUP1 00001aa3: RETURNDATACOPY 00001aa4: RETURNDATASIZE 00001aa5: PUSH1 0x00 00001aa7: REVERT 00001aa8: JUMPDEST 00001aa9: POP 00001aaa: POP 00001aab: POP 00001aac: POP 00001aad: PUSH1 0x40 00001aaf: MLOAD 00001ab0: RETURNDATASIZE 00001ab1: PUSH1 0x20 00001ab3: DUP2 00001ab4: LT 00001ab5: ISZERO 00001ab6: PUSH2 0x1abe 00001ab9: JUMPI 00001aba: PUSH1 0x00 00001abc: DUP1 00001abd: REVERT 00001abe: JUMPDEST 00001abf: POP 00001ac0: MLOAD 00001ac1: PUSH2 0x34f4 00001ac4: JUMP 00001ac5: JUMPDEST 00001ac6: SWAP1 00001ac7: PUSH2 0x30b7 00001aca: JUMP 00001acb: JUMPDEST 00001acc: PUSH32 0x0000000000000000000000002cfeaf282fe9ae050b210e7bda65d288c40c6104 00001aed: DUP2 00001aee: JUMP 00001aef: JUMPDEST 00001af0: PUSH2 0x1af7 00001af3: PUSH2 0x3152 00001af6: JUMP 00001af7: JUMPDEST 00001af8: PUSH1 0x00 00001afa: SLOAD 00001afb: PUSH1 0x01 00001afd: PUSH1 0x01 00001aff: PUSH1 0xa0 00001b01: SHL 00001b02: SUB 00001b03: SWAP1 00001b04: DUP2 00001b05: AND 00001b06: SWAP2 00001b07: AND 00001b08: EQ 00001b09: PUSH2 0x1b47 00001b0c: JUMPI 00001b0d: PUSH1 0x40 00001b0f: DUP1 00001b10: MLOAD 00001b11: PUSH3 0x461bcd 00001b15: PUSH1 0xe5 00001b17: SHL 00001b18: DUP2 00001b19: MSTORE 00001b1a: PUSH1 0x20 00001b1c: PUSH1 0x04 00001b1e: DUP3 00001b1f: ADD 00001b20: DUP2 00001b21: SWAP1 00001b22: MSTORE 00001b23: PUSH1 0x24 00001b25: DUP3 00001b26: ADD 00001b27: MSTORE 00001b28: PUSH1 0x00 00001b2a: DUP1 00001b2b: MLOAD 00001b2c: PUSH1 0x20 00001b2e: PUSH2 0x4270 00001b31: DUP4 00001b32: CODECOPY 00001b33: DUP2 00001b34: MLOAD 00001b35: SWAP2 00001b36: MSTORE 00001b37: PUSH1 0x44 00001b39: DUP3 00001b3a: ADD 00001b3b: MSTORE 00001b3c: SWAP1 00001b3d: MLOAD 00001b3e: SWAP1 00001b3f: DUP2 00001b40: SWAP1 00001b41: SUB 00001b42: PUSH1 0x64 00001b44: ADD 00001b45: SWAP1 00001b46: REVERT 00001b47: JUMPDEST 00001b48: PUSH2 0x1342 00001b4b: PUSH2 0x354f 00001b4e: JUMP 00001b4f: JUMPDEST 00001b50: PUSH2 0x1b57 00001b53: PUSH2 0x3152 00001b56: JUMP 00001b57: JUMPDEST 00001b58: PUSH1 0x00 00001b5a: SLOAD 00001b5b: PUSH1 0x01 00001b5d: PUSH1 0x01 00001b5f: PUSH1 0xa0 00001b61: SHL 00001b62: SUB 00001b63: SWAP1 00001b64: DUP2 00001b65: AND 00001b66: SWAP2 00001b67: AND 00001b68: EQ 00001b69: PUSH2 0x1ba7 00001b6c: JUMPI 00001b6d: PUSH1 0x40 00001b6f: DUP1 00001b70: MLOAD 00001b71: PUSH3 0x461bcd 00001b75: PUSH1 0xe5 00001b77: SHL 00001b78: DUP2 00001b79: MSTORE 00001b7a: PUSH1 0x20 00001b7c: PUSH1 0x04 00001b7e: DUP3 00001b7f: ADD 00001b80: DUP2 00001b81: SWAP1 00001b82: MSTORE 00001b83: PUSH1 0x24 00001b85: DUP3 00001b86: ADD 00001b87: MSTORE 00001b88: PUSH1 0x00 00001b8a: DUP1 00001b8b: MLOAD 00001b8c: PUSH1 0x20 00001b8e: PUSH2 0x4270 00001b91: DUP4 00001b92: CODECOPY 00001b93: DUP2 00001b94: MLOAD 00001b95: SWAP2 00001b96: MSTORE 00001b97: PUSH1 0x44 00001b99: DUP3 00001b9a: ADD 00001b9b: MSTORE 00001b9c: SWAP1 00001b9d: MLOAD 00001b9e: SWAP1 00001b9f: DUP2 00001ba0: SWAP1 00001ba1: SUB 00001ba2: PUSH1 0x64 00001ba4: ADD 00001ba5: SWAP1 00001ba6: REVERT 00001ba7: JUMPDEST 00001ba8: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00001bc9: PUSH1 0x01 00001bcb: PUSH1 0x01 00001bcd: PUSH1 0xa0 00001bcf: SHL 00001bd0: SUB 00001bd1: AND 00001bd2: DUP3 00001bd3: PUSH1 0x01 00001bd5: PUSH1 0x01 00001bd7: PUSH1 0xa0 00001bd9: SHL 00001bda: SUB 00001bdb: AND 00001bdc: EQ 00001bdd: ISZERO 00001bde: PUSH2 0x1c18 00001be1: JUMPI 00001be2: PUSH1 0x40 00001be4: MLOAD 00001be5: PUSH3 0x461bcd 00001be9: PUSH1 0xe5 00001beb: SHL 00001bec: DUP2 00001bed: MSTORE 00001bee: PUSH1 0x04 00001bf0: ADD 00001bf1: DUP1 00001bf2: DUP1 00001bf3: PUSH1 0x20 00001bf5: ADD 00001bf6: DUP3 00001bf7: DUP2 00001bf8: SUB 00001bf9: DUP3 00001bfa: MSTORE 00001bfb: PUSH1 0x25 00001bfd: DUP2 00001bfe: MSTORE 00001bff: PUSH1 0x20 00001c01: ADD 00001c02: DUP1 00001c03: PUSH2 0x3e16 00001c06: PUSH1 0x25 00001c08: SWAP2 00001c09: CODECOPY 00001c0a: PUSH1 0x40 00001c0c: ADD 00001c0d: SWAP2 00001c0e: POP 00001c0f: POP 00001c10: PUSH1 0x40 00001c12: MLOAD 00001c13: DUP1 00001c14: SWAP2 00001c15: SUB 00001c16: SWAP1 00001c17: REVERT 00001c18: JUMPDEST 00001c19: PUSH2 0x1c34 00001c1c: PUSH2 0x1c23 00001c1f: PUSH2 0x1d87 00001c22: JUMP 00001c23: JUMPDEST 00001c24: PUSH1 0x01 00001c26: PUSH1 0x01 00001c28: PUSH1 0xa0 00001c2a: SHL 00001c2b: SUB 00001c2c: DUP5 00001c2d: AND 00001c2e: SWAP1 00001c2f: DUP4 00001c30: PUSH2 0x35d0 00001c33: JUMP 00001c34: JUMPDEST 00001c35: PUSH1 0x40 00001c37: DUP1 00001c38: MLOAD 00001c39: PUSH1 0x01 00001c3b: PUSH1 0x01 00001c3d: PUSH1 0xa0 00001c3f: SHL 00001c40: SUB 00001c41: DUP5 00001c42: AND 00001c43: DUP2 00001c44: MSTORE 00001c45: PUSH1 0x20 00001c47: DUP2 00001c48: ADD 00001c49: DUP4 00001c4a: SWAP1 00001c4b: MSTORE 00001c4c: DUP2 00001c4d: MLOAD 00001c4e: PUSH32 0x8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28 00001c6f: SWAP3 00001c70: SWAP2 00001c71: DUP2 00001c72: SWAP1 00001c73: SUB 00001c74: SWAP1 00001c75: SWAP2 00001c76: ADD 00001c77: SWAP1 00001c78: LOG1 00001c79: POP 00001c7a: POP 00001c7b: JUMP 00001c7c: JUMPDEST 00001c7d: PUSH1 0x00 00001c7f: PUSH2 0x1c86 00001c82: PUSH2 0x3d08 00001c85: JUMP 00001c86: JUMPDEST 00001c87: POP 00001c88: PUSH1 0x00 00001c8a: DUP3 00001c8b: DUP2 00001c8c: MSTORE 00001c8d: PUSH1 0x0b 00001c8f: PUSH1 0x20 00001c91: SWAP1 00001c92: DUP2 00001c93: MSTORE 00001c94: PUSH1 0x40 00001c96: SWAP2 00001c97: DUP3 00001c98: SWAP1 00001c99: KECCAK256 00001c9a: DUP3 00001c9b: MLOAD 00001c9c: PUSH1 0x80 00001c9e: DUP2 00001c9f: ADD 00001ca0: DUP5 00001ca1: MSTORE 00001ca2: DUP2 00001ca3: SLOAD 00001ca4: DUP1 00001ca5: DUP3 00001ca6: MSTORE 00001ca7: PUSH1 0x01 00001ca9: DUP4 00001caa: ADD 00001cab: SLOAD 00001cac: SWAP4 00001cad: DUP3 00001cae: ADD 00001caf: SWAP4 00001cb0: SWAP1 00001cb1: SWAP4 00001cb2: MSTORE 00001cb3: PUSH1 0x02 00001cb5: DUP3 00001cb6: ADD 00001cb7: SLOAD 00001cb8: SWAP4 00001cb9: DUP2 00001cba: ADD 00001cbb: SWAP4 00001cbc: SWAP1 00001cbd: SWAP4 00001cbe: MSTORE 00001cbf: PUSH1 0x03 00001cc1: ADD 00001cc2: SLOAD 00001cc3: PUSH1 0x01 00001cc5: PUSH1 0x01 00001cc7: PUSH1 0xa0 00001cc9: SHL 00001cca: SUB 00001ccb: AND 00001ccc: PUSH1 0x60 00001cce: DUP4 00001ccf: ADD 00001cd0: MSTORE 00001cd1: ISZERO 00001cd2: DUP1 00001cd3: PUSH2 0x1cde 00001cd6: JUMPI 00001cd7: POP 00001cd8: PUSH1 0x40 00001cda: DUP2 00001cdb: ADD 00001cdc: MLOAD 00001cdd: ISZERO 00001cde: JUMPDEST 00001cdf: ISZERO 00001ce0: PUSH2 0x1cec 00001ce3: JUMPI 00001ce4: PUSH1 0x00 00001ce6: SWAP2 00001ce7: POP 00001ce8: PUSH2 0x1d51 00001ceb: JUMP 00001cec: JUMPDEST 00001ced: PUSH1 0x00 00001cef: PUSH2 0x1d17 00001cf2: PUSH32 0x0000000000000000000000002cfeaf282fe9ae050b210e7bda65d288c40c6104 00001d13: PUSH2 0x1a4d 00001d16: JUMP 00001d17: JUMPDEST 00001d18: SWAP1 00001d19: POP 00001d1a: PUSH2 0x1d4d 00001d1d: PUSH2 0x1d32 00001d20: PUSH2 0x1d27 00001d23: PUSH2 0x16b4 00001d26: JUMP 00001d27: JUMPDEST 00001d28: PUSH1 0x40 00001d2a: DUP6 00001d2b: ADD 00001d2c: MLOAD 00001d2d: SWAP1 00001d2e: PUSH2 0x30b7 00001d31: JUMP 00001d32: JUMPDEST 00001d33: PUSH1 0x20 00001d35: DUP5 00001d36: ADD 00001d37: MLOAD 00001d38: PUSH2 0x0dd7 00001d3b: SWAP1 00001d3c: PUSH2 0x1d46 00001d3f: SWAP1 00001d40: PUSH1 0x64 00001d42: PUSH2 0x30b7 00001d45: JUMP 00001d46: JUMPDEST 00001d47: DUP5 00001d48: SWAP1 00001d49: PUSH2 0x30b7 00001d4c: JUMP 00001d4d: JUMPDEST 00001d4e: SWAP3 00001d4f: POP 00001d50: POP 00001d51: JUMPDEST 00001d52: POP 00001d53: SWAP2 00001d54: SWAP1 00001d55: POP 00001d56: JUMP 00001d57: JUMPDEST 00001d58: PUSH1 0x0b 00001d5a: PUSH1 0x20 00001d5c: MSTORE 00001d5d: PUSH1 0x00 00001d5f: SWAP1 00001d60: DUP2 00001d61: MSTORE 00001d62: PUSH1 0x40 00001d64: SWAP1 00001d65: KECCAK256 00001d66: DUP1 00001d67: SLOAD 00001d68: PUSH1 0x01 00001d6a: DUP3 00001d6b: ADD 00001d6c: SLOAD 00001d6d: PUSH1 0x02 00001d6f: DUP4 00001d70: ADD 00001d71: SLOAD 00001d72: PUSH1 0x03 00001d74: SWAP1 00001d75: SWAP4 00001d76: ADD 00001d77: SLOAD 00001d78: SWAP2 00001d79: SWAP3 00001d7a: SWAP1 00001d7b: SWAP2 00001d7c: PUSH1 0x01 00001d7e: PUSH1 0x01 00001d80: PUSH1 0xa0 00001d82: SHL 00001d83: SUB 00001d84: AND 00001d85: DUP5 00001d86: JUMP 00001d87: JUMPDEST 00001d88: PUSH1 0x00 00001d8a: SLOAD 00001d8b: PUSH1 0x01 00001d8d: PUSH1 0x01 00001d8f: PUSH1 0xa0 00001d91: SHL 00001d92: SUB 00001d93: AND 00001d94: SWAP1 00001d95: JUMP 00001d96: JUMPDEST 00001d97: PUSH1 0x00 00001d99: DUP3 00001d9a: DUP2 00001d9b: MSTORE 00001d9c: PUSH1 0x01 00001d9e: PUSH1 0x20 00001da0: MSTORE 00001da1: PUSH1 0x40 00001da3: DUP2 00001da4: KECCAK256 00001da5: PUSH2 0x1dae 00001da8: SWAP1 00001da9: DUP4 00001daa: PUSH2 0x3622 00001dad: JUMP 00001dae: JUMPDEST 00001daf: SWAP4 00001db0: SWAP3 00001db1: POP 00001db2: POP 00001db3: POP 00001db4: JUMP 00001db5: JUMPDEST 00001db6: PUSH1 0x00 00001db8: DUP3 00001db9: DUP2 00001dba: MSTORE 00001dbb: PUSH1 0x01 00001dbd: PUSH1 0x20 00001dbf: MSTORE 00001dc0: PUSH1 0x40 00001dc2: DUP2 00001dc3: KECCAK256 00001dc4: PUSH2 0x1dae 00001dc7: SWAP1 00001dc8: DUP4 00001dc9: PUSH2 0x362e 00001dcc: JUMP 00001dcd: JUMPDEST 00001dce: PUSH1 0x00 00001dd0: DUP1 00001dd1: PUSH1 0x00 00001dd3: DUP1 00001dd4: PUSH2 0x1ddb 00001dd7: PUSH2 0x3d08 00001dda: JUMP 00001ddb: JUMPDEST 00001ddc: POP 00001ddd: POP 00001dde: POP 00001ddf: PUSH1 0x00 00001de1: SWAP3 00001de2: DUP4 00001de3: MSTORE 00001de4: POP 00001de5: POP 00001de6: PUSH1 0x0b 00001de8: PUSH1 0x20 00001dea: SWAP1 00001deb: DUP2 00001dec: MSTORE 00001ded: PUSH1 0x40 00001def: SWAP2 00001df0: DUP3 00001df1: SWAP1 00001df2: KECCAK256 00001df3: DUP3 00001df4: MLOAD 00001df5: PUSH1 0x80 00001df7: DUP2 00001df8: ADD 00001df9: DUP5 00001dfa: MSTORE 00001dfb: DUP2 00001dfc: SLOAD 00001dfd: DUP1 00001dfe: DUP3 00001dff: MSTORE 00001e00: PUSH1 0x01 00001e02: DUP4 00001e03: ADD 00001e04: SLOAD 00001e05: SWAP4 00001e06: DUP3 00001e07: ADD 00001e08: DUP5 00001e09: SWAP1 00001e0a: MSTORE 00001e0b: PUSH1 0x02 00001e0d: DUP4 00001e0e: ADD 00001e0f: SLOAD 00001e10: SWAP5 00001e11: DUP3 00001e12: ADD 00001e13: DUP6 00001e14: SWAP1 00001e15: MSTORE 00001e16: PUSH1 0x03 00001e18: SWAP1 00001e19: SWAP3 00001e1a: ADD 00001e1b: SLOAD 00001e1c: PUSH1 0x01 00001e1e: PUSH1 0x01 00001e20: PUSH1 0xa0 00001e22: SHL 00001e23: SUB 00001e24: AND 00001e25: PUSH1 0x60 00001e27: SWAP1 00001e28: SWAP2 00001e29: ADD 00001e2a: DUP2 00001e2b: SWAP1 00001e2c: MSTORE 00001e2d: SWAP1 00001e2e: SWAP4 00001e2f: SWAP2 00001e30: SWAP3 00001e31: SWAP1 00001e32: SWAP2 00001e33: JUMP 00001e34: JUMPDEST 00001e35: PUSH1 0x02 00001e37: DUP1 00001e38: SLOAD 00001e39: EQ 00001e3a: ISZERO 00001e3b: PUSH2 0x1e79 00001e3e: JUMPI 00001e3f: PUSH1 0x40 00001e41: DUP1 00001e42: MLOAD 00001e43: PUSH3 0x461bcd 00001e47: PUSH1 0xe5 00001e49: SHL 00001e4a: DUP2 00001e4b: MSTORE 00001e4c: PUSH1 0x20 00001e4e: PUSH1 0x04 00001e50: DUP3 00001e51: ADD 00001e52: MSTORE 00001e53: PUSH1 0x1f 00001e55: PUSH1 0x24 00001e57: DUP3 00001e58: ADD 00001e59: MSTORE 00001e5a: PUSH1 0x00 00001e5c: DUP1 00001e5d: MLOAD 00001e5e: PUSH1 0x20 00001e60: PUSH2 0x3df6 00001e63: DUP4 00001e64: CODECOPY 00001e65: DUP2 00001e66: MLOAD 00001e67: SWAP2 00001e68: MSTORE 00001e69: PUSH1 0x44 00001e6b: DUP3 00001e6c: ADD 00001e6d: MSTORE 00001e6e: SWAP1 00001e6f: MLOAD 00001e70: SWAP1 00001e71: DUP2 00001e72: SWAP1 00001e73: SUB 00001e74: PUSH1 0x64 00001e76: ADD 00001e77: SWAP1 00001e78: REVERT 00001e79: JUMPDEST 00001e7a: PUSH1 0x02 00001e7c: DUP1 00001e7d: SSTORE 00001e7e: PUSH1 0x03 00001e80: SLOAD 00001e81: PUSH1 0xff 00001e83: AND 00001e84: ISZERO 00001e85: PUSH2 0x1ec8 00001e88: JUMPI 00001e89: PUSH1 0x40 00001e8b: DUP1 00001e8c: MLOAD 00001e8d: PUSH3 0x461bcd 00001e91: PUSH1 0xe5 00001e93: SHL 00001e94: DUP2 00001e95: MSTORE 00001e96: PUSH1 0x20 00001e98: PUSH1 0x04 00001e9a: DUP3 00001e9b: ADD 00001e9c: MSTORE 00001e9d: PUSH1 0x10 00001e9f: PUSH1 0x24 00001ea1: DUP3 00001ea2: ADD 00001ea3: MSTORE 00001ea4: PUSH16 0x14185d5cd8589b194e881c185d5cd959 00001eb5: PUSH1 0x82 00001eb7: SHL 00001eb8: PUSH1 0x44 00001eba: DUP3 00001ebb: ADD 00001ebc: MSTORE 00001ebd: SWAP1 00001ebe: MLOAD 00001ebf: SWAP1 00001ec0: DUP2 00001ec1: SWAP1 00001ec2: SUB 00001ec3: PUSH1 0x64 00001ec5: ADD 00001ec6: SWAP1 00001ec7: REVERT 00001ec8: JUMPDEST 00001ec9: PUSH1 0x00 00001ecb: DUP3 00001ecc: DUP2 00001ecd: MSTORE 00001ece: PUSH1 0x0b 00001ed0: PUSH1 0x20 00001ed2: MSTORE 00001ed3: PUSH1 0x40 00001ed5: SWAP1 00001ed6: KECCAK256 00001ed7: DUP1 00001ed8: SLOAD 00001ed9: PUSH2 0x1f13 00001edc: JUMPI 00001edd: PUSH1 0x40 00001edf: MLOAD 00001ee0: PUSH3 0x461bcd 00001ee4: PUSH1 0xe5 00001ee6: SHL 00001ee7: DUP2 00001ee8: MSTORE 00001ee9: PUSH1 0x04 00001eeb: ADD 00001eec: DUP1 00001eed: DUP1 00001eee: PUSH1 0x20 00001ef0: ADD 00001ef1: DUP3 00001ef2: DUP2 00001ef3: SUB 00001ef4: DUP3 00001ef5: MSTORE 00001ef6: PUSH1 0x2e 00001ef8: DUP2 00001ef9: MSTORE 00001efa: PUSH1 0x20 00001efc: ADD 00001efd: DUP1 00001efe: PUSH2 0x438b 00001f01: PUSH1 0x2e 00001f03: SWAP2 00001f04: CODECOPY 00001f05: PUSH1 0x40 00001f07: ADD 00001f08: SWAP2 00001f09: POP 00001f0a: POP 00001f0b: PUSH1 0x40 00001f0d: MLOAD 00001f0e: DUP1 00001f0f: SWAP2 00001f10: SUB 00001f11: SWAP1 00001f12: REVERT 00001f13: JUMPDEST 00001f14: PUSH1 0x00 00001f16: PUSH2 0x1f22 00001f19: DUP3 00001f1a: PUSH1 0x00 00001f1c: ADD 00001f1d: SLOAD 00001f1e: PUSH2 0x1c7c 00001f21: JUMP 00001f22: JUMPDEST 00001f23: SWAP1 00001f24: POP 00001f25: PUSH1 0x06 00001f27: SLOAD 00001f28: DUP2 00001f29: LT 00001f2a: PUSH2 0x1f64 00001f2d: JUMPI 00001f2e: PUSH1 0x40 00001f30: MLOAD 00001f31: PUSH3 0x461bcd 00001f35: PUSH1 0xe5 00001f37: SHL 00001f38: DUP2 00001f39: MSTORE 00001f3a: PUSH1 0x04 00001f3c: ADD 00001f3d: DUP1 00001f3e: DUP1 00001f3f: PUSH1 0x20 00001f41: ADD 00001f42: DUP3 00001f43: DUP2 00001f44: SUB 00001f45: DUP3 00001f46: MSTORE 00001f47: PUSH1 0x35 00001f49: DUP2 00001f4a: MSTORE 00001f4b: PUSH1 0x20 00001f4d: ADD 00001f4e: DUP1 00001f4f: PUSH2 0x4305 00001f52: PUSH1 0x35 00001f54: SWAP2 00001f55: CODECOPY 00001f56: PUSH1 0x40 00001f58: ADD 00001f59: SWAP2 00001f5a: POP 00001f5b: POP 00001f5c: PUSH1 0x40 00001f5e: MLOAD 00001f5f: DUP1 00001f60: SWAP2 00001f61: SUB 00001f62: SWAP1 00001f63: REVERT 00001f64: JUMPDEST 00001f65: PUSH1 0x00 00001f67: PUSH2 0x1f73 00001f6a: DUP4 00001f6b: PUSH1 0x00 00001f6d: ADD 00001f6e: SLOAD 00001f6f: PUSH2 0x2ccb 00001f72: JUMP 00001f73: JUMPDEST 00001f74: SWAP1 00001f75: POP 00001f76: DUP1 00001f77: DUP5 00001f78: LT 00001f79: ISZERO 00001f7a: PUSH2 0x1fb4 00001f7d: JUMPI 00001f7e: PUSH1 0x40 00001f80: MLOAD 00001f81: PUSH3 0x461bcd 00001f85: PUSH1 0xe5 00001f87: SHL 00001f88: DUP2 00001f89: MSTORE 00001f8a: PUSH1 0x04 00001f8c: ADD 00001f8d: DUP1 00001f8e: DUP1 00001f8f: PUSH1 0x20 00001f91: ADD 00001f92: DUP3 00001f93: DUP2 00001f94: SUB 00001f95: DUP3 00001f96: MSTORE 00001f97: PUSH1 0x48 00001f99: DUP2 00001f9a: MSTORE 00001f9b: PUSH1 0x20 00001f9d: ADD 00001f9e: DUP1 00001f9f: PUSH2 0x3f79 00001fa2: PUSH1 0x48 00001fa4: SWAP2 00001fa5: CODECOPY 00001fa6: PUSH1 0x60 00001fa8: ADD 00001fa9: SWAP2 00001faa: POP 00001fab: POP 00001fac: PUSH1 0x40 00001fae: MLOAD 00001faf: DUP1 00001fb0: SWAP2 00001fb1: SUB 00001fb2: SWAP1 00001fb3: REVERT 00001fb4: JUMPDEST 00001fb5: PUSH1 0x00 00001fb7: PUSH2 0x1fbf 00001fba: DUP3 00001fbb: PUSH2 0x2fda 00001fbe: JUMP 00001fbf: JUMPDEST 00001fc0: SWAP1 00001fc1: POP 00001fc2: DUP1 00001fc3: CALLVALUE 00001fc4: LT 00001fc5: ISZERO 00001fc6: PUSH2 0x2000 00001fc9: JUMPI 00001fca: PUSH1 0x40 00001fcc: MLOAD 00001fcd: PUSH3 0x461bcd 00001fd1: PUSH1 0xe5 00001fd3: SHL 00001fd4: DUP2 00001fd5: MSTORE 00001fd6: PUSH1 0x04 00001fd8: ADD 00001fd9: DUP1 00001fda: DUP1 00001fdb: PUSH1 0x20 00001fdd: ADD 00001fde: DUP3 00001fdf: DUP2 00001fe0: SUB 00001fe1: DUP3 00001fe2: MSTORE 00001fe3: PUSH1 0x39 00001fe5: DUP2 00001fe6: MSTORE 00001fe7: PUSH1 0x20 00001fe9: ADD 00001fea: DUP1 00001feb: PUSH2 0x43e8 00001fee: PUSH1 0x39 00001ff0: SWAP2 00001ff1: CODECOPY 00001ff2: PUSH1 0x40 00001ff4: ADD 00001ff5: SWAP2 00001ff6: POP 00001ff7: POP 00001ff8: PUSH1 0x40 00001ffa: MLOAD 00001ffb: DUP1 00001ffc: SWAP2 00001ffd: SUB 00001ffe: SWAP1 00001fff: REVERT 00002000: JUMPDEST 00002001: PUSH1 0x00 00002003: PUSH2 0x200f 00002006: DUP6 00002007: PUSH1 0x00 00002009: ADD 0000200a: SLOAD 0000200b: PUSH2 0x0d54 0000200e: JUMP 0000200f: JUMPDEST 00002010: SWAP1 00002011: POP 00002012: PUSH2 0x201f 00002015: DUP6 00002016: PUSH1 0x00 00002018: ADD 00002019: SLOAD 0000201a: DUP5 0000201b: PUSH2 0x3308 0000201e: JUMP 0000201f: JUMPDEST 00002020: PUSH1 0x01 00002022: DUP6 00002023: ADD 00002024: SLOAD 00002025: PUSH2 0x202e 00002028: SWAP1 00002029: DUP3 0000202a: PUSH2 0x31bf 0000202d: JUMP 0000202e: JUMPDEST 0000202f: PUSH1 0x01 00002031: DUP7 00002032: ADD 00002033: SSTORE 00002034: PUSH32 0x0000000000000000000000005b577578565c2404bb84e734f583cf8523236ef1 00002055: PUSH1 0x01 00002057: PUSH1 0x01 00002059: PUSH1 0xa0 0000205b: SHL 0000205c: SUB 0000205d: AND 0000205e: ISZERO 0000205f: PUSH2 0x20f3 00002062: JUMPI 00002063: PUSH1 0x03 00002065: DUP6 00002066: ADD 00002067: SLOAD 00002068: PUSH1 0x40 0000206a: DUP1 0000206b: MLOAD 0000206c: PUSH4 0xf3fef3a3 00002071: PUSH1 0xe0 00002073: SHL 00002074: DUP2 00002075: MSTORE 00002076: PUSH1 0x01 00002078: PUSH1 0x01 0000207a: PUSH1 0xa0 0000207c: SHL 0000207d: SUB 0000207e: SWAP3 0000207f: DUP4 00002080: AND 00002081: PUSH1 0x04 00002083: DUP3 00002084: ADD 00002085: MSTORE 00002086: PUSH1 0x24 00002088: DUP2 00002089: ADD 0000208a: DUP7 0000208b: SWAP1 0000208c: MSTORE 0000208d: SWAP1 0000208e: MLOAD 0000208f: PUSH32 0x0000000000000000000000005b577578565c2404bb84e734f583cf8523236ef1 000020b0: SWAP1 000020b1: SWAP3 000020b2: AND 000020b3: SWAP2 000020b4: PUSH4 0xf3fef3a3 000020b9: SWAP2 000020ba: PUSH1 0x44 000020bc: DUP1 000020bd: DUP3 000020be: ADD 000020bf: SWAP3 000020c0: PUSH1 0x00 000020c2: SWAP3 000020c3: SWAP1 000020c4: SWAP2 000020c5: SWAP1 000020c6: DUP3 000020c7: SWAP1 000020c8: SUB 000020c9: ADD 000020ca: DUP2 000020cb: DUP4 000020cc: DUP8 000020cd: DUP1 000020ce: EXTCODESIZE 000020cf: ISZERO 000020d0: DUP1 000020d1: ISZERO 000020d2: PUSH2 0x20da 000020d5: JUMPI 000020d6: PUSH1 0x00 000020d8: DUP1 000020d9: REVERT 000020da: JUMPDEST 000020db: POP 000020dc: GAS 000020dd: CALL 000020de: ISZERO 000020df: DUP1 000020e0: ISZERO 000020e1: PUSH2 0x20ee 000020e4: JUMPI 000020e5: RETURNDATASIZE 000020e6: PUSH1 0x00 000020e8: DUP1 000020e9: RETURNDATACOPY 000020ea: RETURNDATASIZE 000020eb: PUSH1 0x00 000020ed: REVERT 000020ee: JUMPDEST 000020ef: POP 000020f0: POP 000020f1: POP 000020f2: POP 000020f3: JUMPDEST 000020f4: PUSH1 0x40 000020f6: DUP1 000020f7: MLOAD 000020f8: PUSH4 0xa9059cbb 000020fd: PUSH1 0xe0 000020ff: SHL 00002100: DUP2 00002101: MSTORE 00002102: CALLER 00002103: PUSH1 0x04 00002105: DUP3 00002106: ADD 00002107: MSTORE 00002108: PUSH1 0x24 0000210a: DUP2 0000210b: ADD 0000210c: DUP4 0000210d: SWAP1 0000210e: MSTORE 0000210f: SWAP1 00002110: MLOAD 00002111: PUSH1 0x01 00002113: PUSH1 0x01 00002115: PUSH1 0xa0 00002117: SHL 00002118: SUB 00002119: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000213a: AND 0000213b: SWAP2 0000213c: PUSH4 0xa9059cbb 00002141: SWAP2 00002142: PUSH1 0x44 00002144: DUP1 00002145: DUP4 00002146: ADD 00002147: SWAP3 00002148: PUSH1 0x20 0000214a: SWAP3 0000214b: SWAP2 0000214c: SWAP1 0000214d: DUP3 0000214e: SWAP1 0000214f: SUB 00002150: ADD 00002151: DUP2 00002152: PUSH1 0x00 00002154: DUP8 00002155: DUP1 00002156: EXTCODESIZE 00002157: ISZERO 00002158: DUP1 00002159: ISZERO 0000215a: PUSH2 0x2162 0000215d: JUMPI 0000215e: PUSH1 0x00 00002160: DUP1 00002161: REVERT 00002162: JUMPDEST 00002163: POP 00002164: GAS 00002165: CALL 00002166: ISZERO 00002167: DUP1 00002168: ISZERO 00002169: PUSH2 0x2176 0000216c: JUMPI 0000216d: RETURNDATASIZE 0000216e: PUSH1 0x00 00002170: DUP1 00002171: RETURNDATACOPY 00002172: RETURNDATASIZE 00002173: PUSH1 0x00 00002175: REVERT 00002176: JUMPDEST 00002177: POP 00002178: POP 00002179: POP 0000217a: POP 0000217b: PUSH1 0x40 0000217d: MLOAD 0000217e: RETURNDATASIZE 0000217f: PUSH1 0x20 00002181: DUP2 00002182: LT 00002183: ISZERO 00002184: PUSH2 0x218c 00002187: JUMPI 00002188: PUSH1 0x00 0000218a: DUP1 0000218b: REVERT 0000218c: JUMPDEST 0000218d: POP 0000218e: MLOAD 0000218f: PUSH2 0x21c9 00002192: JUMPI 00002193: PUSH1 0x40 00002195: MLOAD 00002196: PUSH3 0x461bcd 0000219a: PUSH1 0xe5 0000219c: SHL 0000219d: DUP2 0000219e: MSTORE 0000219f: PUSH1 0x04 000021a1: ADD 000021a2: DUP1 000021a3: DUP1 000021a4: PUSH1 0x20 000021a6: ADD 000021a7: DUP3 000021a8: DUP2 000021a9: SUB 000021aa: DUP3 000021ab: MSTORE 000021ac: PUSH1 0x3c 000021ae: DUP2 000021af: MSTORE 000021b0: PUSH1 0x20 000021b2: ADD 000021b3: DUP1 000021b4: PUSH2 0x3fc1 000021b7: PUSH1 0x3c 000021b9: SWAP2 000021ba: CODECOPY 000021bb: PUSH1 0x40 000021bd: ADD 000021be: SWAP2 000021bf: POP 000021c0: POP 000021c1: PUSH1 0x40 000021c3: MLOAD 000021c4: DUP1 000021c5: SWAP2 000021c6: SUB 000021c7: SWAP1 000021c8: REVERT 000021c9: JUMPDEST 000021ca: PUSH1 0x09 000021cc: SLOAD 000021cd: PUSH2 0x21df 000021d0: SWAP1 000021d1: PUSH1 0x01 000021d3: PUSH1 0x01 000021d5: PUSH1 0xa0 000021d7: SHL 000021d8: SUB 000021d9: AND 000021da: DUP4 000021db: PUSH2 0x33f8 000021de: JUMP 000021df: JUMPDEST 000021e0: PUSH2 0x21ed 000021e3: CALLER 000021e4: PUSH2 0x166c 000021e7: CALLVALUE 000021e8: DUP6 000021e9: PUSH2 0x31bf 000021ec: JUMP 000021ed: JUMPDEST 000021ee: DUP5 000021ef: SLOAD 000021f0: PUSH1 0x40 000021f2: DUP1 000021f3: MLOAD 000021f4: DUP6 000021f5: DUP2 000021f6: MSTORE 000021f7: PUSH1 0x20 000021f9: DUP2 000021fa: ADD 000021fb: DUP5 000021fc: SWAP1 000021fd: MSTORE 000021fe: DUP2 000021ff: MLOAD 00002200: CALLER 00002201: SWAP4 00002202: SWAP3 00002203: PUSH32 0xba5789da846390370bbfbf693007be2c95d0cfac69a8d175805f742dc7938321 00002224: SWAP3 00002225: DUP3 00002226: SWAP1 00002227: SUB 00002228: ADD 00002229: SWAP1 0000222a: LOG3 0000222b: POP 0000222c: POP 0000222d: PUSH1 0x01 0000222f: PUSH1 0x02 00002231: SSTORE 00002232: POP 00002233: POP 00002234: POP 00002235: POP 00002236: POP 00002237: JUMP 00002238: JUMPDEST 00002239: PUSH32 0x0000000000000000000000002cfeaf282fe9ae050b210e7bda65d288c40c6104 0000225a: DUP2 0000225b: JUMP 0000225c: JUMPDEST 0000225d: PUSH1 0x02 0000225f: DUP1 00002260: SLOAD 00002261: EQ 00002262: ISZERO 00002263: PUSH2 0x22a1 00002266: JUMPI 00002267: PUSH1 0x40 00002269: DUP1 0000226a: MLOAD 0000226b: PUSH3 0x461bcd 0000226f: PUSH1 0xe5 00002271: SHL 00002272: DUP2 00002273: MSTORE 00002274: PUSH1 0x20 00002276: PUSH1 0x04 00002278: DUP3 00002279: ADD 0000227a: MSTORE 0000227b: PUSH1 0x1f 0000227d: PUSH1 0x24 0000227f: DUP3 00002280: ADD 00002281: MSTORE 00002282: PUSH1 0x00 00002284: DUP1 00002285: MLOAD 00002286: PUSH1 0x20 00002288: PUSH2 0x3df6 0000228b: DUP4 0000228c: CODECOPY 0000228d: DUP2 0000228e: MLOAD 0000228f: SWAP2 00002290: MSTORE 00002291: PUSH1 0x44 00002293: DUP3 00002294: ADD 00002295: MSTORE 00002296: SWAP1 00002297: MLOAD 00002298: SWAP1 00002299: DUP2 0000229a: SWAP1 0000229b: SUB 0000229c: PUSH1 0x64 0000229e: ADD 0000229f: SWAP1 000022a0: REVERT 000022a1: JUMPDEST 000022a2: PUSH1 0x02 000022a4: DUP1 000022a5: SSTORE 000022a6: CALLER 000022a7: PUSH1 0x00 000022a9: SWAP1 000022aa: DUP2 000022ab: MSTORE 000022ac: PUSH1 0x0a 000022ae: PUSH1 0x20 000022b0: MSTORE 000022b1: PUSH1 0x40 000022b3: SWAP1 000022b4: KECCAK256 000022b5: SLOAD 000022b6: PUSH2 0x22f0 000022b9: JUMPI 000022ba: PUSH1 0x40 000022bc: MLOAD 000022bd: PUSH3 0x461bcd 000022c1: PUSH1 0xe5 000022c3: SHL 000022c4: DUP2 000022c5: MSTORE 000022c6: PUSH1 0x04 000022c8: ADD 000022c9: DUP1 000022ca: DUP1 000022cb: PUSH1 0x20 000022cd: ADD 000022ce: DUP3 000022cf: DUP2 000022d0: SUB 000022d1: DUP3 000022d2: MSTORE 000022d3: PUSH1 0x2b 000022d5: DUP2 000022d6: MSTORE 000022d7: PUSH1 0x20 000022d9: ADD 000022da: DUP1 000022db: PUSH2 0x3e3b 000022de: PUSH1 0x2b 000022e0: SWAP2 000022e1: CODECOPY 000022e2: PUSH1 0x40 000022e4: ADD 000022e5: SWAP2 000022e6: POP 000022e7: POP 000022e8: PUSH1 0x40 000022ea: MLOAD 000022eb: DUP1 000022ec: SWAP2 000022ed: SUB 000022ee: SWAP1 000022ef: REVERT 000022f0: JUMPDEST 000022f1: PUSH1 0x03 000022f3: SLOAD 000022f4: PUSH1 0xff 000022f6: AND 000022f7: ISZERO 000022f8: PUSH2 0x233b 000022fb: JUMPI 000022fc: PUSH1 0x40 000022fe: DUP1 000022ff: MLOAD 00002300: PUSH3 0x461bcd 00002304: PUSH1 0xe5 00002306: SHL 00002307: DUP2 00002308: MSTORE 00002309: PUSH1 0x20 0000230b: PUSH1 0x04 0000230d: DUP3 0000230e: ADD 0000230f: MSTORE 00002310: PUSH1 0x10 00002312: PUSH1 0x24 00002314: DUP3 00002315: ADD 00002316: MSTORE 00002317: PUSH16 0x14185d5cd8589b194e881c185d5cd959 00002328: PUSH1 0x82 0000232a: SHL 0000232b: PUSH1 0x44 0000232d: DUP3 0000232e: ADD 0000232f: MSTORE 00002330: SWAP1 00002331: MLOAD 00002332: SWAP1 00002333: DUP2 00002334: SWAP1 00002335: SUB 00002336: PUSH1 0x64 00002338: ADD 00002339: SWAP1 0000233a: REVERT 0000233b: JUMPDEST 0000233c: DUP1 0000233d: DUP1 0000233e: PUSH2 0x2378 00002341: JUMPI 00002342: PUSH1 0x40 00002344: MLOAD 00002345: PUSH3 0x461bcd 00002349: PUSH1 0xe5 0000234b: SHL 0000234c: DUP2 0000234d: MSTORE 0000234e: PUSH1 0x04 00002350: ADD 00002351: DUP1 00002352: DUP1 00002353: PUSH1 0x20 00002355: ADD 00002356: DUP3 00002357: DUP2 00002358: SUB 00002359: DUP3 0000235a: MSTORE 0000235b: PUSH1 0x27 0000235d: DUP2 0000235e: MSTORE 0000235f: PUSH1 0x20 00002361: ADD 00002362: DUP1 00002363: PUSH2 0x433a 00002366: PUSH1 0x27 00002368: SWAP2 00002369: CODECOPY 0000236a: PUSH1 0x40 0000236c: ADD 0000236d: SWAP2 0000236e: POP 0000236f: POP 00002370: PUSH1 0x40 00002372: MLOAD 00002373: DUP1 00002374: SWAP2 00002375: SUB 00002376: SWAP1 00002377: REVERT 00002378: JUMPDEST 00002379: CALLER 0000237a: PUSH1 0x00 0000237c: SWAP1 0000237d: DUP2 0000237e: MSTORE 0000237f: PUSH1 0x0a 00002381: PUSH1 0x20 00002383: SWAP1 00002384: DUP2 00002385: MSTORE 00002386: PUSH1 0x40 00002388: DUP1 00002389: DUP4 0000238a: KECCAK256 0000238b: SLOAD 0000238c: DUP4 0000238d: MSTORE 0000238e: PUSH1 0x0b 00002390: SWAP1 00002391: SWAP2 00002392: MSTORE 00002393: DUP2 00002394: KECCAK256 00002395: SWAP1 00002396: PUSH2 0x239e 00002399: DUP5 0000239a: PUSH2 0x25c8 0000239d: JUMP 0000239e: JUMPDEST 0000239f: SWAP1 000023a0: POP 000023a1: DUP1 000023a2: DUP3 000023a3: PUSH1 0x01 000023a5: ADD 000023a6: SLOAD 000023a7: LT 000023a8: ISZERO 000023a9: PUSH2 0x23e3 000023ac: JUMPI 000023ad: PUSH1 0x40 000023af: MLOAD 000023b0: PUSH3 0x461bcd 000023b4: PUSH1 0xe5 000023b6: SHL 000023b7: DUP2 000023b8: MSTORE 000023b9: PUSH1 0x04 000023bb: ADD 000023bc: DUP1 000023bd: DUP1 000023be: PUSH1 0x20 000023c0: ADD 000023c1: DUP3 000023c2: DUP2 000023c3: SUB 000023c4: DUP3 000023c5: MSTORE 000023c6: PUSH1 0x29 000023c8: DUP2 000023c9: MSTORE 000023ca: PUSH1 0x20 000023cc: ADD 000023cd: DUP1 000023ce: PUSH2 0x3ebb 000023d1: PUSH1 0x29 000023d3: SWAP2 000023d4: CODECOPY 000023d5: PUSH1 0x40 000023d7: ADD 000023d8: SWAP2 000023d9: POP 000023da: POP 000023db: PUSH1 0x40 000023dd: MLOAD 000023de: DUP1 000023df: SWAP2 000023e0: SUB 000023e1: SWAP1 000023e2: REVERT 000023e3: JUMPDEST 000023e4: PUSH1 0x02 000023e6: DUP3 000023e7: ADD 000023e8: SLOAD 000023e9: PUSH2 0x23f2 000023ec: SWAP1 000023ed: DUP6 000023ee: PUSH2 0x3023 000023f1: JUMP 000023f2: JUMPDEST 000023f3: PUSH1 0x02 000023f5: DUP4 000023f6: ADD 000023f7: SSTORE 000023f8: PUSH1 0x06 000023fa: SLOAD 000023fb: DUP3 000023fc: SLOAD 000023fd: PUSH2 0x2405 00002400: SWAP1 00002401: PUSH2 0x1c7c 00002404: JUMP 00002405: JUMPDEST 00002406: LT 00002407: ISZERO 00002408: PUSH2 0x2442 0000240b: JUMPI 0000240c: PUSH1 0x40 0000240e: MLOAD 0000240f: PUSH3 0x461bcd 00002413: PUSH1 0xe5 00002415: SHL 00002416: DUP2 00002417: MSTORE 00002418: PUSH1 0x04 0000241a: ADD 0000241b: DUP1 0000241c: DUP1 0000241d: PUSH1 0x20 0000241f: ADD 00002420: DUP3 00002421: DUP2 00002422: SUB 00002423: DUP3 00002424: MSTORE 00002425: PUSH1 0x37 00002427: DUP2 00002428: MSTORE 00002429: PUSH1 0x20 0000242b: ADD 0000242c: DUP1 0000242d: PUSH2 0x4290 00002430: PUSH1 0x37 00002432: SWAP2 00002433: CODECOPY 00002434: PUSH1 0x40 00002436: ADD 00002437: SWAP2 00002438: POP 00002439: POP 0000243a: PUSH1 0x40 0000243c: MLOAD 0000243d: DUP1 0000243e: SWAP2 0000243f: SUB 00002440: SWAP1 00002441: REVERT 00002442: JUMPDEST 00002443: PUSH32 0x0000000000000000000000005b577578565c2404bb84e734f583cf8523236ef1 00002464: PUSH1 0x01 00002466: PUSH1 0x01 00002468: PUSH1 0xa0 0000246a: SHL 0000246b: SUB 0000246c: AND 0000246d: ISZERO 0000246e: PUSH2 0x24f8 00002471: JUMPI 00002472: PUSH1 0x40 00002474: DUP1 00002475: MLOAD 00002476: PUSH4 0x56e4bb97 0000247b: PUSH1 0xe1 0000247d: SHL 0000247e: DUP2 0000247f: MSTORE 00002480: CALLER 00002481: PUSH1 0x04 00002483: DUP3 00002484: ADD 00002485: MSTORE 00002486: PUSH1 0x24 00002488: DUP2 00002489: ADD 0000248a: DUP7 0000248b: SWAP1 0000248c: MSTORE 0000248d: SWAP1 0000248e: MLOAD 0000248f: PUSH1 0x01 00002491: PUSH1 0x01 00002493: PUSH1 0xa0 00002495: SHL 00002496: SUB 00002497: PUSH32 0x0000000000000000000000005b577578565c2404bb84e734f583cf8523236ef1 000024b8: AND 000024b9: SWAP2 000024ba: PUSH4 0xadc9772e 000024bf: SWAP2 000024c0: PUSH1 0x44 000024c2: DUP1 000024c3: DUP4 000024c4: ADD 000024c5: SWAP3 000024c6: PUSH1 0x00 000024c8: SWAP3 000024c9: SWAP2 000024ca: SWAP1 000024cb: DUP3 000024cc: SWAP1 000024cd: SUB 000024ce: ADD 000024cf: DUP2 000024d0: DUP4 000024d1: DUP8 000024d2: DUP1 000024d3: EXTCODESIZE 000024d4: ISZERO 000024d5: DUP1 000024d6: ISZERO 000024d7: PUSH2 0x24df 000024da: JUMPI 000024db: PUSH1 0x00 000024dd: DUP1 000024de: REVERT 000024df: JUMPDEST 000024e0: POP 000024e1: GAS 000024e2: CALL 000024e3: ISZERO 000024e4: DUP1 000024e5: ISZERO 000024e6: PUSH2 0x24f3 000024e9: JUMPI 000024ea: RETURNDATASIZE 000024eb: PUSH1 0x00 000024ed: DUP1 000024ee: RETURNDATACOPY 000024ef: RETURNDATASIZE 000024f0: PUSH1 0x00 000024f2: REVERT 000024f3: JUMPDEST 000024f4: POP 000024f5: POP 000024f6: POP 000024f7: POP 000024f8: JUMPDEST 000024f9: PUSH1 0x40 000024fb: DUP1 000024fc: MLOAD 000024fd: PUSH4 0x40c10f19 00002502: PUSH1 0xe0 00002504: SHL 00002505: DUP2 00002506: MSTORE 00002507: CALLER 00002508: PUSH1 0x04 0000250a: DUP3 0000250b: ADD 0000250c: MSTORE 0000250d: PUSH1 0x24 0000250f: DUP2 00002510: ADD 00002511: DUP7 00002512: SWAP1 00002513: MSTORE 00002514: SWAP1 00002515: MLOAD 00002516: PUSH1 0x01 00002518: PUSH1 0x01 0000251a: PUSH1 0xa0 0000251c: SHL 0000251d: SUB 0000251e: PUSH32 0x00000000000000000000000016c52ceece2ed57dad87319d91b5e3637d50afa4 0000253f: AND 00002540: SWAP2 00002541: PUSH4 0x40c10f19 00002546: SWAP2 00002547: PUSH1 0x44 00002549: DUP1 0000254a: DUP4 0000254b: ADD 0000254c: SWAP3 0000254d: PUSH1 0x00 0000254f: SWAP3 00002550: SWAP2 00002551: SWAP1 00002552: DUP3 00002553: SWAP1 00002554: SUB 00002555: ADD 00002556: DUP2 00002557: DUP4 00002558: DUP8 00002559: DUP1 0000255a: EXTCODESIZE 0000255b: ISZERO 0000255c: DUP1 0000255d: ISZERO 0000255e: PUSH2 0x2566 00002561: JUMPI 00002562: PUSH1 0x00 00002564: DUP1 00002565: REVERT 00002566: JUMPDEST 00002567: POP 00002568: GAS 00002569: CALL 0000256a: ISZERO 0000256b: DUP1 0000256c: ISZERO 0000256d: PUSH2 0x257a 00002570: JUMPI 00002571: RETURNDATASIZE 00002572: PUSH1 0x00 00002574: DUP1 00002575: RETURNDATACOPY 00002576: RETURNDATASIZE 00002577: PUSH1 0x00 00002579: REVERT 0000257a: JUMPDEST 0000257b: POP 0000257c: POP 0000257d: DUP4 0000257e: SLOAD 0000257f: PUSH1 0x40 00002581: DUP1 00002582: MLOAD 00002583: DUP9 00002584: DUP2 00002585: MSTORE 00002586: SWAP1 00002587: MLOAD 00002588: SWAP2 00002589: SWAP4 0000258a: POP 0000258b: CALLER 0000258c: SWAP3 0000258d: POP 0000258e: PUSH32 0x2e8ac5177a616f2aec08c3048f5021e4e9743ece034e8d83ba5caf76688bb475 000025af: SWAP2 000025b0: SWAP1 000025b1: DUP2 000025b2: SWAP1 000025b3: SUB 000025b4: PUSH1 0x20 000025b6: ADD 000025b7: SWAP1 000025b8: LOG3 000025b9: POP 000025ba: POP 000025bb: PUSH1 0x01 000025bd: PUSH1 0x02 000025bf: SSTORE 000025c0: POP 000025c1: POP 000025c2: JUMP 000025c3: JUMPDEST 000025c4: PUSH1 0x00 000025c6: DUP2 000025c7: JUMP 000025c8: JUMPDEST 000025c9: PUSH1 0x00 000025cb: DUP1 000025cc: PUSH2 0x25d3 000025cf: PUSH2 0x16b4 000025d2: JUMP 000025d3: JUMPDEST 000025d4: SWAP1 000025d5: POP 000025d6: PUSH1 0x00 000025d8: PUSH2 0x2600 000025db: PUSH32 0x0000000000000000000000002cfeaf282fe9ae050b210e7bda65d288c40c6104 000025fc: PUSH2 0x1a4d 000025ff: JUMP 00002600: JUMPDEST 00002601: SWAP1 00002602: POP 00002603: PUSH2 0x1d4d 00002606: DUP2 00002607: PUSH2 0x0dd7 0000260a: PUSH1 0x64 0000260c: PUSH2 0x0dd7 0000260f: PUSH1 0x06 00002611: SLOAD 00002612: PUSH2 0x1ac5 00002615: DUP11 00002616: DUP10 00002617: PUSH2 0x30b7 0000261a: SWAP1 0000261b: SWAP2 0000261c: SWAP1 0000261d: PUSH4 0xffffffff 00002622: AND 00002623: JUMP 00002624: JUMPDEST 00002625: PUSH2 0x262c 00002628: PUSH2 0x3152 0000262b: JUMP 0000262c: JUMPDEST 0000262d: PUSH1 0x00 0000262f: SLOAD 00002630: PUSH1 0x01 00002632: PUSH1 0x01 00002634: PUSH1 0xa0 00002636: SHL 00002637: SUB 00002638: SWAP1 00002639: DUP2 0000263a: AND 0000263b: SWAP2 0000263c: AND 0000263d: EQ 0000263e: PUSH2 0x267c 00002641: JUMPI 00002642: PUSH1 0x40 00002644: DUP1 00002645: MLOAD 00002646: PUSH3 0x461bcd 0000264a: PUSH1 0xe5 0000264c: SHL 0000264d: DUP2 0000264e: MSTORE 0000264f: PUSH1 0x20 00002651: PUSH1 0x04 00002653: DUP3 00002654: ADD 00002655: DUP2 00002656: SWAP1 00002657: MSTORE 00002658: PUSH1 0x24 0000265a: DUP3 0000265b: ADD 0000265c: MSTORE 0000265d: PUSH1 0x00 0000265f: DUP1 00002660: MLOAD 00002661: PUSH1 0x20 00002663: PUSH2 0x4270 00002666: DUP4 00002667: CODECOPY 00002668: DUP2 00002669: MLOAD 0000266a: SWAP2 0000266b: MSTORE 0000266c: PUSH1 0x44 0000266e: DUP3 0000266f: ADD 00002670: MSTORE 00002671: SWAP1 00002672: MLOAD 00002673: SWAP1 00002674: DUP2 00002675: SWAP1 00002676: SUB 00002677: PUSH1 0x64 00002679: ADD 0000267a: SWAP1 0000267b: REVERT 0000267c: JUMPDEST 0000267d: PUSH1 0x96 0000267f: DUP2 00002680: LT 00002681: ISZERO 00002682: PUSH2 0x26bc 00002685: JUMPI 00002686: PUSH1 0x40 00002688: MLOAD 00002689: PUSH3 0x461bcd 0000268d: PUSH1 0xe5 0000268f: SHL 00002690: DUP2 00002691: MSTORE 00002692: PUSH1 0x04 00002694: ADD 00002695: DUP1 00002696: DUP1 00002697: PUSH1 0x20 00002699: ADD 0000269a: DUP3 0000269b: DUP2 0000269c: SUB 0000269d: DUP3 0000269e: MSTORE 0000269f: PUSH1 0x32 000026a1: DUP2 000026a2: MSTORE 000026a3: PUSH1 0x20 000026a5: ADD 000026a6: DUP1 000026a7: PUSH2 0x407f 000026aa: PUSH1 0x32 000026ac: SWAP2 000026ad: CODECOPY 000026ae: PUSH1 0x40 000026b0: ADD 000026b1: SWAP2 000026b2: POP 000026b3: POP 000026b4: PUSH1 0x40 000026b6: MLOAD 000026b7: DUP1 000026b8: SWAP2 000026b9: SUB 000026ba: SWAP1 000026bb: REVERT 000026bc: JUMPDEST 000026bd: PUSH1 0x06 000026bf: DUP2 000026c0: SWAP1 000026c1: SSTORE 000026c2: PUSH1 0x40 000026c4: DUP1 000026c5: MLOAD 000026c6: DUP3 000026c7: DUP2 000026c8: MSTORE 000026c9: SWAP1 000026ca: MLOAD 000026cb: CALLER 000026cc: SWAP2 000026cd: PUSH32 0x6126d9241e4aeb647b01ddffba35de720a5b4ad692f117a43b5b281e49126fc4 000026ee: SWAP2 000026ef: SWAP1 000026f0: DUP2 000026f1: SWAP1 000026f2: SUB 000026f3: PUSH1 0x20 000026f5: ADD 000026f6: SWAP1 000026f7: LOG2 000026f8: POP 000026f9: JUMP 000026fa: JUMPDEST 000026fb: PUSH1 0x0a 000026fd: DUP2 000026fe: JUMP 000026ff: JUMPDEST 00002700: PUSH1 0x0a 00002702: PUSH1 0x20 00002704: MSTORE 00002705: PUSH1 0x00 00002707: SWAP1 00002708: DUP2 00002709: MSTORE 0000270a: PUSH1 0x40 0000270c: SWAP1 0000270d: KECCAK256 0000270e: SLOAD 0000270f: DUP2 00002710: JUMP 00002711: JUMPDEST 00002712: PUSH1 0x02 00002714: DUP1 00002715: SLOAD 00002716: EQ 00002717: ISZERO 00002718: PUSH2 0x2756 0000271b: JUMPI 0000271c: PUSH1 0x40 0000271e: DUP1 0000271f: MLOAD 00002720: PUSH3 0x461bcd 00002724: PUSH1 0xe5 00002726: SHL 00002727: DUP2 00002728: MSTORE 00002729: PUSH1 0x20 0000272b: PUSH1 0x04 0000272d: DUP3 0000272e: ADD 0000272f: MSTORE 00002730: PUSH1 0x1f 00002732: PUSH1 0x24 00002734: DUP3 00002735: ADD 00002736: MSTORE 00002737: PUSH1 0x00 00002739: DUP1 0000273a: MLOAD 0000273b: PUSH1 0x20 0000273d: PUSH2 0x3df6 00002740: DUP4 00002741: CODECOPY 00002742: DUP2 00002743: MLOAD 00002744: SWAP2 00002745: MSTORE 00002746: PUSH1 0x44 00002748: DUP3 00002749: ADD 0000274a: MSTORE 0000274b: SWAP1 0000274c: MLOAD 0000274d: SWAP1 0000274e: DUP2 0000274f: SWAP1 00002750: SUB 00002751: PUSH1 0x64 00002753: ADD 00002754: SWAP1 00002755: REVERT 00002756: JUMPDEST 00002757: PUSH1 0x02 00002759: DUP1 0000275a: SSTORE 0000275b: CALLER 0000275c: PUSH1 0x00 0000275e: SWAP1 0000275f: DUP2 00002760: MSTORE 00002761: PUSH1 0x0a 00002763: PUSH1 0x20 00002765: MSTORE 00002766: PUSH1 0x40 00002768: SWAP1 00002769: KECCAK256 0000276a: SLOAD 0000276b: PUSH2 0x27a5 0000276e: JUMPI 0000276f: PUSH1 0x40 00002771: MLOAD 00002772: PUSH3 0x461bcd 00002776: PUSH1 0xe5 00002778: SHL 00002779: DUP2 0000277a: MSTORE 0000277b: PUSH1 0x04 0000277d: ADD 0000277e: DUP1 0000277f: DUP1 00002780: PUSH1 0x20 00002782: ADD 00002783: DUP3 00002784: DUP2 00002785: SUB 00002786: DUP3 00002787: MSTORE 00002788: PUSH1 0x2b 0000278a: DUP2 0000278b: MSTORE 0000278c: PUSH1 0x20 0000278e: ADD 0000278f: DUP1 00002790: PUSH2 0x3e3b 00002793: PUSH1 0x2b 00002795: SWAP2 00002796: CODECOPY 00002797: PUSH1 0x40 00002799: ADD 0000279a: SWAP2 0000279b: POP 0000279c: POP 0000279d: PUSH1 0x40 0000279f: MLOAD 000027a0: DUP1 000027a1: SWAP2 000027a2: SUB 000027a3: SWAP1 000027a4: REVERT 000027a5: JUMPDEST 000027a6: PUSH1 0x03 000027a8: SLOAD 000027a9: PUSH1 0xff 000027ab: AND 000027ac: ISZERO 000027ad: PUSH2 0x27f0 000027b0: JUMPI 000027b1: PUSH1 0x40 000027b3: DUP1 000027b4: MLOAD 000027b5: PUSH3 0x461bcd 000027b9: PUSH1 0xe5 000027bb: SHL 000027bc: DUP2 000027bd: MSTORE 000027be: PUSH1 0x20 000027c0: PUSH1 0x04 000027c2: DUP3 000027c3: ADD 000027c4: MSTORE 000027c5: PUSH1 0x10 000027c7: PUSH1 0x24 000027c9: DUP3 000027ca: ADD 000027cb: MSTORE 000027cc: PUSH16 0x14185d5cd8589b194e881c185d5cd959 000027dd: PUSH1 0x82 000027df: SHL 000027e0: PUSH1 0x44 000027e2: DUP3 000027e3: ADD 000027e4: MSTORE 000027e5: SWAP1 000027e6: MLOAD 000027e7: SWAP1 000027e8: DUP2 000027e9: SWAP1 000027ea: SUB 000027eb: PUSH1 0x64 000027ed: ADD 000027ee: SWAP1 000027ef: REVERT 000027f0: JUMPDEST 000027f1: DUP1 000027f2: DUP1 000027f3: PUSH2 0x282d 000027f6: JUMPI 000027f7: PUSH1 0x40 000027f9: MLOAD 000027fa: PUSH3 0x461bcd 000027fe: PUSH1 0xe5 00002800: SHL 00002801: DUP2 00002802: MSTORE 00002803: PUSH1 0x04 00002805: ADD 00002806: DUP1 00002807: DUP1 00002808: PUSH1 0x20 0000280a: ADD 0000280b: DUP3 0000280c: DUP2 0000280d: SUB 0000280e: DUP3 0000280f: MSTORE 00002810: PUSH1 0x27 00002812: DUP2 00002813: MSTORE 00002814: PUSH1 0x20 00002816: ADD 00002817: DUP1 00002818: PUSH2 0x433a 0000281b: PUSH1 0x27 0000281d: SWAP2 0000281e: CODECOPY 0000281f: PUSH1 0x40 00002821: ADD 00002822: SWAP2 00002823: POP 00002824: POP 00002825: PUSH1 0x40 00002827: MLOAD 00002828: DUP1 00002829: SWAP2 0000282a: SUB 0000282b: SWAP1 0000282c: REVERT 0000282d: JUMPDEST 0000282e: PUSH1 0x40 00002830: DUP1 00002831: MLOAD 00002832: PUSH4 0x23b872dd 00002837: PUSH1 0xe0 00002839: SHL 0000283a: DUP2 0000283b: MSTORE 0000283c: CALLER 0000283d: PUSH1 0x04 0000283f: DUP3 00002840: ADD 00002841: MSTORE 00002842: ADDRESS 00002843: PUSH1 0x24 00002845: DUP3 00002846: ADD 00002847: MSTORE 00002848: PUSH1 0x44 0000284a: DUP2 0000284b: ADD 0000284c: DUP5 0000284d: SWAP1 0000284e: MSTORE 0000284f: SWAP1 00002850: MLOAD 00002851: PUSH1 0x01 00002853: PUSH1 0x01 00002855: PUSH1 0xa0 00002857: SHL 00002858: SUB 00002859: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000287a: AND 0000287b: SWAP2 0000287c: PUSH4 0x23b872dd 00002881: SWAP2 00002882: PUSH1 0x64 00002884: DUP1 00002885: DUP4 00002886: ADD 00002887: SWAP3 00002888: PUSH1 0x20 0000288a: SWAP3 0000288b: SWAP2 0000288c: SWAP1 0000288d: DUP3 0000288e: SWAP1 0000288f: SUB 00002890: ADD 00002891: DUP2 00002892: PUSH1 0x00 00002894: DUP8 00002895: DUP1 00002896: EXTCODESIZE 00002897: ISZERO 00002898: DUP1 00002899: ISZERO 0000289a: PUSH2 0x28a2 0000289d: JUMPI 0000289e: PUSH1 0x00 000028a0: DUP1 000028a1: REVERT 000028a2: JUMPDEST 000028a3: POP 000028a4: GAS 000028a5: CALL 000028a6: ISZERO 000028a7: DUP1 000028a8: ISZERO 000028a9: PUSH2 0x28b6 000028ac: JUMPI 000028ad: RETURNDATASIZE 000028ae: PUSH1 0x00 000028b0: DUP1 000028b1: RETURNDATACOPY 000028b2: RETURNDATASIZE 000028b3: PUSH1 0x00 000028b5: REVERT 000028b6: JUMPDEST 000028b7: POP 000028b8: POP 000028b9: POP 000028ba: POP 000028bb: PUSH1 0x40 000028bd: MLOAD 000028be: RETURNDATASIZE 000028bf: PUSH1 0x20 000028c1: DUP2 000028c2: LT 000028c3: ISZERO 000028c4: PUSH2 0x28cc 000028c7: JUMPI 000028c8: PUSH1 0x00 000028ca: DUP1 000028cb: REVERT 000028cc: JUMPDEST 000028cd: POP 000028ce: MLOAD 000028cf: PUSH2 0x2909 000028d2: JUMPI 000028d3: PUSH1 0x40 000028d5: MLOAD 000028d6: PUSH3 0x461bcd 000028da: PUSH1 0xe5 000028dc: SHL 000028dd: DUP2 000028de: MSTORE 000028df: PUSH1 0x04 000028e1: ADD 000028e2: DUP1 000028e3: DUP1 000028e4: PUSH1 0x20 000028e6: ADD 000028e7: DUP3 000028e8: DUP2 000028e9: SUB 000028ea: DUP3 000028eb: MSTORE 000028ec: PUSH1 0x3b 000028ee: DUP2 000028ef: MSTORE 000028f0: PUSH1 0x20 000028f2: ADD 000028f3: DUP1 000028f4: PUSH2 0x3d8c 000028f7: PUSH1 0x3b 000028f9: SWAP2 000028fa: CODECOPY 000028fb: PUSH1 0x40 000028fd: ADD 000028fe: SWAP2 000028ff: POP 00002900: POP 00002901: PUSH1 0x40 00002903: MLOAD 00002904: DUP1 00002905: SWAP2 00002906: SUB 00002907: SWAP1 00002908: REVERT 00002909: JUMPDEST 0000290a: CALLER 0000290b: PUSH1 0x00 0000290d: SWAP1 0000290e: DUP2 0000290f: MSTORE 00002910: PUSH1 0x0a 00002912: PUSH1 0x20 00002914: SWAP1 00002915: DUP2 00002916: MSTORE 00002917: PUSH1 0x40 00002919: DUP1 0000291a: DUP4 0000291b: KECCAK256 0000291c: SLOAD 0000291d: DUP4 0000291e: MSTORE 0000291f: PUSH1 0x0b 00002921: SWAP1 00002922: SWAP2 00002923: MSTORE 00002924: SWAP1 00002925: KECCAK256 00002926: PUSH1 0x01 00002928: DUP2 00002929: ADD 0000292a: SLOAD 0000292b: PUSH2 0x2934 0000292e: SWAP1 0000292f: DUP5 00002930: PUSH2 0x3023 00002933: JUMP 00002934: JUMPDEST 00002935: PUSH1 0x01 00002937: DUP3 00002938: ADD 00002939: SSTORE 0000293a: DUP1 0000293b: SLOAD 0000293c: PUSH1 0x40 0000293e: DUP1 0000293f: MLOAD 00002940: DUP6 00002941: DUP2 00002942: MSTORE 00002943: SWAP1 00002944: MLOAD 00002945: CALLER 00002946: SWAP2 00002947: PUSH32 0x11f8990ac38271f23dea447d5728e9914fca7cea2edda43af6c43c415f8bc30b 00002968: SWAP2 00002969: SWAP1 0000296a: DUP2 0000296b: SWAP1 0000296c: SUB 0000296d: PUSH1 0x20 0000296f: ADD 00002970: SWAP1 00002971: LOG3 00002972: POP 00002973: POP 00002974: PUSH1 0x01 00002976: PUSH1 0x02 00002978: SSTORE 00002979: POP 0000297a: JUMP 0000297b: JUMPDEST 0000297c: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000299d: DUP2 0000299e: JUMP 0000299f: JUMPDEST 000029a0: PUSH1 0x00 000029a2: DUP2 000029a3: DUP2 000029a4: MSTORE 000029a5: PUSH1 0x01 000029a7: PUSH1 0x20 000029a9: MSTORE 000029aa: PUSH1 0x40 000029ac: DUP2 000029ad: KECCAK256 000029ae: PUSH2 0x0b44 000029b1: SWAP1 000029b2: PUSH2 0x3643 000029b5: JUMP 000029b6: JUMPDEST 000029b7: PUSH1 0x02 000029b9: DUP1 000029ba: SLOAD 000029bb: EQ 000029bc: ISZERO 000029bd: PUSH2 0x29fb 000029c0: JUMPI 000029c1: PUSH1 0x40 000029c3: DUP1 000029c4: MLOAD 000029c5: PUSH3 0x461bcd 000029c9: PUSH1 0xe5 000029cb: SHL 000029cc: DUP2 000029cd: MSTORE 000029ce: PUSH1 0x20 000029d0: PUSH1 0x04 000029d2: DUP3 000029d3: ADD 000029d4: MSTORE 000029d5: PUSH1 0x1f 000029d7: PUSH1 0x24 000029d9: DUP3 000029da: ADD 000029db: MSTORE 000029dc: PUSH1 0x00 000029de: DUP1 000029df: MLOAD 000029e0: PUSH1 0x20 000029e2: PUSH2 0x3df6 000029e5: DUP4 000029e6: CODECOPY 000029e7: DUP2 000029e8: MLOAD 000029e9: SWAP2 000029ea: MSTORE 000029eb: PUSH1 0x44 000029ed: DUP3 000029ee: ADD 000029ef: MSTORE 000029f0: SWAP1 000029f1: MLOAD 000029f2: SWAP1 000029f3: DUP2 000029f4: SWAP1 000029f5: SUB 000029f6: PUSH1 0x64 000029f8: ADD 000029f9: SWAP1 000029fa: REVERT 000029fb: JUMPDEST 000029fc: PUSH1 0x02 000029fe: DUP1 000029ff: SSTORE 00002a00: CALLER 00002a01: PUSH1 0x00 00002a03: SWAP1 00002a04: DUP2 00002a05: MSTORE 00002a06: PUSH1 0x0a 00002a08: PUSH1 0x20 00002a0a: MSTORE 00002a0b: PUSH1 0x40 00002a0d: SWAP1 00002a0e: KECCAK256 00002a0f: SLOAD 00002a10: PUSH2 0x2a4a 00002a13: JUMPI 00002a14: PUSH1 0x40 00002a16: MLOAD 00002a17: PUSH3 0x461bcd 00002a1b: PUSH1 0xe5 00002a1d: SHL 00002a1e: DUP2 00002a1f: MSTORE 00002a20: PUSH1 0x04 00002a22: ADD 00002a23: DUP1 00002a24: DUP1 00002a25: PUSH1 0x20 00002a27: ADD 00002a28: DUP3 00002a29: DUP2 00002a2a: SUB 00002a2b: DUP3 00002a2c: MSTORE 00002a2d: PUSH1 0x2b 00002a2f: DUP2 00002a30: MSTORE 00002a31: PUSH1 0x20 00002a33: ADD 00002a34: DUP1 00002a35: PUSH2 0x3e3b 00002a38: PUSH1 0x2b 00002a3a: SWAP2 00002a3b: CODECOPY 00002a3c: PUSH1 0x40 00002a3e: ADD 00002a3f: SWAP2 00002a40: POP 00002a41: POP 00002a42: PUSH1 0x40 00002a44: MLOAD 00002a45: DUP1 00002a46: SWAP2 00002a47: SUB 00002a48: SWAP1 00002a49: REVERT 00002a4a: JUMPDEST 00002a4b: PUSH1 0x03 00002a4d: SLOAD 00002a4e: PUSH1 0xff 00002a50: AND 00002a51: ISZERO 00002a52: PUSH2 0x2a95 00002a55: JUMPI 00002a56: PUSH1 0x40 00002a58: DUP1 00002a59: MLOAD 00002a5a: PUSH3 0x461bcd 00002a5e: PUSH1 0xe5 00002a60: SHL 00002a61: DUP2 00002a62: MSTORE 00002a63: PUSH1 0x20 00002a65: PUSH1 0x04 00002a67: DUP3 00002a68: ADD 00002a69: MSTORE 00002a6a: PUSH1 0x10 00002a6c: PUSH1 0x24 00002a6e: DUP3 00002a6f: ADD 00002a70: MSTORE 00002a71: PUSH16 0x14185d5cd8589b194e881c185d5cd959 00002a82: PUSH1 0x82 00002a84: SHL 00002a85: PUSH1 0x44 00002a87: DUP3 00002a88: ADD 00002a89: MSTORE 00002a8a: SWAP1 00002a8b: MLOAD 00002a8c: SWAP1 00002a8d: DUP2 00002a8e: SWAP1 00002a8f: SUB 00002a90: PUSH1 0x64 00002a92: ADD 00002a93: SWAP1 00002a94: REVERT 00002a95: JUMPDEST 00002a96: PUSH1 0x00 00002a98: DUP2 00002a99: GT 00002a9a: PUSH2 0x2ad4 00002a9d: JUMPI 00002a9e: PUSH1 0x40 00002aa0: MLOAD 00002aa1: PUSH3 0x461bcd 00002aa5: PUSH1 0xe5 00002aa7: SHL 00002aa8: DUP2 00002aa9: MSTORE 00002aaa: PUSH1 0x04 00002aac: ADD 00002aad: DUP1 00002aae: DUP1 00002aaf: PUSH1 0x20 00002ab1: ADD 00002ab2: DUP3 00002ab3: DUP2 00002ab4: SUB 00002ab5: DUP3 00002ab6: MSTORE 00002ab7: PUSH1 0x36 00002ab9: DUP2 00002aba: MSTORE 00002abb: PUSH1 0x20 00002abd: ADD 00002abe: DUP1 00002abf: PUSH2 0x416e 00002ac2: PUSH1 0x36 00002ac4: SWAP2 00002ac5: CODECOPY 00002ac6: PUSH1 0x40 00002ac8: ADD 00002ac9: SWAP2 00002aca: POP 00002acb: POP 00002acc: PUSH1 0x40 00002ace: MLOAD 00002acf: DUP1 00002ad0: SWAP2 00002ad1: SUB 00002ad2: SWAP1 00002ad3: REVERT 00002ad4: JUMPDEST 00002ad5: CALLER 00002ad6: PUSH1 0x00 00002ad8: SWAP1 00002ad9: DUP2 00002ada: MSTORE 00002adb: PUSH1 0x0a 00002add: PUSH1 0x20 00002adf: SWAP1 00002ae0: DUP2 00002ae1: MSTORE 00002ae2: PUSH1 0x40 00002ae4: DUP1 00002ae5: DUP4 00002ae6: KECCAK256 00002ae7: SLOAD 00002ae8: DUP4 00002ae9: MSTORE 00002aea: PUSH1 0x0b 00002aec: SWAP1 00002aed: SWAP2 00002aee: MSTORE 00002aef: DUP2 00002af0: KECCAK256 00002af1: DUP1 00002af2: SLOAD 00002af3: SWAP1 00002af4: SWAP2 00002af5: SWAP1 00002af6: PUSH2 0x2afe 00002af9: SWAP1 00002afa: PUSH2 0x1c7c 00002afd: JUMP 00002afe: JUMPDEST 00002aff: SWAP1 00002b00: POP 00002b01: DUP3 00002b02: DUP3 00002b03: PUSH1 0x01 00002b05: ADD 00002b06: SLOAD 00002b07: LT 00002b08: ISZERO 00002b09: PUSH2 0x2b43 00002b0c: JUMPI 00002b0d: PUSH1 0x40 00002b0f: MLOAD 00002b10: PUSH3 0x461bcd 00002b14: PUSH1 0xe5 00002b16: SHL 00002b17: DUP2 00002b18: MSTORE 00002b19: PUSH1 0x04 00002b1b: ADD 00002b1c: DUP1 00002b1d: DUP1 00002b1e: PUSH1 0x20 00002b20: ADD 00002b21: DUP3 00002b22: DUP2 00002b23: SUB 00002b24: DUP3 00002b25: MSTORE 00002b26: PUSH1 0x4c 00002b28: DUP2 00002b29: MSTORE 00002b2a: PUSH1 0x20 00002b2c: ADD 00002b2d: DUP1 00002b2e: PUSH2 0x3ee4 00002b31: PUSH1 0x4c 00002b33: SWAP2 00002b34: CODECOPY 00002b35: PUSH1 0x60 00002b37: ADD 00002b38: SWAP2 00002b39: POP 00002b3a: POP 00002b3b: PUSH1 0x40 00002b3d: MLOAD 00002b3e: DUP1 00002b3f: SWAP2 00002b40: SUB 00002b41: SWAP1 00002b42: REVERT 00002b43: JUMPDEST 00002b44: PUSH1 0x01 00002b46: DUP3 00002b47: ADD 00002b48: SLOAD 00002b49: PUSH2 0x2b52 00002b4c: SWAP1 00002b4d: DUP5 00002b4e: PUSH2 0x31bf 00002b51: JUMP 00002b52: JUMPDEST 00002b53: PUSH1 0x01 00002b55: DUP4 00002b56: ADD 00002b57: SSTORE 00002b58: DUP1 00002b59: ISZERO 00002b5a: PUSH2 0x2ba8 00002b5d: JUMPI 00002b5e: PUSH1 0x06 00002b60: SLOAD 00002b61: DUP3 00002b62: SLOAD 00002b63: PUSH2 0x2b6b 00002b66: SWAP1 00002b67: PUSH2 0x1c7c 00002b6a: JUMP 00002b6b: JUMPDEST 00002b6c: LT 00002b6d: ISZERO 00002b6e: PUSH2 0x2ba8 00002b71: JUMPI 00002b72: PUSH1 0x40 00002b74: MLOAD 00002b75: PUSH3 0x461bcd 00002b79: PUSH1 0xe5 00002b7b: SHL 00002b7c: DUP2 00002b7d: MSTORE 00002b7e: PUSH1 0x04 00002b80: ADD 00002b81: DUP1 00002b82: DUP1 00002b83: PUSH1 0x20 00002b85: ADD 00002b86: DUP3 00002b87: DUP2 00002b88: SUB 00002b89: DUP3 00002b8a: MSTORE 00002b8b: PUSH1 0x49 00002b8d: DUP2 00002b8e: MSTORE 00002b8f: PUSH1 0x20 00002b91: ADD 00002b92: DUP1 00002b93: PUSH2 0x3f30 00002b96: PUSH1 0x49 00002b98: SWAP2 00002b99: CODECOPY 00002b9a: PUSH1 0x60 00002b9c: ADD 00002b9d: SWAP2 00002b9e: POP 00002b9f: POP 00002ba0: PUSH1 0x40 00002ba2: MLOAD 00002ba3: DUP1 00002ba4: SWAP2 00002ba5: SUB 00002ba6: SWAP1 00002ba7: REVERT 00002ba8: JUMPDEST 00002ba9: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00002bca: PUSH1 0x01 00002bcc: PUSH1 0x01 00002bce: PUSH1 0xa0 00002bd0: SHL 00002bd1: SUB 00002bd2: AND 00002bd3: PUSH4 0x2e1a7d4d 00002bd8: DUP5 00002bd9: PUSH1 0x40 00002bdb: MLOAD 00002bdc: DUP3 00002bdd: PUSH4 0xffffffff 00002be2: AND 00002be3: PUSH1 0xe0 00002be5: SHL 00002be6: DUP2 00002be7: MSTORE 00002be8: PUSH1 0x04 00002bea: ADD 00002beb: DUP1 00002bec: DUP3 00002bed: DUP2 00002bee: MSTORE 00002bef: PUSH1 0x20 00002bf1: ADD 00002bf2: SWAP2 00002bf3: POP 00002bf4: POP 00002bf5: PUSH1 0x00 00002bf7: PUSH1 0x40 00002bf9: MLOAD 00002bfa: DUP1 00002bfb: DUP4 00002bfc: SUB 00002bfd: DUP2 00002bfe: PUSH1 0x00 00002c00: DUP8 00002c01: DUP1 00002c02: EXTCODESIZE 00002c03: ISZERO 00002c04: DUP1 00002c05: ISZERO 00002c06: PUSH2 0x2c0e 00002c09: JUMPI 00002c0a: PUSH1 0x00 00002c0c: DUP1 00002c0d: REVERT 00002c0e: JUMPDEST 00002c0f: POP 00002c10: GAS 00002c11: CALL 00002c12: ISZERO 00002c13: DUP1 00002c14: ISZERO 00002c15: PUSH2 0x2c22 00002c18: JUMPI 00002c19: RETURNDATASIZE 00002c1a: PUSH1 0x00 00002c1c: DUP1 00002c1d: RETURNDATACOPY 00002c1e: RETURNDATASIZE 00002c1f: PUSH1 0x00 00002c21: REVERT 00002c22: JUMPDEST 00002c23: POP 00002c24: POP 00002c25: POP 00002c26: POP 00002c27: PUSH2 0x2c30 00002c2a: CALLER 00002c2b: DUP5 00002c2c: PUSH2 0x33f8 00002c2f: JUMP 00002c30: JUMPDEST 00002c31: DUP2 00002c32: SLOAD 00002c33: PUSH1 0x40 00002c35: DUP1 00002c36: MLOAD 00002c37: DUP6 00002c38: DUP2 00002c39: MSTORE 00002c3a: SWAP1 00002c3b: MLOAD 00002c3c: CALLER 00002c3d: SWAP2 00002c3e: PUSH32 0x47e1336b6fdb5f42c3a1d28b558fa98786d820c3705d726358dcc8e63a401eef 00002c5f: SWAP2 00002c60: SWAP1 00002c61: DUP2 00002c62: SWAP1 00002c63: SUB 00002c64: PUSH1 0x20 00002c66: ADD 00002c67: SWAP1 00002c68: LOG3 00002c69: POP 00002c6a: POP 00002c6b: PUSH1 0x01 00002c6d: PUSH1 0x02 00002c6f: SSTORE 00002c70: POP 00002c71: JUMP 00002c72: JUMPDEST 00002c73: PUSH1 0x00 00002c75: DUP3 00002c76: DUP2 00002c77: MSTORE 00002c78: PUSH1 0x01 00002c7a: PUSH1 0x20 00002c7c: MSTORE 00002c7d: PUSH1 0x40 00002c7f: SWAP1 00002c80: KECCAK256 00002c81: PUSH1 0x02 00002c83: ADD 00002c84: SLOAD 00002c85: PUSH2 0x2c90 00002c88: SWAP1 00002c89: PUSH2 0x0f2a 00002c8c: PUSH2 0x3152 00002c8f: JUMP 00002c90: JUMPDEST 00002c91: PUSH2 0x12d8 00002c94: JUMPI 00002c95: PUSH1 0x40 00002c97: MLOAD 00002c98: PUSH3 0x461bcd 00002c9c: PUSH1 0xe5 00002c9e: SHL 00002c9f: DUP2 00002ca0: MSTORE 00002ca1: PUSH1 0x04 00002ca3: ADD 00002ca4: DUP1 00002ca5: DUP1 00002ca6: PUSH1 0x20 00002ca8: ADD 00002ca9: DUP3 00002caa: DUP2 00002cab: SUB 00002cac: DUP3 00002cad: MSTORE 00002cae: PUSH1 0x30 00002cb0: DUP2 00002cb1: MSTORE 00002cb2: PUSH1 0x20 00002cb4: ADD 00002cb5: DUP1 00002cb6: PUSH2 0x4023 00002cb9: PUSH1 0x30 00002cbb: SWAP2 00002cbc: CODECOPY 00002cbd: PUSH1 0x40 00002cbf: ADD 00002cc0: SWAP2 00002cc1: POP 00002cc2: POP 00002cc3: PUSH1 0x40 00002cc5: MLOAD 00002cc6: DUP1 00002cc7: SWAP2 00002cc8: SUB 00002cc9: SWAP1 00002cca: REVERT 00002ccb: JUMPDEST 00002ccc: PUSH1 0x00 00002cce: PUSH2 0x2cd5 00002cd1: PUSH2 0x3d08 00002cd4: JUMP 00002cd5: JUMPDEST 00002cd6: POP 00002cd7: PUSH1 0x00 00002cd9: DUP3 00002cda: DUP2 00002cdb: MSTORE 00002cdc: PUSH1 0x0b 00002cde: PUSH1 0x20 00002ce0: SWAP1 00002ce1: DUP2 00002ce2: MSTORE 00002ce3: PUSH1 0x40 00002ce5: DUP1 00002ce6: DUP4 00002ce7: KECCAK256 00002ce8: DUP2 00002ce9: MLOAD 00002cea: PUSH1 0x80 00002cec: DUP2 00002ced: ADD 00002cee: DUP4 00002cef: MSTORE 00002cf0: DUP2 00002cf1: SLOAD 00002cf2: DUP2 00002cf3: MSTORE 00002cf4: PUSH1 0x01 00002cf6: DUP3 00002cf7: ADD 00002cf8: SLOAD 00002cf9: SWAP4 00002cfa: DUP2 00002cfb: ADD 00002cfc: SWAP4 00002cfd: SWAP1 00002cfe: SWAP4 00002cff: MSTORE 00002d00: PUSH1 0x02 00002d02: DUP2 00002d03: ADD 00002d04: SLOAD 00002d05: SWAP2 00002d06: DUP4 00002d07: ADD 00002d08: SWAP2 00002d09: SWAP1 00002d0a: SWAP2 00002d0b: MSTORE 00002d0c: PUSH1 0x03 00002d0e: ADD 00002d0f: SLOAD 00002d10: PUSH1 0x01 00002d12: PUSH1 0x01 00002d14: PUSH1 0xa0 00002d16: SHL 00002d17: SUB 00002d18: AND 00002d19: PUSH1 0x60 00002d1b: DUP3 00002d1c: ADD 00002d1d: MSTORE 00002d1e: SWAP1 00002d1f: PUSH2 0x2d26 00002d22: PUSH2 0x16b4 00002d25: JUMP 00002d26: JUMPDEST 00002d27: SWAP1 00002d28: POP 00002d29: PUSH1 0x00 00002d2b: PUSH2 0x2d53 00002d2e: PUSH32 0x0000000000000000000000002cfeaf282fe9ae050b210e7bda65d288c40c6104 00002d4f: PUSH2 0x1a4d 00002d52: JUMP 00002d53: JUMPDEST 00002d54: SWAP1 00002d55: POP 00002d56: PUSH1 0x00 00002d58: PUSH2 0x2d72 00002d5b: DUP4 00002d5c: PUSH2 0x0dd7 00002d5f: DUP5 00002d60: DUP8 00002d61: PUSH1 0x20 00002d63: ADD 00002d64: MLOAD 00002d65: PUSH2 0x30b7 00002d68: SWAP1 00002d69: SWAP2 00002d6a: SWAP1 00002d6b: PUSH4 0xffffffff 00002d70: AND 00002d71: JUMP 00002d72: JUMPDEST 00002d73: SWAP1 00002d74: POP 00002d75: PUSH1 0x00 00002d77: PUSH2 0x2da3 00002d7a: PUSH1 0x64 00002d7c: PUSH2 0x1ac5 00002d7f: DUP5 00002d80: PUSH2 0x2d9d 00002d83: PUSH1 0x64 00002d85: PUSH2 0x0dd7 00002d88: PUSH1 0x06 00002d8a: SLOAD 00002d8b: DUP13 00002d8c: PUSH1 0x40 00002d8e: ADD 00002d8f: MLOAD 00002d90: PUSH2 0x30b7 00002d93: SWAP1 00002d94: SWAP2 00002d95: SWAP1 00002d96: PUSH4 0xffffffff 00002d9b: AND 00002d9c: JUMP 00002d9d: JUMPDEST 00002d9e: SWAP1 00002d9f: PUSH2 0x31bf 00002da2: JUMP 00002da3: JUMPDEST 00002da4: SWAP1 00002da5: POP 00002da6: PUSH1 0x00 00002da8: PUSH2 0x2dc9 00002dab: PUSH2 0x2dc0 00002dae: PUSH1 0x64 00002db0: PUSH1 0x08 00002db2: SLOAD 00002db3: PUSH2 0x3023 00002db6: SWAP1 00002db7: SWAP2 00002db8: SWAP1 00002db9: PUSH4 0xffffffff 00002dbe: AND 00002dbf: JUMP 00002dc0: JUMPDEST 00002dc1: PUSH1 0x06 00002dc3: SLOAD 00002dc4: SWAP1 00002dc5: PUSH2 0x31bf 00002dc8: JUMP 00002dc9: JUMPDEST 00002dca: SWAP1 00002dcb: POP 00002dcc: PUSH2 0x2dd5 00002dcf: DUP3 00002dd0: DUP3 00002dd1: PUSH2 0x3110 00002dd4: JUMP 00002dd5: JUMPDEST 00002dd6: SWAP9 00002dd7: SWAP8 00002dd8: POP 00002dd9: POP 00002dda: POP 00002ddb: POP 00002ddc: POP 00002ddd: POP 00002dde: POP 00002ddf: POP 00002de0: JUMP 00002de1: JUMPDEST 00002de2: PUSH2 0x2de9 00002de5: PUSH2 0x3152 00002de8: JUMP 00002de9: JUMPDEST 00002dea: PUSH1 0x00 00002dec: SLOAD 00002ded: PUSH1 0x01 00002def: PUSH1 0x01 00002df1: PUSH1 0xa0 00002df3: SHL 00002df4: SUB 00002df5: SWAP1 00002df6: DUP2 00002df7: AND 00002df8: SWAP2 00002df9: AND 00002dfa: EQ 00002dfb: PUSH2 0x2e39 00002dfe: JUMPI 00002dff: PUSH1 0x40 00002e01: DUP1 00002e02: MLOAD 00002e03: PUSH3 0x461bcd 00002e07: PUSH1 0xe5 00002e09: SHL 00002e0a: DUP2 00002e0b: MSTORE 00002e0c: PUSH1 0x20 00002e0e: PUSH1 0x04 00002e10: DUP3 00002e11: ADD 00002e12: DUP2 00002e13: SWAP1 00002e14: MSTORE 00002e15: PUSH1 0x24 00002e17: DUP3 00002e18: ADD 00002e19: MSTORE 00002e1a: PUSH1 0x00 00002e1c: DUP1 00002e1d: MLOAD 00002e1e: PUSH1 0x20 00002e20: PUSH2 0x4270 00002e23: DUP4 00002e24: CODECOPY 00002e25: DUP2 00002e26: MLOAD 00002e27: SWAP2 00002e28: MSTORE 00002e29: PUSH1 0x44 00002e2b: DUP3 00002e2c: ADD 00002e2d: MSTORE 00002e2e: SWAP1 00002e2f: MLOAD 00002e30: SWAP1 00002e31: DUP2 00002e32: SWAP1 00002e33: SUB 00002e34: PUSH1 0x64 00002e36: ADD 00002e37: SWAP1 00002e38: REVERT 00002e39: JUMPDEST 00002e3a: PUSH2 0x2e4a 00002e3d: DUP2 00002e3e: PUSH4 0x06b5cc77 00002e43: PUSH1 0xe4 00002e45: SHL 00002e46: PUSH2 0x307d 00002e49: JUMP 00002e4a: JUMPDEST 00002e4b: PUSH2 0x2e85 00002e4e: JUMPI 00002e4f: PUSH1 0x40 00002e51: MLOAD 00002e52: PUSH3 0x461bcd 00002e56: PUSH1 0xe5 00002e58: SHL 00002e59: DUP2 00002e5a: MSTORE 00002e5b: PUSH1 0x04 00002e5d: ADD 00002e5e: DUP1 00002e5f: DUP1 00002e60: PUSH1 0x20 00002e62: ADD 00002e63: DUP3 00002e64: DUP2 00002e65: SUB 00002e66: DUP3 00002e67: MSTORE 00002e68: PUSH1 0x2f 00002e6a: DUP2 00002e6b: MSTORE 00002e6c: PUSH1 0x20 00002e6e: ADD 00002e6f: DUP1 00002e70: PUSH2 0x3e8c 00002e73: PUSH1 0x2f 00002e75: SWAP2 00002e76: CODECOPY 00002e77: PUSH1 0x40 00002e79: ADD 00002e7a: SWAP2 00002e7b: POP 00002e7c: POP 00002e7d: PUSH1 0x40 00002e7f: MLOAD 00002e80: DUP1 00002e81: SWAP2 00002e82: SUB 00002e83: SWAP1 00002e84: REVERT 00002e85: JUMPDEST 00002e86: PUSH1 0x09 00002e88: DUP1 00002e89: SLOAD 00002e8a: PUSH1 0x01 00002e8c: PUSH1 0x01 00002e8e: PUSH1 0xa0 00002e90: SHL 00002e91: SUB 00002e92: DUP4 00002e93: AND 00002e94: PUSH1 0x01 00002e96: PUSH1 0x01 00002e98: PUSH1 0xa0 00002e9a: SHL 00002e9b: SUB 00002e9c: NOT 00002e9d: SWAP1 00002e9e: SWAP2 00002e9f: AND 00002ea0: DUP2 00002ea1: OR 00002ea2: SWAP1 00002ea3: SWAP2 00002ea4: SSTORE 00002ea5: PUSH1 0x40 00002ea7: DUP1 00002ea8: MLOAD 00002ea9: SWAP2 00002eaa: DUP3 00002eab: MSTORE 00002eac: MLOAD 00002ead: CALLER 00002eae: SWAP2 00002eaf: PUSH32 0x567657fa3f286518b318f4a29870674f433f622fdfc819691acb13105b228225 00002ed0: SWAP2 00002ed1: SWAP1 00002ed2: DUP2 00002ed3: SWAP1 00002ed4: SUB 00002ed5: PUSH1 0x20 00002ed7: ADD 00002ed8: SWAP1 00002ed9: LOG2 00002eda: POP 00002edb: JUMP 00002edc: JUMPDEST 00002edd: PUSH2 0x2ee4 00002ee0: PUSH2 0x3152 00002ee3: JUMP 00002ee4: JUMPDEST 00002ee5: PUSH1 0x00 00002ee7: SLOAD 00002ee8: PUSH1 0x01 00002eea: PUSH1 0x01 00002eec: PUSH1 0xa0 00002eee: SHL 00002eef: SUB 00002ef0: SWAP1 00002ef1: DUP2 00002ef2: AND 00002ef3: SWAP2 00002ef4: AND 00002ef5: EQ 00002ef6: PUSH2 0x2f34 00002ef9: JUMPI 00002efa: PUSH1 0x40 00002efc: DUP1 00002efd: MLOAD 00002efe: PUSH3 0x461bcd 00002f02: PUSH1 0xe5 00002f04: SHL 00002f05: DUP2 00002f06: MSTORE 00002f07: PUSH1 0x20 00002f09: PUSH1 0x04 00002f0b: DUP3 00002f0c: ADD 00002f0d: DUP2 00002f0e: SWAP1 00002f0f: MSTORE 00002f10: PUSH1 0x24 00002f12: DUP3 00002f13: ADD 00002f14: MSTORE 00002f15: PUSH1 0x00 00002f17: DUP1 00002f18: MLOAD 00002f19: PUSH1 0x20 00002f1b: PUSH2 0x4270 00002f1e: DUP4 00002f1f: CODECOPY 00002f20: DUP2 00002f21: MLOAD 00002f22: SWAP2 00002f23: MSTORE 00002f24: PUSH1 0x44 00002f26: DUP3 00002f27: ADD 00002f28: MSTORE 00002f29: SWAP1 00002f2a: MLOAD 00002f2b: SWAP1 00002f2c: DUP2 00002f2d: SWAP1 00002f2e: SUB 00002f2f: PUSH1 0x64 00002f31: ADD 00002f32: SWAP1 00002f33: REVERT 00002f34: JUMPDEST 00002f35: PUSH1 0x01 00002f37: PUSH1 0x01 00002f39: PUSH1 0xa0 00002f3b: SHL 00002f3c: SUB 00002f3d: DUP2 00002f3e: AND 00002f3f: PUSH2 0x2f79 00002f42: JUMPI 00002f43: PUSH1 0x40 00002f45: MLOAD 00002f46: PUSH3 0x461bcd 00002f4a: PUSH1 0xe5 00002f4c: SHL 00002f4d: DUP2 00002f4e: MSTORE 00002f4f: PUSH1 0x04 00002f51: ADD 00002f52: DUP1 00002f53: DUP1 00002f54: PUSH1 0x20 00002f56: ADD 00002f57: DUP3 00002f58: DUP2 00002f59: SUB 00002f5a: DUP3 00002f5b: MSTORE 00002f5c: PUSH1 0x26 00002f5e: DUP2 00002f5f: MSTORE 00002f60: PUSH1 0x20 00002f62: ADD 00002f63: DUP1 00002f64: PUSH2 0x3e66 00002f67: PUSH1 0x26 00002f69: SWAP2 00002f6a: CODECOPY 00002f6b: PUSH1 0x40 00002f6d: ADD 00002f6e: SWAP2 00002f6f: POP 00002f70: POP 00002f71: PUSH1 0x40 00002f73: MLOAD 00002f74: DUP1 00002f75: SWAP2 00002f76: SUB 00002f77: SWAP1 00002f78: REVERT 00002f79: JUMPDEST 00002f7a: PUSH1 0x00 00002f7c: DUP1 00002f7d: SLOAD 00002f7e: PUSH1 0x40 00002f80: MLOAD 00002f81: PUSH1 0x01 00002f83: PUSH1 0x01 00002f85: PUSH1 0xa0 00002f87: SHL 00002f88: SUB 00002f89: DUP1 00002f8a: DUP6 00002f8b: AND 00002f8c: SWAP4 00002f8d: SWAP3 00002f8e: AND 00002f8f: SWAP2 00002f90: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002fb1: SWAP2 00002fb2: LOG3 00002fb3: PUSH1 0x00 00002fb5: DUP1 00002fb6: SLOAD 00002fb7: PUSH1 0x01 00002fb9: PUSH1 0x01 00002fbb: PUSH1 0xa0 00002fbd: SHL 00002fbe: SUB 00002fbf: NOT 00002fc0: AND 00002fc1: PUSH1 0x01 00002fc3: PUSH1 0x01 00002fc5: PUSH1 0xa0 00002fc7: SHL 00002fc8: SUB 00002fc9: SWAP3 00002fca: SWAP1 00002fcb: SWAP3 00002fcc: AND 00002fcd: SWAP2 00002fce: SWAP1 00002fcf: SWAP2 00002fd0: OR 00002fd1: SWAP1 00002fd2: SSTORE 00002fd3: JUMP 00002fd4: JUMPDEST 00002fd5: PUSH1 0x07 00002fd7: SLOAD 00002fd8: DUP2 00002fd9: JUMP 00002fda: JUMPDEST 00002fdb: PUSH1 0x00 00002fdd: DUP1 00002fde: PUSH2 0x3006 00002fe1: PUSH32 0x0000000000000000000000002cfeaf282fe9ae050b210e7bda65d288c40c6104 00003002: PUSH2 0x1a4d 00003005: JUMP 00003006: JUMPDEST 00003007: SWAP1 00003008: POP 00003009: PUSH2 0x1dae 0000300c: DUP2 0000300d: PUSH2 0x0dd7 00003010: PUSH1 0x64 00003012: PUSH2 0x0dd7 00003015: PUSH1 0x07 00003017: SLOAD 00003018: PUSH2 0x1ac5 0000301b: DUP10 0000301c: PUSH2 0x1ac5 0000301f: PUSH2 0x16b4 00003022: JUMP 00003023: JUMPDEST 00003024: PUSH1 0x00 00003026: DUP3 00003027: DUP3 00003028: ADD 00003029: DUP4 0000302a: DUP2 0000302b: LT 0000302c: ISZERO 0000302d: PUSH2 0x1dae 00003030: JUMPI 00003031: PUSH1 0x40 00003033: DUP1 00003034: MLOAD 00003035: PUSH3 0x461bcd 00003039: PUSH1 0xe5 0000303b: SHL 0000303c: DUP2 0000303d: MSTORE 0000303e: PUSH1 0x20 00003040: PUSH1 0x04 00003042: DUP3 00003043: ADD 00003044: MSTORE 00003045: PUSH1 0x1b 00003047: PUSH1 0x24 00003049: DUP3 0000304a: ADD 0000304b: MSTORE 0000304c: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000 0000306d: PUSH1 0x44 0000306f: DUP3 00003070: ADD 00003071: MSTORE 00003072: SWAP1 00003073: MLOAD 00003074: SWAP1 00003075: DUP2 00003076: SWAP1 00003077: SUB 00003078: PUSH1 0x64 0000307a: ADD 0000307b: SWAP1 0000307c: REVERT 0000307d: JUMPDEST 0000307e: PUSH1 0x00 00003080: PUSH2 0x3088 00003083: DUP4 00003084: PUSH2 0x364e 00003087: JUMP 00003088: JUMPDEST 00003089: DUP1 0000308a: ISZERO 0000308b: PUSH2 0x1dae 0000308e: JUMPI 0000308f: POP 00003090: PUSH2 0x1dae 00003093: DUP4 00003094: DUP4 00003095: PUSH2 0x3681 00003098: JUMP 00003099: JUMPDEST 0000309a: DUP1 0000309b: SLOAD 0000309c: PUSH1 0x01 0000309e: ADD 0000309f: SWAP1 000030a0: SSTORE 000030a1: JUMP 000030a2: JUMPDEST 000030a3: PUSH1 0x00 000030a5: PUSH2 0x1dae 000030a8: DUP4 000030a9: PUSH1 0x01 000030ab: PUSH1 0x01 000030ad: PUSH1 0xa0 000030af: SHL 000030b0: SUB 000030b1: DUP5 000030b2: AND 000030b3: PUSH2 0x36a7 000030b6: JUMP 000030b7: JUMPDEST 000030b8: PUSH1 0x00 000030ba: DUP3 000030bb: PUSH2 0x30c6 000030be: JUMPI 000030bf: POP 000030c0: PUSH1 0x00 000030c2: PUSH2 0x0b44 000030c5: JUMP 000030c6: JUMPDEST 000030c7: DUP3 000030c8: DUP3 000030c9: MUL 000030ca: DUP3 000030cb: DUP5 000030cc: DUP3 000030cd: DUP2 000030ce: PUSH2 0x30d3 000030d1: JUMPI 000030d2: INVALID 000030d3: JUMPDEST 000030d4: DIV 000030d5: EQ 000030d6: PUSH2 0x1dae 000030d9: JUMPI 000030da: PUSH1 0x40 000030dc: MLOAD 000030dd: PUSH3 0x461bcd 000030e1: PUSH1 0xe5 000030e3: SHL 000030e4: DUP2 000030e5: MSTORE 000030e6: PUSH1 0x04 000030e8: ADD 000030e9: DUP1 000030ea: DUP1 000030eb: PUSH1 0x20 000030ed: ADD 000030ee: DUP3 000030ef: DUP2 000030f0: SUB 000030f1: DUP3 000030f2: MSTORE 000030f3: PUSH1 0x21 000030f5: DUP2 000030f6: MSTORE 000030f7: PUSH1 0x20 000030f9: ADD 000030fa: DUP1 000030fb: PUSH2 0x421c 000030fe: PUSH1 0x21 00003100: SWAP2 00003101: CODECOPY 00003102: PUSH1 0x40 00003104: ADD 00003105: SWAP2 00003106: POP 00003107: POP 00003108: PUSH1 0x40 0000310a: MLOAD 0000310b: DUP1 0000310c: SWAP2 0000310d: SUB 0000310e: SWAP1 0000310f: REVERT 00003110: JUMPDEST 00003111: PUSH1 0x00 00003113: PUSH2 0x1dae 00003116: DUP4 00003117: DUP4 00003118: PUSH1 0x40 0000311a: MLOAD 0000311b: DUP1 0000311c: PUSH1 0x40 0000311e: ADD 0000311f: PUSH1 0x40 00003121: MSTORE 00003122: DUP1 00003123: PUSH1 0x1a 00003125: DUP2 00003126: MSTORE 00003127: PUSH1 0x20 00003129: ADD 0000312a: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000 0000314b: DUP2 0000314c: MSTORE 0000314d: POP 0000314e: PUSH2 0x36f1 00003151: JUMP 00003152: JUMPDEST 00003153: CALLER 00003154: SWAP1 00003155: JUMP 00003156: JUMPDEST 00003157: PUSH1 0x00 00003159: DUP3 0000315a: DUP2 0000315b: MSTORE 0000315c: PUSH1 0x01 0000315e: PUSH1 0x20 00003160: MSTORE 00003161: PUSH1 0x40 00003163: SWAP1 00003164: KECCAK256 00003165: PUSH2 0x316e 00003168: SWAP1 00003169: DUP3 0000316a: PUSH2 0x30a2 0000316d: JUMP 0000316e: JUMPDEST 0000316f: ISZERO 00003170: PUSH2 0x0f74 00003173: JUMPI 00003174: PUSH2 0x317b 00003177: PUSH2 0x3152 0000317a: JUMP 0000317b: JUMPDEST 0000317c: PUSH1 0x01 0000317e: PUSH1 0x01 00003180: PUSH1 0xa0 00003182: SHL 00003183: SUB 00003184: AND 00003185: DUP2 00003186: PUSH1 0x01 00003188: PUSH1 0x01 0000318a: PUSH1 0xa0 0000318c: SHL 0000318d: SUB 0000318e: AND 0000318f: DUP4 00003190: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 000031b1: PUSH1 0x40 000031b3: MLOAD 000031b4: PUSH1 0x40 000031b6: MLOAD 000031b7: DUP1 000031b8: SWAP2 000031b9: SUB 000031ba: SWAP1 000031bb: LOG4 000031bc: POP 000031bd: POP 000031be: JUMP 000031bf: JUMPDEST 000031c0: PUSH1 0x00 000031c2: PUSH2 0x1dae 000031c5: DUP4 000031c6: DUP4 000031c7: PUSH1 0x40 000031c9: MLOAD 000031ca: DUP1 000031cb: PUSH1 0x40 000031cd: ADD 000031ce: PUSH1 0x40 000031d0: MSTORE 000031d1: DUP1 000031d2: PUSH1 0x1e 000031d4: DUP2 000031d5: MSTORE 000031d6: PUSH1 0x20 000031d8: ADD 000031d9: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 000031fa: DUP2 000031fb: MSTORE 000031fc: POP 000031fd: PUSH2 0x3793 00003200: JUMP 00003201: JUMPDEST 00003202: PUSH1 0x00 00003204: DUP3 00003205: DUP2 00003206: MSTORE 00003207: PUSH1 0x01 00003209: PUSH1 0x20 0000320b: MSTORE 0000320c: PUSH1 0x40 0000320e: SWAP1 0000320f: KECCAK256 00003210: PUSH2 0x3219 00003213: SWAP1 00003214: DUP3 00003215: PUSH2 0x37ed 00003218: JUMP 00003219: JUMPDEST 0000321a: ISZERO 0000321b: PUSH2 0x0f74 0000321e: JUMPI 0000321f: PUSH2 0x3226 00003222: PUSH2 0x3152 00003225: JUMP 00003226: JUMPDEST 00003227: PUSH1 0x01 00003229: PUSH1 0x01 0000322b: PUSH1 0xa0 0000322d: SHL 0000322e: SUB 0000322f: AND 00003230: DUP2 00003231: PUSH1 0x01 00003233: PUSH1 0x01 00003235: PUSH1 0xa0 00003237: SHL 00003238: SUB 00003239: AND 0000323a: DUP4 0000323b: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b 0000325c: PUSH1 0x40 0000325e: MLOAD 0000325f: PUSH1 0x40 00003261: MLOAD 00003262: DUP1 00003263: SWAP2 00003264: SUB 00003265: SWAP1 00003266: LOG4 00003267: POP 00003268: POP 00003269: JUMP 0000326a: JUMPDEST 0000326b: PUSH1 0x03 0000326d: SLOAD 0000326e: PUSH1 0xff 00003270: AND 00003271: PUSH2 0x32b8 00003274: JUMPI 00003275: PUSH1 0x40 00003277: DUP1 00003278: MLOAD 00003279: PUSH3 0x461bcd 0000327d: PUSH1 0xe5 0000327f: SHL 00003280: DUP2 00003281: MSTORE 00003282: PUSH1 0x20 00003284: PUSH1 0x04 00003286: DUP3 00003287: ADD 00003288: MSTORE 00003289: PUSH1 0x14 0000328b: PUSH1 0x24 0000328d: DUP3 0000328e: ADD 0000328f: MSTORE 00003290: PUSH20 0x14185d5cd8589b194e881b9bdd081c185d5cd959 000032a5: PUSH1 0x62 000032a7: SHL 000032a8: PUSH1 0x44 000032aa: DUP3 000032ab: ADD 000032ac: MSTORE 000032ad: SWAP1 000032ae: MLOAD 000032af: SWAP1 000032b0: DUP2 000032b1: SWAP1 000032b2: SUB 000032b3: PUSH1 0x64 000032b5: ADD 000032b6: SWAP1 000032b7: REVERT 000032b8: JUMPDEST 000032b9: PUSH1 0x03 000032bb: DUP1 000032bc: SLOAD 000032bd: PUSH1 0xff 000032bf: NOT 000032c0: AND 000032c1: SWAP1 000032c2: SSTORE 000032c3: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa 000032e4: PUSH2 0x32eb 000032e7: PUSH2 0x3152 000032ea: JUMP 000032eb: JUMPDEST 000032ec: PUSH1 0x40 000032ee: DUP1 000032ef: MLOAD 000032f0: PUSH1 0x01 000032f2: PUSH1 0x01 000032f4: PUSH1 0xa0 000032f6: SHL 000032f7: SUB 000032f8: SWAP1 000032f9: SWAP3 000032fa: AND 000032fb: DUP3 000032fc: MSTORE 000032fd: MLOAD 000032fe: SWAP1 000032ff: DUP2 00003300: SWAP1 00003301: SUB 00003302: PUSH1 0x20 00003304: ADD 00003305: SWAP1 00003306: LOG1 00003307: JUMP 00003308: JUMPDEST 00003309: PUSH1 0x00 0000330b: DUP3 0000330c: DUP2 0000330d: MSTORE 0000330e: PUSH1 0x0b 00003310: PUSH1 0x20 00003312: MSTORE 00003313: PUSH1 0x40 00003315: SWAP1 00003316: KECCAK256 00003317: PUSH1 0x02 00003319: DUP2 0000331a: ADD 0000331b: SLOAD 0000331c: DUP3 0000331d: GT 0000331e: ISZERO 0000331f: PUSH2 0x3359 00003322: JUMPI 00003323: PUSH1 0x40 00003325: MLOAD 00003326: PUSH3 0x461bcd 0000332a: PUSH1 0xe5 0000332c: SHL 0000332d: DUP2 0000332e: MSTORE 0000332f: PUSH1 0x04 00003331: ADD 00003332: DUP1 00003333: DUP1 00003334: PUSH1 0x20 00003336: ADD 00003337: DUP3 00003338: DUP2 00003339: SUB 0000333a: DUP3 0000333b: MSTORE 0000333c: PUSH1 0x2c 0000333e: DUP2 0000333f: MSTORE 00003340: PUSH1 0x20 00003342: ADD 00003343: DUP1 00003344: PUSH2 0x4053 00003347: PUSH1 0x2c 00003349: SWAP2 0000334a: CODECOPY 0000334b: PUSH1 0x40 0000334d: ADD 0000334e: SWAP2 0000334f: POP 00003350: POP 00003351: PUSH1 0x40 00003353: MLOAD 00003354: DUP1 00003355: SWAP2 00003356: SUB 00003357: SWAP1 00003358: REVERT 00003359: JUMPDEST 0000335a: PUSH1 0x02 0000335c: DUP2 0000335d: ADD 0000335e: SLOAD 0000335f: PUSH2 0x3368 00003362: SWAP1 00003363: DUP4 00003364: PUSH2 0x31bf 00003367: JUMP 00003368: JUMPDEST 00003369: PUSH1 0x02 0000336b: DUP3 0000336c: ADD 0000336d: SSTORE 0000336e: PUSH1 0x40 00003370: DUP1 00003371: MLOAD 00003372: PUSH4 0x2770a7eb 00003377: PUSH1 0xe2 00003379: SHL 0000337a: DUP2 0000337b: MSTORE 0000337c: CALLER 0000337d: PUSH1 0x04 0000337f: DUP3 00003380: ADD 00003381: MSTORE 00003382: PUSH1 0x24 00003384: DUP2 00003385: ADD 00003386: DUP5 00003387: SWAP1 00003388: MSTORE 00003389: SWAP1 0000338a: MLOAD 0000338b: PUSH1 0x01 0000338d: PUSH1 0x01 0000338f: PUSH1 0xa0 00003391: SHL 00003392: SUB 00003393: PUSH32 0x00000000000000000000000016c52ceece2ed57dad87319d91b5e3637d50afa4 000033b4: AND 000033b5: SWAP2 000033b6: PUSH4 0x9dc29fac 000033bb: SWAP2 000033bc: PUSH1 0x44 000033be: DUP1 000033bf: DUP4 000033c0: ADD 000033c1: SWAP3 000033c2: PUSH1 0x00 000033c4: SWAP3 000033c5: SWAP2 000033c6: SWAP1 000033c7: DUP3 000033c8: SWAP1 000033c9: SUB 000033ca: ADD 000033cb: DUP2 000033cc: DUP4 000033cd: DUP8 000033ce: DUP1 000033cf: EXTCODESIZE 000033d0: ISZERO 000033d1: DUP1 000033d2: ISZERO 000033d3: PUSH2 0x33db 000033d6: JUMPI 000033d7: PUSH1 0x00 000033d9: DUP1 000033da: REVERT 000033db: JUMPDEST 000033dc: POP 000033dd: GAS 000033de: CALL 000033df: ISZERO 000033e0: DUP1 000033e1: ISZERO 000033e2: PUSH2 0x33ef 000033e5: JUMPI 000033e6: RETURNDATASIZE 000033e7: PUSH1 0x00 000033e9: DUP1 000033ea: RETURNDATACOPY 000033eb: RETURNDATASIZE 000033ec: PUSH1 0x00 000033ee: REVERT 000033ef: JUMPDEST 000033f0: POP 000033f1: POP 000033f2: POP 000033f3: POP 000033f4: POP 000033f5: POP 000033f6: POP 000033f7: JUMP 000033f8: JUMPDEST 000033f9: PUSH1 0x40 000033fb: DUP1 000033fc: MLOAD 000033fd: PUSH1 0x00 000033ff: DUP1 00003400: DUP3 00003401: MSTORE 00003402: PUSH1 0x20 00003404: DUP3 00003405: ADD 00003406: SWAP1 00003407: SWAP3 00003408: MSTORE 00003409: PUSH1 0x01 0000340b: PUSH1 0x01 0000340d: PUSH1 0xa0 0000340f: SHL 00003410: SUB 00003411: DUP5 00003412: AND 00003413: SWAP1 00003414: DUP4 00003415: SWAP1 00003416: PUSH1 0x40 00003418: MLOAD 00003419: DUP1 0000341a: DUP3 0000341b: DUP1 0000341c: MLOAD 0000341d: SWAP1 0000341e: PUSH1 0x20 00003420: ADD 00003421: SWAP1 00003422: DUP1 00003423: DUP4 00003424: DUP4 00003425: JUMPDEST 00003426: PUSH1 0x20 00003428: DUP4 00003429: LT 0000342a: PUSH2 0x3444 0000342d: JUMPI 0000342e: DUP1 0000342f: MLOAD 00003430: DUP3 00003431: MSTORE 00003432: PUSH1 0x1f 00003434: NOT 00003435: SWAP1 00003436: SWAP3 00003437: ADD 00003438: SWAP2 00003439: PUSH1 0x20 0000343b: SWAP2 0000343c: DUP3 0000343d: ADD 0000343e: SWAP2 0000343f: ADD 00003440: PUSH2 0x3425 00003443: JUMP 00003444: JUMPDEST 00003445: PUSH1 0x01 00003447: DUP4 00003448: PUSH1 0x20 0000344a: SUB 0000344b: PUSH2 0x0100 0000344e: EXP 0000344f: SUB 00003450: DUP1 00003451: NOT 00003452: DUP3 00003453: MLOAD 00003454: AND 00003455: DUP2 00003456: DUP5 00003457: MLOAD 00003458: AND 00003459: DUP1 0000345a: DUP3 0000345b: OR 0000345c: DUP6 0000345d: MSTORE 0000345e: POP 0000345f: POP 00003460: POP 00003461: POP 00003462: POP 00003463: POP 00003464: SWAP1 00003465: POP 00003466: ADD 00003467: SWAP2 00003468: POP 00003469: POP 0000346a: PUSH1 0x00 0000346c: PUSH1 0x40 0000346e: MLOAD 0000346f: DUP1 00003470: DUP4 00003471: SUB 00003472: DUP2 00003473: DUP6 00003474: DUP8 00003475: GAS 00003476: CALL 00003477: SWAP3 00003478: POP 00003479: POP 0000347a: POP 0000347b: RETURNDATASIZE 0000347c: DUP1 0000347d: PUSH1 0x00 0000347f: DUP2 00003480: EQ 00003481: PUSH2 0x34a6 00003484: JUMPI 00003485: PUSH1 0x40 00003487: MLOAD 00003488: SWAP2 00003489: POP 0000348a: PUSH1 0x1f 0000348c: NOT 0000348d: PUSH1 0x3f 0000348f: RETURNDATASIZE 00003490: ADD 00003491: AND 00003492: DUP3 00003493: ADD 00003494: PUSH1 0x40 00003496: MSTORE 00003497: RETURNDATASIZE 00003498: DUP3 00003499: MSTORE 0000349a: RETURNDATASIZE 0000349b: PUSH1 0x00 0000349d: PUSH1 0x20 0000349f: DUP5 000034a0: ADD 000034a1: RETURNDATACOPY 000034a2: PUSH2 0x34ab 000034a5: JUMP 000034a6: JUMPDEST 000034a7: PUSH1 0x60 000034a9: SWAP2 000034aa: POP 000034ab: JUMPDEST 000034ac: POP 000034ad: POP 000034ae: SWAP1 000034af: POP 000034b0: DUP1 000034b1: PUSH2 0x34eb 000034b4: JUMPI 000034b5: PUSH1 0x40 000034b7: MLOAD 000034b8: PUSH3 0x461bcd 000034bc: PUSH1 0xe5 000034be: SHL 000034bf: DUP2 000034c0: MSTORE 000034c1: PUSH1 0x04 000034c3: ADD 000034c4: DUP1 000034c5: DUP1 000034c6: PUSH1 0x20 000034c8: ADD 000034c9: DUP3 000034ca: DUP2 000034cb: SUB 000034cc: DUP3 000034cd: MSTORE 000034ce: PUSH1 0x35 000034d0: DUP2 000034d1: MSTORE 000034d2: PUSH1 0x20 000034d4: ADD 000034d5: DUP1 000034d6: PUSH2 0x41e7 000034d9: PUSH1 0x35 000034db: SWAP2 000034dc: CODECOPY 000034dd: PUSH1 0x40 000034df: ADD 000034e0: SWAP2 000034e1: POP 000034e2: POP 000034e3: PUSH1 0x40 000034e5: MLOAD 000034e6: DUP1 000034e7: SWAP2 000034e8: SUB 000034e9: SWAP1 000034ea: REVERT 000034eb: JUMPDEST 000034ec: POP 000034ed: POP 000034ee: POP 000034ef: JUMP 000034f0: JUMPDEST 000034f1: SLOAD 000034f2: SWAP1 000034f3: JUMP 000034f4: JUMPDEST 000034f5: PUSH1 0x00 000034f7: DUP1 000034f8: DUP3 000034f9: SLT 000034fa: ISZERO 000034fb: PUSH2 0x354b 000034fe: JUMPI 000034ff: PUSH1 0x40 00003501: DUP1 00003502: MLOAD 00003503: PUSH3 0x461bcd 00003507: PUSH1 0xe5 00003509: SHL 0000350a: DUP2 0000350b: MSTORE 0000350c: PUSH1 0x20 0000350e: PUSH1 0x04 00003510: DUP3 00003511: ADD 00003512: DUP2 00003513: SWAP1 00003514: MSTORE 00003515: PUSH1 0x24 00003517: DUP3 00003518: ADD 00003519: MSTORE 0000351a: PUSH32 0x53616665436173743a2076616c7565206d75737420626520706f736974697665 0000353b: PUSH1 0x44 0000353d: DUP3 0000353e: ADD 0000353f: MSTORE 00003540: SWAP1 00003541: MLOAD 00003542: SWAP1 00003543: DUP2 00003544: SWAP1 00003545: SUB 00003546: PUSH1 0x64 00003548: ADD 00003549: SWAP1 0000354a: REVERT 0000354b: JUMPDEST 0000354c: POP 0000354d: SWAP1 0000354e: JUMP 0000354f: JUMPDEST 00003550: PUSH1 0x03 00003552: SLOAD 00003553: PUSH1 0xff 00003555: AND 00003556: ISZERO 00003557: PUSH2 0x359a 0000355a: JUMPI 0000355b: PUSH1 0x40 0000355d: DUP1 0000355e: MLOAD 0000355f: PUSH3 0x461bcd 00003563: PUSH1 0xe5 00003565: SHL 00003566: DUP2 00003567: MSTORE 00003568: PUSH1 0x20 0000356a: PUSH1 0x04 0000356c: DUP3 0000356d: ADD 0000356e: MSTORE 0000356f: PUSH1 0x10 00003571: PUSH1 0x24 00003573: DUP3 00003574: ADD 00003575: MSTORE 00003576: PUSH16 0x14185d5cd8589b194e881c185d5cd959 00003587: PUSH1 0x82 00003589: SHL 0000358a: PUSH1 0x44 0000358c: DUP3 0000358d: ADD 0000358e: MSTORE 0000358f: SWAP1 00003590: MLOAD 00003591: SWAP1 00003592: DUP2 00003593: SWAP1 00003594: SUB 00003595: PUSH1 0x64 00003597: ADD 00003598: SWAP1 00003599: REVERT 0000359a: JUMPDEST 0000359b: PUSH1 0x03 0000359d: DUP1 0000359e: SLOAD 0000359f: PUSH1 0xff 000035a1: NOT 000035a2: AND 000035a3: PUSH1 0x01 000035a5: OR 000035a6: SWAP1 000035a7: SSTORE 000035a8: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258 000035c9: PUSH2 0x32eb 000035cc: PUSH2 0x3152 000035cf: JUMP 000035d0: JUMPDEST 000035d1: PUSH1 0x40 000035d3: DUP1 000035d4: MLOAD 000035d5: PUSH1 0x01 000035d7: PUSH1 0x01 000035d9: PUSH1 0xa0 000035db: SHL 000035dc: SUB 000035dd: DUP5 000035de: AND 000035df: PUSH1 0x24 000035e1: DUP3 000035e2: ADD 000035e3: MSTORE 000035e4: PUSH1 0x44 000035e6: DUP1 000035e7: DUP3 000035e8: ADD 000035e9: DUP5 000035ea: SWAP1 000035eb: MSTORE 000035ec: DUP3 000035ed: MLOAD 000035ee: DUP1 000035ef: DUP4 000035f0: SUB 000035f1: SWAP1 000035f2: SWAP2 000035f3: ADD 000035f4: DUP2 000035f5: MSTORE 000035f6: PUSH1 0x64 000035f8: SWAP1 000035f9: SWAP2 000035fa: ADD 000035fb: SWAP1 000035fc: SWAP2 000035fd: MSTORE 000035fe: PUSH1 0x20 00003600: DUP2 00003601: ADD 00003602: DUP1 00003603: MLOAD 00003604: PUSH1 0x01 00003606: PUSH1 0x01 00003608: PUSH1 0xe0 0000360a: SHL 0000360b: SUB 0000360c: AND 0000360d: PUSH4 0xa9059cbb 00003612: PUSH1 0xe0 00003614: SHL 00003615: OR 00003616: SWAP1 00003617: MSTORE 00003618: PUSH2 0x34eb 0000361b: SWAP1 0000361c: DUP5 0000361d: SWAP1 0000361e: PUSH2 0x3802 00003621: JUMP 00003622: JUMPDEST 00003623: PUSH1 0x00 00003625: PUSH2 0x1dae 00003628: DUP4 00003629: DUP4 0000362a: PUSH2 0x38b3 0000362d: JUMP 0000362e: JUMPDEST 0000362f: PUSH1 0x00 00003631: PUSH2 0x1dae 00003634: DUP4 00003635: PUSH1 0x01 00003637: PUSH1 0x01 00003639: PUSH1 0xa0 0000363b: SHL 0000363c: SUB 0000363d: DUP5 0000363e: AND 0000363f: PUSH2 0x3917 00003642: JUMP 00003643: JUMPDEST 00003644: PUSH1 0x00 00003646: PUSH2 0x0b44 00003649: DUP3 0000364a: PUSH2 0x34f0 0000364d: JUMP 0000364e: JUMPDEST 0000364f: PUSH1 0x00 00003651: PUSH2 0x3661 00003654: DUP3 00003655: PUSH4 0x01ffc9a7 0000365a: PUSH1 0xe0 0000365c: SHL 0000365d: PUSH2 0x3681 00003660: JUMP 00003661: JUMPDEST 00003662: DUP1 00003663: ISZERO 00003664: PUSH2 0x0b44 00003667: JUMPI 00003668: POP 00003669: PUSH2 0x367a 0000366c: DUP3 0000366d: PUSH1 0x01 0000366f: PUSH1 0x01 00003671: PUSH1 0xe0 00003673: SHL 00003674: SUB 00003675: NOT 00003676: PUSH2 0x3681 00003679: JUMP 0000367a: JUMPDEST 0000367b: ISZERO 0000367c: SWAP3 0000367d: SWAP2 0000367e: POP 0000367f: POP 00003680: JUMP 00003681: JUMPDEST 00003682: PUSH1 0x00 00003684: DUP1 00003685: PUSH1 0x00 00003687: PUSH2 0x3690 0000368a: DUP6 0000368b: DUP6 0000368c: PUSH2 0x392f 0000368f: JUMP 00003690: JUMPDEST 00003691: SWAP2 00003692: POP 00003693: SWAP2 00003694: POP 00003695: DUP2 00003696: DUP1 00003697: ISZERO 00003698: PUSH2 0x369e 0000369b: JUMPI 0000369c: POP 0000369d: DUP1 0000369e: JUMPDEST 0000369f: SWAP6 000036a0: SWAP5 000036a1: POP 000036a2: POP 000036a3: POP 000036a4: POP 000036a5: POP 000036a6: JUMP 000036a7: JUMPDEST 000036a8: PUSH1 0x00 000036aa: PUSH2 0x36b3 000036ad: DUP4 000036ae: DUP4 000036af: PUSH2 0x3917 000036b2: JUMP 000036b3: JUMPDEST 000036b4: PUSH2 0x36e9 000036b7: JUMPI 000036b8: POP 000036b9: DUP2 000036ba: SLOAD 000036bb: PUSH1 0x01 000036bd: DUP2 000036be: DUP2 000036bf: ADD 000036c0: DUP5 000036c1: SSTORE 000036c2: PUSH1 0x00 000036c4: DUP5 000036c5: DUP2 000036c6: MSTORE 000036c7: PUSH1 0x20 000036c9: DUP1 000036ca: DUP3 000036cb: KECCAK256 000036cc: SWAP1 000036cd: SWAP4 000036ce: ADD 000036cf: DUP5 000036d0: SWAP1 000036d1: SSTORE 000036d2: DUP5 000036d3: SLOAD 000036d4: DUP5 000036d5: DUP3 000036d6: MSTORE 000036d7: DUP3 000036d8: DUP7 000036d9: ADD 000036da: SWAP1 000036db: SWAP4 000036dc: MSTORE 000036dd: PUSH1 0x40 000036df: SWAP1 000036e0: KECCAK256 000036e1: SWAP2 000036e2: SWAP1 000036e3: SWAP2 000036e4: SSTORE 000036e5: PUSH2 0x0b44 000036e8: JUMP 000036e9: JUMPDEST 000036ea: POP 000036eb: PUSH1 0x00 000036ed: PUSH2 0x0b44 000036f0: JUMP 000036f1: JUMPDEST 000036f2: PUSH1 0x00 000036f4: DUP2 000036f5: DUP4 000036f6: PUSH2 0x377d 000036f9: JUMPI 000036fa: PUSH1 0x40 000036fc: MLOAD 000036fd: PUSH3 0x461bcd 00003701: PUSH1 0xe5 00003703: SHL 00003704: DUP2 00003705: MSTORE 00003706: PUSH1 0x04 00003708: ADD 00003709: DUP1 0000370a: DUP1 0000370b: PUSH1 0x20 0000370d: ADD 0000370e: DUP3 0000370f: DUP2 00003710: SUB 00003711: DUP3 00003712: MSTORE 00003713: DUP4 00003714: DUP2 00003715: DUP2 00003716: MLOAD 00003717: DUP2 00003718: MSTORE 00003719: PUSH1 0x20 0000371b: ADD 0000371c: SWAP2 0000371d: POP 0000371e: DUP1 0000371f: MLOAD 00003720: SWAP1 00003721: PUSH1 0x20 00003723: ADD 00003724: SWAP1 00003725: DUP1 00003726: DUP4 00003727: DUP4 00003728: PUSH1 0x00 0000372a: JUMPDEST 0000372b: DUP4 0000372c: DUP2 0000372d: LT 0000372e: ISZERO 0000372f: PUSH2 0x3742 00003732: JUMPI 00003733: DUP2 00003734: DUP2 00003735: ADD 00003736: MLOAD 00003737: DUP4 00003738: DUP3 00003739: ADD 0000373a: MSTORE 0000373b: PUSH1 0x20 0000373d: ADD 0000373e: PUSH2 0x372a 00003741: JUMP 00003742: JUMPDEST 00003743: POP 00003744: POP 00003745: POP 00003746: POP 00003747: SWAP1 00003748: POP 00003749: SWAP1 0000374a: DUP2 0000374b: ADD 0000374c: SWAP1 0000374d: PUSH1 0x1f 0000374f: AND 00003750: DUP1 00003751: ISZERO 00003752: PUSH2 0x376f 00003755: JUMPI 00003756: DUP1 00003757: DUP3 00003758: SUB 00003759: DUP1 0000375a: MLOAD 0000375b: PUSH1 0x01 0000375d: DUP4 0000375e: PUSH1 0x20 00003760: SUB 00003761: PUSH2 0x0100 00003764: EXP 00003765: SUB 00003766: NOT 00003767: AND 00003768: DUP2 00003769: MSTORE 0000376a: PUSH1 0x20 0000376c: ADD 0000376d: SWAP2 0000376e: POP 0000376f: JUMPDEST 00003770: POP 00003771: SWAP3 00003772: POP 00003773: POP 00003774: POP 00003775: PUSH1 0x40 00003777: MLOAD 00003778: DUP1 00003779: SWAP2 0000377a: SUB 0000377b: SWAP1 0000377c: REVERT 0000377d: JUMPDEST 0000377e: POP 0000377f: PUSH1 0x00 00003781: DUP4 00003782: DUP6 00003783: DUP2 00003784: PUSH2 0x3789 00003787: JUMPI 00003788: INVALID 00003789: JUMPDEST 0000378a: DIV 0000378b: SWAP6 0000378c: SWAP5 0000378d: POP 0000378e: POP 0000378f: POP 00003790: POP 00003791: POP 00003792: JUMP 00003793: JUMPDEST 00003794: PUSH1 0x00 00003796: DUP2 00003797: DUP5 00003798: DUP5 00003799: GT 0000379a: ISZERO 0000379b: PUSH2 0x37e5 0000379e: JUMPI 0000379f: PUSH1 0x40 000037a1: MLOAD 000037a2: PUSH3 0x461bcd 000037a6: PUSH1 0xe5 000037a8: SHL 000037a9: DUP2 000037aa: MSTORE 000037ab: PUSH1 0x20 000037ad: PUSH1 0x04 000037af: DUP3 000037b0: ADD 000037b1: DUP2 000037b2: DUP2 000037b3: MSTORE 000037b4: DUP4 000037b5: MLOAD 000037b6: PUSH1 0x24 000037b8: DUP5 000037b9: ADD 000037ba: MSTORE 000037bb: DUP4 000037bc: MLOAD 000037bd: SWAP1 000037be: SWAP3 000037bf: DUP4 000037c0: SWAP3 000037c1: PUSH1 0x44 000037c3: SWAP1 000037c4: SWAP2 000037c5: ADD 000037c6: SWAP2 000037c7: SWAP1 000037c8: DUP6 000037c9: ADD 000037ca: SWAP1 000037cb: DUP1 000037cc: DUP4 000037cd: DUP4 000037ce: PUSH1 0x00 000037d0: DUP4 000037d1: ISZERO 000037d2: PUSH2 0x3742 000037d5: JUMPI 000037d6: DUP2 000037d7: DUP2 000037d8: ADD 000037d9: MLOAD 000037da: DUP4 000037db: DUP3 000037dc: ADD 000037dd: MSTORE 000037de: PUSH1 0x20 000037e0: ADD 000037e1: PUSH2 0x372a 000037e4: JUMP 000037e5: JUMPDEST 000037e6: POP 000037e7: POP 000037e8: POP 000037e9: SWAP1 000037ea: SUB 000037eb: SWAP1 000037ec: JUMP 000037ed: JUMPDEST 000037ee: PUSH1 0x00 000037f0: PUSH2 0x1dae 000037f3: DUP4 000037f4: PUSH1 0x01 000037f6: PUSH1 0x01 000037f8: PUSH1 0xa0 000037fa: SHL 000037fb: SUB 000037fc: DUP5 000037fd: AND 000037fe: PUSH2 0x3a63 00003801: JUMP 00003802: JUMPDEST 00003803: PUSH1 0x60 00003805: PUSH2 0x3857 00003808: DUP3 00003809: PUSH1 0x40 0000380b: MLOAD 0000380c: DUP1 0000380d: PUSH1 0x40 0000380f: ADD 00003810: PUSH1 0x40 00003812: MSTORE 00003813: DUP1 00003814: PUSH1 0x20 00003816: DUP2 00003817: MSTORE 00003818: PUSH1 0x20 0000381a: ADD 0000381b: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 0000383c: DUP2 0000383d: MSTORE 0000383e: POP 0000383f: DUP6 00003840: PUSH1 0x01 00003842: PUSH1 0x01 00003844: PUSH1 0xa0 00003846: SHL 00003847: SUB 00003848: AND 00003849: PUSH2 0x3b29 0000384c: SWAP1 0000384d: SWAP3 0000384e: SWAP2 0000384f: SWAP1 00003850: PUSH4 0xffffffff 00003855: AND 00003856: JUMP 00003857: JUMPDEST 00003858: DUP1 00003859: MLOAD 0000385a: SWAP1 0000385b: SWAP2 0000385c: POP 0000385d: ISZERO 0000385e: PUSH2 0x34eb 00003861: JUMPI 00003862: DUP1 00003863: DUP1 00003864: PUSH1 0x20 00003866: ADD 00003867: SWAP1 00003868: MLOAD 00003869: PUSH1 0x20 0000386b: DUP2 0000386c: LT 0000386d: ISZERO 0000386e: PUSH2 0x3876 00003871: JUMPI 00003872: PUSH1 0x00 00003874: DUP1 00003875: REVERT 00003876: JUMPDEST 00003877: POP 00003878: MLOAD 00003879: PUSH2 0x34eb 0000387c: JUMPI 0000387d: PUSH1 0x40 0000387f: MLOAD 00003880: PUSH3 0x461bcd 00003884: PUSH1 0xe5 00003886: SHL 00003887: DUP2 00003888: MSTORE 00003889: PUSH1 0x04 0000388b: ADD 0000388c: DUP1 0000388d: DUP1 0000388e: PUSH1 0x20 00003890: ADD 00003891: DUP3 00003892: DUP2 00003893: SUB 00003894: DUP3 00003895: MSTORE 00003896: PUSH1 0x2a 00003898: DUP2 00003899: MSTORE 0000389a: PUSH1 0x20 0000389c: ADD 0000389d: DUP1 0000389e: PUSH2 0x4361 000038a1: PUSH1 0x2a 000038a3: SWAP2 000038a4: CODECOPY 000038a5: PUSH1 0x40 000038a7: ADD 000038a8: SWAP2 000038a9: POP 000038aa: POP 000038ab: PUSH1 0x40 000038ad: MLOAD 000038ae: DUP1 000038af: SWAP2 000038b0: SUB 000038b1: SWAP1 000038b2: REVERT 000038b3: JUMPDEST 000038b4: DUP2 000038b5: SLOAD 000038b6: PUSH1 0x00 000038b8: SWAP1 000038b9: DUP3 000038ba: LT 000038bb: PUSH2 0x38f5 000038be: JUMPI 000038bf: PUSH1 0x40 000038c1: MLOAD 000038c2: PUSH3 0x461bcd 000038c6: PUSH1 0xe5 000038c8: SHL 000038c9: DUP2 000038ca: MSTORE 000038cb: PUSH1 0x04 000038cd: ADD 000038ce: DUP1 000038cf: DUP1 000038d0: PUSH1 0x20 000038d2: ADD 000038d3: DUP3 000038d4: DUP2 000038d5: SUB 000038d6: DUP3 000038d7: MSTORE 000038d8: PUSH1 0x22 000038da: DUP2 000038db: MSTORE 000038dc: PUSH1 0x20 000038de: ADD 000038df: DUP1 000038e0: PUSH2 0x3d6a 000038e3: PUSH1 0x22 000038e5: SWAP2 000038e6: CODECOPY 000038e7: PUSH1 0x40 000038e9: ADD 000038ea: SWAP2 000038eb: POP 000038ec: POP 000038ed: PUSH1 0x40 000038ef: MLOAD 000038f0: DUP1 000038f1: SWAP2 000038f2: SUB 000038f3: SWAP1 000038f4: REVERT 000038f5: JUMPDEST 000038f6: DUP3 000038f7: PUSH1 0x00 000038f9: ADD 000038fa: DUP3 000038fb: DUP2 000038fc: SLOAD 000038fd: DUP2 000038fe: LT 000038ff: PUSH2 0x3904 00003902: JUMPI 00003903: INVALID 00003904: JUMPDEST 00003905: SWAP1 00003906: PUSH1 0x00 00003908: MSTORE 00003909: PUSH1 0x20 0000390b: PUSH1 0x00 0000390d: KECCAK256 0000390e: ADD 0000390f: SLOAD 00003910: SWAP1 00003911: POP 00003912: SWAP3 00003913: SWAP2 00003914: POP 00003915: POP 00003916: JUMP 00003917: JUMPDEST 00003918: PUSH1 0x00 0000391a: SWAP1 0000391b: DUP2 0000391c: MSTORE 0000391d: PUSH1 0x01 0000391f: SWAP2 00003920: SWAP1 00003921: SWAP2 00003922: ADD 00003923: PUSH1 0x20 00003925: MSTORE 00003926: PUSH1 0x40 00003928: SWAP1 00003929: KECCAK256 0000392a: SLOAD 0000392b: ISZERO 0000392c: ISZERO 0000392d: SWAP1 0000392e: JUMP 0000392f: JUMPDEST 00003930: PUSH1 0x40 00003932: DUP1 00003933: MLOAD 00003934: PUSH1 0x01 00003936: PUSH1 0x01 00003938: PUSH1 0xe0 0000393a: SHL 0000393b: SUB 0000393c: NOT 0000393d: DUP4 0000393e: AND 0000393f: PUSH1 0x24 00003941: DUP1 00003942: DUP4 00003943: ADD 00003944: SWAP2 00003945: SWAP1 00003946: SWAP2 00003947: MSTORE 00003948: DUP3 00003949: MLOAD 0000394a: DUP1 0000394b: DUP4 0000394c: SUB 0000394d: SWAP1 0000394e: SWAP2 0000394f: ADD 00003950: DUP2 00003951: MSTORE 00003952: PUSH1 0x44 00003954: SWAP1 00003955: SWAP2 00003956: ADD 00003957: DUP3 00003958: MSTORE 00003959: PUSH1 0x20 0000395b: DUP2 0000395c: ADD 0000395d: DUP1 0000395e: MLOAD 0000395f: PUSH1 0x01 00003961: PUSH1 0x01 00003963: PUSH1 0xe0 00003965: SHL 00003966: SUB 00003967: AND 00003968: PUSH4 0x01ffc9a7 0000396d: PUSH1 0xe0 0000396f: SHL 00003970: OR 00003971: DUP2 00003972: MSTORE 00003973: SWAP2 00003974: MLOAD 00003975: DUP2 00003976: MLOAD 00003977: PUSH1 0x00 00003979: SWAP4 0000397a: DUP5 0000397b: SWAP4 0000397c: SWAP3 0000397d: DUP5 0000397e: SWAP3 0000397f: PUSH1 0x60 00003981: SWAP3 00003982: PUSH1 0x01 00003984: PUSH1 0x01 00003986: PUSH1 0xa0 00003988: SHL 00003989: SUB 0000398a: DUP11 0000398b: AND 0000398c: SWAP3 0000398d: PUSH2 0x7530 00003990: SWAP3 00003991: DUP8 00003992: SWAP3 00003993: DUP3 00003994: SWAP2 00003995: DUP1 00003996: DUP4 00003997: DUP4 00003998: JUMPDEST 00003999: PUSH1 0x20 0000399b: DUP4 0000399c: LT 0000399d: PUSH2 0x39b7 000039a0: JUMPI 000039a1: DUP1 000039a2: MLOAD 000039a3: DUP3 000039a4: MSTORE 000039a5: PUSH1 0x1f 000039a7: NOT 000039a8: SWAP1 000039a9: SWAP3 000039aa: ADD 000039ab: SWAP2 000039ac: PUSH1 0x20 000039ae: SWAP2 000039af: DUP3 000039b0: ADD 000039b1: SWAP2 000039b2: ADD 000039b3: PUSH2 0x3998 000039b6: JUMP 000039b7: JUMPDEST 000039b8: PUSH1 0x01 000039ba: DUP4 000039bb: PUSH1 0x20 000039bd: SUB 000039be: PUSH2 0x0100 000039c1: EXP 000039c2: SUB 000039c3: DUP1 000039c4: NOT 000039c5: DUP3 000039c6: MLOAD 000039c7: AND 000039c8: DUP2 000039c9: DUP5 000039ca: MLOAD 000039cb: AND 000039cc: DUP1 000039cd: DUP3 000039ce: OR 000039cf: DUP6 000039d0: MSTORE 000039d1: POP 000039d2: POP 000039d3: POP 000039d4: POP 000039d5: POP 000039d6: POP 000039d7: SWAP1 000039d8: POP 000039d9: ADD 000039da: SWAP2 000039db: POP 000039dc: POP 000039dd: PUSH1 0x00 000039df: PUSH1 0x40 000039e1: MLOAD 000039e2: DUP1 000039e3: DUP4 000039e4: SUB 000039e5: DUP2 000039e6: DUP7 000039e7: DUP7 000039e8: STATICCALL 000039e9: SWAP3 000039ea: POP 000039eb: POP 000039ec: POP 000039ed: RETURNDATASIZE 000039ee: DUP1 000039ef: PUSH1 0x00 000039f1: DUP2 000039f2: EQ 000039f3: PUSH2 0x3a18 000039f6: JUMPI 000039f7: PUSH1 0x40 000039f9: MLOAD 000039fa: SWAP2 000039fb: POP 000039fc: PUSH1 0x1f 000039fe: NOT 000039ff: PUSH1 0x3f 00003a01: RETURNDATASIZE 00003a02: ADD 00003a03: AND 00003a04: DUP3 00003a05: ADD 00003a06: PUSH1 0x40 00003a08: MSTORE 00003a09: RETURNDATASIZE 00003a0a: DUP3 00003a0b: MSTORE 00003a0c: RETURNDATASIZE 00003a0d: PUSH1 0x00 00003a0f: PUSH1 0x20 00003a11: DUP5 00003a12: ADD 00003a13: RETURNDATACOPY 00003a14: PUSH2 0x3a1d 00003a17: JUMP 00003a18: JUMPDEST 00003a19: PUSH1 0x60 00003a1b: SWAP2 00003a1c: POP 00003a1d: JUMPDEST 00003a1e: POP 00003a1f: SWAP2 00003a20: POP 00003a21: SWAP2 00003a22: POP 00003a23: PUSH1 0x20 00003a25: DUP2 00003a26: MLOAD 00003a27: LT 00003a28: ISZERO 00003a29: PUSH2 0x3a3b 00003a2c: JUMPI 00003a2d: PUSH1 0x00 00003a2f: DUP1 00003a30: SWAP5 00003a31: POP 00003a32: SWAP5 00003a33: POP 00003a34: POP 00003a35: POP 00003a36: POP 00003a37: PUSH2 0x3a5c 00003a3a: JUMP 00003a3b: JUMPDEST 00003a3c: DUP2 00003a3d: DUP2 00003a3e: DUP1 00003a3f: PUSH1 0x20 00003a41: ADD 00003a42: SWAP1 00003a43: MLOAD 00003a44: PUSH1 0x20 00003a46: DUP2 00003a47: LT 00003a48: ISZERO 00003a49: PUSH2 0x3a51 00003a4c: JUMPI 00003a4d: PUSH1 0x00 00003a4f: DUP1 00003a50: REVERT 00003a51: JUMPDEST 00003a52: POP 00003a53: MLOAD 00003a54: SWAP1 00003a55: SWAP6 00003a56: POP 00003a57: SWAP4 00003a58: POP 00003a59: POP 00003a5a: POP 00003a5b: POP 00003a5c: JUMPDEST 00003a5d: SWAP3 00003a5e: POP 00003a5f: SWAP3 00003a60: SWAP1 00003a61: POP 00003a62: JUMP 00003a63: JUMPDEST 00003a64: PUSH1 0x00 00003a66: DUP2 00003a67: DUP2 00003a68: MSTORE 00003a69: PUSH1 0x01 00003a6b: DUP4 00003a6c: ADD 00003a6d: PUSH1 0x20 00003a6f: MSTORE 00003a70: PUSH1 0x40 00003a72: DUP2 00003a73: KECCAK256 00003a74: SLOAD 00003a75: DUP1 00003a76: ISZERO 00003a77: PUSH2 0x3b1f 00003a7a: JUMPI 00003a7b: DUP4 00003a7c: SLOAD 00003a7d: PUSH1 0x00 00003a7f: NOT 00003a80: DUP1 00003a81: DUP4 00003a82: ADD 00003a83: SWAP2 00003a84: SWAP1 00003a85: DUP2 00003a86: ADD 00003a87: SWAP1 00003a88: PUSH1 0x00 00003a8a: SWAP1 00003a8b: DUP8 00003a8c: SWAP1 00003a8d: DUP4 00003a8e: SWAP1 00003a8f: DUP2 00003a90: LT 00003a91: PUSH2 0x3a96 00003a94: JUMPI 00003a95: INVALID 00003a96: JUMPDEST 00003a97: SWAP1 00003a98: PUSH1 0x00 00003a9a: MSTORE 00003a9b: PUSH1 0x20 00003a9d: PUSH1 0x00 00003a9f: KECCAK256 00003aa0: ADD 00003aa1: SLOAD 00003aa2: SWAP1 00003aa3: POP 00003aa4: DUP1 00003aa5: DUP8 00003aa6: PUSH1 0x00 00003aa8: ADD 00003aa9: DUP5 00003aaa: DUP2 00003aab: SLOAD 00003aac: DUP2 00003aad: LT 00003aae: PUSH2 0x3ab3 00003ab1: JUMPI 00003ab2: INVALID 00003ab3: JUMPDEST 00003ab4: PUSH1 0x00 00003ab6: SWAP2 00003ab7: DUP3 00003ab8: MSTORE 00003ab9: PUSH1 0x20 00003abb: DUP1 00003abc: DUP4 00003abd: KECCAK256 00003abe: SWAP1 00003abf: SWAP2 00003ac0: ADD 00003ac1: SWAP3 00003ac2: SWAP1 00003ac3: SWAP3 00003ac4: SSTORE 00003ac5: DUP3 00003ac6: DUP2 00003ac7: MSTORE 00003ac8: PUSH1 0x01 00003aca: DUP10 00003acb: DUP2 00003acc: ADD 00003acd: SWAP1 00003ace: SWAP3 00003acf: MSTORE 00003ad0: PUSH1 0x40 00003ad2: SWAP1 00003ad3: KECCAK256 00003ad4: SWAP1 00003ad5: DUP5 00003ad6: ADD 00003ad7: SWAP1 00003ad8: SSTORE 00003ad9: DUP7 00003ada: SLOAD 00003adb: DUP8 00003adc: SWAP1 00003add: DUP1 00003ade: PUSH2 0x3ae3 00003ae1: JUMPI 00003ae2: INVALID 00003ae3: JUMPDEST 00003ae4: PUSH1 0x01 00003ae6: SWAP1 00003ae7: SUB 00003ae8: DUP2 00003ae9: DUP2 00003aea: SWAP1 00003aeb: PUSH1 0x00 00003aed: MSTORE 00003aee: PUSH1 0x20 00003af0: PUSH1 0x00 00003af2: KECCAK256 00003af3: ADD 00003af4: PUSH1 0x00 00003af6: SWAP1 00003af7: SSTORE 00003af8: SWAP1 00003af9: SSTORE 00003afa: DUP7 00003afb: PUSH1 0x01 00003afd: ADD 00003afe: PUSH1 0x00 00003b00: DUP8 00003b01: DUP2 00003b02: MSTORE 00003b03: PUSH1 0x20 00003b05: ADD 00003b06: SWAP1 00003b07: DUP2 00003b08: MSTORE 00003b09: PUSH1 0x20 00003b0b: ADD 00003b0c: PUSH1 0x00 00003b0e: KECCAK256 00003b0f: PUSH1 0x00 00003b11: SWAP1 00003b12: SSTORE 00003b13: PUSH1 0x01 00003b15: SWAP5 00003b16: POP 00003b17: POP 00003b18: POP 00003b19: POP 00003b1a: POP 00003b1b: PUSH2 0x0b44 00003b1e: JUMP 00003b1f: JUMPDEST 00003b20: PUSH1 0x00 00003b22: SWAP2 00003b23: POP 00003b24: POP 00003b25: PUSH2 0x0b44 00003b28: JUMP 00003b29: JUMPDEST 00003b2a: PUSH1 0x60 00003b2c: PUSH2 0x3b38 00003b2f: DUP5 00003b30: DUP5 00003b31: PUSH1 0x00 00003b33: DUP6 00003b34: PUSH2 0x3b40 00003b37: JUMP 00003b38: JUMPDEST 00003b39: SWAP5 00003b3a: SWAP4 00003b3b: POP 00003b3c: POP 00003b3d: POP 00003b3e: POP 00003b3f: JUMP 00003b40: JUMPDEST 00003b41: PUSH1 0x60 00003b43: DUP3 00003b44: SELFBALANCE 00003b45: LT 00003b46: ISZERO 00003b47: PUSH2 0x3b81 00003b4a: JUMPI 00003b4b: PUSH1 0x40 00003b4d: MLOAD 00003b4e: PUSH3 0x461bcd 00003b52: PUSH1 0xe5 00003b54: SHL 00003b55: DUP2 00003b56: MSTORE 00003b57: PUSH1 0x04 00003b59: ADD 00003b5a: DUP1 00003b5b: DUP1 00003b5c: PUSH1 0x20 00003b5e: ADD 00003b5f: DUP3 00003b60: DUP2 00003b61: SUB 00003b62: DUP3 00003b63: MSTORE 00003b64: PUSH1 0x26 00003b66: DUP2 00003b67: MSTORE 00003b68: PUSH1 0x20 00003b6a: ADD 00003b6b: DUP1 00003b6c: PUSH2 0x3ffd 00003b6f: PUSH1 0x26 00003b71: SWAP2 00003b72: CODECOPY 00003b73: PUSH1 0x40 00003b75: ADD 00003b76: SWAP2 00003b77: POP 00003b78: POP 00003b79: PUSH1 0x40 00003b7b: MLOAD 00003b7c: DUP1 00003b7d: SWAP2 00003b7e: SUB 00003b7f: SWAP1 00003b80: REVERT 00003b81: JUMPDEST 00003b82: PUSH2 0x3b8a 00003b85: DUP6 00003b86: PUSH2 0x3c9c 00003b89: JUMP 00003b8a: JUMPDEST 00003b8b: PUSH2 0x3bdb 00003b8e: JUMPI 00003b8f: PUSH1 0x40 00003b91: DUP1 00003b92: MLOAD 00003b93: PUSH3 0x461bcd 00003b97: PUSH1 0xe5 00003b99: SHL 00003b9a: DUP2 00003b9b: MSTORE 00003b9c: PUSH1 0x20 00003b9e: PUSH1 0x04 00003ba0: DUP3 00003ba1: ADD 00003ba2: MSTORE 00003ba3: PUSH1 0x1d 00003ba5: PUSH1 0x24 00003ba7: DUP3 00003ba8: ADD 00003ba9: MSTORE 00003baa: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00003bcb: PUSH1 0x44 00003bcd: DUP3 00003bce: ADD 00003bcf: MSTORE 00003bd0: SWAP1 00003bd1: MLOAD 00003bd2: SWAP1 00003bd3: DUP2 00003bd4: SWAP1 00003bd5: SUB 00003bd6: PUSH1 0x64 00003bd8: ADD 00003bd9: SWAP1 00003bda: REVERT 00003bdb: JUMPDEST 00003bdc: PUSH1 0x00 00003bde: PUSH1 0x60 00003be0: DUP7 00003be1: PUSH1 0x01 00003be3: PUSH1 0x01 00003be5: PUSH1 0xa0 00003be7: SHL 00003be8: SUB 00003be9: AND 00003bea: DUP6 00003beb: DUP8 00003bec: PUSH1 0x40 00003bee: MLOAD 00003bef: DUP1 00003bf0: DUP3 00003bf1: DUP1 00003bf2: MLOAD 00003bf3: SWAP1 00003bf4: PUSH1 0x20 00003bf6: ADD 00003bf7: SWAP1 00003bf8: DUP1 00003bf9: DUP4 00003bfa: DUP4 00003bfb: JUMPDEST 00003bfc: PUSH1 0x20 00003bfe: DUP4 00003bff: LT 00003c00: PUSH2 0x3c1a 00003c03: JUMPI 00003c04: DUP1 00003c05: MLOAD 00003c06: DUP3 00003c07: MSTORE 00003c08: PUSH1 0x1f 00003c0a: NOT 00003c0b: SWAP1 00003c0c: SWAP3 00003c0d: ADD 00003c0e: SWAP2 00003c0f: PUSH1 0x20 00003c11: SWAP2 00003c12: DUP3 00003c13: ADD 00003c14: SWAP2 00003c15: ADD 00003c16: PUSH2 0x3bfb 00003c19: JUMP 00003c1a: JUMPDEST 00003c1b: PUSH1 0x01 00003c1d: DUP4 00003c1e: PUSH1 0x20 00003c20: SUB 00003c21: PUSH2 0x0100 00003c24: EXP 00003c25: SUB 00003c26: DUP1 00003c27: NOT 00003c28: DUP3 00003c29: MLOAD 00003c2a: AND 00003c2b: DUP2 00003c2c: DUP5 00003c2d: MLOAD 00003c2e: AND 00003c2f: DUP1 00003c30: DUP3 00003c31: OR 00003c32: DUP6 00003c33: MSTORE 00003c34: POP 00003c35: POP 00003c36: POP 00003c37: POP 00003c38: POP 00003c39: POP 00003c3a: SWAP1 00003c3b: POP 00003c3c: ADD 00003c3d: SWAP2 00003c3e: POP 00003c3f: POP 00003c40: PUSH1 0x00 00003c42: PUSH1 0x40 00003c44: MLOAD 00003c45: DUP1 00003c46: DUP4 00003c47: SUB 00003c48: DUP2 00003c49: DUP6 00003c4a: DUP8 00003c4b: GAS 00003c4c: CALL 00003c4d: SWAP3 00003c4e: POP 00003c4f: POP 00003c50: POP 00003c51: RETURNDATASIZE 00003c52: DUP1 00003c53: PUSH1 0x00 00003c55: DUP2 00003c56: EQ 00003c57: PUSH2 0x3c7c 00003c5a: JUMPI 00003c5b: PUSH1 0x40 00003c5d: MLOAD 00003c5e: SWAP2 00003c5f: POP 00003c60: PUSH1 0x1f 00003c62: NOT 00003c63: PUSH1 0x3f 00003c65: RETURNDATASIZE 00003c66: ADD 00003c67: AND 00003c68: DUP3 00003c69: ADD 00003c6a: PUSH1 0x40 00003c6c: MSTORE 00003c6d: RETURNDATASIZE 00003c6e: DUP3 00003c6f: MSTORE 00003c70: RETURNDATASIZE 00003c71: PUSH1 0x00 00003c73: PUSH1 0x20 00003c75: DUP5 00003c76: ADD 00003c77: RETURNDATACOPY 00003c78: PUSH2 0x3c81 00003c7b: JUMP 00003c7c: JUMPDEST 00003c7d: PUSH1 0x60 00003c7f: SWAP2 00003c80: POP 00003c81: JUMPDEST 00003c82: POP 00003c83: SWAP2 00003c84: POP 00003c85: SWAP2 00003c86: POP 00003c87: PUSH2 0x3c91 00003c8a: DUP3 00003c8b: DUP3 00003c8c: DUP7 00003c8d: PUSH2 0x3ca2 00003c90: JUMP 00003c91: JUMPDEST 00003c92: SWAP8 00003c93: SWAP7 00003c94: POP 00003c95: POP 00003c96: POP 00003c97: POP 00003c98: POP 00003c99: POP 00003c9a: POP 00003c9b: JUMP 00003c9c: JUMPDEST 00003c9d: EXTCODESIZE 00003c9e: ISZERO 00003c9f: ISZERO 00003ca0: SWAP1 00003ca1: JUMP 00003ca2: JUMPDEST 00003ca3: PUSH1 0x60 00003ca5: DUP4 00003ca6: ISZERO 00003ca7: PUSH2 0x3cb1 00003caa: JUMPI 00003cab: POP 00003cac: DUP2 00003cad: PUSH2 0x1dae 00003cb0: JUMP 00003cb1: JUMPDEST 00003cb2: DUP3 00003cb3: MLOAD 00003cb4: ISZERO 00003cb5: PUSH2 0x3cc1 00003cb8: JUMPI 00003cb9: DUP3 00003cba: MLOAD 00003cbb: DUP1 00003cbc: DUP5 00003cbd: PUSH1 0x20 00003cbf: ADD 00003cc0: REVERT 00003cc1: JUMPDEST 00003cc2: PUSH1 0x40 00003cc4: MLOAD 00003cc5: PUSH3 0x461bcd 00003cc9: PUSH1 0xe5 00003ccb: SHL 00003ccc: DUP2 00003ccd: MSTORE 00003cce: PUSH1 0x20 00003cd0: PUSH1 0x04 00003cd2: DUP3 00003cd3: ADD 00003cd4: DUP2 00003cd5: DUP2 00003cd6: MSTORE 00003cd7: DUP5 00003cd8: MLOAD 00003cd9: PUSH1 0x24 00003cdb: DUP5 00003cdc: ADD 00003cdd: MSTORE 00003cde: DUP5 00003cdf: MLOAD 00003ce0: DUP6 00003ce1: SWAP4 00003ce2: SWAP2 00003ce3: SWAP3 00003ce4: DUP4 00003ce5: SWAP3 00003ce6: PUSH1 0x44 00003ce8: ADD 00003ce9: SWAP2 00003cea: SWAP1 00003ceb: DUP6 00003cec: ADD 00003ced: SWAP1 00003cee: DUP1 00003cef: DUP4 00003cf0: DUP4 00003cf1: PUSH1 0x00 00003cf3: DUP4 00003cf4: ISZERO 00003cf5: PUSH2 0x3742 00003cf8: JUMPI 00003cf9: DUP2 00003cfa: DUP2 00003cfb: ADD 00003cfc: MLOAD 00003cfd: DUP4 00003cfe: DUP3 00003cff: ADD 00003d00: MSTORE 00003d01: PUSH1 0x20 00003d03: ADD 00003d04: PUSH2 0x372a 00003d07: JUMP 00003d08: JUMPDEST 00003d09: PUSH1 0x40 00003d0b: MLOAD 00003d0c: DUP1 00003d0d: PUSH1 0x80 00003d0f: ADD 00003d10: PUSH1 0x40 00003d12: MSTORE 00003d13: DUP1 00003d14: PUSH1 0x00 00003d16: DUP2 00003d17: MSTORE 00003d18: PUSH1 0x20 00003d1a: ADD 00003d1b: PUSH1 0x00 00003d1d: DUP2 00003d1e: MSTORE 00003d1f: PUSH1 0x20 00003d21: ADD 00003d22: PUSH1 0x00 00003d24: DUP2 00003d25: MSTORE 00003d26: PUSH1 0x20 00003d28: ADD 00003d29: PUSH1 0x00 00003d2b: PUSH1 0x01 00003d2d: PUSH1 0x01 00003d2f: PUSH1 0xa0 00003d31: SHL 00003d32: SUB 00003d33: AND 00003d34: DUP2 00003d35: MSTORE 00003d36: POP 00003d37: SWAP1 00003d38: JUMP 00003d39: INVALID 00003d3a: JUMP 00003d3b: PUSH2 0x756c 00003d3e: PUSH21 0x48616e646c65723a3a6372656174655661756c743a 00003d54: KECCAK256 00003d55: PUSH23 0x61756c7420616c72656164792063726561746564456e75 00003d6d: PUSH14 0x657261626c655365743a20696e64 00003d7c: PUSH6 0x78206f757420 00003d83: PUSH16 0x6620626f756e64735661756c7448616e 00003d94: PUSH5 0x6c65723a3a 00003d9a: PUSH2 0x6464 00003d9d: NUMBER 00003d9e: PUSH16 0x6c6c61746572616c3a20455243323020 00003daf: PUSH21 0x72616e7366657220646964206e6f74207375636365 00003dc5: PUSH6 0x644163636573 00003dcc: PUSH20 0x436f6e74726f6c3a2073656e646572206d757374 00003de1: KECCAK256 00003de2: PUSH3 0x652061 00003de6: PUSH15 0x2061646d696e20746f206772616e74 00003df6: MSTORE 00003df7: PUSH6 0x656e7472616e 00003dfe: PUSH4 0x79477561 00003e03: PUSH19 0x643a207265656e7472616e742063616c6c0043 00003e17: PUSH2 0x6e6e 00003e1a: PUSH16 0x74207769746864726177207468652063 00003e2b: PUSH16 0x6c6c61746572616c20746f6b656e7356 00003e3c: PUSH2 0x756c 00003e3f: PUSH21 0x48616e646c65723a3a7661756c744578697374733a 00003e55: KECCAK256 00003e56: PUSH15 0x6f207661756c742063726561746564 00003e66: UNKNOWN(0x4F) 00003e67: PUSH24 0x6e61626c653a206e6577206f776e65722069732074686520 00003e80: PUSH27 0x65726f20616464726573735661756c7448616e646c65723a3a7365 00003e9c: PUSH21 0x54726561737572793a206e6f7420612076616c6964 00003eb2: KECCAK256 00003eb3: PUSH21 0x726561737572795661756c7448616e646c65723a3a 00003ec9: PUSH14 0x696e743a206e6f7420656e6f7567 00003ed8: PUSH9 0x20636f6c6c61746572 00003ee2: PUSH2 0x6c45 00003ee5: SLOAD 00003ee6: BASEFEE 00003ee7: JUMP 00003ee8: PUSH2 0x756c 00003eeb: PUSH21 0x48616e646c65723a3a72656d6f7665436f6c6c6174 00003f01: PUSH6 0x72616c455448 00003f08: GASPRICE 00003f09: KECCAK256 00003f0a: PUSH19 0x6574726965766520616d6f756e742068696768 00003f1e: PUSH6 0x72207468616e 00003f25: KECCAK256 00003f26: PUSH4 0x6f6c6c61 00003f2b: PUSH21 0x6572616c4554485661756c7448616e646c65723a3a 00003f41: PUSH19 0x656d6f7665436f6c6c61746572616c4554483a 00003f55: KECCAK256 00003f56: PUSH4 0x6f6c6c61 00003f5b: PUSH21 0x6572616c2062656c6f77206d696e20726571756972 00003f71: PUSH6 0x642072617469 00003f78: PUSH16 0x5661756c7448616e646c65723a3a6c69 00003f89: PUSH18 0x7569646174655661756c743a206c69717569 00003f9c: PUSH5 0x6174696f6e 00003fa2: KECCAK256 00003fa3: PUSH2 0x6d6f 00003fa6: PUSH22 0x6e7420646966666572656e74207468616e2072657175 00003fbd: PUSH10 0x7265645661756c744861 00003fc8: PUSH15 0x646c65723a3a6c6971756964617465 00003fd8: JUMP 00003fd9: PUSH2 0x756c 00003fdc: PUSH21 0x3a204552433230207472616e736665722064696420 00003ff2: PUSH15 0x6f7420737563636565644164647265 00004002: PUSH20 0x733a20696e73756666696369656e742062616c61 00004017: PUSH15 0x636520666f722063616c6c41636365 00004027: PUSH20 0x73436f6e74726f6c3a2073656e646572206d7573 0000403c: PUSH21 0x20626520616e2061646d696e20746f207265766f6b 00004052: PUSH6 0x5661756c7448 00004059: PUSH2 0x6e64 0000405c: PUSH13 0x65723a3a6275726e3a20616d6f 0000406a: PUSH22 0x6e742067726561746572207468616e20646562745661 00004081: PUSH22 0x6c7448616e646c65723a3a736574526174696f3a2072 00004098: PUSH2 0x7469 0000409b: PUSH16 0x206c6f776572207468616e204d494e5f 000040ac: MSTORE 000040ad: COINBASE 000040ae: SLOAD 000040af: BLOBHASH 000040b0: UNKNOWN(0x4F) 000040b1: JUMP 000040b2: PUSH2 0x756c 000040b5: PUSH21 0x48616e646c65723a3a7365744275726e4665653a20 000040cb: PUSH3 0x75726e 000040cf: KECCAK256 000040d0: PUSH7 0x65652068696768 000040d8: PUSH6 0x72207468616e 000040df: KECCAK256 000040e0: UNKNOWN(0x4D) 000040e1: COINBASE 000040e2: PC 000040e3: PUSH0 000040e4: CHAINID 000040e5: GASLIMIT 000040e6: GASLIMIT 000040e7: JUMP 000040e8: PUSH2 0x756c 000040eb: PUSH21 0x48616e646c65723a3a72656d6f7665436f6c6c6174 00004101: PUSH6 0x72616c3a2072 00004108: PUSH6 0x747269657665 0000410f: KECCAK256 00004110: PUSH2 0x6d6f 00004113: PUSH22 0x6e7420686967686572207468616e20636f6c6c617465 0000412a: PUSH19 0x616c5661756c7448616e646c65723a3a736574 0000413e: UNKNOWN(0x4C) 0000413f: PUSH10 0x717569646174696f6e50 0000414a: PUSH6 0x6e616c74793a 00004151: KECCAK256 00004152: PUSH13 0x69717569646174696f6e207065 00004160: PUSH15 0x616c747920746f6f20686967684554 00004170: BASEFEE 00004171: JUMP 00004172: PUSH2 0x756c 00004175: PUSH21 0x48616e646c65723a3a72656d6f7665436f6c6c6174 0000418b: PUSH6 0x72616c455448 00004192: GASPRICE 00004193: KECCAK256 00004194: PUSH23 0x616c75652063616e277420626520305661756c7448616e 000041ac: PUSH5 0x6c65723a3a 000041b2: PUSH19 0x656d6f7665436f6c6c61746572616c3a20636f 000041c6: PUSH13 0x6c61746572616c2062656c6f77 000041d4: KECCAK256 000041d5: PUSH14 0x696e207265717569726564207261 000041e4: PUSH21 0x696f4554485661756c7448616e646c65723a3a7361 000041fa: PUSH7 0x655472616e7366 00004202: PUSH6 0x724554483a20 00004209: GASLIMIT 0000420a: SLOAD 0000420b: BASEFEE 0000420c: KECCAK256 0000420d: PUSH21 0x72616e73666572206661696c6564536166654d6174 00004223: PUSH9 0x3a206d756c7469706c 0000422d: PUSH10 0x636174696f6e206f7665 00004238: PUSH19 0x666c6f774554485661756c7448616e646c6572 0000424c: GASPRICE 0000424d: GASPRICE 0000424e: PUSH2 0x6464 00004251: NUMBER 00004252: PUSH16 0x6c6c61746572616c4554483a2076616c 00004263: PUSH22 0x652063616e277420626520304f776e61626c653a2063 0000427a: PUSH2 0x6c6c 0000427d: PUSH6 0x72206973206e 00004284: PUSH16 0x7420746865206f776e65725661756c74 00004295: BASEFEE 00004296: PUSH2 0x6e64 00004299: PUSH13 0x65723a3a6d696e743a20636f6c 000042a7: PUSH13 0x61746572616c2062656c6f7720 000042b5: PUSH14 0x696e207265717569726564207261 000042c4: PUSH21 0x696f5661756c7448616e646c65723a3a72656d6f76 000042da: PUSH6 0x436f6c6c6174 000042e1: PUSH6 0x72616c3a2045 000042e8: MSTORE 000042e9: NUMBER 000042ea: ORIGIN 000042eb: ADDRESS 000042ec: KECCAK256 000042ed: PUSH21 0x72616e7366657220646964206e6f74207375636365 00004303: PUSH6 0x645661756c74 0000430a: BASEFEE 0000430b: PUSH2 0x6e64 0000430e: PUSH13 0x65723a3a6c6971756964617465 0000431c: JUMP 0000431d: PUSH2 0x756c 00004320: PUSH21 0x3a207661756c74206973206e6f74206c6971756964 00004336: PUSH2 0x626c 00004339: PUSH6 0x5661756c7448 00004340: PUSH2 0x6e64 00004343: PUSH13 0x65723a3a6e6f745a65726f3a20 00004351: PUSH23 0x616c75652063616e277420626520305361666545524332 00004369: ADDRESS 0000436a: GASPRICE 0000436b: KECCAK256 0000436c: GASLIMIT 0000436d: MSTORE 0000436e: NUMBER 0000436f: ORIGIN 00004370: ADDRESS 00004371: KECCAK256 00004372: PUSH16 0x7065726174696f6e20646964206e6f74 00004383: KECCAK256 00004384: PUSH20 0x7563636565645661756c7448616e646c65723a3a 00004399: PUSH13 0x69717569646174655661756c74 000043a7: GASPRICE 000043a8: KECCAK256 000043a9: PUSH15 0x6f207661756c742063726561746564 000043b9: JUMP 000043ba: PUSH2 0x756c 000043bd: PUSH21 0x48616e646c65723a3a6275726e3a206275726e2066 000043d3: PUSH6 0x65206c657373 000043da: KECCAK256 000043db: PUSH21 0x68616e2072657175697265645661756c7448616e64 000043f1: PUSH13 0x65723a3a6c6971756964617465 000043ff: JUMP 00004400: PUSH2 0x756c 00004403: PUSH21 0x3a206275726e20666565206c657373207468616e20 00004419: PUSH19 0x65717569726564416363657373436f6e74726f 0000442d: PUSH13 0x3a2063616e206f6e6c79207265 0000443b: PUSH15 0x6f756e636520726f6c657320666f72 0000444b: KECCAK256 0000444c: PUSH20 0x656c66a264697066735822122094482a94c4a3b2 00004461: UNKNOWN(0x2B) 00004462: BYTE 00004463: UNKNOWN(0xF7) 00004464: TSTORE 00004465: TLOAD 00004466: PUSH26 0x38a50c633d4d83d1c9fb637a0fe016ac2fa48f64736f6c634300 00004481: SMOD 00004482: SDIV 00004483: STOP 00004484: CALLER
| 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": "0xf0f44260",
"selector": "0xf0f44260",
"calldata_variants": [
"0xf0f44260",
"0xf0f442600000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfce589d8",
"selector": "0xfce589d8",
"calldata_variants": [
"0xfce589d8",
"0xfce589d80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfcee45f4",
"selector": "0xfcee45f4",
"calldata_variants": [
"0xfcee45f4",
"0xfcee45f40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd318a7df",
"selector": "0xd318a7df",
"calldata_variants": [
"0xd318a7df",
"0xd318a7df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde9952c9",
"selector": "0xde9952c9",
"calldata_variants": [
"0xde9952c9",
"0xde9952c90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbc721a96",
"selector": "0xbc721a96",
"calldata_variants": [
"0xbc721a96",
"0xbc721a960000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 17130,
"type": "tx_origin_used"
},
{
"pc": 17263,
"type": "tx_origin_used"
}
]
}
|
| medium | oracle | codex | Oracle price freshness is not enforced, allowing stale prices | 75 | no | — |
viewevidence_json{
"evidence": "`ChainlinkOracle.getLatestAnswer` only checks that `timeStamp != 0` and `answeredInRound >= roundID` but never bounds staleness; `IVaultHandler.getOraclePrice` relies on it for all pricing.",
"locations": [
"contracts/contracts/oracles/ChainlinkOracle.sol:50",
"contracts/contracts/oracles/ChainlinkOracle.sol:58",
"contracts/contracts/oracles/ChainlinkOracle.sol:62",
"contracts/contracts/IVaultHandler.sol:625"
],
"recommendation": "Add a configurable max staleness window per feed and require `block.timestamp - timeStamp <= maxDelay` (and optionally `price > 0`) before using the value. Fail closed when the data is stale.",
"exploit_scenario": "If a Chainlink feed stops updating during a sharp market move, `getLatestAnswer` will still return the last value (timestamp != 0 and answeredInRound >= roundID) and the protocol will use that stale price for minting, burning fees, and liquidation checks. An attacker (or any vault owner) can then mint/withdraw based on an outdated high collateral price (or outdated low TCAP price), leaving the system undercollateralized and delaying liquidations."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x8d7d20abaa8272daf74bbeada7937f02be9ea6277d5a4ce9fe43bed084e24457
call_targets:
0x717170b66654292dfbd89c39f5ae6753d2ac1381
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x8d7d20abaa8272daf74bbeada7937f02be9ea6277d5a4ce9fe43bed084e24457",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x717170b66654292dfbd89c39f5ae6753d2ac1381"
],
"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": "0xf0f44260",
"selector": "0xf0f44260",
"calldata_variants": [
"0xf0f44260",
"0xf0f442600000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfce589d8",
"selector": "0xfce589d8",
"calldata_variants": [
"0xfce589d8",
"0xfce589d80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfcee45f4",
"selector": "0xfcee45f4",
"calldata_variants": [
"0xfcee45f4",
"0xfcee45f40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd318a7df",
"selector": "0xd318a7df",
"calldata_variants": [
"0xd318a7df",
"0xd318a7df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde9952c9",
"selector": "0xde9952c9",
"calldata_variants": [
"0xde9952c9",
"0xde9952c90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbc721a96",
"selector": "0xbc721a96",
"calldata_variants": [
"0xbc721a96",
"0xbc721a960000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3270,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4570,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5555,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 13,
"guards_detected": [
{
"pc": 17130,
"type": "tx_origin_used"
},
{
"pc": 17263,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 13
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x8d7d20abaa8272daf74bbeada7937f02be9ea6277d5a4ce9fe43bed084e24457
call_targets:
0x717170b66654292dfbd89c39f5ae6753d2ac1381
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x8d7d20abaa8272daf74bbeada7937f02be9ea6277d5a4ce9fe43bed084e24457",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x717170b66654292dfbd89c39f5ae6753d2ac1381"
],
"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": "0xf0f44260",
"selector": "0xf0f44260",
"calldata_variants": [
"0xf0f44260",
"0xf0f442600000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfce589d8",
"selector": "0xfce589d8",
"calldata_variants": [
"0xfce589d8",
"0xfce589d80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfcee45f4",
"selector": "0xfcee45f4",
"calldata_variants": [
"0xfcee45f4",
"0xfcee45f40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd318a7df",
"selector": "0xd318a7df",
"calldata_variants": [
"0xd318a7df",
"0xd318a7df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde9952c9",
"selector": "0xde9952c9",
"calldata_variants": [
"0xde9952c9",
"0xde9952c90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbc721a96",
"selector": "0xbc721a96",
"calldata_variants": [
"0xbc721a96",
"0xbc721a960000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3270,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4570,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5555,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 13,
"guards_detected": [
{
"pc": 17130,
"type": "tx_origin_used"
},
{
"pc": 17263,
"type": "tx_origin_used"
}
]
}
|
| low | math | codex | Collateral withdrawal can skip ratio enforcement when computed ratio rounds to zero | 65 | no | — |
viewevidence_json{
"evidence": "Both collateral removal functions only enforce the ratio check when `currentRatio != 0`, but `getVaultRatio` returns 0 not only for zero debt, but also for very low ratios due to integer truncation.",
"locations": [
"contracts/contracts/IVaultHandler.sol:388",
"contracts/contracts/IVaultHandler.sol:397",
"contracts/contracts/ETHVaultHandler.sol:108",
"contracts/contracts/ETHVaultHandler.sol:115"
],
"recommendation": "Gate the ratio check on `vault.Debt > 0` (or always enforce it when debt exists) instead of `currentRatio != 0`, or compute ratios with higher precision to avoid truncation to zero.",
"exploit_scenario": "If a vault becomes severely undercollateralized such that `getVaultRatio` truncates to 0 (ratio < 1%), `removeCollateral`/`removeCollateralETH` will skip the min-ratio check (`currentRatio != 0`). The vault owner can then withdraw remaining collateral even though debt is still outstanding, worsening protocol losses and bypassing intended invariant checks."
}
|
| 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": 15
}
|
| 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
}
|