bcdfa77d-89f0-4bd4-94b1-88110b7b2e0f
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 |
|---|---|---|---|---|
| 30326 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 74140 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 74141 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 74142 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 74143 | capability.graph | complete | 1 / 3 | 1 week ago |
| 74144 | detector.run | complete | 1 / 3 | 1 week ago |
| 74145 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:306256] OpenAI Codex v0.77.0 (research preview)
[codex:306256] --------
[codex:306256] workdir: /tmp/codex-multi-z9xjivxl
[codex:306256] model: gpt-5.2-codex
[codex:306256] provider: openai
[codex:306256] approval: never
[codex:306256] sandbox: read-only
[codex:306256] reasoning effort: xhigh
[codex:306256] reasoning summaries: auto
[codex:306256] session id: 019b65b8-633c-73f3-b4bd-2e3edf6bcab4
[codex:306256] --------
[codex:306256] user
[codex:306256] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:306256] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:306256] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:306256]
[codex:306256] Scope rules:
[codex:306256] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:306256] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:306256]
[codex:306256] Output MUST be valid JSON matching the provided schema.
[codex:306256] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:306256] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:306256]
[codex:306256] Output constraints (IMPORTANT):
[codex:306256] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:306256] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:306256] mcp startup: no servers
[codex:306256]
[codex:306256] thinking
[codex:306256] **Preparing to read instructions**
[codex:306256] exec
[codex:306256] /bin/bash -lc ls in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] AUDIT_BUNDLE.txt
[codex:306256] codex-output-schema.json
[codex:306256] contracts
[codex:306256]
[codex:306256] thinking
[codex:306256] **Reading AUDIT_BUNDLE file**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:306256]
[codex:306256] ================================================================================
[codex:306256] FILE: contracts/Contract.sol
[codex:306256] ================================================================================
[codex:306256] pragma solidity ^0.4.24;
[codex:306256] contract PriceOracleInterface {
[codex:306256]
[codex:306256] /**
[codex:306256] * @notice Gets the price of a given asset
[codex:306256] * @dev fetches the price of a given asset
[codex:306256] * @param asset Asset to get the price of
[codex:306256] * @return the price scaled by 10**18, or zero if the price is not available
[codex:306256] */
[codex:306256] function assetPrices(address asset) public view returns (uint);
[codex:306256] }
[codex:306256] contract ErrorReporter {
[codex:306256]
[codex:306256] /**
[codex:306256] * @dev `error` corresponds to enum Error; `info` corresponds to enum FailureInfo, and `detail` is an arbitrary
[codex:306256]
[codex:306256] thinking
[codex:306256] **Preparing for vulnerability analysis**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg --no-line-number "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] FILE: contracts/Contract.sol
[codex:306256]
[codex:306256] thinking
[codex:306256] **Starting contract review**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg --no-line-number "''^contract " AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] contract PriceOracleInterface {
[codex:306256] contract ErrorReporter {
[codex:306256] contract InterestRateModel {
[codex:306256] contract EIP20Interface {
[codex:306256] contract EIP20NonStandardInterface {
[codex:306256] contract CarefulMath is ErrorReporter {
[codex:306256] contract SafeToken is ErrorReporter {
[codex:306256] contract Exponential is ErrorReporter, CarefulMath {
[codex:306256] contract MoneyMarket is Exponential, SafeToken {
[codex:306256]
[codex:306256] thinking
[codex:306256] **Analyzing MoneyMarket contract for vulnerabilities**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg -n "function (supply|withdraw|borrow|repay|liquidate|set|support|suspend|pause|oracle|admin)" AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 7ms:
[codex:306256] 1509: function supply(address asset, uint amount) public returns (uint) {
[codex:306256] 1635: function withdraw(address asset, uint requestedAmount) public returns (uint) {
[codex:306256] 1950: function repayBorrow(address asset, uint amount) public returns (uint) {
[codex:306256] 2144: function liquidateBorrow(address targetAccount, address assetBorrow, address assetCollateral, uint requestedAmountClose) public returns (uint) {
[codex:306256] 2553: function borrow(address asset, uint amount) public returns (uint) {
[codex:306256]
[codex:306256] thinking
[codex:306256] **Searching for admin-related functions**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg -n "admin|owner|oracle|support|suspend|pause|set" AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 8ms:
[codex:306256] 10: * @notice Gets the price of a given asset
[codex:306256] 11: * @dev fetches the price of a given asset
[codex:306256] 12: * @param asset Asset to get the price of
[codex:306256] 15: function assetPrices(address asset) public view returns (uint);
[codex:306256] 179: * @notice Gets the current supply interest rate based on the given asset, total cash and total borrows
[codex:306256] 182: * @param asset The asset to get the interest rate of
[codex:306256] 183: * @param cash The total cash of the asset in the market
[codex:306256] 184: * @param borrows The total borrows of the asset in the market
[codex:306256] 187: function getSupplyRate(address asset, uint cash, uint borrows) public view returns (uint, uint);
[codex:306256] 190: * @notice Gets the current borrow interest rate based on the given asset, total cash and total borrows
[codex:306256] 193: * @param asset The asset to get the interest rate of
[codex:306256] 194: * @param cash The total cash of the asset in the market
[codex:306256] 195: * @param borrows The total borrows of the asset in the market
[codex:306256] 198: function getBorrowRate(address asset, uint cash, uint borrows) public view returns (uint, uint);
[codex:306256] 213: /// @param _owner The address from which the balance will be retrieved
[codex:306256] 215: function balanceOf(address _owner) public view returns (uint256 balance);
[codex:306256] 236: /// @param _owner The address of the account owning tokens
[codex:306256] 239: function allowance(address _owner, address _spender) public view returns (uint256 remaining);
[codex:306256] 243: event Approval(address indexed _owner, address indexed _spender, uint256 _value);
[codex:306256] 259: /// @param _owner The address from which the balance will be retrieved
[codex:306256]
[codex:306256] thinking
[codex:306256] **Analyzing reentrancy and external call risks**
[codex:306256]
[codex:306256] I'm reviewing the MoneyMarket contract carefully for security issues, focusing on reentrancy vulnerabilities from external token calls, especially in borrow and withdraw functions where state updates happen after transfers. It's concerning that ERC777 tokens or malicious tokens with hooks could exploit this to reenter and drain funds before balances update. I'm also noting risks from untrusted oracle and interest rate model calls that admin controls, and planning to investigate other potential flaws like misuse of delegatecall next.
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg -n "delegatecall" AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl exited 1 in 7ms:
[codex:306256]
[codex:306256]
[codex:306256] thinking
[codex:306256] **Inspecting transfer calls for safety**
[codex:306256] exec
[codex:306256] /bin/bash -lc "rg -n \"transfer\\(|transferFrom\\(\" AUDIT_BUNDLE.txt" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 221: function transfer(address _to, uint256 _value) public returns (bool success);
[codex:306256] 228: function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
[codex:306256] 273: function transfer(address _to, uint256 _value) public;
[codex:306256] 286: function transferFrom(address _from, address _to, uint256 _value) public;
[codex:306256] 406: token.transferFrom(from, address(this), amount);
[codex:306256] 461: token.transfer(to, amount);
[codex:306256]
[codex:306256] thinking
[codex:306256] **Analyzing token transfer risks and parameter validations**
[codex:306256]
[codex:306256] I'm exploring subtle issues in token transfer handling—especially fee-on-transfer tokens that might cause accounting mismatches due to missing balance checks—as well as reentrancy concerns with admin calls and risk parameter edge cases that could trigger division errors or denial of service if misconfigured by admin. Next, I'll inspect the MoneyMarket contract closely starting from the top.
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '620,900p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 620 function truncate(Exp memory exp) pure internal returns (uint) {
[codex:306256] 621 // Note: We are not using careful math here as we're performing a division that cannot fail
[codex:306256] 622 return exp.mantissa / 10**18;
[codex:306256] 623 }
[codex:306256] 624
[codex:306256] 625 /**
[codex:306256] 626 * @dev Checks if first Exp is less than second Exp.
[codex:306256] 627 */
[codex:306256] 628 function lessThanExp(Exp memory left, Exp memory right) pure internal returns (bool) {
[codex:306256] 629 return left.mantissa < right.mantissa; //TODO: Add some simple tests and this in another PR yo.
[codex:306256] 630 }
[codex:306256] 631
[codex:306256] 632 /**
[codex:306256] 633 * @dev Checks if left Exp <= right Exp.
[codex:306256] 634 */
[codex:306256] 635 function lessThanOrEqualExp(Exp memory left, Exp memory right) pure internal returns (bool) {
[codex:306256] 636 return left.mantissa <= right.mantissa;
[codex:306256] 637 }
[codex:306256] 638
[codex:306256] 639 /**
[codex:306256]
[codex:306256] thinking
[codex:306256] **Inspecting calculateAccountLiquidity for vulnerabilities**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg -n "calculateAccountLiquidity" AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 1204: (Error err, Exp memory accountLiquidity, Exp memory accountShortfall) = calculateAccountLiquidity(account);
[codex:306256] 1648: (err, localResults.accountLiquidity, localResults.accountShortfall) = calculateAccountLiquidity(msg.sender);
[codex:306256] 1785: function calculateAccountLiquidity(address userAddress) internal view returns (Error, Exp memory, Exp memory) {
[codex:306256] 2425: Exp memory _accountLiquidity; // unused return value from calculateAccountLiquidity
[codex:306256] 2433: (err, _accountLiquidity, accountShortfall_TargetUser) = calculateAccountLiquidity(targetAccount);
[codex:306256] 2449: // calculateAccountLiquidity multiplies underwaterAssetPrice by collateralRatio
[codex:306256] 2599: (err, localResults.accountLiquidity, localResults.accountShortfall) = calculateAccountLiquidity(msg.sender);
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1760,1905p'" in /tmp/codex-multi-z9xjivxl succeeded in 7ms:
[codex:306256] 1760
[codex:306256] 1761 return uint(Error.NO_ERROR); // success
[codex:306256] 1762 }
[codex:306256] 1763
[codex:306256] 1764 struct AccountValueLocalVars {
[codex:306256] 1765 address assetAddress;
[codex:306256] 1766 uint collateralMarketsLength;
[codex:306256] 1767
[codex:306256] 1768 uint newSupplyIndex;
[codex:306256] 1769 uint userSupplyCurrent;
[codex:306256] 1770 Exp supplyTotalValue;
[codex:306256] 1771 Exp sumSupplies;
[codex:306256] 1772
[codex:306256] 1773 uint newBorrowIndex;
[codex:306256] 1774 uint userBorrowCurrent;
[codex:306256] 1775 Exp borrowTotalValue;
[codex:306256] 1776 Exp sumBorrows;
[codex:306256] 1777 }
[codex:306256] 1778
[codex:306256] 1779 /**
[codex:306256]
[codex:306256] thinking
[codex:306256] **Analyzing liquidity and potential DoS risks**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1488,1615p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 1488 struct SupplyLocalVars {
[codex:306256] 1489 uint startingBalance;
[codex:306256] 1490 uint newSupplyIndex;
[codex:306256] 1491 uint userSupplyCurrent;
[codex:306256] 1492 uint userSupplyUpdated;
[codex:306256] 1493 uint newTotalSupply;
[codex:306256] 1494 uint currentCash;
[codex:306256] 1495 uint updatedCash;
[codex:306256] 1496 uint newSupplyRateMantissa;
[codex:306256] 1497 uint newBorrowIndex;
[codex:306256] 1498 uint newBorrowRateMantissa;
[codex:306256] 1499 }
[codex:306256] 1500
[codex:306256] 1501
[codex:306256] 1502 /**
[codex:306256] 1503 * @notice supply `amount` of `asset` (which must be supported) to `msg.sender` in the protocol
[codex:306256] 1504 * @dev add amount of supported asset to msg.sender's account
[codex:306256] 1505 * @param asset The market asset to supply
[codex:306256] 1506 * @param amount The amount to supply
[codex:306256] 1507 * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:306256]
[codex:306256] thinking
[codex:306256] **Reviewing transferIn usage and reentrancy concerns**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1615,1765p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 1615 uint currentCash;
[codex:306256] 1616 uint updatedCash;
[codex:306256] 1617 uint newSupplyRateMantissa;
[codex:306256] 1618 uint newBorrowIndex;
[codex:306256] 1619 uint newBorrowRateMantissa;
[codex:306256] 1620
[codex:306256] 1621 Exp accountLiquidity;
[codex:306256] 1622 Exp accountShortfall;
[codex:306256] 1623 Exp ethValueOfWithdrawal;
[codex:306256] 1624 uint withdrawCapacity;
[codex:306256] 1625 }
[codex:306256] 1626
[codex:306256] 1627
[codex:306256] 1628 /**
[codex:306256] 1629 * @notice withdraw `amount` of `asset` from sender's account to sender's address
[codex:306256] 1630 * @dev withdraw `amount` of `asset` from msg.sender's account to msg.sender
[codex:306256] 1631 * @param asset The market asset to withdraw
[codex:306256] 1632 * @param requestedAmount The amount to withdraw (or -1 for max)
[codex:306256] 1633 * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:306256] 1634 */
[codex:306256]
[codex:306256] thinking
[codex:306256] **Assessing reentrancy risk in transfers**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1910,2085p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 1910 * storage
[codex:306256] 1911 * @dev Gets ETH values of accumulated supply and borrow balances
[codex:306256] 1912 * @param userAddress account for which to sum values
[codex:306256] 1913 * @return (uint 0=success; otherwise a failure (see ErrorReporter.sol for details),
[codex:306256] 1914 * sum ETH value of supplies scaled by 10e18,
[codex:306256] 1915 * sum ETH value of borrows scaled by 10e18)
[codex:306256] 1916 */
[codex:306256] 1917 function calculateAccountValues(address userAddress) public view returns (uint, uint, uint) {
[codex:306256] 1918 (Error err, uint supplyValue, uint borrowValue) = calculateAccountValuesInternal(userAddress);
[codex:306256] 1919 if (err != Error.NO_ERROR) {
[codex:306256] 1920
[codex:306256] 1921 return (uint(err), 0, 0);
[codex:306256] 1922 }
[codex:306256] 1923
[codex:306256] 1924 return (0, supplyValue, borrowValue);
[codex:306256] 1925 }
[codex:306256] 1926
[codex:306256] 1927 struct PayBorrowLocalVars {
[codex:306256] 1928 uint newBorrowIndex;
[codex:306256] 1929 uint userBorrowCurrent;
[codex:306256]
[codex:306256] thinking
[codex:306256] **Analyzing reentrancy and interest index concerns**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg -n "calculateInterestIndex" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 926: function calculateInterestIndex(uint startingInterestIndex, uint interestRateMantissa, uint blockStart, uint blockEnd) pure internal returns (Error, uint) {
[codex:306256] 1230: (err, newSupplyIndex) = calculateInterestIndex(market.supplyIndex, market.supplyRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 1256: (err, newBorrowIndex) = calculateInterestIndex(market.borrowIndex, market.borrowRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 1533: (err, localResults.newSupplyIndex) = calculateInterestIndex(market.supplyIndex, market.supplyRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 1569: (err, localResults.newBorrowIndex) = calculateInterestIndex(market.borrowIndex, market.borrowRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 1654: (err, localResults.newSupplyIndex) = calculateInterestIndex(market.supplyIndex, market.supplyRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 1725: (err, localResults.newBorrowIndex) = calculateInterestIndex(market.borrowIndex, market.borrowRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 1855: (err, localResults.newSupplyIndex) = calculateInterestIndex(currentMarket.supplyIndex, currentMarket.supplyRateMantissa, currentMarket.blockNumber, getBlockNumber());
[codex:306256] 1880: (err, localResults.newBorrowIndex) = calculateInterestIndex(currentMarket.borrowIndex, currentMarket.borrowRateMantissa, currentMarket.blockNumber, getBlockNumber());
[codex:306256] 1961: (err, localResults.newBorrowIndex) = calculateInterestIndex(market.borrowIndex, market.borrowRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 2012: (err, localResults.newSupplyIndex) = calculateInterestIndex(market.supplyIndex, market.supplyRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 2177: (err, localResults.newBorrowIndex_UnderwaterAsset) = calculateInterestIndex(borrowMarket.borrowIndex, borrowMarket.borrowRateMantissa, borrowMarket.blockNumber, getBlockNumber());
[codex:306256] 2188: (err, localResults.newSupplyIndex_CollateralAsset) = calculateInterestIndex(collateralMarket.supplyIndex, collateralMarket.supplyRateMantissa, collateralMarket.blockNumber, getBlockNumber());
[codex:306256] 2314: (err, localResults.newSupplyIndex_UnderwaterAsset) = calculateInterestIndex(borrowMarket.supplyIndex, borrowMarket.supplyRateMantissa, borrowMarket.blockNumber, getBlockNumber());
[codex:306256] 2334: (err, localResults.newBorrowIndex_CollateralAsset) = calculateInterestIndex(collateralMarket.borrowIndex, collateralMarket.borrowRateMantissa, collateralMarket.blockNumber, getBlockNumber());
[codex:306256] 2570: (err, localResults.newBorrowIndex) = calculateInterestIndex(market.borrowIndex, market.borrowRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 2632: (err, localResults.newSupplyIndex) = calculateInterestIndex(market.supplyIndex, market.supplyRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '900,980p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 900 * @dev Adds a given asset to the list of collateral markets. This operation is impossible to reverse.
[codex:306256] 901 * Note: this will not add the asset if it already exists.
[codex:306256] 902 */
[codex:306256] 903 function addCollateralMarket(address asset) internal {
[codex:306256] 904 for (uint i = 0; i < collateralMarkets.length; i++) {
[codex:306256] 905 if (collateralMarkets[i] == asset) {
[codex:306256] 906 return;
[codex:306256] 907 }
[codex:306256] 908 }
[codex:306256] 909
[codex:306256] 910 collateralMarkets.push(asset);
[codex:306256] 911 }
[codex:306256] 912
[codex:306256] 913 /**
[codex:306256] 914 * @notice return the number of elements in `collateralMarkets`
[codex:306256] 915 * @dev you can then externally call `collateralMarkets(uint)` to pull each market address
[codex:306256] 916 * @return the length of `collateralMarkets`
[codex:306256] 917 */
[codex:306256] 918 function getCollateralMarketsLength() public view returns (uint) {
[codex:306256] 919 return collateralMarkets.length;
[codex:306256]
[codex:306256] thinking
[codex:306256] **Analyzing potential market and liquidity calculation issues**
[codex:306256]
[codex:306256] I'm examining how suspended markets are handled in collateral and borrow calculations, noting that suspended assets still count toward collateral but disallow new supplies or borrows. I'm checking inconsistencies around supply, borrow, and withdraw functions' support checks, and spotting a few vulnerability risks related to interest index underflows, repeated collateralRatio multiplications, and potential division by zero during liquidation calculations. I'll verify how risk parameters safeguard this.
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1338,1425p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 1338
[codex:306256] 1339 return uint(Error.NO_ERROR);
[codex:306256] 1340 }
[codex:306256] 1341
[codex:306256] 1342 /**
[codex:306256] 1343 * @notice Sets the risk parameters: collateral ratio and liquidation discount
[codex:306256] 1344 * @dev Owner function to set the risk parameters
[codex:306256] 1345 * @param collateralRatioMantissa rational collateral ratio, scaled by 1e18. The de-scaled value must be >= 1.1
[codex:306256] 1346 * @param liquidationDiscountMantissa rational liquidation discount, scaled by 1e18. The de-scaled value must be <= 0.1 and must be less than (descaled collateral ratio minus 1)
[codex:306256] 1347 * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:306256] 1348 */
[codex:306256] 1349 function _setRiskParameters(uint collateralRatioMantissa, uint liquidationDiscountMantissa) public returns (uint) {
[codex:306256] 1350 // Check caller = admin
[codex:306256] 1351 if (msg.sender != admin) {
[codex:306256] 1352 return fail(Error.UNAUTHORIZED, FailureInfo.SET_RISK_PARAMETERS_OWNER_CHECK);
[codex:306256] 1353 }
[codex:306256] 1354
[codex:306256] 1355 Exp memory newCollateralRatio = Exp({mantissa: collateralRatioMantissa});
[codex:306256] 1356 Exp memory newLiquidationDiscount = Exp({mantissa: liquidationDiscountMantissa});
[codex:306256] 1357 Exp memory minimumCollateralRatio = Exp({mantissa: minimumCollateralRatioMantissa});
[codex:306256]
[codex:306256] thinking
[codex:306256] **Identifying potential vulnerabilities in borrowing and liquidation**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '2140,2415p'" in /tmp/codex-multi-z9xjivxl succeeded in 7ms:
[codex:306256] 2140 * @param assetCollateral The borrower's market asset to receive in exchange
[codex:306256] 2141 * @param requestedAmountClose The amount to repay (or -1 for max)
[codex:306256] 2142 * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:306256] 2143 */
[codex:306256] 2144 function liquidateBorrow(address targetAccount, address assetBorrow, address assetCollateral, uint requestedAmountClose) public returns (uint) {
[codex:306256] 2145 if (paused) {
[codex:306256] 2146 return fail(Error.CONTRACT_PAUSED, FailureInfo.LIQUIDATE_CONTRACT_PAUSED);
[codex:306256] 2147 }
[codex:306256] 2148 LiquidateLocalVars memory localResults;
[codex:306256] 2149 // Copy these addresses into the struct for use with `emitLiquidationEvent`
[codex:306256] 2150 // We'll use localResults.liquidator inside this function for clarity vs using msg.sender.
[codex:306256] 2151 localResults.targetAccount = targetAccount;
[codex:306256] 2152 localResults.assetBorrow = assetBorrow;
[codex:306256] 2153 localResults.liquidator = msg.sender;
[codex:306256] 2154 localResults.assetCollateral = assetCollateral;
[codex:306256] 2155
[codex:306256] 2156 Market storage borrowMarket = markets[assetBorrow];
[codex:306256] 2157 Market storage collateralMarket = markets[assetCollateral];
[codex:306256] 2158 Balance storage borrowBalance_TargeUnderwaterAsset = borrowBalances[targetAccount][assetBorrow];
[codex:306256] 2159 Balance storage supplyBalance_TargetCollateralAsset = supplyBalances[targetAccount][assetCollateral];
[codex:306256]
[codex:306256] thinking
[codex:306256] **Analyzing liquidation and suspension logic**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1098,1185p'" in /tmp/codex-multi-z9xjivxl succeeded in 7ms:
[codex:306256] 1098 return (Error.NO_ERROR, truncate(assetAmount));
[codex:306256] 1099 }
[codex:306256] 1100
[codex:306256] 1101 /**
[codex:306256] 1102 * @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
[codex:306256] 1103 * @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
[codex:306256] 1104 * @param newPendingAdmin New pending admin.
[codex:306256] 1105 * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:306256] 1106 *
[codex:306256] 1107 * TODO: Should we add a second arg to verify, like a checksum of `newAdmin` address?
[codex:306256] 1108 */
[codex:306256] 1109 function _setPendingAdmin(address newPendingAdmin) public returns (uint) {
[codex:306256] 1110 // Check caller = admin
[codex:306256] 1111 if (msg.sender != admin) {
[codex:306256] 1112 return fail(Error.UNAUTHORIZED, FailureInfo.SET_PENDING_ADMIN_OWNER_CHECK);
[codex:306256] 1113 }
[codex:306256] 1114
[codex:306256] 1115 // save current value, if any, for inclusion in log
[codex:306256] 1116 address oldPendingAdmin = pendingAdmin;
[codex:306256] 1117 // Store pendingAdmin = newPendingAdmin
[codex:306256]
[codex:306256] thinking
[codex:306256] **Analyzing potential divide-by-zero risk**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1200,1275p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 1200 * @param account the account to examine
[codex:306256] 1201 * @return signed integer in terms of eth-wei (negative indicates a shortfall)
[codex:306256] 1202 */
[codex:306256] 1203 function getAccountLiquidity(address account) public view returns (int) {
[codex:306256] 1204 (Error err, Exp memory accountLiquidity, Exp memory accountShortfall) = calculateAccountLiquidity(account);
[codex:306256] 1205 require(err == Error.NO_ERROR);
[codex:306256] 1206
[codex:306256] 1207 if (isZeroExp(accountLiquidity)) {
[codex:306256] 1208 return -1 * int(truncate(accountShortfall));
[codex:306256] 1209 } else {
[codex:306256] 1210 return int(truncate(accountLiquidity));
[codex:306256] 1211 }
[codex:306256] 1212 }
[codex:306256] 1213
[codex:306256] 1214 /**
[codex:306256] 1215 * @notice return supply balance with any accumulated interest for `asset` belonging to `account`
[codex:306256] 1216 * @dev returns supply balance with any accumulated interest for `asset` belonging to `account`
[codex:306256] 1217 * @param account the account to examine
[codex:306256] 1218 * @param asset the market asset whose supply balance belonging to `account` should be checked
[codex:306256] 1219 * @return uint supply balance on success, throws on failed assertion otherwise
[codex:306256]
[codex:306256] thinking
[codex:306256] **Analyzing contract balance and oracle logic**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg -n "calculateBorrowAmountWithFee" AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 1029: function calculateBorrowAmountWithFee(uint borrowAmount) view internal returns (Error, uint) {
[codex:306256] 2581: (err, localResults.borrowAmountWithFee) = calculateBorrowAmountWithFee(amount);
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1018,1055p'" in /tmp/codex-multi-z9xjivxl succeeded in 7ms:
[codex:306256] 1018
[codex:306256] 1019 // Get the price for the given asset amount
[codex:306256] 1020 return mulScalar(scaledPrice, assetAmount);
[codex:306256] 1021 }
[codex:306256] 1022
[codex:306256] 1023 /**
[codex:306256] 1024 * @dev Calculates the origination fee added to a given borrowAmount
[codex:306256] 1025 * This is simply `(1 + originationFee) * borrowAmount`
[codex:306256] 1026 *
[codex:306256] 1027 * TODO: Track at what magnitude this fee rounds down to zero?
[codex:306256] 1028 */
[codex:306256] 1029 function calculateBorrowAmountWithFee(uint borrowAmount) view internal returns (Error, uint) {
[codex:306256] 1030 // When origination fee is zero, the amount with fee is simply equal to the amount
[codex:306256] 1031 if (isZeroExp(originationFee)) {
[codex:306256] 1032 return (Error.NO_ERROR, borrowAmount);
[codex:306256] 1033 }
[codex:306256] 1034
[codex:306256] 1035 (Error err0, Exp memory originationFeeFactor) = addExp(originationFee, Exp({mantissa: mantissaOne}));
[codex:306256] 1036 if (err0 != Error.NO_ERROR) {
[codex:306256] 1037 return (err0, 0);
[codex:306256]
[codex:306256] thinking
[codex:306256] **Analyzing potential vulnerabilities in lending contract**
[codex:306256]
[codex:306256] I’m working through several technical aspects of the contract to identify exploitable weaknesses, focusing mainly on reentrancy risks in borrowing and withdrawal functions, handling of fee-on-transfer tokens that could inflate liabilities, and assumptions around token compliance and oracle pricing. The most critical is a high-severity reentrancy vulnerability where external calls happen before state updates, allowing attackers to drain liquidity by reentering within token callbacks. There are also medium risks related to inaccurate accounting with deflationary tokens and reliance on token behavior for safe transfers. I’m noting nuances about price zero handling, self-liquidation implications, and potential edge cases with collateral and interest index calculations. This thorough review feels like laying groundwork to prioritize vulnerabilities and guide next security steps!
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1425,1485p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 1425 // Check caller = admin
[codex:306256] 1426 if (msg.sender != admin) {
[codex:306256] 1427 return fail(Error.UNAUTHORIZED, FailureInfo.SET_MARKET_INTEREST_RATE_MODEL_OWNER_CHECK);
[codex:306256] 1428 }
[codex:306256] 1429
[codex:306256] 1430 // Set the interest rate model to `modelAddress`
[codex:306256] 1431 markets[asset].interestRateModel = interestRateModel;
[codex:306256] 1432
[codex:306256] 1433 emit SetMarketInterestRateModel(asset, interestRateModel);
[codex:306256] 1434
[codex:306256] 1435 return uint(Error.NO_ERROR);
[codex:306256] 1436 }
[codex:306256] 1437
[codex:306256] 1438 /**
[codex:306256] 1439 * @notice withdraws `amount` of `asset` from equity for asset, as long as `amount` <= equity. Equity= cash - (supply + borrows)
[codex:306256] 1440 * @dev withdraws `amount` of `asset` from equity for asset, enforcing amount <= cash - (supply + borrows)
[codex:306256] 1441 * @param asset asset whose equity should be withdrawn
[codex:306256] 1442 * @param amount amount of equity to withdraw; must not exceed equity available
[codex:306256] 1443 * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:306256] 1444 */
[codex:306256]
[codex:306256] thinking
[codex:306256] **Analyzing potential vulnerabilities and line mapping**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'wc -l contracts/Contract.sol' in /tmp/codex-multi-z9xjivxl succeeded in 5ms:
[codex:306256] 2669 contracts/Contract.sol
[codex:306256]
[codex:306256] thinking
[codex:306256] **Extracting line numbers for vulnerabilities**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1728,1760p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 1728 }
[codex:306256] 1729
[codex:306256] 1730 /////////////////////////
[codex:306256] 1731 // EFFECTS & INTERACTIONS
[codex:306256] 1732 // (No safe failures beyond this point)
[codex:306256] 1733
[codex:306256] 1734 // We ERC-20 transfer the asset into the protocol (note: pre-conditions already checked above)
[codex:306256] 1735 err = doTransferOut(asset, msg.sender, localResults.withdrawAmount);
[codex:306256] 1736 if (err != Error.NO_ERROR) {
[codex:306256] 1737 // This is safe since it's our first interaction and it didn't do anything if it failed
[codex:306256] 1738 return fail(err, FailureInfo.WITHDRAW_TRANSFER_OUT_FAILED);
[codex:306256] 1739 }
[codex:306256] 1740
[codex:306256] 1741 // Save market updates
[codex:306256] 1742 market.blockNumber = getBlockNumber();
[codex:306256] 1743 market.totalSupply = localResults.newTotalSupply;
[codex:306256] 1744 market.supplyRateMantissa = localResults.newSupplyRateMantissa;
[codex:306256] 1745 market.supplyIndex = localResults.newSupplyIndex;
[codex:306256] 1746 market.borrowRateMantissa = localResults.newBorrowRateMantissa;
[codex:306256] 1747 market.borrowIndex = localResults.newBorrowIndex;
[codex:306256]
[codex:306256] thinking
[codex:306256] **Locating borrow usage**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '2638,2675p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 2638 if (rateCalculationResultCode != 0) {
[codex:306256] 2639 return failOpaque(FailureInfo.BORROW_NEW_BORROW_RATE_CALCULATION_FAILED, rateCalculationResultCode);
[codex:306256] 2640 }
[codex:306256] 2641
[codex:306256] 2642 /////////////////////////
[codex:306256] 2643 // EFFECTS & INTERACTIONS
[codex:306256] 2644 // (No safe failures beyond this point)
[codex:306256] 2645
[codex:306256] 2646 // We ERC-20 transfer the asset into the protocol (note: pre-conditions already checked above)
[codex:306256] 2647 err = doTransferOut(asset, msg.sender, amount);
[codex:306256] 2648 if (err != Error.NO_ERROR) {
[codex:306256] 2649 // This is safe since it's our first interaction and it didn't do anything if it failed
[codex:306256] 2650 return fail(err, FailureInfo.BORROW_TRANSFER_OUT_FAILED);
[codex:306256] 2651 }
[codex:306256] 2652
[codex:306256] 2653 // Save market updates
[codex:306256] 2654 market.blockNumber = getBlockNumber();
[codex:306256] 2655 market.totalBorrows = localResults.newTotalBorrows;
[codex:306256] 2656 market.supplyRateMantissa = localResults.newSupplyRateMantissa;
[codex:306256] 2657 market.supplyIndex = localResults.newSupplyIndex;
[codex:306256]
[codex:306256] thinking
[codex:306256] **Referencing fee-on-transfer token handling**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '380,445p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 380 if (token.balanceOf(from) < amount) {
[codex:306256] 381 return Error.TOKEN_INSUFFICIENT_BALANCE;
[codex:306256] 382 }
[codex:306256] 383
[codex:306256] 384 return Error.NO_ERROR;
[codex:306256] 385 }
[codex:306256] 386
[codex:306256] 387 /**
[codex:306256] 388 * @dev Similar to EIP20 transfer, except it handles a False result from `transferFrom` and returns an explanatory
[codex:306256] 389 * error code rather than reverting. If caller has not called `checkTransferIn`, this may revert due to
[codex:306256] 390 * insufficient balance or insufficient allowance. If caller has called `checkTransferIn` prior to this call,
[codex:306256] 391 * and it returned Error.NO_ERROR, this should not revert in normal conditions.
[codex:306256] 392 *
[codex:306256] 393 * Note: This wrapper safely handles non-standard ERC-20 tokens that do not return a value.
[codex:306256] 394 * See here: https://medium.com/coinmonks/missing-return-value-bug-at-least-130-tokens-affected-d67bf08521ca
[codex:306256] 395 */
[codex:306256] 396 function doTransferIn(address asset, address from, uint amount) internal returns (Error) {
[codex:306256] 397 EIP20NonStandardInterface token = EIP20NonStandardInterface(asset);
[codex:306256] 398
[codex:306256] 399 bool result;
[codex:306256]
[codex:306256] thinking
[codex:306256] **Summarizing potential vulnerabilities and findings**
[codex:306256]
[codex:306256] I'm going through a detailed audit of the contract's functions related to token transfers, interest calculations, and market support. There are several nuanced issues like missing balance checks after transfers, possible rounding effects on fees, discrepancies in interest rate calculations with fee-on-transfer tokens, and missing reentrancy guards on key functions. I also see risks related to market support resetting and liquidation logic. I plan to finalize 2-3 key findings with severity, evidence, and code locations to prepare a structured JSON report for the user.
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1538,1555p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 1538 (err, localResults.userSupplyUpdated) = add(localResults.userSupplyCurrent, amount);
[codex:306256] 1539 if (err != Error.NO_ERROR) {
[codex:306256] 1540 return fail(err, FailureInfo.SUPPLY_NEW_TOTAL_BALANCE_CALCULATION_FAILED);
[codex:306256] 1541 }
[codex:306256] 1542
[codex:306256] 1543 // We calculate the protocol's totalSupply by subtracting the user's prior checkpointed balance, adding user's updated supply
[codex:306256] 1544 (err, localResults.newTotalSupply) = addThenSub(market.totalSupply, localResults.userSupplyUpdated, balance.principal);
[codex:306256] 1545 if (err != Error.NO_ERROR) {
[codex:306256] 1546 return fail(err, FailureInfo.SUPPLY_NEW_TOTAL_SUPPLY_CALCULATION_FAILED);
[codex:306256] 1547 }
[codex:306256] 1548
[codex:306256] 1549 // We need to calculate what the updated cash will be after we transfer in from user
[codex:306256] 1550 localResults.currentCash = getCash(asset);
[codex:306256] 1551
[codex:306256] 1552 (err, localResults.updatedCash) = add(localResults.currentCash, amount);
[codex:306256] 1553 if (err != Error.NO_ERROR) {
[codex:306256] 1554 return fail(err, FailureInfo.SUPPLY_NEW_TOTAL_CASH_CALCULATION_FAILED);
[codex:306256] 1555 }
[codex:306256]
[codex:306256] thinking
[codex:306256] **Analyzing balance update methods**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1976,2008p'" in /tmp/codex-multi-z9xjivxl succeeded in 7ms:
[codex:306256] 1976 (err, localResults.userBorrowUpdated) = sub(localResults.userBorrowCurrent, localResults.repayAmount);
[codex:306256] 1977 if (err != Error.NO_ERROR) {
[codex:306256] 1978 return fail(err, FailureInfo.REPAY_BORROW_NEW_TOTAL_BALANCE_CALCULATION_FAILED);
[codex:306256] 1979 }
[codex:306256] 1980
[codex:306256] 1981 // Fail gracefully if asset is not approved or has insufficient balance
[codex:306256] 1982 // Note: this checks that repayAmount is less than or equal to their ERC-20 balance
[codex:306256] 1983 err = checkTransferIn(asset, msg.sender, localResults.repayAmount);
[codex:306256] 1984 if (err != Error.NO_ERROR) {
[codex:306256] 1985 return fail(err, FailureInfo.REPAY_BORROW_TRANSFER_IN_NOT_POSSIBLE);
[codex:306256] 1986 }
[codex:306256] 1987
[codex:306256] 1988 // We calculate the protocol's totalBorrow by subtracting the user's prior checkpointed balance, adding user's updated borrow
[codex:306256] 1989 // Note that, even though the customer is paying some of their borrow, if they've accumulated a lot of interest since their last
[codex:306256] 1990 // action, the updated balance *could* be higher than the prior checkpointed balance.
[codex:306256] 1991 (err, localResults.newTotalBorrows) = addThenSub(market.totalBorrows, localResults.userBorrowUpdated, borrowBalance.principal);
[codex:306256] 1992 if (err != Error.NO_ERROR) {
[codex:306256] 1993 return fail(err, FailureInfo.REPAY_BORROW_NEW_TOTAL_BORROW_CALCULATION_FAILED);
[codex:306256] 1994 }
[codex:306256] 1995
[codex:306256]
[codex:306256] thinking
[codex:306256] **Analyzing reentrancy and accounting vulnerabilities**
[codex:306256]
[codex:306256] I’m reviewing risks from reentrancy due to transfer calls happening before state updates, which can let attackers double-borrow or withdraw funds. Also, I’m looking at accounting issues from tokens that charge transfer fees—this can inflate user balances and misstate protocol cash, enabling exploits. I’m noting exact file paths and line numbers to support these findings and preparing a concise JSON summary with two main findings.
[codex:306256] exec
[codex:306256] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-z9xjivxl succeeded in 5ms:
[codex:306256] {"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:306256]
[codex:306256] thinking
[codex:306256] **Composing detailed JSON findings report**
[codex:306256]
[codex:306256] I'm putting together a JSON report summarizing two main issues: a high-severity reentrancy vulnerability from token transfers happening before state updates in borrow/withdraw functions, and a medium-severity accounting problem with fee-on-transfer tokens causing balance mismatches. Each finding includes a clear exploit scenario, recommended fixes, evidence snippets, and relevant code locations to help the user understand and address these security risks.
[codex:306256] codex
[codex:306256] {"no_findings":false,"summary":"Identified 2 issues: a reentrancy window on transfer-out in borrow/withdraw, and accounting mismatches for fee-on-transfer tokens in transfer-in paths.","findings":[{"severity":"high","category":"reentrancy","title":"Reentrancy via transfer-out before state updates in borrow/withdraw","exploit_scenario":"An attacker contract borrows or withdraws an asset that triggers a callback on transfer (e.g., ERC777-style hooks). During `doTransferOut`, the token or recipient hook reenters `borrow`/`withdraw` before the protocol updates market and user balances. Because the checks still see the old balances, the attacker can repeatedly borrow/withdraw in a single transaction and drain available cash.","recommendation":"Apply checks-effects-interactions: update market/user balances before calling `doTransferOut`, or add a reentrancy guard around state-changing entry points. Alternatively, restrict supported assets to ERC20s without callbacks.","evidence":"`borrow` and `withdraw` perform `doTransferOut` and only update market/user storage afterwards, leaving a reentrancy window.","locations":["contracts/Contract.sol:1734","contracts/Contract.sol:2646"]},{"severity":"medium","category":"other","title":"Fee-on-transfer tokens can mint unbacked balances due to assuming full transfer-in amount","exploit_scenario":"If a supported asset charges a transfer fee, a user can supply or repay using `amount` while the protocol receives less. The contract credits the full `amount` to supply or reduces borrow by the full `amount`, creating unbacked balances. The attacker can then borrow other assets or withdraw more than the protocol actually holds, leading to insolvency.","recommendation":"Use balance-delta accounting for transfer-ins (record `cashBefore`, execute transfer, compute `cashAfter - cashBefore` and use that actual amount). Consider rejecting fee-on-transfer/deflationary tokens at listing time.","evidence":"`doTransferIn` only inspects return data and never checks the actual balance delta; supply/repay calculations use the requested `amount` before the transfer occurs.","locations":["contracts/Contract.sol:396","contracts/Contract.sol:401","contracts/Contract.sol:1538","contracts/Contract.sol:1552","contracts/Contract.sol:1976"]}]}
[codex:306256] tokens used
[codex:306256] 105,326
[codex:306256] {"no_findings":false,"summary":"Identified 2 issues: a reentrancy window on transfer-out in borrow/withdraw, and accounting mismatches for fee-on-transfer tokens in transfer-in paths.","findings":[{"severity":"high","category":"reentrancy","title":"Reentrancy via transfer-out before state updates in borrow/withdraw","exploit_scenario":"An attacker contract borrows or withdraws an asset that triggers a callback on transfer (e.g., ERC777-style hooks). During `doTransferOut`, the token or recipient hook reenters `borrow`/`withdraw` before the protocol updates market and user balances. Because the checks still see the old balances, the attacker can repeatedly borrow/withdraw in a single transaction and drain available cash.","recommendation":"Apply checks-effects-interactions: update market/user balances before calling `doTransferOut`, or add a reentrancy guard around state-changing entry points. Alternatively, restrict supported assets to ERC20s without callbacks.","evidence":"`borrow` and `withdraw` perform `doTransferOut` and only update market/user storage afterwards, leaving a reentrancy window.","locations":["contracts/Contract.sol:1734","contracts/Contract.sol:2646"]},{"severity":"medium","category":"other","title":"Fee-on-transfer tokens can mint unbacked balances due to assuming full transfer-in amount","exploit_scenario":"If a supported asset charges a transfer fee, a user can supply or repay using `amount` while the protocol receives less. The contract credits the full `amount` to supply or reduces borrow by the full `amount`, creating unbacked balances. The attacker can then borrow other assets or withdraw more than the protocol actually holds, leading to insolvency.","recommendation":"Use balance-delta accounting for transfer-ins (record `cashBefore`, execute transfer, compute `cashAfter - cashBefore` and use that actual amount). Consider rejecting fee-on-transfer/deflationary tokens at listing time.","evidence":"`doTransferIn` only inspects return data and never checks the actual balance delta; supply/repay calculations use the requested `amount` before the transfer occurs.","locations":["contracts/Contract.sol:396","contracts/Contract.sol:401","contracts/Contract.sol:1538","contracts/Contract.sol:1552","contracts/Contract.sol:1976"]}]}
{
"codex": {
"ran_at": "2025-12-28T16:16:30.207842+00:00",
"returncode": 0
},
"summary": "Identified 2 issues: a reentrancy window on transfer-out in borrow/withdraw, and accounting mismatches for fee-on-transfer tokens in transfer-in paths.",
"raw_final": {
"summary": "Identified 2 issues: a reentrancy window on transfer-out in borrow/withdraw, and accounting mismatches for fee-on-transfer tokens in transfer-in paths.",
"findings": [
{
"title": "Reentrancy via transfer-out before state updates in borrow/withdraw",
"category": "reentrancy",
"evidence": "`borrow` and `withdraw` perform `doTransferOut` and only update market/user storage afterwards, leaving a reentrancy window.",
"severity": "high",
"locations": [
"contracts/Contract.sol:1734",
"contracts/Contract.sol:2646"
],
"recommendation": "Apply checks-effects-interactions: update market/user balances before calling `doTransferOut`, or add a reentrancy guard around state-changing entry points. Alternatively, restrict supported assets to ERC20s without callbacks.",
"exploit_scenario": "An attacker contract borrows or withdraws an asset that triggers a callback on transfer (e.g., ERC777-style hooks). During `doTransferOut`, the token or recipient hook reenters `borrow`/`withdraw` before the protocol updates market and user balances. Because the checks still see the old balances, the attacker can repeatedly borrow/withdraw in a single transaction and drain available cash."
},
{
"title": "Fee-on-transfer tokens can mint unbacked balances due to assuming full transfer-in amount",
"category": "other",
"evidence": "`doTransferIn` only inspects return data and never checks the actual balance delta; supply/repay calculations use the requested `amount` before the transfer occurs.",
"severity": "medium",
"locations": [
"contracts/Contract.sol:396",
"contracts/Contract.sol:401",
"contracts/Contract.sol:1538",
"contracts/Contract.sol:1552",
"contracts/Contract.sol:1976"
],
"recommendation": "Use balance-delta accounting for transfer-ins (record `cashBefore`, execute transfer, compute `cashAfter - cashBefore` and use that actual amount). Consider rejecting fee-on-transfer/deflationary tokens at listing time.",
"exploit_scenario": "If a supported asset charges a transfer fee, a user can supply or repay using `amount` while the protocol receives less. The contract credits the full `amount` to supply or reduces borrow by the full `amount`, creating unbacked balances. The attacker can then borrow other assets or withdraw more than the protocol actually holds, leading to insolvency."
}
],
"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 0x017c 0000000c: JUMPI 0000000d: PUSH4 0xffffffff 00000012: PUSH1 0xe0 00000014: PUSH1 0x02 00000016: EXP 00000017: PUSH1 0x00 00000019: CALLDATALOAD 0000001a: DIV 0000001b: AND 0000001c: PUSH4 0x118e31b7 00000021: DUP2 00000022: EQ 00000023: PUSH2 0x0181 00000026: JUMPI 00000027: DUP1 00000028: PUSH4 0x24021127 0000002d: EQ 0000002e: PUSH2 0x01ba 00000031: JUMPI 00000032: DUP1 00000033: PUSH4 0x26617c28 00000038: EQ 00000039: PUSH2 0x01d2 0000003c: JUMPI 0000003d: DUP1 0000003e: PUSH4 0x26782247 00000043: EQ 00000044: PUSH2 0x01ec 00000047: JUMPI 00000048: DUP1 00000049: PUSH4 0x3be59443 0000004e: EQ 0000004f: PUSH2 0x021d 00000052: JUMPI 00000053: DUP1 00000054: PUSH4 0x4706c375 00000059: EQ 0000005a: PUSH2 0x023e 0000005d: JUMPI 0000005e: DUP1 0000005f: PUSH4 0x4b8a3529 00000064: EQ 00000065: PUSH2 0x0262 00000068: JUMPI 00000069: DUP1 0000006a: PUSH4 0x5c975abb 0000006f: EQ 00000070: PUSH2 0x0286 00000073: JUMPI 00000074: DUP1 00000075: PUSH4 0x5cf756d2 0000007a: EQ 0000007b: PUSH2 0x02af 0000007e: JUMPI 0000007f: DUP1 00000080: PUSH4 0x5e9a523c 00000085: EQ 00000086: PUSH2 0x02d6 00000089: JUMPI 0000008a: DUP1 0000008b: PUSH4 0x5ec88c79 00000090: EQ 00000091: PUSH2 0x02f7 00000094: JUMPI 00000095: DUP1 00000096: PUSH4 0x6e2ede03 0000009b: EQ 0000009c: PUSH2 0x0318 0000009f: JUMPI 000000a0: DUP1 000000a1: PUSH4 0x7dc0d1d0 000000a6: EQ 000000a7: PUSH2 0x032d 000000aa: JUMPI 000000ab: DUP1 000000ac: PUSH4 0x8053fcbe 000000b1: EQ 000000b2: PUSH2 0x0342 000000b5: JUMPI 000000b6: DUP1 000000b7: PUSH4 0x8e8f294b 000000bc: EQ 000000bd: PUSH2 0x0357 000000c0: JUMPI 000000c1: DUP1 000000c2: PUSH4 0x9f180cf1 000000c7: EQ 000000c8: PUSH2 0x03c9 000000cb: JUMPI 000000cc: DUP1 000000cd: PUSH4 0xabdb5ea8 000000d2: EQ 000000d3: PUSH2 0x0408 000000d6: JUMPI 000000d7: DUP1 000000d8: PUSH4 0xb4eae1cb 000000dd: EQ 000000de: PUSH2 0x042c 000000e1: JUMPI 000000e2: DUP1 000000e3: PUSH4 0xb71d1a0c 000000e8: EQ 000000e9: PUSH2 0x0441 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0xb7adddac 000000f3: EQ 000000f4: PUSH2 0x0462 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0xb8bb5c42 000000fe: EQ 000000ff: PUSH2 0x04a2 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0xba377731 00000109: EQ 0000010a: PUSH2 0x04b7 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0xbeb54615 00000114: EQ 00000115: PUSH2 0x04de 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0xc1abfaa3 0000011f: EQ 00000120: PUSH2 0x04f6 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0xc365a646 0000012a: EQ 0000012b: PUSH2 0x051d 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0xdbe2bc84 00000135: EQ 00000136: PUSH2 0x0538 00000139: JUMPI 0000013a: DUP1 0000013b: PUSH4 0xe61604cf 00000140: EQ 00000141: PUSH2 0x0559 00000144: JUMPI 00000145: DUP1 00000146: PUSH4 0xe9c714f2 0000014b: EQ 0000014c: PUSH2 0x0589 0000014f: JUMPI 00000150: DUP1 00000151: PUSH4 0xf2b9fdb8 00000156: EQ 00000157: PUSH2 0x059e 0000015a: JUMPI 0000015b: DUP1 0000015c: PUSH4 0xf3fef3a3 00000161: EQ 00000162: PUSH2 0x05c2 00000165: JUMPI 00000166: DUP1 00000167: PUSH4 0xf851a440 0000016c: EQ 0000016d: PUSH2 0x05e6 00000170: JUMPI 00000171: DUP1 00000172: PUSH4 0xfc7d42d7 00000177: EQ 00000178: PUSH2 0x05fb 0000017b: JUMPI 0000017c: JUMPDEST 0000017d: PUSH1 0x00 0000017f: DUP1 00000180: REVERT 00000181: JUMPDEST 00000182: CALLVALUE 00000183: DUP1 00000184: ISZERO 00000185: PUSH2 0x018d 00000188: JUMPI 00000189: PUSH1 0x00 0000018b: DUP1 0000018c: REVERT 0000018d: JUMPDEST 0000018e: POP 0000018f: PUSH2 0x01a8 00000192: PUSH1 0x01 00000194: PUSH1 0xa0 00000196: PUSH1 0x02 00000198: EXP 00000199: SUB 0000019a: PUSH1 0x04 0000019c: CALLDATALOAD 0000019d: DUP2 0000019e: AND 0000019f: SWAP1 000001a0: PUSH1 0x24 000001a2: CALLDATALOAD 000001a3: AND 000001a4: PUSH2 0x0622 000001a7: JUMP 000001a8: JUMPDEST 000001a9: PUSH1 0x40 000001ab: DUP1 000001ac: MLOAD 000001ad: SWAP2 000001ae: DUP3 000001af: MSTORE 000001b0: MLOAD 000001b1: SWAP1 000001b2: DUP2 000001b3: SWAP1 000001b4: SUB 000001b5: PUSH1 0x20 000001b7: ADD 000001b8: SWAP1 000001b9: RETURN 000001ba: JUMPDEST 000001bb: CALLVALUE 000001bc: DUP1 000001bd: ISZERO 000001be: PUSH2 0x01c6 000001c1: JUMPI 000001c2: PUSH1 0x00 000001c4: DUP1 000001c5: REVERT 000001c6: JUMPDEST 000001c7: POP 000001c8: PUSH2 0x01a8 000001cb: PUSH1 0x04 000001cd: CALLDATALOAD 000001ce: PUSH2 0x06de 000001d1: JUMP 000001d2: JUMPDEST 000001d3: CALLVALUE 000001d4: DUP1 000001d5: ISZERO 000001d6: PUSH2 0x01de 000001d9: JUMPI 000001da: PUSH1 0x00 000001dc: DUP1 000001dd: REVERT 000001de: JUMPDEST 000001df: POP 000001e0: PUSH2 0x01a8 000001e3: PUSH1 0x04 000001e5: CALLDATALOAD 000001e6: ISZERO 000001e7: ISZERO 000001e8: PUSH2 0x0772 000001eb: JUMP 000001ec: JUMPDEST 000001ed: CALLVALUE 000001ee: DUP1 000001ef: ISZERO 000001f0: PUSH2 0x01f8 000001f3: JUMPI 000001f4: PUSH1 0x00 000001f6: DUP1 000001f7: REVERT 000001f8: JUMPDEST 000001f9: POP 000001fa: PUSH2 0x0201 000001fd: PUSH2 0x07e9 00000200: JUMP 00000201: JUMPDEST 00000202: PUSH1 0x40 00000204: DUP1 00000205: MLOAD 00000206: PUSH1 0x01 00000208: PUSH1 0xa0 0000020a: PUSH1 0x02 0000020c: EXP 0000020d: SUB 0000020e: SWAP1 0000020f: SWAP3 00000210: AND 00000211: DUP3 00000212: MSTORE 00000213: MLOAD 00000214: SWAP1 00000215: DUP2 00000216: SWAP1 00000217: SUB 00000218: PUSH1 0x20 0000021a: ADD 0000021b: SWAP1 0000021c: RETURN 0000021d: JUMPDEST 0000021e: CALLVALUE 0000021f: DUP1 00000220: ISZERO 00000221: PUSH2 0x0229 00000224: JUMPI 00000225: PUSH1 0x00 00000227: DUP1 00000228: REVERT 00000229: JUMPDEST 0000022a: POP 0000022b: PUSH2 0x01a8 0000022e: PUSH1 0x01 00000230: PUSH1 0xa0 00000232: PUSH1 0x02 00000234: EXP 00000235: SUB 00000236: PUSH1 0x04 00000238: CALLDATALOAD 00000239: AND 0000023a: PUSH2 0x07f8 0000023d: JUMP 0000023e: JUMPDEST 0000023f: CALLVALUE 00000240: DUP1 00000241: ISZERO 00000242: PUSH2 0x024a 00000245: JUMPI 00000246: PUSH1 0x00 00000248: DUP1 00000249: REVERT 0000024a: JUMPDEST 0000024b: POP 0000024c: PUSH2 0x01a8 0000024f: PUSH1 0x01 00000251: PUSH1 0xa0 00000253: PUSH1 0x02 00000255: EXP 00000256: SUB 00000257: PUSH1 0x04 00000259: CALLDATALOAD 0000025a: AND 0000025b: PUSH1 0x24 0000025d: CALLDATALOAD 0000025e: PUSH2 0x092a 00000261: JUMP 00000262: JUMPDEST 00000263: CALLVALUE 00000264: DUP1 00000265: ISZERO 00000266: PUSH2 0x026e 00000269: JUMPI 0000026a: PUSH1 0x00 0000026c: DUP1 0000026d: REVERT 0000026e: JUMPDEST 0000026f: POP 00000270: PUSH2 0x01a8 00000273: PUSH1 0x01 00000275: PUSH1 0xa0 00000277: PUSH1 0x02 00000279: EXP 0000027a: SUB 0000027b: PUSH1 0x04 0000027d: CALLDATALOAD 0000027e: AND 0000027f: PUSH1 0x24 00000281: CALLDATALOAD 00000282: PUSH2 0x0a67 00000285: JUMP 00000286: JUMPDEST 00000287: CALLVALUE 00000288: DUP1 00000289: ISZERO 0000028a: PUSH2 0x0292 0000028d: JUMPI 0000028e: PUSH1 0x00 00000290: DUP1 00000291: REVERT 00000292: JUMPDEST 00000293: POP 00000294: PUSH2 0x029b 00000297: PUSH2 0x0f86 0000029a: JUMP 0000029b: JUMPDEST 0000029c: PUSH1 0x40 0000029e: DUP1 0000029f: MLOAD 000002a0: SWAP2 000002a1: ISZERO 000002a2: ISZERO 000002a3: DUP3 000002a4: MSTORE 000002a5: MLOAD 000002a6: SWAP1 000002a7: DUP2 000002a8: SWAP1 000002a9: SUB 000002aa: PUSH1 0x20 000002ac: ADD 000002ad: SWAP1 000002ae: RETURN 000002af: JUMPDEST 000002b0: CALLVALUE 000002b1: DUP1 000002b2: ISZERO 000002b3: PUSH2 0x02bb 000002b6: JUMPI 000002b7: PUSH1 0x00 000002b9: DUP1 000002ba: REVERT 000002bb: JUMPDEST 000002bc: POP 000002bd: PUSH2 0x01a8 000002c0: PUSH1 0x01 000002c2: PUSH1 0xa0 000002c4: PUSH1 0x02 000002c6: EXP 000002c7: SUB 000002c8: PUSH1 0x04 000002ca: CALLDATALOAD 000002cb: DUP2 000002cc: AND 000002cd: SWAP1 000002ce: PUSH1 0x24 000002d0: CALLDATALOAD 000002d1: AND 000002d2: PUSH2 0x0f8f 000002d5: JUMP 000002d6: JUMPDEST 000002d7: CALLVALUE 000002d8: DUP1 000002d9: ISZERO 000002da: PUSH2 0x02e2 000002dd: JUMPI 000002de: PUSH1 0x00 000002e0: DUP1 000002e1: REVERT 000002e2: JUMPDEST 000002e3: POP 000002e4: PUSH2 0x01a8 000002e7: PUSH1 0x01 000002e9: PUSH1 0xa0 000002eb: PUSH1 0x02 000002ed: EXP 000002ee: SUB 000002ef: PUSH1 0x04 000002f1: CALLDATALOAD 000002f2: AND 000002f3: PUSH2 0x103c 000002f6: JUMP 000002f7: JUMPDEST 000002f8: CALLVALUE 000002f9: DUP1 000002fa: ISZERO 000002fb: PUSH2 0x0303 000002fe: JUMPI 000002ff: PUSH1 0x00 00000301: DUP1 00000302: REVERT 00000303: JUMPDEST 00000304: POP 00000305: PUSH2 0x01a8 00000308: PUSH1 0x01 0000030a: PUSH1 0xa0 0000030c: PUSH1 0x02 0000030e: EXP 0000030f: SUB 00000310: PUSH1 0x04 00000312: CALLDATALOAD 00000313: AND 00000314: PUSH2 0x1079 00000317: JUMP 00000318: JUMPDEST 00000319: CALLVALUE 0000031a: DUP1 0000031b: ISZERO 0000031c: PUSH2 0x0324 0000031f: JUMPI 00000320: PUSH1 0x00 00000322: DUP1 00000323: REVERT 00000324: JUMPDEST 00000325: POP 00000326: PUSH2 0x01a8 00000329: PUSH2 0x10ea 0000032c: JUMP 0000032d: JUMPDEST 0000032e: CALLVALUE 0000032f: DUP1 00000330: ISZERO 00000331: PUSH2 0x0339 00000334: JUMPI 00000335: PUSH1 0x00 00000337: DUP1 00000338: REVERT 00000339: JUMPDEST 0000033a: POP 0000033b: PUSH2 0x0201 0000033e: PUSH2 0x10f0 00000341: JUMP 00000342: JUMPDEST 00000343: CALLVALUE 00000344: DUP1 00000345: ISZERO 00000346: PUSH2 0x034e 00000349: JUMPI 0000034a: PUSH1 0x00 0000034c: DUP1 0000034d: REVERT 0000034e: JUMPDEST 0000034f: POP 00000350: PUSH2 0x01a8 00000353: PUSH2 0x10ff 00000356: JUMP 00000357: JUMPDEST 00000358: CALLVALUE 00000359: DUP1 0000035a: ISZERO 0000035b: PUSH2 0x0363 0000035e: JUMPI 0000035f: PUSH1 0x00 00000361: DUP1 00000362: REVERT 00000363: JUMPDEST 00000364: POP 00000365: PUSH2 0x0378 00000368: PUSH1 0x01 0000036a: PUSH1 0xa0 0000036c: PUSH1 0x02 0000036e: EXP 0000036f: SUB 00000370: PUSH1 0x04 00000372: CALLDATALOAD 00000373: AND 00000374: PUSH2 0x1105 00000377: JUMP 00000378: JUMPDEST 00000379: PUSH1 0x40 0000037b: DUP1 0000037c: MLOAD 0000037d: SWAP10 0000037e: ISZERO 0000037f: ISZERO 00000380: DUP11 00000381: MSTORE 00000382: PUSH1 0x20 00000384: DUP11 00000385: ADD 00000386: SWAP9 00000387: SWAP1 00000388: SWAP9 00000389: MSTORE 0000038a: PUSH1 0x01 0000038c: PUSH1 0xa0 0000038e: PUSH1 0x02 00000390: EXP 00000391: SUB 00000392: SWAP1 00000393: SWAP7 00000394: AND 00000395: DUP9 00000396: DUP9 00000397: ADD 00000398: MSTORE 00000399: PUSH1 0x60 0000039b: DUP9 0000039c: ADD 0000039d: SWAP5 0000039e: SWAP1 0000039f: SWAP5 000003a0: MSTORE 000003a1: PUSH1 0x80 000003a3: DUP8 000003a4: ADD 000003a5: SWAP3 000003a6: SWAP1 000003a7: SWAP3 000003a8: MSTORE 000003a9: PUSH1 0xa0 000003ab: DUP7 000003ac: ADD 000003ad: MSTORE 000003ae: PUSH1 0xc0 000003b0: DUP6 000003b1: ADD 000003b2: MSTORE 000003b3: PUSH1 0xe0 000003b5: DUP5 000003b6: ADD 000003b7: MSTORE 000003b8: PUSH2 0x0100 000003bb: DUP4 000003bc: ADD 000003bd: MSTORE 000003be: MLOAD 000003bf: SWAP1 000003c0: DUP2 000003c1: SWAP1 000003c2: SUB 000003c3: PUSH2 0x0120 000003c6: ADD 000003c7: SWAP1 000003c8: RETURN 000003c9: JUMPDEST 000003ca: CALLVALUE 000003cb: DUP1 000003cc: ISZERO 000003cd: PUSH2 0x03d5 000003d0: JUMPI 000003d1: PUSH1 0x00 000003d3: DUP1 000003d4: REVERT 000003d5: JUMPDEST 000003d6: POP 000003d7: PUSH2 0x03ea 000003da: PUSH1 0x01 000003dc: PUSH1 0xa0 000003de: PUSH1 0x02 000003e0: EXP 000003e1: SUB 000003e2: PUSH1 0x04 000003e4: CALLDATALOAD 000003e5: AND 000003e6: PUSH2 0x115f 000003e9: JUMP 000003ea: JUMPDEST 000003eb: PUSH1 0x40 000003ed: DUP1 000003ee: MLOAD 000003ef: SWAP4 000003f0: DUP5 000003f1: MSTORE 000003f2: PUSH1 0x20 000003f4: DUP5 000003f5: ADD 000003f6: SWAP3 000003f7: SWAP1 000003f8: SWAP3 000003f9: MSTORE 000003fa: DUP3 000003fb: DUP3 000003fc: ADD 000003fd: MSTORE 000003fe: MLOAD 000003ff: SWAP1 00000400: DUP2 00000401: SWAP1 00000402: SUB 00000403: PUSH1 0x60 00000405: ADD 00000406: SWAP1 00000407: RETURN 00000408: JUMPDEST 00000409: CALLVALUE 0000040a: DUP1 0000040b: ISZERO 0000040c: PUSH2 0x0414 0000040f: JUMPI 00000410: PUSH1 0x00 00000412: DUP1 00000413: REVERT 00000414: JUMPDEST 00000415: POP 00000416: PUSH2 0x01a8 00000419: PUSH1 0x01 0000041b: PUSH1 0xa0 0000041d: PUSH1 0x02 0000041f: EXP 00000420: SUB 00000421: PUSH1 0x04 00000423: CALLDATALOAD 00000424: AND 00000425: PUSH1 0x24 00000427: CALLDATALOAD 00000428: PUSH2 0x11bb 0000042b: JUMP 0000042c: JUMPDEST 0000042d: CALLVALUE 0000042e: DUP1 0000042f: ISZERO 00000430: PUSH2 0x0438 00000433: JUMPI 00000434: PUSH1 0x00 00000436: DUP1 00000437: REVERT 00000438: JUMPDEST 00000439: POP 0000043a: PUSH2 0x01a8 0000043d: PUSH2 0x1643 00000440: JUMP 00000441: JUMPDEST 00000442: CALLVALUE 00000443: DUP1 00000444: ISZERO 00000445: PUSH2 0x044d 00000448: JUMPI 00000449: PUSH1 0x00 0000044b: DUP1 0000044c: REVERT 0000044d: JUMPDEST 0000044e: POP 0000044f: PUSH2 0x01a8 00000452: PUSH1 0x01 00000454: PUSH1 0xa0 00000456: PUSH1 0x02 00000458: EXP 00000459: SUB 0000045a: PUSH1 0x04 0000045c: CALLDATALOAD 0000045d: AND 0000045e: PUSH2 0x1649 00000461: JUMP 00000462: JUMPDEST 00000463: CALLVALUE 00000464: DUP1 00000465: ISZERO 00000466: PUSH2 0x046e 00000469: JUMPI 0000046a: PUSH1 0x00 0000046c: DUP1 0000046d: REVERT 0000046e: JUMPDEST 0000046f: POP 00000470: PUSH2 0x0489 00000473: PUSH1 0x01 00000475: PUSH1 0xa0 00000477: PUSH1 0x02 00000479: EXP 0000047a: SUB 0000047b: PUSH1 0x04 0000047d: CALLDATALOAD 0000047e: DUP2 0000047f: AND 00000480: SWAP1 00000481: PUSH1 0x24 00000483: CALLDATALOAD 00000484: AND 00000485: PUSH2 0x16e0 00000488: JUMP 00000489: JUMPDEST 0000048a: PUSH1 0x40 0000048c: DUP1 0000048d: MLOAD 0000048e: SWAP3 0000048f: DUP4 00000490: MSTORE 00000491: PUSH1 0x20 00000493: DUP4 00000494: ADD 00000495: SWAP2 00000496: SWAP1 00000497: SWAP2 00000498: MSTORE 00000499: DUP1 0000049a: MLOAD 0000049b: SWAP2 0000049c: DUP3 0000049d: SWAP1 0000049e: SUB 0000049f: ADD 000004a0: SWAP1 000004a1: RETURN 000004a2: JUMPDEST 000004a3: CALLVALUE 000004a4: DUP1 000004a5: ISZERO 000004a6: PUSH2 0x04ae 000004a9: JUMPI 000004aa: PUSH1 0x00 000004ac: DUP1 000004ad: REVERT 000004ae: JUMPDEST 000004af: POP 000004b0: PUSH2 0x01a8 000004b3: PUSH2 0x1704 000004b6: JUMP 000004b7: JUMPDEST 000004b8: CALLVALUE 000004b9: DUP1 000004ba: ISZERO 000004bb: PUSH2 0x04c3 000004be: JUMPI 000004bf: PUSH1 0x00 000004c1: DUP1 000004c2: REVERT 000004c3: JUMPDEST 000004c4: POP 000004c5: PUSH2 0x01a8 000004c8: PUSH1 0x01 000004ca: PUSH1 0xa0 000004cc: PUSH1 0x02 000004ce: EXP 000004cf: SUB 000004d0: PUSH1 0x04 000004d2: CALLDATALOAD 000004d3: DUP2 000004d4: AND 000004d5: SWAP1 000004d6: PUSH1 0x24 000004d8: CALLDATALOAD 000004d9: AND 000004da: PUSH2 0x170a 000004dd: JUMP 000004de: JUMPDEST 000004df: CALLVALUE 000004e0: DUP1 000004e1: ISZERO 000004e2: PUSH2 0x04ea 000004e5: JUMPI 000004e6: PUSH1 0x00 000004e8: DUP1 000004e9: REVERT 000004ea: JUMPDEST 000004eb: POP 000004ec: PUSH2 0x0201 000004ef: PUSH1 0x04 000004f1: CALLDATALOAD 000004f2: PUSH2 0x1763 000004f5: JUMP 000004f6: JUMPDEST 000004f7: CALLVALUE 000004f8: DUP1 000004f9: ISZERO 000004fa: PUSH2 0x0502 000004fd: JUMPI 000004fe: PUSH1 0x00 00000500: DUP1 00000501: REVERT 00000502: JUMPDEST 00000503: POP 00000504: PUSH2 0x01a8 00000507: PUSH1 0x01 00000509: PUSH1 0xa0 0000050b: PUSH1 0x02 0000050d: EXP 0000050e: SUB 0000050f: PUSH1 0x04 00000511: CALLDATALOAD 00000512: DUP2 00000513: AND 00000514: SWAP1 00000515: PUSH1 0x24 00000517: CALLDATALOAD 00000518: AND 00000519: PUSH2 0x178b 0000051c: JUMP 0000051d: JUMPDEST 0000051e: CALLVALUE 0000051f: DUP1 00000520: ISZERO 00000521: PUSH2 0x0529 00000524: JUMPI 00000525: PUSH1 0x00 00000527: DUP1 00000528: REVERT 00000529: JUMPDEST 0000052a: POP 0000052b: PUSH2 0x01a8 0000052e: PUSH1 0x04 00000530: CALLDATALOAD 00000531: PUSH1 0x24 00000533: CALLDATALOAD 00000534: PUSH2 0x193a 00000537: JUMP 00000538: JUMPDEST 00000539: CALLVALUE 0000053a: DUP1 0000053b: ISZERO 0000053c: PUSH2 0x0544 0000053f: JUMPI 00000540: PUSH1 0x00 00000542: DUP1 00000543: REVERT 00000544: JUMPDEST 00000545: POP 00000546: PUSH2 0x01a8 00000549: PUSH1 0x01 0000054b: PUSH1 0xa0 0000054d: PUSH1 0x02 0000054f: EXP 00000550: SUB 00000551: PUSH1 0x04 00000553: CALLDATALOAD 00000554: AND 00000555: PUSH2 0x1af6 00000558: JUMP 00000559: JUMPDEST 0000055a: CALLVALUE 0000055b: DUP1 0000055c: ISZERO 0000055d: PUSH2 0x0565 00000560: JUMPI 00000561: PUSH1 0x00 00000563: DUP1 00000564: REVERT 00000565: JUMPDEST 00000566: POP 00000567: PUSH2 0x01a8 0000056a: PUSH1 0x01 0000056c: PUSH1 0xa0 0000056e: PUSH1 0x02 00000570: EXP 00000571: SUB 00000572: PUSH1 0x04 00000574: CALLDATALOAD 00000575: DUP2 00000576: AND 00000577: SWAP1 00000578: PUSH1 0x24 0000057a: CALLDATALOAD 0000057b: DUP2 0000057c: AND 0000057d: SWAP1 0000057e: PUSH1 0x44 00000580: CALLDATALOAD 00000581: AND 00000582: PUSH1 0x64 00000584: CALLDATALOAD 00000585: PUSH2 0x1b9c 00000588: JUMP 00000589: JUMPDEST 0000058a: CALLVALUE 0000058b: DUP1 0000058c: ISZERO 0000058d: PUSH2 0x0595 00000590: JUMPI 00000591: PUSH1 0x00 00000593: DUP1 00000594: REVERT 00000595: JUMPDEST 00000596: POP 00000597: PUSH2 0x01a8 0000059a: PUSH2 0x255c 0000059d: JUMP 0000059e: JUMPDEST 0000059f: CALLVALUE 000005a0: DUP1 000005a1: ISZERO 000005a2: PUSH2 0x05aa 000005a5: JUMPI 000005a6: PUSH1 0x00 000005a8: DUP1 000005a9: REVERT 000005aa: JUMPDEST 000005ab: POP 000005ac: PUSH2 0x01a8 000005af: PUSH1 0x01 000005b1: PUSH1 0xa0 000005b3: PUSH1 0x02 000005b5: EXP 000005b6: SUB 000005b7: PUSH1 0x04 000005b9: CALLDATALOAD 000005ba: AND 000005bb: PUSH1 0x24 000005bd: CALLDATALOAD 000005be: PUSH2 0x2602 000005c1: JUMP 000005c2: JUMPDEST 000005c3: CALLVALUE 000005c4: DUP1 000005c5: ISZERO 000005c6: PUSH2 0x05ce 000005c9: JUMPI 000005ca: PUSH1 0x00 000005cc: DUP1 000005cd: REVERT 000005ce: JUMPDEST 000005cf: POP 000005d0: PUSH2 0x01a8 000005d3: PUSH1 0x01 000005d5: PUSH1 0xa0 000005d7: PUSH1 0x02 000005d9: EXP 000005da: SUB 000005db: PUSH1 0x04 000005dd: CALLDATALOAD 000005de: AND 000005df: PUSH1 0x24 000005e1: CALLDATALOAD 000005e2: PUSH2 0x2a56 000005e5: JUMP 000005e6: JUMPDEST 000005e7: CALLVALUE 000005e8: DUP1 000005e9: ISZERO 000005ea: PUSH2 0x05f2 000005ed: JUMPI 000005ee: PUSH1 0x00 000005f0: DUP1 000005f1: REVERT 000005f2: JUMPDEST 000005f3: POP 000005f4: PUSH2 0x0201 000005f7: PUSH2 0x2fd3 000005fa: JUMP 000005fb: JUMPDEST 000005fc: CALLVALUE 000005fd: DUP1 000005fe: ISZERO 000005ff: PUSH2 0x0607 00000602: JUMPI 00000603: PUSH1 0x00 00000605: DUP1 00000606: REVERT 00000607: JUMPDEST 00000608: POP 00000609: PUSH2 0x0489 0000060c: PUSH1 0x01 0000060e: PUSH1 0xa0 00000610: PUSH1 0x02 00000612: EXP 00000613: SUB 00000614: PUSH1 0x04 00000616: CALLDATALOAD 00000617: DUP2 00000618: AND 00000619: SWAP1 0000061a: PUSH1 0x24 0000061c: CALLDATALOAD 0000061d: AND 0000061e: PUSH2 0x2fe2 00000621: JUMP 00000622: JUMPDEST 00000623: PUSH1 0x01 00000625: PUSH1 0xa0 00000627: PUSH1 0x02 00000629: EXP 0000062a: SUB 0000062b: DUP1 0000062c: DUP3 0000062d: AND 0000062e: PUSH1 0x00 00000630: DUP2 00000631: DUP2 00000632: MSTORE 00000633: PUSH1 0x05 00000635: PUSH1 0x20 00000637: SWAP1 00000638: DUP2 00000639: MSTORE 0000063a: PUSH1 0x40 0000063c: DUP1 0000063d: DUP4 0000063e: KECCAK256 0000063f: SWAP5 00000640: DUP8 00000641: AND 00000642: DUP4 00000643: MSTORE 00000644: PUSH1 0x04 00000646: DUP3 00000647: MSTORE 00000648: DUP1 00000649: DUP4 0000064a: KECCAK256 0000064b: SWAP4 0000064c: DUP4 0000064d: MSTORE 0000064e: SWAP3 0000064f: SWAP1 00000650: MSTORE 00000651: SWAP1 00000652: DUP2 00000653: KECCAK256 00000654: PUSH1 0x08 00000656: DUP4 00000657: ADD 00000658: SLOAD 00000659: PUSH1 0x07 0000065b: DUP5 0000065c: ADD 0000065d: SLOAD 0000065e: PUSH1 0x01 00000660: DUP6 00000661: ADD 00000662: SLOAD 00000663: SWAP4 00000664: SWAP5 00000665: DUP6 00000666: SWAP5 00000667: DUP6 00000668: SWAP5 00000669: DUP6 0000066a: SWAP5 0000066b: SWAP3 0000066c: SWAP4 0000066d: SWAP1 0000066e: SWAP3 0000066f: PUSH2 0x0682 00000672: SWAP3 00000673: SWAP1 00000674: SWAP2 00000675: SWAP1 00000676: PUSH2 0x067d 00000679: PUSH2 0x3006 0000067c: JUMP 0000067d: JUMPDEST 0000067e: PUSH2 0x300a 00000681: JUMP 00000682: JUMPDEST 00000683: SWAP1 00000684: SWAP6 00000685: POP 00000686: SWAP4 00000687: POP 00000688: PUSH1 0x00 0000068a: DUP6 0000068b: PUSH1 0x19 0000068d: DUP2 0000068e: GT 0000068f: ISZERO 00000690: PUSH2 0x0695 00000693: JUMPI 00000694: INVALID 00000695: JUMPDEST 00000696: EQ 00000697: PUSH2 0x069f 0000069a: JUMPI 0000069b: PUSH1 0x00 0000069d: DUP1 0000069e: REVERT 0000069f: JUMPDEST 000006a0: PUSH2 0x06b2 000006a3: DUP2 000006a4: PUSH1 0x00 000006a6: ADD 000006a7: SLOAD 000006a8: DUP3 000006a9: PUSH1 0x01 000006ab: ADD 000006ac: SLOAD 000006ad: DUP7 000006ae: PUSH2 0x3135 000006b1: JUMP 000006b2: JUMPDEST 000006b3: SWAP1 000006b4: SWAP6 000006b5: POP 000006b6: SWAP3 000006b7: POP 000006b8: PUSH1 0x00 000006ba: DUP6 000006bb: PUSH1 0x19 000006bd: DUP2 000006be: GT 000006bf: ISZERO 000006c0: PUSH2 0x06c5 000006c3: JUMPI 000006c4: INVALID 000006c5: JUMPDEST 000006c6: EQ 000006c7: PUSH2 0x06cf 000006ca: JUMPI 000006cb: PUSH1 0x00 000006cd: DUP1 000006ce: REVERT 000006cf: JUMPDEST 000006d0: DUP3 000006d1: SWAP6 000006d2: POP 000006d3: JUMPDEST 000006d4: POP 000006d5: POP 000006d6: POP 000006d7: POP 000006d8: POP 000006d9: SWAP3 000006da: SWAP2 000006db: POP 000006dc: POP 000006dd: JUMP 000006de: JUMPDEST 000006df: PUSH1 0x00 000006e1: PUSH2 0x06e8 000006e4: PUSH2 0x47b0 000006e7: JUMP 000006e8: JUMPDEST 000006e9: PUSH1 0x01 000006eb: SLOAD 000006ec: PUSH1 0x01 000006ee: PUSH1 0xa0 000006f0: PUSH1 0x02 000006f2: EXP 000006f3: SUB 000006f4: AND 000006f5: CALLER 000006f6: EQ 000006f7: PUSH2 0x070d 000006fa: JUMPI 000006fb: PUSH2 0x0706 000006fe: PUSH1 0x02 00000700: PUSH1 0x38 00000702: PUSH2 0x3196 00000705: JUMP 00000706: JUMPDEST 00000707: SWAP2 00000708: POP 00000709: PUSH2 0x076c 0000070c: JUMP 0000070d: JUMPDEST 0000070e: POP 0000070f: PUSH1 0x40 00000711: DUP1 00000712: MLOAD 00000713: PUSH1 0x20 00000715: DUP2 00000716: DUP2 00000717: ADD 00000718: DUP4 00000719: MSTORE 0000071a: PUSH1 0x08 0000071c: DUP1 0000071d: SLOAD 0000071e: DUP4 0000071f: MSTORE 00000720: DUP4 00000721: MLOAD 00000722: DUP1 00000723: DUP4 00000724: ADD 00000725: DUP6 00000726: MSTORE 00000727: DUP7 00000728: SWAP1 00000729: MSTORE 0000072a: DUP6 0000072b: SWAP1 0000072c: SSTORE 0000072d: DUP2 0000072e: MLOAD 0000072f: DUP4 00000730: MLOAD 00000731: SWAP1 00000732: DUP2 00000733: MSTORE 00000734: SWAP1 00000735: DUP2 00000736: ADD 00000737: DUP6 00000738: SWAP1 00000739: MSTORE 0000073a: DUP3 0000073b: MLOAD 0000073c: SWAP2 0000073d: SWAP3 0000073e: PUSH32 0xddf0479a07b0178bbfb5faf3e59335c0824cba499a638f0a4c9909596721ae9c 0000075f: SWAP3 00000760: SWAP2 00000761: DUP3 00000762: SWAP1 00000763: SUB 00000764: ADD 00000765: SWAP1 00000766: LOG1 00000767: PUSH1 0x00 00000769: JUMPDEST 0000076a: SWAP2 0000076b: POP 0000076c: JUMPDEST 0000076d: POP 0000076e: SWAP2 0000076f: SWAP1 00000770: POP 00000771: JUMP 00000772: JUMPDEST 00000773: PUSH1 0x01 00000775: SLOAD 00000776: PUSH1 0x00 00000778: SWAP1 00000779: PUSH1 0x01 0000077b: PUSH1 0xa0 0000077d: PUSH1 0x02 0000077f: EXP 00000780: SUB 00000781: AND 00000782: CALLER 00000783: EQ 00000784: PUSH2 0x079a 00000787: JUMPI 00000788: PUSH2 0x0793 0000078b: PUSH1 0x02 0000078d: PUSH1 0x39 0000078f: PUSH2 0x3196 00000792: JUMP 00000793: JUMPDEST 00000794: SWAP1 00000795: POP 00000796: PUSH2 0x07e4 00000799: JUMP 0000079a: JUMPDEST 0000079b: PUSH1 0x0a 0000079d: DUP1 0000079e: SLOAD 0000079f: DUP4 000007a0: ISZERO 000007a1: ISZERO 000007a2: PUSH1 0xff 000007a4: NOT 000007a5: SWAP1 000007a6: SWAP2 000007a7: AND 000007a8: DUP2 000007a9: OR 000007aa: SWAP1 000007ab: SWAP2 000007ac: SSTORE 000007ad: PUSH1 0x40 000007af: DUP1 000007b0: MLOAD 000007b1: SWAP2 000007b2: DUP3 000007b3: MSTORE 000007b4: MLOAD 000007b5: PUSH32 0x3c70af01296aef045b2f5c9d3c30b05d4428fd257145b9c7fcd76418e65b5980 000007d6: SWAP2 000007d7: DUP2 000007d8: SWAP1 000007d9: SUB 000007da: PUSH1 0x20 000007dc: ADD 000007dd: SWAP1 000007de: LOG1 000007df: PUSH1 0x00 000007e1: JUMPDEST 000007e2: SWAP1 000007e3: POP 000007e4: JUMPDEST 000007e5: SWAP2 000007e6: SWAP1 000007e7: POP 000007e8: JUMP 000007e9: JUMPDEST 000007ea: PUSH1 0x00 000007ec: SLOAD 000007ed: PUSH1 0x01 000007ef: PUSH1 0xa0 000007f1: PUSH1 0x02 000007f3: EXP 000007f4: SUB 000007f5: AND 000007f6: DUP2 000007f7: JUMP 000007f8: JUMPDEST 000007f9: PUSH1 0x01 000007fb: SLOAD 000007fc: PUSH1 0x00 000007fe: SWAP1 000007ff: DUP2 00000800: SWAP1 00000801: DUP2 00000802: SWAP1 00000803: PUSH1 0x01 00000805: PUSH1 0xa0 00000807: PUSH1 0x02 00000809: EXP 0000080a: SUB 0000080b: AND 0000080c: CALLER 0000080d: EQ 0000080e: PUSH2 0x0824 00000811: JUMPI 00000812: PUSH2 0x081d 00000815: PUSH1 0x02 00000817: PUSH1 0x37 00000819: PUSH2 0x3196 0000081c: JUMP 0000081d: JUMPDEST 0000081e: SWAP3 0000081f: POP 00000820: PUSH2 0x0923 00000823: JUMP 00000824: JUMPDEST 00000825: DUP4 00000826: SWAP2 00000827: POP 00000828: DUP2 00000829: PUSH1 0x01 0000082b: PUSH1 0xa0 0000082d: PUSH1 0x02 0000082f: EXP 00000830: SUB 00000831: AND 00000832: PUSH4 0x5e9a523c 00000837: PUSH1 0x00 00000839: PUSH1 0x40 0000083b: MLOAD 0000083c: DUP3 0000083d: PUSH4 0xffffffff 00000842: AND 00000843: PUSH1 0xe0 00000845: PUSH1 0x02 00000847: EXP 00000848: MUL 00000849: DUP2 0000084a: MSTORE 0000084b: PUSH1 0x04 0000084d: ADD 0000084e: DUP1 0000084f: DUP3 00000850: PUSH1 0x01 00000852: PUSH1 0xa0 00000854: PUSH1 0x02 00000856: EXP 00000857: SUB 00000858: AND 00000859: PUSH1 0x01 0000085b: PUSH1 0xa0 0000085d: PUSH1 0x02 0000085f: EXP 00000860: SUB 00000861: AND 00000862: DUP2 00000863: MSTORE 00000864: PUSH1 0x20 00000866: ADD 00000867: SWAP2 00000868: POP 00000869: POP 0000086a: PUSH1 0x20 0000086c: PUSH1 0x40 0000086e: MLOAD 0000086f: DUP1 00000870: DUP4 00000871: SUB 00000872: DUP2 00000873: PUSH1 0x00 00000875: DUP8 00000876: DUP1 00000877: EXTCODESIZE 00000878: ISZERO 00000879: DUP1 0000087a: ISZERO 0000087b: PUSH2 0x0883 0000087e: JUMPI 0000087f: PUSH1 0x00 00000881: DUP1 00000882: REVERT 00000883: JUMPDEST 00000884: POP 00000885: GAS 00000886: CALL 00000887: ISZERO 00000888: DUP1 00000889: ISZERO 0000088a: PUSH2 0x0897 0000088d: JUMPI 0000088e: RETURNDATASIZE 0000088f: PUSH1 0x00 00000891: DUP1 00000892: RETURNDATACOPY 00000893: RETURNDATASIZE 00000894: PUSH1 0x00 00000896: REVERT 00000897: JUMPDEST 00000898: POP 00000899: POP 0000089a: POP 0000089b: POP 0000089c: PUSH1 0x40 0000089e: MLOAD 0000089f: RETURNDATASIZE 000008a0: PUSH1 0x20 000008a2: DUP2 000008a3: LT 000008a4: ISZERO 000008a5: PUSH2 0x08ad 000008a8: JUMPI 000008a9: PUSH1 0x00 000008ab: DUP1 000008ac: REVERT 000008ad: JUMPDEST 000008ae: POP 000008af: POP 000008b0: PUSH1 0x02 000008b2: DUP1 000008b3: SLOAD 000008b4: PUSH1 0x01 000008b6: PUSH1 0xa0 000008b8: PUSH1 0x02 000008ba: EXP 000008bb: SUB 000008bc: DUP7 000008bd: DUP2 000008be: AND 000008bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008d4: NOT 000008d5: DUP4 000008d6: AND 000008d7: DUP2 000008d8: OR 000008d9: SWAP1 000008da: SWAP4 000008db: SSTORE 000008dc: PUSH1 0x40 000008de: DUP1 000008df: MLOAD 000008e0: SWAP2 000008e1: SWAP1 000008e2: SWAP3 000008e3: AND 000008e4: DUP1 000008e5: DUP3 000008e6: MSTORE 000008e7: PUSH1 0x20 000008e9: DUP3 000008ea: ADD 000008eb: SWAP4 000008ec: SWAP1 000008ed: SWAP4 000008ee: MSTORE 000008ef: DUP2 000008f0: MLOAD 000008f1: SWAP3 000008f2: SWAP4 000008f3: POP 000008f4: PUSH32 0x08763b8c90c5db415d7b7f0e18ec87eda82e24e52e2ea8135d44e17db46d85bb 00000915: SWAP3 00000916: SWAP1 00000917: DUP2 00000918: SWAP1 00000919: SUB 0000091a: SWAP1 0000091b: SWAP2 0000091c: ADD 0000091d: SWAP1 0000091e: LOG1 0000091f: PUSH1 0x00 00000921: SWAP3 00000922: POP 00000923: JUMPDEST 00000924: POP 00000925: POP 00000926: SWAP2 00000927: SWAP1 00000928: POP 00000929: JUMP 0000092a: JUMPDEST 0000092b: PUSH1 0x01 0000092d: SLOAD 0000092e: PUSH1 0x00 00000930: SWAP1 00000931: DUP2 00000932: SWAP1 00000933: DUP2 00000934: SWAP1 00000935: DUP2 00000936: SWAP1 00000937: DUP2 00000938: SWAP1 00000939: PUSH1 0x01 0000093b: PUSH1 0xa0 0000093d: PUSH1 0x02 0000093f: EXP 00000940: SUB 00000941: AND 00000942: CALLER 00000943: EQ 00000944: PUSH2 0x095a 00000947: JUMPI 00000948: PUSH2 0x0953 0000094b: PUSH1 0x02 0000094d: PUSH1 0x13 0000094f: PUSH2 0x3196 00000952: JUMP 00000953: JUMPDEST 00000954: SWAP5 00000955: POP 00000956: PUSH2 0x0a5d 00000959: JUMP 0000095a: JUMPDEST 0000095b: PUSH2 0x0963 0000095e: DUP8 0000095f: PUSH2 0x31fc 00000962: JUMP 00000963: JUMPDEST 00000964: PUSH1 0x01 00000966: PUSH1 0xa0 00000968: PUSH1 0x02 0000096a: EXP 0000096b: SUB 0000096c: DUP9 0000096d: AND 0000096e: PUSH1 0x00 00000970: SWAP1 00000971: DUP2 00000972: MSTORE 00000973: PUSH1 0x05 00000975: PUSH1 0x20 00000977: MSTORE 00000978: PUSH1 0x40 0000097a: SWAP1 0000097b: KECCAK256 0000097c: PUSH1 0x06 0000097e: DUP2 0000097f: ADD 00000980: SLOAD 00000981: PUSH1 0x03 00000983: SWAP1 00000984: SWAP2 00000985: ADD 00000986: SLOAD 00000987: SWAP2 00000988: SWAP6 00000989: POP 0000098a: PUSH2 0x0995 0000098d: SWAP2 0000098e: DUP7 0000098f: SWAP2 00000990: SWAP1 00000991: PUSH2 0x3294 00000994: JUMP 00000995: JUMPDEST 00000996: SWAP1 00000997: SWAP4 00000998: POP 00000999: SWAP2 0000099a: POP 0000099b: PUSH1 0x00 0000099d: DUP4 0000099e: PUSH1 0x19 000009a0: DUP2 000009a1: GT 000009a2: ISZERO 000009a3: PUSH2 0x09a8 000009a6: JUMPI 000009a7: INVALID 000009a8: JUMPDEST 000009a9: EQ 000009aa: PUSH2 0x09b8 000009ad: JUMPI 000009ae: PUSH2 0x0953 000009b1: DUP4 000009b2: PUSH1 0x12 000009b4: PUSH2 0x3196 000009b7: JUMP 000009b8: JUMPDEST 000009b9: DUP2 000009ba: DUP7 000009bb: GT 000009bc: ISZERO 000009bd: PUSH2 0x09cc 000009c0: JUMPI 000009c1: PUSH2 0x0953 000009c4: PUSH1 0x13 000009c6: PUSH1 0x11 000009c8: PUSH2 0x3196 000009cb: JUMP 000009cc: JUMPDEST 000009cd: PUSH1 0x01 000009cf: SLOAD 000009d0: PUSH2 0x09e4 000009d3: SWAP1 000009d4: DUP9 000009d5: SWAP1 000009d6: PUSH1 0x01 000009d8: PUSH1 0xa0 000009da: PUSH1 0x02 000009dc: EXP 000009dd: SUB 000009de: AND 000009df: DUP9 000009e0: PUSH2 0x32d4 000009e3: JUMP 000009e4: JUMPDEST 000009e5: SWAP1 000009e6: POP 000009e7: PUSH1 0x00 000009e9: DUP2 000009ea: PUSH1 0x19 000009ec: DUP2 000009ed: GT 000009ee: ISZERO 000009ef: PUSH2 0x09f4 000009f2: JUMPI 000009f3: INVALID 000009f4: JUMPDEST 000009f5: EQ 000009f6: PUSH2 0x0a04 000009f9: JUMPI 000009fa: PUSH2 0x0953 000009fd: DUP2 000009fe: PUSH1 0x14 00000a00: PUSH2 0x3196 00000a03: JUMP 00000a04: JUMPDEST 00000a05: PUSH1 0x01 00000a07: SLOAD 00000a08: PUSH1 0x40 00000a0a: DUP1 00000a0b: MLOAD 00000a0c: PUSH1 0x01 00000a0e: PUSH1 0xa0 00000a10: PUSH1 0x02 00000a12: EXP 00000a13: SUB 00000a14: DUP1 00000a15: DUP12 00000a16: AND 00000a17: DUP3 00000a18: MSTORE 00000a19: PUSH1 0x20 00000a1b: DUP3 00000a1c: ADD 00000a1d: DUP7 00000a1e: SWAP1 00000a1f: MSTORE 00000a20: DUP2 00000a21: DUP4 00000a22: ADD 00000a23: DUP11 00000a24: SWAP1 00000a25: MSTORE 00000a26: SWAP1 00000a27: SWAP3 00000a28: AND 00000a29: PUSH1 0x60 00000a2b: DUP4 00000a2c: ADD 00000a2d: MSTORE 00000a2e: MLOAD 00000a2f: PUSH32 0xcb9f0cda23d6b563fc8e14d8fdada71d2ab7dadccc2e26dc353bf20ea8c5b852 00000a50: SWAP2 00000a51: DUP2 00000a52: SWAP1 00000a53: SUB 00000a54: PUSH1 0x80 00000a56: ADD 00000a57: SWAP1 00000a58: LOG1 00000a59: PUSH1 0x00 00000a5b: SWAP5 00000a5c: POP 00000a5d: JUMPDEST 00000a5e: POP 00000a5f: POP 00000a60: POP 00000a61: POP 00000a62: SWAP3 00000a63: SWAP2 00000a64: POP 00000a65: POP 00000a66: JUMP 00000a67: JUMPDEST 00000a68: PUSH1 0x00 00000a6a: PUSH2 0x0a71 00000a6d: PUSH2 0x47c2 00000a70: JUMP 00000a71: JUMPDEST 00000a72: PUSH1 0x0a 00000a74: SLOAD 00000a75: PUSH1 0x00 00000a77: SWAP1 00000a78: DUP2 00000a79: SWAP1 00000a7a: DUP2 00000a7b: SWAP1 00000a7c: DUP2 00000a7d: SWAP1 00000a7e: PUSH1 0xff 00000a80: AND 00000a81: ISZERO 00000a82: PUSH2 0x0a98 00000a85: JUMPI 00000a86: PUSH2 0x0a91 00000a89: PUSH1 0x19 00000a8b: PUSH1 0x06 00000a8d: PUSH2 0x3196 00000a90: JUMP 00000a91: JUMPDEST 00000a92: SWAP6 00000a93: POP 00000a94: PUSH2 0x06d3 00000a97: JUMP 00000a98: JUMPDEST 00000a99: PUSH1 0x01 00000a9b: PUSH1 0xa0 00000a9d: PUSH1 0x02 00000a9f: EXP 00000aa0: SUB 00000aa1: DUP9 00000aa2: AND 00000aa3: PUSH1 0x00 00000aa5: DUP2 00000aa6: DUP2 00000aa7: MSTORE 00000aa8: PUSH1 0x05 00000aaa: PUSH1 0x20 00000aac: SWAP1 00000aad: DUP2 00000aae: MSTORE 00000aaf: PUSH1 0x40 00000ab1: DUP1 00000ab2: DUP4 00000ab3: KECCAK256 00000ab4: CALLER 00000ab5: DUP5 00000ab6: MSTORE 00000ab7: PUSH1 0x04 00000ab9: DUP4 00000aba: MSTORE 00000abb: DUP2 00000abc: DUP5 00000abd: KECCAK256 00000abe: SWAP5 00000abf: DUP5 00000ac0: MSTORE 00000ac1: SWAP4 00000ac2: SWAP1 00000ac3: SWAP2 00000ac4: MSTORE 00000ac5: SWAP1 00000ac6: KECCAK256 00000ac7: DUP2 00000ac8: SLOAD 00000ac9: SWAP2 00000aca: SWAP6 00000acb: POP 00000acc: SWAP4 00000acd: POP 00000ace: PUSH1 0xff 00000ad0: AND 00000ad1: ISZERO 00000ad2: ISZERO 00000ad3: PUSH2 0x0ae2 00000ad6: JUMPI 00000ad7: PUSH2 0x0a91 00000ada: PUSH1 0x0a 00000adc: PUSH1 0x07 00000ade: PUSH2 0x3196 00000ae1: JUMP 00000ae2: JUMPDEST 00000ae3: PUSH2 0x0afc 00000ae6: DUP5 00000ae7: PUSH1 0x08 00000ae9: ADD 00000aea: SLOAD 00000aeb: DUP6 00000aec: PUSH1 0x07 00000aee: ADD 00000aef: SLOAD 00000af0: DUP7 00000af1: PUSH1 0x01 00000af3: ADD 00000af4: SLOAD 00000af5: PUSH2 0x067d 00000af8: PUSH2 0x3006 00000afb: JUMP 00000afc: JUMPDEST 00000afd: DUP7 00000afe: MSTORE 00000aff: SWAP2 00000b00: POP 00000b01: PUSH1 0x00 00000b03: DUP3 00000b04: PUSH1 0x19 00000b06: DUP2 00000b07: GT 00000b08: ISZERO 00000b09: PUSH2 0x0b0e 00000b0c: JUMPI 00000b0d: INVALID 00000b0e: JUMPDEST 00000b0f: EQ 00000b10: PUSH2 0x0b1e 00000b13: JUMPI 00000b14: PUSH2 0x0a91 00000b17: DUP3 00000b18: PUSH1 0x08 00000b1a: PUSH2 0x3196 00000b1d: JUMP 00000b1e: JUMPDEST 00000b1f: DUP3 00000b20: SLOAD 00000b21: PUSH1 0x01 00000b23: DUP5 00000b24: ADD 00000b25: SLOAD 00000b26: DUP7 00000b27: MLOAD 00000b28: PUSH2 0x0b32 00000b2b: SWAP3 00000b2c: SWAP2 00000b2d: SWAP1 00000b2e: PUSH2 0x3135 00000b31: JUMP 00000b32: JUMPDEST 00000b33: PUSH1 0x20 00000b35: DUP8 00000b36: ADD 00000b37: MSTORE 00000b38: SWAP2 00000b39: POP 00000b3a: PUSH1 0x00 00000b3c: DUP3 00000b3d: PUSH1 0x19 00000b3f: DUP2 00000b40: GT 00000b41: ISZERO 00000b42: PUSH2 0x0b47 00000b45: JUMPI 00000b46: INVALID 00000b47: JUMPDEST 00000b48: EQ 00000b49: PUSH2 0x0b57 00000b4c: JUMPI 00000b4d: PUSH2 0x0a91 00000b50: DUP3 00000b51: PUSH1 0x03 00000b53: PUSH2 0x3196 00000b56: JUMP 00000b57: JUMPDEST 00000b58: PUSH2 0x0b60 00000b5b: DUP8 00000b5c: PUSH2 0x33a2 00000b5f: JUMP 00000b60: JUMPDEST 00000b61: PUSH1 0x40 00000b63: DUP8 00000b64: ADD 00000b65: MSTORE 00000b66: SWAP2 00000b67: POP 00000b68: PUSH1 0x00 00000b6a: DUP3 00000b6b: PUSH1 0x19 00000b6d: DUP2 00000b6e: GT 00000b6f: ISZERO 00000b70: PUSH2 0x0b75 00000b73: JUMPI 00000b74: INVALID 00000b75: JUMPDEST 00000b76: EQ 00000b77: PUSH2 0x0b85 00000b7a: JUMPI 00000b7b: PUSH2 0x0a91 00000b7e: DUP3 00000b7f: PUSH1 0x0f 00000b81: PUSH2 0x3196 00000b84: JUMP 00000b85: JUMPDEST 00000b86: PUSH2 0x0b97 00000b89: DUP6 00000b8a: PUSH1 0x20 00000b8c: ADD 00000b8d: MLOAD 00000b8e: DUP7 00000b8f: PUSH1 0x40 00000b91: ADD 00000b92: MLOAD 00000b93: PUSH2 0x347e 00000b96: JUMP 00000b97: JUMPDEST 00000b98: PUSH1 0x60 00000b9a: DUP8 00000b9b: ADD 00000b9c: MSTORE 00000b9d: SWAP2 00000b9e: POP 00000b9f: PUSH1 0x00 00000ba1: DUP3 00000ba2: PUSH1 0x19 00000ba4: DUP2 00000ba5: GT 00000ba6: ISZERO 00000ba7: PUSH2 0x0bac 00000baa: JUMPI 00000bab: INVALID 00000bac: JUMPDEST 00000bad: EQ 00000bae: PUSH2 0x0bbc 00000bb1: JUMPI 00000bb2: PUSH2 0x0a91 00000bb5: DUP3 00000bb6: PUSH1 0x0c 00000bb8: PUSH2 0x3196 00000bbb: JUMP 00000bbc: JUMPDEST 00000bbd: PUSH2 0x0bd3 00000bc0: DUP5 00000bc1: PUSH1 0x06 00000bc3: ADD 00000bc4: SLOAD 00000bc5: DUP7 00000bc6: PUSH1 0x60 00000bc8: ADD 00000bc9: MLOAD 00000bca: DUP6 00000bcb: PUSH1 0x00 00000bcd: ADD 00000bce: SLOAD 00000bcf: PUSH2 0x3294 00000bd2: JUMP 00000bd3: JUMPDEST 00000bd4: PUSH1 0x80 00000bd6: DUP8 00000bd7: ADD 00000bd8: MSTORE 00000bd9: SWAP2 00000bda: POP 00000bdb: PUSH1 0x00 00000bdd: DUP3 00000bde: PUSH1 0x19 00000be0: DUP2 00000be1: GT 00000be2: ISZERO 00000be3: PUSH2 0x0be8 00000be6: JUMPI 00000be7: INVALID 00000be8: JUMPDEST 00000be9: EQ 00000bea: PUSH2 0x0bf8 00000bed: JUMPI 00000bee: PUSH2 0x0a91 00000bf1: DUP3 00000bf2: PUSH1 0x0d 00000bf4: PUSH2 0x3196 00000bf7: JUMP 00000bf8: JUMPDEST 00000bf9: PUSH2 0x0c01 00000bfc: CALLER 00000bfd: PUSH2 0x34a8 00000c00: JUMP 00000c01: JUMPDEST 00000c02: PUSH2 0x0180 00000c05: DUP9 00000c06: ADD 00000c07: MSTORE 00000c08: PUSH2 0x0160 00000c0b: DUP8 00000c0c: ADD 00000c0d: MSTORE 00000c0e: SWAP2 00000c0f: POP 00000c10: PUSH1 0x00 00000c12: DUP3 00000c13: PUSH1 0x19 00000c15: DUP2 00000c16: GT 00000c17: ISZERO 00000c18: PUSH2 0x0c1d 00000c1b: JUMPI 00000c1c: INVALID 00000c1d: JUMPDEST 00000c1e: EQ 00000c1f: PUSH2 0x0c2d 00000c22: JUMPI 00000c23: PUSH2 0x0a91 00000c26: DUP3 00000c27: PUSH1 0x01 00000c29: PUSH2 0x3196 00000c2c: JUMP 00000c2d: JUMPDEST 00000c2e: PUSH2 0x0c3b 00000c31: DUP6 00000c32: PUSH2 0x0180 00000c35: ADD 00000c36: MLOAD 00000c37: PUSH2 0x3637 00000c3a: JUMP 00000c3b: JUMPDEST 00000c3c: ISZERO 00000c3d: ISZERO 00000c3e: PUSH2 0x0c4d 00000c41: JUMPI 00000c42: PUSH2 0x0a91 00000c45: PUSH1 0x0f 00000c47: PUSH1 0x02 00000c49: PUSH2 0x3196 00000c4c: JUMP 00000c4d: JUMPDEST 00000c4e: PUSH2 0x0c5b 00000c51: DUP9 00000c52: DUP7 00000c53: PUSH1 0x40 00000c55: ADD 00000c56: MLOAD 00000c57: PUSH2 0x363c 00000c5a: JUMP 00000c5b: JUMPDEST 00000c5c: PUSH2 0x01a0 00000c5f: DUP8 00000c60: ADD 00000c61: MSTORE 00000c62: SWAP2 00000c63: POP 00000c64: PUSH1 0x00 00000c66: DUP3 00000c67: PUSH1 0x19 00000c69: DUP2 00000c6a: GT 00000c6b: ISZERO 00000c6c: PUSH2 0x0c71 00000c6f: JUMPI 00000c70: INVALID 00000c71: JUMPDEST 00000c72: EQ 00000c73: PUSH2 0x0c81 00000c76: JUMPI 00000c77: PUSH2 0x0a91 00000c7a: DUP3 00000c7b: PUSH1 0x05 00000c7d: PUSH2 0x3196 00000c80: JUMP 00000c81: JUMPDEST 00000c82: PUSH2 0x0c95 00000c85: DUP6 00000c86: PUSH2 0x0160 00000c89: ADD 00000c8a: MLOAD 00000c8b: DUP7 00000c8c: PUSH2 0x01a0 00000c8f: ADD 00000c90: MLOAD 00000c91: PUSH2 0x3724 00000c94: JUMP 00000c95: JUMPDEST 00000c96: ISZERO 00000c97: PUSH2 0x0ca6 00000c9a: JUMPI 00000c9b: PUSH2 0x0a91 00000c9e: PUSH1 0x0f 00000ca0: PUSH1 0x04 00000ca2: PUSH2 0x3196 00000ca5: JUMP 00000ca6: JUMPDEST 00000ca7: PUSH2 0x0caf 00000caa: DUP9 00000cab: PUSH2 0x31fc 00000cae: JUMP 00000caf: JUMPDEST 00000cb0: PUSH1 0xa0 00000cb2: DUP7 00000cb3: ADD 00000cb4: DUP2 00000cb5: SWAP1 00000cb6: MSTORE 00000cb7: PUSH2 0x0cc0 00000cba: SWAP1 00000cbb: DUP9 00000cbc: PUSH2 0x372b 00000cbf: JUMP 00000cc0: JUMPDEST 00000cc1: PUSH1 0xc0 00000cc3: DUP8 00000cc4: ADD 00000cc5: MSTORE 00000cc6: SWAP2 00000cc7: POP 00000cc8: PUSH1 0x00 00000cca: DUP3 00000ccb: PUSH1 0x19 00000ccd: DUP2 00000cce: GT 00000ccf: ISZERO 00000cd0: PUSH2 0x0cd5 00000cd3: JUMPI 00000cd4: INVALID 00000cd5: JUMPDEST 00000cd6: EQ 00000cd7: PUSH2 0x0ce6 00000cda: JUMPI 00000cdb: PUSH2 0x0a91 00000cde: PUSH1 0x0d 00000ce0: PUSH1 0x0e 00000ce2: PUSH2 0x3196 00000ce5: JUMP 00000ce6: JUMPDEST 00000ce7: PUSH2 0x0d00 00000cea: DUP5 00000ceb: PUSH1 0x05 00000ced: ADD 00000cee: SLOAD 00000cef: DUP6 00000cf0: PUSH1 0x04 00000cf2: ADD 00000cf3: SLOAD 00000cf4: DUP7 00000cf5: PUSH1 0x01 00000cf7: ADD 00000cf8: SLOAD 00000cf9: PUSH2 0x067d 00000cfc: PUSH2 0x3006 00000cff: JUMP 00000d00: JUMPDEST 00000d01: PUSH1 0xe0 00000d03: DUP8 00000d04: ADD 00000d05: MSTORE 00000d06: SWAP2 00000d07: POP 00000d08: PUSH1 0x00 00000d0a: DUP3 00000d0b: PUSH1 0x19 00000d0d: DUP2 00000d0e: GT 00000d0f: ISZERO 00000d10: PUSH2 0x0d15 00000d13: JUMPI 00000d14: INVALID 00000d15: JUMPDEST 00000d16: EQ 00000d17: PUSH2 0x0d25 00000d1a: JUMPI 00000d1b: PUSH2 0x0a91 00000d1e: DUP3 00000d1f: PUSH1 0x0a 00000d21: PUSH2 0x3196 00000d24: JUMP 00000d25: JUMPDEST 00000d26: PUSH1 0x02 00000d28: DUP5 00000d29: ADD 00000d2a: SLOAD 00000d2b: PUSH1 0xc0 00000d2d: DUP7 00000d2e: ADD 00000d2f: MLOAD 00000d30: PUSH1 0x80 00000d32: DUP8 00000d33: ADD 00000d34: MLOAD 00000d35: PUSH1 0x40 00000d37: DUP1 00000d38: MLOAD 00000d39: PUSH1 0xe1 00000d3b: PUSH1 0x02 00000d3d: EXP 00000d3e: PUSH4 0x28be7b9f 00000d43: MUL 00000d44: DUP2 00000d45: MSTORE 00000d46: PUSH1 0x01 00000d48: PUSH1 0xa0 00000d4a: PUSH1 0x02 00000d4c: EXP 00000d4d: SUB 00000d4e: DUP14 00000d4f: DUP2 00000d50: AND 00000d51: PUSH1 0x04 00000d53: DUP4 00000d54: ADD 00000d55: MSTORE 00000d56: PUSH1 0x24 00000d58: DUP3 00000d59: ADD 00000d5a: SWAP5 00000d5b: SWAP1 00000d5c: SWAP5 00000d5d: MSTORE 00000d5e: PUSH1 0x44 00000d60: DUP2 00000d61: ADD 00000d62: SWAP3 00000d63: SWAP1 00000d64: SWAP3 00000d65: MSTORE 00000d66: DUP1 00000d67: MLOAD 00000d68: SWAP3 00000d69: SWAP1 00000d6a: SWAP4 00000d6b: AND 00000d6c: SWAP3 00000d6d: PUSH4 0x517cf73e 00000d72: SWAP3 00000d73: PUSH1 0x64 00000d75: DUP1 00000d76: DUP5 00000d77: ADD 00000d78: SWAP4 00000d79: DUP3 00000d7a: SWAP1 00000d7b: SUB 00000d7c: ADD 00000d7d: DUP2 00000d7e: PUSH1 0x00 00000d80: DUP8 00000d81: DUP1 00000d82: EXTCODESIZE 00000d83: ISZERO 00000d84: DUP1 00000d85: ISZERO 00000d86: PUSH2 0x0d8e 00000d89: JUMPI 00000d8a: PUSH1 0x00 00000d8c: DUP1 00000d8d: REVERT 00000d8e: JUMPDEST 00000d8f: POP 00000d90: GAS 00000d91: CALL 00000d92: ISZERO 00000d93: DUP1 00000d94: ISZERO 00000d95: PUSH2 0x0da2 00000d98: JUMPI 00000d99: RETURNDATASIZE 00000d9a: PUSH1 0x00 00000d9c: DUP1 00000d9d: RETURNDATACOPY 00000d9e: RETURNDATASIZE 00000d9f: PUSH1 0x00 00000da1: REVERT 00000da2: JUMPDEST 00000da3: POP 00000da4: POP 00000da5: POP 00000da6: POP 00000da7: PUSH1 0x40 00000da9: MLOAD 00000daa: RETURNDATASIZE 00000dab: PUSH1 0x40 00000dad: DUP2 00000dae: LT 00000daf: ISZERO 00000db0: PUSH2 0x0db8 00000db3: JUMPI 00000db4: PUSH1 0x00 00000db6: DUP1 00000db7: REVERT 00000db8: JUMPDEST 00000db9: POP 00000dba: DUP1 00000dbb: MLOAD 00000dbc: PUSH1 0x20 00000dbe: SWAP1 00000dbf: SWAP2 00000dc0: ADD 00000dc1: MLOAD 00000dc2: PUSH2 0x0100 00000dc5: DUP8 00000dc6: ADD 00000dc7: MSTORE 00000dc8: SWAP1 00000dc9: POP 00000dca: DUP1 00000dcb: ISZERO 00000dcc: PUSH2 0x0dda 00000dcf: JUMPI 00000dd0: PUSH2 0x0a91 00000dd3: PUSH1 0x0b 00000dd5: DUP3 00000dd6: PUSH2 0x3751 00000dd9: JUMP 00000dda: JUMPDEST 00000ddb: PUSH1 0x02 00000ddd: DUP5 00000dde: ADD 00000ddf: SLOAD 00000de0: PUSH1 0xc0 00000de2: DUP7 00000de3: ADD 00000de4: MLOAD 00000de5: PUSH1 0x80 00000de7: DUP8 00000de8: ADD 00000de9: MLOAD 00000dea: PUSH1 0x40 00000dec: DUP1 00000ded: MLOAD 00000dee: PUSH1 0xe2 00000df0: PUSH1 0x02 00000df2: EXP 00000df3: PUSH4 0x3b4ad68f 00000df8: MUL 00000df9: DUP2 00000dfa: MSTORE 00000dfb: PUSH1 0x01 00000dfd: PUSH1 0xa0 00000dff: PUSH1 0x02 00000e01: EXP 00000e02: SUB 00000e03: DUP14 00000e04: DUP2 00000e05: AND 00000e06: PUSH1 0x04 00000e08: DUP4 00000e09: ADD 00000e0a: MSTORE 00000e0b: PUSH1 0x24 00000e0d: DUP3 00000e0e: ADD 00000e0f: SWAP5 00000e10: SWAP1 00000e11: SWAP5 00000e12: MSTORE 00000e13: PUSH1 0x44 00000e15: DUP2 00000e16: ADD 00000e17: SWAP3 00000e18: SWAP1 00000e19: SWAP3 00000e1a: MSTORE 00000e1b: DUP1 00000e1c: MLOAD 00000e1d: SWAP3 00000e1e: SWAP1 00000e1f: SWAP4 00000e20: AND 00000e21: SWAP3 00000e22: PUSH4 0xed2b5a3c 00000e27: SWAP3 00000e28: PUSH1 0x64 00000e2a: DUP1 00000e2b: DUP5 00000e2c: ADD 00000e2d: SWAP4 00000e2e: DUP3 00000e2f: SWAP1 00000e30: SUB 00000e31: ADD 00000e32: DUP2 00000e33: PUSH1 0x00 00000e35: DUP8 00000e36: DUP1 00000e37: EXTCODESIZE 00000e38: ISZERO 00000e39: DUP1 00000e3a: ISZERO 00000e3b: PUSH2 0x0e43 00000e3e: JUMPI 00000e3f: PUSH1 0x00 00000e41: DUP1 00000e42: REVERT 00000e43: JUMPDEST 00000e44: POP 00000e45: GAS 00000e46: CALL 00000e47: ISZERO 00000e48: DUP1 00000e49: ISZERO 00000e4a: PUSH2 0x0e57 00000e4d: JUMPI 00000e4e: RETURNDATASIZE 00000e4f: PUSH1 0x00 00000e51: DUP1 00000e52: RETURNDATACOPY 00000e53: RETURNDATASIZE 00000e54: PUSH1 0x00 00000e56: REVERT 00000e57: JUMPDEST 00000e58: POP 00000e59: POP 00000e5a: POP 00000e5b: POP 00000e5c: PUSH1 0x40 00000e5e: MLOAD 00000e5f: RETURNDATASIZE 00000e60: PUSH1 0x40 00000e62: DUP2 00000e63: LT 00000e64: ISZERO 00000e65: PUSH2 0x0e6d 00000e68: JUMPI 00000e69: PUSH1 0x00 00000e6b: DUP1 00000e6c: REVERT 00000e6d: JUMPDEST 00000e6e: POP 00000e6f: DUP1 00000e70: MLOAD 00000e71: PUSH1 0x20 00000e73: SWAP1 00000e74: SWAP2 00000e75: ADD 00000e76: MLOAD 00000e77: PUSH2 0x0120 00000e7a: DUP8 00000e7b: ADD 00000e7c: MSTORE 00000e7d: SWAP1 00000e7e: POP 00000e7f: DUP1 00000e80: ISZERO 00000e81: PUSH2 0x0e8f 00000e84: JUMPI 00000e85: PUSH2 0x0a91 00000e88: PUSH1 0x09 00000e8a: DUP3 00000e8b: PUSH2 0x3751 00000e8e: JUMP 00000e8f: JUMPDEST 00000e90: PUSH2 0x0e9a 00000e93: DUP9 00000e94: CALLER 00000e95: DUP10 00000e96: PUSH2 0x32d4 00000e99: JUMP 00000e9a: JUMPDEST 00000e9b: SWAP2 00000e9c: POP 00000e9d: PUSH1 0x00 00000e9f: DUP3 00000ea0: PUSH1 0x19 00000ea2: DUP2 00000ea3: GT 00000ea4: ISZERO 00000ea5: PUSH2 0x0eaa 00000ea8: JUMPI 00000ea9: INVALID 00000eaa: JUMPDEST 00000eab: EQ 00000eac: PUSH2 0x0eba 00000eaf: JUMPI 00000eb0: PUSH2 0x0a91 00000eb3: DUP3 00000eb4: PUSH1 0x10 00000eb6: PUSH2 0x3196 00000eb9: JUMP 00000eba: JUMPDEST 00000ebb: PUSH2 0x0ec2 00000ebe: PUSH2 0x3006 00000ec1: JUMP 00000ec2: JUMPDEST 00000ec3: PUSH1 0x01 00000ec5: DUP1 00000ec6: DUP7 00000ec7: ADD 00000ec8: SWAP2 00000ec9: SWAP1 00000eca: SWAP2 00000ecb: SSTORE 00000ecc: PUSH1 0x80 00000ece: DUP1 00000ecf: DUP8 00000ed0: ADD 00000ed1: MLOAD 00000ed2: PUSH1 0x06 00000ed4: DUP8 00000ed5: ADD 00000ed6: SSTORE 00000ed7: PUSH2 0x0100 00000eda: DUP8 00000edb: ADD 00000edc: MLOAD 00000edd: PUSH1 0x04 00000edf: DUP8 00000ee0: ADD 00000ee1: SSTORE 00000ee2: PUSH1 0xe0 00000ee4: DUP8 00000ee5: ADD 00000ee6: MLOAD 00000ee7: PUSH1 0x05 00000ee9: DUP8 00000eea: ADD 00000eeb: SSTORE 00000eec: PUSH2 0x0120 00000eef: DUP8 00000ef0: ADD 00000ef1: MLOAD 00000ef2: PUSH1 0x07 00000ef4: DUP8 00000ef5: ADD 00000ef6: SSTORE 00000ef7: DUP7 00000ef8: MLOAD 00000ef9: PUSH1 0x08 00000efb: DUP8 00000efc: ADD 00000efd: DUP2 00000efe: SWAP1 00000eff: SSTORE 00000f00: DUP6 00000f01: SLOAD 00000f02: PUSH2 0x0140 00000f05: DUP10 00000f06: ADD 00000f07: DUP2 00000f08: SWAP1 00000f09: MSTORE 00000f0a: PUSH1 0x60 00000f0c: DUP1 00000f0d: DUP11 00000f0e: ADD 00000f0f: MLOAD 00000f10: DUP1 00000f11: DUP10 00000f12: SSTORE 00000f13: SWAP5 00000f14: DUP9 00000f15: ADD 00000f16: SWAP3 00000f17: SWAP1 00000f18: SWAP3 00000f19: SSTORE 00000f1a: PUSH1 0x40 00000f1c: DUP1 00000f1d: DUP11 00000f1e: ADD 00000f1f: MLOAD 00000f20: DUP2 00000f21: MLOAD 00000f22: CALLER 00000f23: DUP2 00000f24: MSTORE 00000f25: PUSH1 0x01 00000f27: PUSH1 0xa0 00000f29: PUSH1 0x02 00000f2b: EXP 00000f2c: SUB 00000f2d: DUP16 00000f2e: AND 00000f2f: PUSH1 0x20 00000f31: DUP3 00000f32: ADD 00000f33: MSTORE 00000f34: DUP1 00000f35: DUP4 00000f36: ADD 00000f37: DUP15 00000f38: SWAP1 00000f39: MSTORE 00000f3a: SWAP4 00000f3b: DUP5 00000f3c: ADD 00000f3d: SWAP3 00000f3e: SWAP1 00000f3f: SWAP3 00000f40: MSTORE 00000f41: SWAP3 00000f42: DUP3 00000f43: ADD 00000f44: MSTORE 00000f45: PUSH1 0xa0 00000f47: DUP2 00000f48: ADD 00000f49: SWAP3 00000f4a: SWAP1 00000f4b: SWAP3 00000f4c: MSTORE 00000f4d: MLOAD 00000f4e: PUSH32 0x6b69190ebbb96f162b04dc222ef96416f9dca9a415b6dd183c79424501113e18 00000f6f: SWAP2 00000f70: DUP2 00000f71: SWAP1 00000f72: SUB 00000f73: PUSH1 0xc0 00000f75: ADD 00000f76: SWAP1 00000f77: LOG1 00000f78: PUSH1 0x00 00000f7a: JUMPDEST 00000f7b: SWAP9 00000f7c: SWAP8 00000f7d: POP 00000f7e: POP 00000f7f: POP 00000f80: POP 00000f81: POP 00000f82: POP 00000f83: POP 00000f84: POP 00000f85: JUMP 00000f86: JUMPDEST 00000f87: PUSH1 0x0a 00000f89: SLOAD 00000f8a: PUSH1 0xff 00000f8c: AND 00000f8d: DUP2 00000f8e: JUMP 00000f8f: JUMPDEST 00000f90: PUSH1 0x01 00000f92: SLOAD 00000f93: PUSH1 0x00 00000f95: SWAP1 00000f96: PUSH1 0x01 00000f98: PUSH1 0xa0 00000f9a: PUSH1 0x02 00000f9c: EXP 00000f9d: SUB 00000f9e: AND 00000f9f: CALLER 00000fa0: EQ 00000fa1: PUSH2 0x0fb7 00000fa4: JUMPI 00000fa5: PUSH2 0x0fb0 00000fa8: PUSH1 0x02 00000faa: PUSH1 0x36 00000fac: PUSH2 0x3196 00000faf: JUMP 00000fb0: JUMPDEST 00000fb1: SWAP1 00000fb2: POP 00000fb3: PUSH2 0x1036 00000fb6: JUMP 00000fb7: JUMPDEST 00000fb8: PUSH1 0x01 00000fba: PUSH1 0xa0 00000fbc: PUSH1 0x02 00000fbe: EXP 00000fbf: SUB 00000fc0: DUP4 00000fc1: DUP2 00000fc2: AND 00000fc3: PUSH1 0x00 00000fc5: DUP2 00000fc6: DUP2 00000fc7: MSTORE 00000fc8: PUSH1 0x05 00000fca: PUSH1 0x20 00000fcc: SWAP1 00000fcd: DUP2 00000fce: MSTORE 00000fcf: PUSH1 0x40 00000fd1: SWAP2 00000fd2: DUP3 00000fd3: SWAP1 00000fd4: KECCAK256 00000fd5: PUSH1 0x02 00000fd7: ADD 00000fd8: DUP1 00000fd9: SLOAD 00000fda: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fef: NOT 00000ff0: AND 00000ff1: SWAP5 00000ff2: DUP8 00000ff3: AND 00000ff4: SWAP5 00000ff5: DUP6 00000ff6: OR 00000ff7: SWAP1 00000ff8: SSTORE 00000ff9: DUP2 00000ffa: MLOAD 00000ffb: SWAP3 00000ffc: DUP4 00000ffd: MSTORE 00000ffe: DUP3 00000fff: ADD 00001000: SWAP3 00001001: SWAP1 00001002: SWAP3 00001003: MSTORE 00001004: DUP2 00001005: MLOAD 00001006: PUSH32 0xd3993418771a1083a564315767fe24b893cd870e40b00ed1866f7aee2847426d 00001027: SWAP3 00001028: SWAP2 00001029: DUP2 0000102a: SWAP1 0000102b: SUB 0000102c: SWAP1 0000102d: SWAP2 0000102e: ADD 0000102f: SWAP1 00001030: LOG1 00001031: PUSH1 0x00 00001033: JUMPDEST 00001034: SWAP1 00001035: POP 00001036: JUMPDEST 00001037: SWAP3 00001038: SWAP2 00001039: POP 0000103a: POP 0000103b: JUMP 0000103c: JUMPDEST 0000103d: PUSH1 0x00 0000103f: DUP1 00001040: PUSH2 0x1047 00001043: PUSH2 0x47b0 00001046: JUMP 00001047: JUMPDEST 00001048: PUSH2 0x1050 0000104b: DUP5 0000104c: PUSH2 0x37a8 0000104f: JUMP 00001050: JUMPDEST 00001051: SWAP1 00001052: SWAP3 00001053: POP 00001054: SWAP1 00001055: POP 00001056: PUSH1 0x00 00001058: DUP3 00001059: PUSH1 0x19 0000105b: DUP2 0000105c: GT 0000105d: ISZERO 0000105e: PUSH2 0x1063 00001061: JUMPI 00001062: INVALID 00001063: JUMPDEST 00001064: EQ 00001065: PUSH2 0x1071 00001068: JUMPI 00001069: PUSH1 0x00 0000106b: SWAP3 0000106c: POP 0000106d: PUSH2 0x0923 00001070: JUMP 00001071: JUMPDEST 00001072: MLOAD 00001073: SWAP4 00001074: SWAP3 00001075: POP 00001076: POP 00001077: POP 00001078: JUMP 00001079: JUMPDEST 0000107a: PUSH1 0x00 0000107c: DUP1 0000107d: PUSH2 0x1084 00001080: PUSH2 0x47b0 00001083: JUMP 00001084: JUMPDEST 00001085: PUSH2 0x108c 00001088: PUSH2 0x47b0 0000108b: JUMP 0000108c: JUMPDEST 0000108d: PUSH2 0x1095 00001090: DUP6 00001091: PUSH2 0x34a8 00001094: JUMP 00001095: JUMPDEST 00001096: SWAP2 00001097: SWAP5 00001098: POP 00001099: SWAP3 0000109a: POP 0000109b: SWAP1 0000109c: POP 0000109d: PUSH1 0x00 0000109f: DUP4 000010a0: PUSH1 0x19 000010a2: DUP2 000010a3: GT 000010a4: ISZERO 000010a5: PUSH2 0x10aa 000010a8: JUMPI 000010a9: INVALID 000010aa: JUMPDEST 000010ab: EQ 000010ac: PUSH2 0x10b4 000010af: JUMPI 000010b0: PUSH1 0x00 000010b2: DUP1 000010b3: REVERT 000010b4: JUMPDEST 000010b5: PUSH2 0x10bd 000010b8: DUP3 000010b9: PUSH2 0x3637 000010bc: JUMP 000010bd: JUMPDEST 000010be: ISZERO 000010bf: PUSH2 0x10d6 000010c2: JUMPI 000010c3: PUSH2 0x10cb 000010c6: DUP2 000010c7: PUSH2 0x3898 000010ca: JUMP 000010cb: JUMPDEST 000010cc: PUSH1 0x00 000010ce: NOT 000010cf: MUL 000010d0: SWAP4 000010d1: POP 000010d2: PUSH2 0x10e2 000010d5: JUMP 000010d6: JUMPDEST 000010d7: PUSH2 0x10df 000010da: DUP3 000010db: PUSH2 0x3898 000010de: JUMP 000010df: JUMPDEST 000010e0: SWAP4 000010e1: POP 000010e2: JUMPDEST 000010e3: POP 000010e4: POP 000010e5: POP 000010e6: SWAP2 000010e7: SWAP1 000010e8: POP 000010e9: JUMP 000010ea: JUMPDEST 000010eb: PUSH1 0x06 000010ed: SLOAD 000010ee: SWAP1 000010ef: JUMP 000010f0: JUMPDEST 000010f1: PUSH1 0x02 000010f3: SLOAD 000010f4: PUSH1 0x01 000010f6: PUSH1 0xa0 000010f8: PUSH1 0x02 000010fa: EXP 000010fb: SUB 000010fc: AND 000010fd: DUP2 000010fe: JUMP 000010ff: JUMPDEST 00001100: PUSH1 0x09 00001102: SLOAD 00001103: DUP2 00001104: JUMP 00001105: JUMPDEST 00001106: PUSH1 0x05 00001108: PUSH1 0x20 0000110a: DUP2 0000110b: SWAP1 0000110c: MSTORE 0000110d: PUSH1 0x00 0000110f: SWAP2 00001110: DUP3 00001111: MSTORE 00001112: PUSH1 0x40 00001114: SWAP1 00001115: SWAP2 00001116: KECCAK256 00001117: DUP1 00001118: SLOAD 00001119: PUSH1 0x01 0000111b: DUP3 0000111c: ADD 0000111d: SLOAD 0000111e: PUSH1 0x02 00001120: DUP4 00001121: ADD 00001122: SLOAD 00001123: PUSH1 0x03 00001125: DUP5 00001126: ADD 00001127: SLOAD 00001128: PUSH1 0x04 0000112a: DUP6 0000112b: ADD 0000112c: SLOAD 0000112d: SWAP6 0000112e: DUP6 0000112f: ADD 00001130: SLOAD 00001131: PUSH1 0x06 00001133: DUP7 00001134: ADD 00001135: SLOAD 00001136: PUSH1 0x07 00001138: DUP8 00001139: ADD 0000113a: SLOAD 0000113b: PUSH1 0x08 0000113d: SWAP1 0000113e: SWAP8 0000113f: ADD 00001140: SLOAD 00001141: PUSH1 0xff 00001143: SWAP1 00001144: SWAP7 00001145: AND 00001146: SWAP8 00001147: SWAP5 00001148: SWAP7 00001149: PUSH1 0x01 0000114b: PUSH1 0xa0 0000114d: PUSH1 0x02 0000114f: EXP 00001150: SUB 00001151: SWAP1 00001152: SWAP5 00001153: AND 00001154: SWAP6 00001155: SWAP3 00001156: SWAP5 00001157: SWAP4 00001158: SWAP2 00001159: SWAP3 0000115a: SWAP1 0000115b: SWAP2 0000115c: SWAP1 0000115d: DUP10 0000115e: JUMP 0000115f: JUMPDEST 00001160: PUSH1 0x00 00001162: DUP1 00001163: PUSH1 0x00 00001165: DUP1 00001166: PUSH1 0x00 00001168: DUP1 00001169: PUSH2 0x1171 0000116c: DUP8 0000116d: PUSH2 0x38a7 00001170: JUMP 00001171: JUMPDEST 00001172: SWAP2 00001173: SWAP5 00001174: POP 00001175: SWAP3 00001176: POP 00001177: SWAP1 00001178: POP 00001179: PUSH1 0x00 0000117b: DUP4 0000117c: PUSH1 0x19 0000117e: DUP2 0000117f: GT 00001180: ISZERO 00001181: PUSH2 0x1186 00001184: JUMPI 00001185: INVALID 00001186: JUMPDEST 00001187: EQ 00001188: PUSH2 0x11a5 0000118b: JUMPI 0000118c: DUP3 0000118d: PUSH1 0x19 0000118f: DUP2 00001190: GT 00001191: ISZERO 00001192: PUSH2 0x1197 00001195: JUMPI 00001196: INVALID 00001197: JUMPDEST 00001198: SWAP6 00001199: POP 0000119a: PUSH1 0x00 0000119c: SWAP5 0000119d: POP 0000119e: DUP5 0000119f: SWAP4 000011a0: POP 000011a1: PUSH2 0x11b1 000011a4: JUMP 000011a5: JUMPDEST 000011a6: PUSH1 0x00 000011a8: SWAP6 000011a9: POP 000011aa: SWAP1 000011ab: SWAP4 000011ac: POP 000011ad: SWAP2 000011ae: POP 000011af: DUP3 000011b0: DUP3 000011b1: JUMPDEST 000011b2: POP 000011b3: POP 000011b4: POP 000011b5: SWAP2 000011b6: SWAP4 000011b7: SWAP1 000011b8: SWAP3 000011b9: POP 000011ba: JUMP 000011bb: JUMPDEST 000011bc: PUSH1 0x00 000011be: PUSH2 0x11c5 000011c1: PUSH2 0x4843 000011c4: JUMP 000011c5: JUMPDEST 000011c6: PUSH1 0x0a 000011c8: SLOAD 000011c9: PUSH1 0x00 000011cb: SWAP1 000011cc: DUP2 000011cd: SWAP1 000011ce: DUP2 000011cf: SWAP1 000011d0: DUP2 000011d1: SWAP1 000011d2: PUSH1 0xff 000011d4: AND 000011d5: ISZERO 000011d6: PUSH2 0x11e5 000011d9: JUMPI 000011da: PUSH2 0x0a91 000011dd: PUSH1 0x19 000011df: PUSH1 0x2b 000011e1: PUSH2 0x3196 000011e4: JUMP 000011e5: JUMPDEST 000011e6: PUSH1 0x01 000011e8: PUSH1 0xa0 000011ea: PUSH1 0x02 000011ec: EXP 000011ed: SUB 000011ee: DUP9 000011ef: AND 000011f0: PUSH1 0x00 000011f2: DUP2 000011f3: DUP2 000011f4: MSTORE 000011f5: PUSH1 0x05 000011f7: PUSH1 0x20 000011f9: SWAP1 000011fa: DUP2 000011fb: MSTORE 000011fc: PUSH1 0x40 000011fe: DUP1 000011ff: DUP4 00001200: KECCAK256 00001201: CALLER 00001202: DUP5 00001203: MSTORE 00001204: PUSH1 0x04 00001206: DUP4 00001207: MSTORE 00001208: DUP2 00001209: DUP5 0000120a: KECCAK256 0000120b: SWAP5 0000120c: DUP5 0000120d: MSTORE 0000120e: SWAP4 0000120f: SWAP1 00001210: SWAP2 00001211: MSTORE 00001212: SWAP1 00001213: KECCAK256 00001214: PUSH1 0x08 00001216: DUP3 00001217: ADD 00001218: SLOAD 00001219: PUSH1 0x07 0000121b: DUP4 0000121c: ADD 0000121d: SLOAD 0000121e: PUSH1 0x01 00001220: DUP5 00001221: ADD 00001222: SLOAD 00001223: SWAP4 00001224: SWAP8 00001225: POP 00001226: SWAP2 00001227: SWAP6 00001228: POP 00001229: PUSH2 0x1237 0000122c: SWAP3 0000122d: SWAP1 0000122e: SWAP2 0000122f: SWAP1 00001230: PUSH2 0x067d 00001233: PUSH2 0x3006 00001236: JUMP 00001237: JUMPDEST 00001238: DUP7 00001239: MSTORE 0000123a: SWAP2 0000123b: POP 0000123c: PUSH1 0x00 0000123e: DUP3 0000123f: PUSH1 0x19 00001241: DUP2 00001242: GT 00001243: ISZERO 00001244: PUSH2 0x1249 00001247: JUMPI 00001248: INVALID 00001249: JUMPDEST 0000124a: EQ 0000124b: PUSH2 0x1259 0000124e: JUMPI 0000124f: PUSH2 0x0a91 00001252: DUP3 00001253: PUSH1 0x2c 00001255: PUSH2 0x3196 00001258: JUMP 00001259: JUMPDEST 0000125a: DUP3 0000125b: SLOAD 0000125c: PUSH1 0x01 0000125e: DUP5 0000125f: ADD 00001260: SLOAD 00001261: DUP7 00001262: MLOAD 00001263: PUSH2 0x126d 00001266: SWAP3 00001267: SWAP2 00001268: SWAP1 00001269: PUSH2 0x3135 0000126c: JUMP 0000126d: JUMPDEST 0000126e: PUSH1 0x20 00001270: DUP8 00001271: ADD 00001272: MSTORE 00001273: SWAP2 00001274: POP 00001275: PUSH1 0x00 00001277: DUP3 00001278: PUSH1 0x19 0000127a: DUP2 0000127b: GT 0000127c: ISZERO 0000127d: PUSH2 0x1282 00001280: JUMPI 00001281: INVALID 00001282: JUMPDEST 00001283: EQ 00001284: PUSH2 0x1292 00001287: JUMPI 00001288: PUSH2 0x0a91 0000128b: DUP3 0000128c: PUSH1 0x2a 0000128e: PUSH2 0x3196 00001291: JUMP 00001292: JUMPDEST 00001293: PUSH1 0x00 00001295: NOT 00001296: DUP8 00001297: EQ 00001298: ISZERO 00001299: PUSH2 0x12bd 0000129c: JUMPI 0000129d: PUSH2 0x12b3 000012a0: PUSH2 0x12a9 000012a3: DUP10 000012a4: CALLER 000012a5: PUSH2 0x3bab 000012a8: JUMP 000012a9: JUMPDEST 000012aa: DUP7 000012ab: PUSH1 0x20 000012ad: ADD 000012ae: MLOAD 000012af: PUSH2 0x3c40 000012b2: JUMP 000012b3: JUMPDEST 000012b4: PUSH1 0x40 000012b6: DUP7 000012b7: ADD 000012b8: MSTORE 000012b9: PUSH2 0x12c5 000012bc: JUMP 000012bd: JUMPDEST 000012be: PUSH1 0x40 000012c0: DUP6 000012c1: ADD 000012c2: DUP8 000012c3: SWAP1 000012c4: MSTORE 000012c5: JUMPDEST 000012c6: PUSH2 0x12d7 000012c9: DUP6 000012ca: PUSH1 0x20 000012cc: ADD 000012cd: MLOAD 000012ce: DUP7 000012cf: PUSH1 0x40 000012d1: ADD 000012d2: MLOAD 000012d3: PUSH2 0x372b 000012d6: JUMP 000012d7: JUMPDEST 000012d8: PUSH1 0x60 000012da: DUP8 000012db: ADD 000012dc: MSTORE 000012dd: SWAP2 000012de: POP 000012df: PUSH1 0x00 000012e1: DUP3 000012e2: PUSH1 0x19 000012e4: DUP2 000012e5: GT 000012e6: ISZERO 000012e7: PUSH2 0x12ec 000012ea: JUMPI 000012eb: INVALID 000012ec: JUMPDEST 000012ed: EQ 000012ee: PUSH2 0x12fc 000012f1: JUMPI 000012f2: PUSH2 0x0a91 000012f5: DUP3 000012f6: PUSH1 0x30 000012f8: PUSH2 0x3196 000012fb: JUMP 000012fc: JUMPDEST 000012fd: PUSH2 0x130b 00001300: DUP9 00001301: CALLER 00001302: DUP8 00001303: PUSH1 0x40 00001305: ADD 00001306: MLOAD 00001307: PUSH2 0x3c58 0000130a: JUMP 0000130b: JUMPDEST 0000130c: SWAP2 0000130d: POP 0000130e: PUSH1 0x00 00001310: DUP3 00001311: PUSH1 0x19 00001313: DUP2 00001314: GT 00001315: ISZERO 00001316: PUSH2 0x131b 00001319: JUMPI 0000131a: INVALID 0000131b: JUMPDEST 0000131c: EQ 0000131d: PUSH2 0x132b 00001320: JUMPI 00001321: PUSH2 0x0a91 00001324: DUP3 00001325: PUSH1 0x34 00001327: PUSH2 0x3196 0000132a: JUMP 0000132b: JUMPDEST 0000132c: PUSH2 0x1342 0000132f: DUP5 00001330: PUSH1 0x06 00001332: ADD 00001333: SLOAD 00001334: DUP7 00001335: PUSH1 0x60 00001337: ADD 00001338: MLOAD 00001339: DUP6 0000133a: PUSH1 0x00 0000133c: ADD 0000133d: SLOAD 0000133e: PUSH2 0x3294 00001341: JUMP 00001342: JUMPDEST 00001343: PUSH1 0x80 00001345: DUP8 00001346: ADD 00001347: MSTORE 00001348: SWAP2 00001349: POP 0000134a: PUSH1 0x00 0000134c: DUP3 0000134d: PUSH1 0x19 0000134f: DUP2 00001350: GT 00001351: ISZERO 00001352: PUSH2 0x1357 00001355: JUMPI 00001356: INVALID 00001357: JUMPDEST 00001358: EQ 00001359: PUSH2 0x1367 0000135c: JUMPI 0000135d: PUSH2 0x0a91 00001360: DUP3 00001361: PUSH1 0x31 00001363: PUSH2 0x3196 00001366: JUMP 00001367: JUMPDEST 00001368: PUSH2 0x1370 0000136b: DUP9 0000136c: PUSH2 0x31fc 0000136f: JUMP 00001370: JUMPDEST 00001371: PUSH1 0xa0 00001373: DUP7 00001374: ADD 00001375: DUP2 00001376: SWAP1 00001377: MSTORE 00001378: PUSH1 0x40 0000137a: DUP7 0000137b: ADD 0000137c: MLOAD 0000137d: PUSH2 0x1386 00001380: SWAP2 00001381: SWAP1 00001382: PUSH2 0x347e 00001385: JUMP 00001386: JUMPDEST 00001387: PUSH1 0xc0 00001389: DUP8 0000138a: ADD 0000138b: MSTORE 0000138c: SWAP2 0000138d: POP 0000138e: PUSH1 0x00 00001390: DUP3 00001391: PUSH1 0x19 00001393: DUP2 00001394: GT 00001395: ISZERO 00001396: PUSH2 0x139b 00001399: JUMPI 0000139a: INVALID 0000139b: JUMPDEST 0000139c: EQ 0000139d: PUSH2 0x13ab 000013a0: JUMPI 000013a1: PUSH2 0x0a91 000013a4: DUP3 000013a5: PUSH1 0x32 000013a7: PUSH2 0x3196 000013aa: JUMP 000013ab: JUMPDEST 000013ac: PUSH2 0x13c5 000013af: DUP5 000013b0: PUSH1 0x05 000013b2: ADD 000013b3: SLOAD 000013b4: DUP6 000013b5: PUSH1 0x04 000013b7: ADD 000013b8: SLOAD 000013b9: DUP7 000013ba: PUSH1 0x01 000013bc: ADD 000013bd: SLOAD 000013be: PUSH2 0x067d 000013c1: PUSH2 0x3006 000013c4: JUMP 000013c5: JUMPDEST 000013c6: PUSH1 0xe0 000013c8: DUP8 000013c9: ADD 000013ca: MSTORE 000013cb: SWAP2 000013cc: POP 000013cd: PUSH1 0x00 000013cf: DUP3 000013d0: PUSH1 0x19 000013d2: DUP2 000013d3: GT 000013d4: ISZERO 000013d5: PUSH2 0x13da 000013d8: JUMPI 000013d9: INVALID 000013da: JUMPDEST 000013db: EQ 000013dc: PUSH2 0x13ea 000013df: JUMPI 000013e0: PUSH2 0x0a91 000013e3: DUP3 000013e4: PUSH1 0x2e 000013e6: PUSH2 0x3196 000013e9: JUMP 000013ea: JUMPDEST 000013eb: PUSH1 0x02 000013ed: DUP5 000013ee: ADD 000013ef: SLOAD 000013f0: PUSH1 0xc0 000013f2: DUP7 000013f3: ADD 000013f4: MLOAD 000013f5: PUSH1 0x80 000013f7: DUP8 000013f8: ADD 000013f9: MLOAD 000013fa: PUSH1 0x40 000013fc: DUP1 000013fd: MLOAD 000013fe: PUSH1 0xe1 00001400: PUSH1 0x02 00001402: EXP 00001403: PUSH4 0x28be7b9f 00001408: MUL 00001409: DUP2 0000140a: MSTORE 0000140b: PUSH1 0x01 0000140d: PUSH1 0xa0 0000140f: PUSH1 0x02 00001411: EXP 00001412: SUB 00001413: DUP14 00001414: DUP2 00001415: AND 00001416: PUSH1 0x04 00001418: DUP4 00001419: ADD 0000141a: MSTORE 0000141b: PUSH1 0x24 0000141d: DUP3 0000141e: ADD 0000141f: SWAP5 00001420: SWAP1 00001421: SWAP5 00001422: MSTORE 00001423: PUSH1 0x44 00001425: DUP2 00001426: ADD 00001427: SWAP3 00001428: SWAP1 00001429: SWAP3 0000142a: MSTORE 0000142b: DUP1 0000142c: MLOAD 0000142d: SWAP3 0000142e: SWAP1 0000142f: SWAP4 00001430: AND 00001431: SWAP3 00001432: PUSH4 0x517cf73e 00001437: SWAP3 00001438: PUSH1 0x64 0000143a: DUP1 0000143b: DUP5 0000143c: ADD 0000143d: SWAP4 0000143e: DUP3 0000143f: SWAP1 00001440: SUB 00001441: ADD 00001442: DUP2 00001443: PUSH1 0x00 00001445: DUP8 00001446: DUP1 00001447: EXTCODESIZE 00001448: ISZERO 00001449: DUP1 0000144a: ISZERO 0000144b: PUSH2 0x1453 0000144e: JUMPI 0000144f: PUSH1 0x00 00001451: DUP1 00001452: REVERT 00001453: JUMPDEST 00001454: POP 00001455: GAS 00001456: CALL 00001457: ISZERO 00001458: DUP1 00001459: ISZERO 0000145a: PUSH2 0x1467 0000145d: JUMPI 0000145e: RETURNDATASIZE 0000145f: PUSH1 0x00 00001461: DUP1 00001462: RETURNDATACOPY 00001463: RETURNDATASIZE 00001464: PUSH1 0x00 00001466: REVERT 00001467: JUMPDEST 00001468: POP 00001469: POP 0000146a: POP 0000146b: POP 0000146c: PUSH1 0x40 0000146e: MLOAD 0000146f: RETURNDATASIZE 00001470: PUSH1 0x40 00001472: DUP2 00001473: LT 00001474: ISZERO 00001475: PUSH2 0x147d 00001478: JUMPI 00001479: PUSH1 0x00 0000147b: DUP1 0000147c: REVERT 0000147d: JUMPDEST 0000147e: POP 0000147f: DUP1 00001480: MLOAD 00001481: PUSH1 0x20 00001483: SWAP1 00001484: SWAP2 00001485: ADD 00001486: MLOAD 00001487: PUSH2 0x0100 0000148a: DUP8 0000148b: ADD 0000148c: MSTORE 0000148d: SWAP1 0000148e: POP 0000148f: DUP1 00001490: ISZERO 00001491: PUSH2 0x149f 00001494: JUMPI 00001495: PUSH2 0x0a91 00001498: PUSH1 0x2f 0000149a: DUP3 0000149b: PUSH2 0x3751 0000149e: JUMP 0000149f: JUMPDEST 000014a0: PUSH1 0x02 000014a2: DUP5 000014a3: ADD 000014a4: SLOAD 000014a5: PUSH1 0xc0 000014a7: DUP7 000014a8: ADD 000014a9: MLOAD 000014aa: PUSH1 0x80 000014ac: DUP8 000014ad: ADD 000014ae: MLOAD 000014af: PUSH1 0x40 000014b1: DUP1 000014b2: MLOAD 000014b3: PUSH1 0xe2 000014b5: PUSH1 0x02 000014b7: EXP 000014b8: PUSH4 0x3b4ad68f 000014bd: MUL 000014be: DUP2 000014bf: MSTORE 000014c0: PUSH1 0x01 000014c2: PUSH1 0xa0 000014c4: PUSH1 0x02 000014c6: EXP 000014c7: SUB 000014c8: DUP14 000014c9: DUP2 000014ca: AND 000014cb: PUSH1 0x04 000014cd: DUP4 000014ce: ADD 000014cf: MSTORE 000014d0: PUSH1 0x24 000014d2: DUP3 000014d3: ADD 000014d4: SWAP5 000014d5: SWAP1 000014d6: SWAP5 000014d7: MSTORE 000014d8: PUSH1 0x44 000014da: DUP2 000014db: ADD 000014dc: SWAP3 000014dd: SWAP1 000014de: SWAP3 000014df: MSTORE 000014e0: DUP1 000014e1: MLOAD 000014e2: SWAP3 000014e3: SWAP1 000014e4: SWAP4 000014e5: AND 000014e6: SWAP3 000014e7: PUSH4 0xed2b5a3c 000014ec: SWAP3 000014ed: PUSH1 0x64 000014ef: DUP1 000014f0: DUP5 000014f1: ADD 000014f2: SWAP4 000014f3: DUP3 000014f4: SWAP1 000014f5: SUB 000014f6: ADD 000014f7: DUP2 000014f8: PUSH1 0x00 000014fa: DUP8 000014fb: DUP1 000014fc: EXTCODESIZE 000014fd: ISZERO 000014fe: DUP1 000014ff: ISZERO 00001500: PUSH2 0x1508 00001503: JUMPI 00001504: PUSH1 0x00 00001506: DUP1 00001507: REVERT 00001508: JUMPDEST 00001509: POP 0000150a: GAS 0000150b: CALL 0000150c: ISZERO 0000150d: DUP1 0000150e: ISZERO 0000150f: PUSH2 0x151c 00001512: JUMPI 00001513: RETURNDATASIZE 00001514: PUSH1 0x00 00001516: DUP1 00001517: RETURNDATACOPY 00001518: RETURNDATASIZE 00001519: PUSH1 0x00 0000151b: REVERT 0000151c: JUMPDEST 0000151d: POP 0000151e: POP 0000151f: POP 00001520: POP 00001521: PUSH1 0x40 00001523: MLOAD 00001524: RETURNDATASIZE 00001525: PUSH1 0x40 00001527: DUP2 00001528: LT 00001529: ISZERO 0000152a: PUSH2 0x1532 0000152d: JUMPI 0000152e: PUSH1 0x00 00001530: DUP1 00001531: REVERT 00001532: JUMPDEST 00001533: POP 00001534: DUP1 00001535: MLOAD 00001536: PUSH1 0x20 00001538: SWAP1 00001539: SWAP2 0000153a: ADD 0000153b: MLOAD 0000153c: PUSH2 0x0120 0000153f: DUP8 00001540: ADD 00001541: MSTORE 00001542: SWAP1 00001543: POP 00001544: DUP1 00001545: ISZERO 00001546: PUSH2 0x1554 00001549: JUMPI 0000154a: PUSH2 0x0a91 0000154d: PUSH1 0x2d 0000154f: DUP3 00001550: PUSH2 0x3751 00001553: JUMP 00001554: JUMPDEST 00001555: PUSH2 0x1563 00001558: DUP9 00001559: CALLER 0000155a: DUP8 0000155b: PUSH1 0x40 0000155d: ADD 0000155e: MLOAD 0000155f: PUSH2 0x3da8 00001562: JUMP 00001563: JUMPDEST 00001564: SWAP2 00001565: POP 00001566: PUSH1 0x00 00001568: DUP3 00001569: PUSH1 0x19 0000156b: DUP2 0000156c: GT 0000156d: ISZERO 0000156e: PUSH2 0x1573 00001571: JUMPI 00001572: INVALID 00001573: JUMPDEST 00001574: EQ 00001575: PUSH2 0x1583 00001578: JUMPI 00001579: PUSH2 0x0a91 0000157c: DUP3 0000157d: PUSH1 0x33 0000157f: PUSH2 0x3196 00001582: JUMP 00001583: JUMPDEST 00001584: PUSH2 0x158b 00001587: PUSH2 0x3006 0000158a: JUMP 0000158b: JUMPDEST 0000158c: PUSH1 0x01 0000158e: DUP1 0000158f: DUP7 00001590: ADD 00001591: SWAP2 00001592: SWAP1 00001593: SWAP2 00001594: SSTORE 00001595: PUSH1 0x80 00001597: DUP1 00001598: DUP8 00001599: ADD 0000159a: MLOAD 0000159b: PUSH1 0x06 0000159d: DUP8 0000159e: ADD 0000159f: SSTORE 000015a0: PUSH2 0x0100 000015a3: DUP8 000015a4: ADD 000015a5: MLOAD 000015a6: PUSH1 0x04 000015a8: DUP8 000015a9: ADD 000015aa: SSTORE 000015ab: PUSH1 0xe0 000015ad: DUP8 000015ae: ADD 000015af: MLOAD 000015b0: PUSH1 0x05 000015b2: DUP8 000015b3: ADD 000015b4: SSTORE 000015b5: PUSH2 0x0120 000015b8: DUP8 000015b9: ADD 000015ba: MLOAD 000015bb: PUSH1 0x07 000015bd: DUP8 000015be: ADD 000015bf: SSTORE 000015c0: DUP7 000015c1: MLOAD 000015c2: PUSH1 0x08 000015c4: DUP8 000015c5: ADD 000015c6: DUP2 000015c7: SWAP1 000015c8: SSTORE 000015c9: DUP6 000015ca: SLOAD 000015cb: PUSH2 0x0140 000015ce: DUP10 000015cf: ADD 000015d0: DUP2 000015d1: SWAP1 000015d2: MSTORE 000015d3: PUSH1 0x60 000015d5: DUP1 000015d6: DUP11 000015d7: ADD 000015d8: MLOAD 000015d9: DUP1 000015da: DUP10 000015db: SSTORE 000015dc: SWAP5 000015dd: DUP9 000015de: ADD 000015df: SWAP3 000015e0: SWAP1 000015e1: SWAP3 000015e2: SSTORE 000015e3: PUSH1 0x40 000015e5: DUP1 000015e6: DUP11 000015e7: ADD 000015e8: MLOAD 000015e9: DUP2 000015ea: MLOAD 000015eb: CALLER 000015ec: DUP2 000015ed: MSTORE 000015ee: PUSH1 0x01 000015f0: PUSH1 0xa0 000015f2: PUSH1 0x02 000015f4: EXP 000015f5: SUB 000015f6: DUP16 000015f7: AND 000015f8: PUSH1 0x20 000015fa: DUP3 000015fb: ADD 000015fc: MSTORE 000015fd: DUP1 000015fe: DUP4 000015ff: ADD 00001600: SWAP2 00001601: SWAP1 00001602: SWAP2 00001603: MSTORE 00001604: SWAP3 00001605: DUP4 00001606: ADD 00001607: SWAP2 00001608: SWAP1 00001609: SWAP2 0000160a: MSTORE 0000160b: SWAP2 0000160c: DUP2 0000160d: ADD 0000160e: SWAP3 0000160f: SWAP1 00001610: SWAP3 00001611: MSTORE 00001612: MLOAD 00001613: PUSH32 0x550e7e464126359c6adc43831f011682856b177df6c49c0af6675dd2a063649d 00001634: SWAP2 00001635: DUP2 00001636: SWAP1 00001637: SUB 00001638: PUSH1 0xa0 0000163a: ADD 0000163b: SWAP1 0000163c: LOG1 0000163d: PUSH1 0x00 0000163f: PUSH2 0x0f7a 00001642: JUMP 00001643: JUMPDEST 00001644: PUSH1 0x07 00001646: SLOAD 00001647: DUP2 00001648: JUMP 00001649: JUMPDEST 0000164a: PUSH1 0x01 0000164c: SLOAD 0000164d: PUSH1 0x00 0000164f: SWAP1 00001650: DUP2 00001651: SWAP1 00001652: PUSH1 0x01 00001654: PUSH1 0xa0 00001656: PUSH1 0x02 00001658: EXP 00001659: SUB 0000165a: AND 0000165b: CALLER 0000165c: EQ 0000165d: PUSH2 0x166c 00001660: JUMPI 00001661: PUSH2 0x0706 00001664: PUSH1 0x02 00001666: PUSH1 0x3a 00001668: PUSH2 0x3196 0000166b: JUMP 0000166c: JUMPDEST 0000166d: POP 0000166e: PUSH1 0x00 00001670: DUP1 00001671: SLOAD 00001672: PUSH1 0x01 00001674: PUSH1 0xa0 00001676: PUSH1 0x02 00001678: EXP 00001679: SUB 0000167a: DUP5 0000167b: DUP2 0000167c: AND 0000167d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001692: NOT 00001693: DUP4 00001694: AND 00001695: DUP2 00001696: OR 00001697: SWAP1 00001698: SWAP4 00001699: SSTORE 0000169a: PUSH1 0x40 0000169c: DUP1 0000169d: MLOAD 0000169e: SWAP2 0000169f: SWAP1 000016a0: SWAP3 000016a1: AND 000016a2: DUP1 000016a3: DUP3 000016a4: MSTORE 000016a5: PUSH1 0x20 000016a7: DUP3 000016a8: ADD 000016a9: SWAP4 000016aa: SWAP1 000016ab: SWAP4 000016ac: MSTORE 000016ad: DUP2 000016ae: MLOAD 000016af: PUSH32 0xca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9 000016d0: SWAP3 000016d1: SWAP2 000016d2: DUP2 000016d3: SWAP1 000016d4: SUB 000016d5: SWAP1 000016d6: SWAP2 000016d7: ADD 000016d8: SWAP1 000016d9: LOG1 000016da: PUSH1 0x00 000016dc: PUSH2 0x0769 000016df: JUMP 000016e0: JUMPDEST 000016e1: PUSH1 0x03 000016e3: PUSH1 0x20 000016e5: SWAP1 000016e6: DUP2 000016e7: MSTORE 000016e8: PUSH1 0x00 000016ea: SWAP3 000016eb: DUP4 000016ec: MSTORE 000016ed: PUSH1 0x40 000016ef: DUP1 000016f0: DUP5 000016f1: KECCAK256 000016f2: SWAP1 000016f3: SWAP2 000016f4: MSTORE 000016f5: SWAP1 000016f6: DUP3 000016f7: MSTORE 000016f8: SWAP1 000016f9: KECCAK256 000016fa: DUP1 000016fb: SLOAD 000016fc: PUSH1 0x01 000016fe: SWAP1 000016ff: SWAP2 00001700: ADD 00001701: SLOAD 00001702: DUP3 00001703: JUMP 00001704: JUMPDEST 00001705: PUSH1 0x08 00001707: SLOAD 00001708: DUP2 00001709: JUMP 0000170a: JUMPDEST 0000170b: PUSH1 0x01 0000170d: PUSH1 0xa0 0000170f: PUSH1 0x02 00001711: EXP 00001712: SUB 00001713: DUP1 00001714: DUP3 00001715: AND 00001716: PUSH1 0x00 00001718: DUP2 00001719: DUP2 0000171a: MSTORE 0000171b: PUSH1 0x05 0000171d: PUSH1 0x20 0000171f: DUP2 00001720: DUP2 00001721: MSTORE 00001722: PUSH1 0x40 00001724: DUP1 00001725: DUP5 00001726: KECCAK256 00001727: SWAP6 00001728: DUP9 00001729: AND 0000172a: DUP5 0000172b: MSTORE 0000172c: PUSH1 0x03 0000172e: DUP3 0000172f: MSTORE 00001730: DUP1 00001731: DUP5 00001732: KECCAK256 00001733: SWAP5 00001734: DUP5 00001735: MSTORE 00001736: SWAP4 00001737: SWAP1 00001738: MSTORE 00001739: SWAP2 0000173a: DUP2 0000173b: KECCAK256 0000173c: SWAP2 0000173d: DUP4 0000173e: ADD 0000173f: SLOAD 00001740: PUSH1 0x04 00001742: DUP5 00001743: ADD 00001744: SLOAD 00001745: PUSH1 0x01 00001747: DUP6 00001748: ADD 00001749: SLOAD 0000174a: SWAP3 0000174b: SWAP5 0000174c: DUP6 0000174d: SWAP5 0000174e: DUP6 0000174f: SWAP5 00001750: DUP6 00001751: SWAP5 00001752: SWAP3 00001753: SWAP4 00001754: SWAP2 00001755: SWAP3 00001756: PUSH2 0x0682 00001759: SWAP3 0000175a: SWAP1 0000175b: SWAP2 0000175c: PUSH2 0x067d 0000175f: PUSH2 0x3006 00001762: JUMP 00001763: JUMPDEST 00001764: PUSH1 0x06 00001766: DUP1 00001767: SLOAD 00001768: DUP3 00001769: SWAP1 0000176a: DUP2 0000176b: LT 0000176c: PUSH2 0x1771 0000176f: JUMPI 00001770: INVALID 00001771: JUMPDEST 00001772: PUSH1 0x00 00001774: SWAP2 00001775: DUP3 00001776: MSTORE 00001777: PUSH1 0x20 00001779: SWAP1 0000177a: SWAP2 0000177b: KECCAK256 0000177c: ADD 0000177d: SLOAD 0000177e: PUSH1 0x01 00001780: PUSH1 0xa0 00001782: PUSH1 0x02 00001784: EXP 00001785: SUB 00001786: AND 00001787: SWAP1 00001788: POP 00001789: DUP2 0000178a: JUMP 0000178b: JUMPDEST 0000178c: PUSH1 0x00 0000178e: DUP1 0000178f: PUSH2 0x1796 00001792: PUSH2 0x47b0 00001795: JUMP 00001796: JUMPDEST 00001797: PUSH1 0x01 00001799: SLOAD 0000179a: PUSH1 0x01 0000179c: PUSH1 0xa0 0000179e: PUSH1 0x02 000017a0: EXP 000017a1: SUB 000017a2: AND 000017a3: CALLER 000017a4: EQ 000017a5: PUSH2 0x17bb 000017a8: JUMPI 000017a9: PUSH2 0x17b4 000017ac: PUSH1 0x02 000017ae: PUSH1 0x4a 000017b0: PUSH2 0x3196 000017b3: JUMP 000017b4: JUMPDEST 000017b5: SWAP3 000017b6: POP 000017b7: PUSH2 0x1932 000017ba: JUMP 000017bb: JUMPDEST 000017bc: PUSH2 0x17c4 000017bf: DUP6 000017c0: PUSH2 0x37a8 000017c3: JUMP 000017c4: JUMPDEST 000017c5: SWAP1 000017c6: SWAP3 000017c7: POP 000017c8: SWAP1 000017c9: POP 000017ca: PUSH1 0x00 000017cc: DUP3 000017cd: PUSH1 0x19 000017cf: DUP2 000017d0: GT 000017d1: ISZERO 000017d2: PUSH2 0x17d7 000017d5: JUMPI 000017d6: INVALID 000017d7: JUMPDEST 000017d8: EQ 000017d9: PUSH2 0x17e7 000017dc: JUMPI 000017dd: PUSH2 0x17b4 000017e0: DUP3 000017e1: PUSH1 0x49 000017e3: PUSH2 0x3196 000017e6: JUMP 000017e7: JUMPDEST 000017e8: PUSH2 0x17f0 000017eb: DUP2 000017ec: PUSH2 0x3637 000017ef: JUMP 000017f0: JUMPDEST 000017f1: ISZERO 000017f2: PUSH2 0x1801 000017f5: JUMPI 000017f6: PUSH2 0x17b4 000017f9: PUSH1 0x15 000017fb: PUSH1 0x4b 000017fd: PUSH2 0x3196 00001800: JUMP 00001801: JUMPDEST 00001802: PUSH1 0x01 00001804: PUSH1 0xa0 00001806: PUSH1 0x02 00001808: EXP 00001809: SUB 0000180a: DUP6 0000180b: DUP2 0000180c: AND 0000180d: PUSH1 0x00 0000180f: SWAP1 00001810: DUP2 00001811: MSTORE 00001812: PUSH1 0x05 00001814: PUSH1 0x20 00001816: MSTORE 00001817: PUSH1 0x40 00001819: SWAP1 0000181a: KECCAK256 0000181b: PUSH1 0x02 0000181d: ADD 0000181e: DUP1 0000181f: SLOAD 00001820: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001835: NOT 00001836: AND 00001837: SWAP2 00001838: DUP7 00001839: AND 0000183a: SWAP2 0000183b: SWAP1 0000183c: SWAP2 0000183d: OR 0000183e: SWAP1 0000183f: SSTORE 00001840: PUSH2 0x1848 00001843: DUP6 00001844: PUSH2 0x3e74 00001847: JUMP 00001848: JUMPDEST 00001849: PUSH1 0x01 0000184b: PUSH1 0xa0 0000184d: PUSH1 0x02 0000184f: EXP 00001850: SUB 00001851: DUP6 00001852: AND 00001853: PUSH1 0x00 00001855: SWAP1 00001856: DUP2 00001857: MSTORE 00001858: PUSH1 0x05 0000185a: PUSH1 0x20 0000185c: DUP2 0000185d: SWAP1 0000185e: MSTORE 0000185f: PUSH1 0x40 00001861: SWAP1 00001862: SWAP2 00001863: KECCAK256 00001864: DUP1 00001865: SLOAD 00001866: PUSH1 0xff 00001868: NOT 00001869: AND 0000186a: PUSH1 0x01 0000186c: OR 0000186d: DUP2 0000186e: SSTORE 0000186f: ADD 00001870: SLOAD 00001871: ISZERO 00001872: ISZERO 00001873: PUSH2 0x189e 00001876: JUMPI 00001877: PUSH1 0x01 00001879: PUSH1 0xa0 0000187b: PUSH1 0x02 0000187d: EXP 0000187e: SUB 0000187f: DUP6 00001880: AND 00001881: PUSH1 0x00 00001883: SWAP1 00001884: DUP2 00001885: MSTORE 00001886: PUSH1 0x05 00001888: PUSH1 0x20 0000188a: DUP2 0000188b: SWAP1 0000188c: MSTORE 0000188d: PUSH1 0x40 0000188f: SWAP1 00001890: SWAP2 00001891: KECCAK256 00001892: PUSH8 0x0de0b6b3a7640000 0000189b: SWAP2 0000189c: ADD 0000189d: SSTORE 0000189e: JUMPDEST 0000189f: PUSH1 0x01 000018a1: PUSH1 0xa0 000018a3: PUSH1 0x02 000018a5: EXP 000018a6: SUB 000018a7: DUP6 000018a8: AND 000018a9: PUSH1 0x00 000018ab: SWAP1 000018ac: DUP2 000018ad: MSTORE 000018ae: PUSH1 0x05 000018b0: PUSH1 0x20 000018b2: MSTORE 000018b3: PUSH1 0x40 000018b5: SWAP1 000018b6: KECCAK256 000018b7: PUSH1 0x08 000018b9: ADD 000018ba: SLOAD 000018bb: ISZERO 000018bc: ISZERO 000018bd: PUSH2 0x18e8 000018c0: JUMPI 000018c1: PUSH1 0x01 000018c3: PUSH1 0xa0 000018c5: PUSH1 0x02 000018c7: EXP 000018c8: SUB 000018c9: DUP6 000018ca: AND 000018cb: PUSH1 0x00 000018cd: SWAP1 000018ce: DUP2 000018cf: MSTORE 000018d0: PUSH1 0x05 000018d2: PUSH1 0x20 000018d4: MSTORE 000018d5: PUSH1 0x40 000018d7: SWAP1 000018d8: KECCAK256 000018d9: PUSH8 0x0de0b6b3a7640000 000018e2: PUSH1 0x08 000018e4: SWAP1 000018e5: SWAP2 000018e6: ADD 000018e7: SSTORE 000018e8: JUMPDEST 000018e9: PUSH1 0x40 000018eb: DUP1 000018ec: MLOAD 000018ed: PUSH1 0x01 000018ef: PUSH1 0xa0 000018f1: PUSH1 0x02 000018f3: EXP 000018f4: SUB 000018f5: DUP1 000018f6: DUP9 000018f7: AND 000018f8: DUP3 000018f9: MSTORE 000018fa: DUP7 000018fb: AND 000018fc: PUSH1 0x20 000018fe: DUP3 000018ff: ADD 00001900: MSTORE 00001901: DUP2 00001902: MLOAD 00001903: PUSH32 0xb7a6a26f7de915e2ae44a232d6e630a10f686ae27227d2544238ade533117b7a 00001924: SWAP3 00001925: SWAP2 00001926: DUP2 00001927: SWAP1 00001928: SUB 00001929: SWAP1 0000192a: SWAP2 0000192b: ADD 0000192c: SWAP1 0000192d: LOG1 0000192e: PUSH1 0x00 00001930: SWAP3 00001931: POP 00001932: JUMPDEST 00001933: POP 00001934: POP 00001935: SWAP3 00001936: SWAP2 00001937: POP 00001938: POP 00001939: JUMP 0000193a: JUMPDEST 0000193b: PUSH1 0x00 0000193d: PUSH2 0x1944 00001940: PUSH2 0x47b0 00001943: JUMP 00001944: JUMPDEST 00001945: PUSH2 0x194c 00001948: PUSH2 0x47b0 0000194b: JUMP 0000194c: JUMPDEST 0000194d: PUSH2 0x1954 00001950: PUSH2 0x47b0 00001953: JUMP 00001954: JUMPDEST 00001955: PUSH2 0x195c 00001958: PUSH2 0x47b0 0000195b: JUMP 0000195c: JUMPDEST 0000195d: PUSH1 0x00 0000195f: PUSH2 0x1966 00001962: PUSH2 0x47b0 00001965: JUMP 00001966: JUMPDEST 00001967: PUSH2 0x196e 0000196a: PUSH2 0x47b0 0000196d: JUMP 0000196e: JUMPDEST 0000196f: PUSH2 0x1976 00001972: PUSH2 0x47b0 00001975: JUMP 00001976: JUMPDEST 00001977: PUSH1 0x01 00001979: SLOAD 0000197a: PUSH1 0x01 0000197c: PUSH1 0xa0 0000197e: PUSH1 0x02 00001980: EXP 00001981: SUB 00001982: AND 00001983: CALLER 00001984: EQ 00001985: PUSH2 0x199b 00001988: JUMPI 00001989: PUSH2 0x1994 0000198c: PUSH1 0x02 0000198e: PUSH1 0x3b 00001990: PUSH2 0x3196 00001993: JUMP 00001994: JUMPDEST 00001995: SWAP9 00001996: POP 00001997: PUSH2 0x1ae8 0000199a: JUMP 0000199b: JUMPDEST 0000199c: PUSH1 0x40 0000199e: DUP1 0000199f: MLOAD 000019a0: PUSH1 0x20 000019a2: DUP2 000019a3: DUP2 000019a4: ADD 000019a5: DUP4 000019a6: MSTORE 000019a7: DUP14 000019a8: DUP3 000019a9: MSTORE 000019aa: DUP3 000019ab: MLOAD 000019ac: DUP1 000019ad: DUP3 000019ae: ADD 000019af: DUP5 000019b0: MSTORE 000019b1: DUP14 000019b2: DUP2 000019b3: MSTORE 000019b4: DUP4 000019b5: MLOAD 000019b6: DUP1 000019b7: DUP4 000019b8: ADD 000019b9: DUP6 000019ba: MSTORE 000019bb: PUSH8 0x0f43fc2c04ee0000 000019c4: DUP2 000019c5: MSTORE 000019c6: DUP5 000019c7: MLOAD 000019c8: SWAP3 000019c9: DUP4 000019ca: ADD 000019cb: SWAP1 000019cc: SWAP5 000019cd: MSTORE 000019ce: PUSH8 0x016345785d8a0000 000019d7: DUP3 000019d8: MSTORE 000019d9: SWAP2 000019da: SWAP11 000019db: POP 000019dc: SWAP1 000019dd: SWAP9 000019de: POP 000019df: SWAP1 000019e0: SWAP7 000019e1: POP 000019e2: SWAP5 000019e3: POP 000019e4: PUSH2 0x19ed 000019e7: DUP9 000019e8: DUP8 000019e9: PUSH2 0x3724 000019ec: JUMP 000019ed: JUMPDEST 000019ee: ISZERO 000019ef: PUSH2 0x19fe 000019f2: JUMPI 000019f3: PUSH2 0x1994 000019f6: PUSH1 0x11 000019f8: PUSH1 0x3c 000019fa: PUSH2 0x3196 000019fd: JUMP 000019fe: JUMPDEST 000019ff: PUSH2 0x1a08 00001a02: DUP6 00001a03: DUP9 00001a04: PUSH2 0x3724 00001a07: JUMP 00001a08: JUMPDEST 00001a09: ISZERO 00001a0a: PUSH2 0x1a19 00001a0d: JUMPI 00001a0e: PUSH2 0x1994 00001a11: PUSH1 0x16 00001a13: PUSH1 0x3c 00001a15: PUSH2 0x3196 00001a18: JUMP 00001a19: JUMPDEST 00001a1a: PUSH2 0x1a3a 00001a1d: DUP8 00001a1e: PUSH1 0x20 00001a20: PUSH1 0x40 00001a22: MLOAD 00001a23: SWAP1 00001a24: DUP2 00001a25: ADD 00001a26: PUSH1 0x40 00001a28: MSTORE 00001a29: DUP1 00001a2a: PUSH8 0x0de0b6b3a7640000 00001a33: DUP2 00001a34: MSTORE 00001a35: POP 00001a36: PUSH2 0x3f1f 00001a39: JUMP 00001a3a: JUMPDEST 00001a3b: SWAP1 00001a3c: SWAP5 00001a3d: POP 00001a3e: SWAP3 00001a3f: POP 00001a40: PUSH1 0x00 00001a42: DUP5 00001a43: PUSH1 0x19 00001a45: DUP2 00001a46: GT 00001a47: ISZERO 00001a48: PUSH2 0x1a4d 00001a4b: JUMPI 00001a4c: INVALID 00001a4d: JUMPDEST 00001a4e: EQ 00001a4f: PUSH2 0x1a54 00001a52: JUMPI 00001a53: INVALID 00001a54: JUMPDEST 00001a55: PUSH2 0x1a5e 00001a58: DUP9 00001a59: DUP5 00001a5a: PUSH2 0x3f61 00001a5d: JUMP 00001a5e: JUMPDEST 00001a5f: ISZERO 00001a60: PUSH2 0x1a6f 00001a63: JUMPI 00001a64: PUSH2 0x1994 00001a67: PUSH1 0x17 00001a69: PUSH1 0x3c 00001a6b: PUSH2 0x3196 00001a6e: JUMP 00001a6f: JUMPDEST 00001a70: POP 00001a71: POP 00001a72: PUSH1 0x40 00001a74: DUP1 00001a75: MLOAD 00001a76: PUSH1 0x20 00001a78: DUP2 00001a79: DUP2 00001a7a: ADD 00001a7b: DUP4 00001a7c: MSTORE 00001a7d: PUSH1 0x07 00001a7f: DUP1 00001a80: SLOAD 00001a81: DUP4 00001a82: MSTORE 00001a83: DUP4 00001a84: MLOAD 00001a85: DUP1 00001a86: DUP4 00001a87: ADD 00001a88: DUP6 00001a89: MSTORE 00001a8a: PUSH1 0x09 00001a8c: DUP1 00001a8d: SLOAD 00001a8e: DUP1 00001a8f: DUP4 00001a90: MSTORE 00001a91: DUP13 00001a92: MLOAD 00001a93: SWAP1 00001a94: SWAP4 00001a95: SSTORE 00001a96: DUP11 00001a97: MLOAD 00001a98: SWAP1 00001a99: SSTORE 00001a9a: DUP4 00001a9b: MLOAD 00001a9c: DUP6 00001a9d: MLOAD 00001a9e: SWAP1 00001a9f: DUP2 00001aa0: MSTORE 00001aa1: SWAP3 00001aa2: DUP4 00001aa3: ADD 00001aa4: DUP15 00001aa5: SWAP1 00001aa6: MSTORE 00001aa7: DUP3 00001aa8: DUP6 00001aa9: ADD 00001aaa: SWAP2 00001aab: SWAP1 00001aac: SWAP2 00001aad: MSTORE 00001aae: PUSH1 0x60 00001ab0: DUP3 00001ab1: ADD 00001ab2: DUP13 00001ab3: SWAP1 00001ab4: MSTORE 00001ab5: SWAP3 00001ab6: MLOAD 00001ab7: SWAP2 00001ab8: SWAP3 00001ab9: SWAP2 00001aba: PUSH32 0x1f77882929f3fe7461ce3dc42e93ec44215d80313ef2e688d3716e3f29b6552f 00001adb: SWAP2 00001adc: DUP2 00001add: SWAP1 00001ade: SUB 00001adf: PUSH1 0x80 00001ae1: ADD 00001ae2: SWAP1 00001ae3: LOG1 00001ae4: PUSH1 0x00 00001ae6: SWAP9 00001ae7: POP 00001ae8: JUMPDEST 00001ae9: POP 00001aea: POP 00001aeb: POP 00001aec: POP 00001aed: POP 00001aee: POP 00001aef: POP 00001af0: POP 00001af1: SWAP3 00001af2: SWAP2 00001af3: POP 00001af4: POP 00001af5: JUMP 00001af6: JUMPDEST 00001af7: PUSH1 0x01 00001af9: SLOAD 00001afa: PUSH1 0x00 00001afc: SWAP1 00001afd: PUSH1 0x01 00001aff: PUSH1 0xa0 00001b01: PUSH1 0x02 00001b03: EXP 00001b04: SUB 00001b05: AND 00001b06: CALLER 00001b07: EQ 00001b08: PUSH2 0x1b17 00001b0b: JUMPI 00001b0c: PUSH2 0x0793 00001b0f: PUSH1 0x02 00001b11: PUSH1 0x4c 00001b13: PUSH2 0x3196 00001b16: JUMP 00001b17: JUMPDEST 00001b18: PUSH1 0x01 00001b1a: PUSH1 0xa0 00001b1c: PUSH1 0x02 00001b1e: EXP 00001b1f: SUB 00001b20: DUP3 00001b21: AND 00001b22: PUSH1 0x00 00001b24: SWAP1 00001b25: DUP2 00001b26: MSTORE 00001b27: PUSH1 0x05 00001b29: PUSH1 0x20 00001b2b: MSTORE 00001b2c: PUSH1 0x40 00001b2e: SWAP1 00001b2f: KECCAK256 00001b30: SLOAD 00001b31: PUSH1 0xff 00001b33: AND 00001b34: ISZERO 00001b35: ISZERO 00001b36: PUSH2 0x1b40 00001b39: JUMPI 00001b3a: PUSH1 0x00 00001b3c: PUSH2 0x0793 00001b3f: JUMP 00001b40: JUMPDEST 00001b41: PUSH1 0x01 00001b43: PUSH1 0xa0 00001b45: PUSH1 0x02 00001b47: EXP 00001b48: SUB 00001b49: DUP3 00001b4a: AND 00001b4b: PUSH1 0x00 00001b4d: DUP2 00001b4e: DUP2 00001b4f: MSTORE 00001b50: PUSH1 0x05 00001b52: PUSH1 0x20 00001b54: SWAP1 00001b55: DUP2 00001b56: MSTORE 00001b57: PUSH1 0x40 00001b59: SWAP2 00001b5a: DUP3 00001b5b: SWAP1 00001b5c: KECCAK256 00001b5d: DUP1 00001b5e: SLOAD 00001b5f: PUSH1 0xff 00001b61: NOT 00001b62: AND 00001b63: SWAP1 00001b64: SSTORE 00001b65: DUP2 00001b66: MLOAD 00001b67: SWAP3 00001b68: DUP4 00001b69: MSTORE 00001b6a: SWAP1 00001b6b: MLOAD 00001b6c: PUSH32 0xe2de4d3f16716b96488257bbb951590474ed394a5e6e31a67989f89ecaced919 00001b8d: SWAP3 00001b8e: DUP2 00001b8f: SWAP1 00001b90: SUB 00001b91: SWAP1 00001b92: SWAP2 00001b93: ADD 00001b94: SWAP1 00001b95: LOG1 00001b96: PUSH1 0x00 00001b98: PUSH2 0x07e1 00001b9b: JUMP 00001b9c: JUMPDEST 00001b9d: PUSH1 0x00 00001b9f: PUSH2 0x1ba6 00001ba2: PUSH2 0x489e 00001ba5: JUMP 00001ba6: JUMPDEST 00001ba7: PUSH1 0x00 00001ba9: DUP1 00001baa: PUSH1 0x00 00001bac: DUP1 00001bad: PUSH1 0x00 00001baf: DUP1 00001bb0: PUSH1 0x00 00001bb2: PUSH1 0x0a 00001bb4: PUSH1 0x00 00001bb6: SWAP1 00001bb7: SLOAD 00001bb8: SWAP1 00001bb9: PUSH2 0x0100 00001bbc: EXP 00001bbd: SWAP1 00001bbe: DIV 00001bbf: PUSH1 0xff 00001bc1: AND 00001bc2: ISZERO 00001bc3: PUSH2 0x1bd9 00001bc6: JUMPI 00001bc7: PUSH2 0x1bd2 00001bca: PUSH1 0x19 00001bcc: PUSH1 0x1b 00001bce: PUSH2 0x3196 00001bd1: JUMP 00001bd2: JUMPDEST 00001bd3: SWAP9 00001bd4: POP 00001bd5: PUSH2 0x254c 00001bd8: JUMP 00001bd9: JUMPDEST 00001bda: DUP13 00001bdb: DUP9 00001bdc: PUSH1 0x00 00001bde: ADD 00001bdf: SWAP1 00001be0: PUSH1 0x01 00001be2: PUSH1 0xa0 00001be4: PUSH1 0x02 00001be6: EXP 00001be7: SUB 00001be8: AND 00001be9: SWAP1 00001bea: DUP2 00001beb: PUSH1 0x01 00001bed: PUSH1 0xa0 00001bef: PUSH1 0x02 00001bf1: EXP 00001bf2: SUB 00001bf3: AND 00001bf4: DUP2 00001bf5: MSTORE 00001bf6: POP 00001bf7: POP 00001bf8: DUP12 00001bf9: DUP9 00001bfa: PUSH1 0x20 00001bfc: ADD 00001bfd: SWAP1 00001bfe: PUSH1 0x01 00001c00: PUSH1 0xa0 00001c02: PUSH1 0x02 00001c04: EXP 00001c05: SUB 00001c06: AND 00001c07: SWAP1 00001c08: DUP2 00001c09: PUSH1 0x01 00001c0b: PUSH1 0xa0 00001c0d: PUSH1 0x02 00001c0f: EXP 00001c10: SUB 00001c11: AND 00001c12: DUP2 00001c13: MSTORE 00001c14: POP 00001c15: POP 00001c16: CALLER 00001c17: DUP9 00001c18: PUSH1 0x40 00001c1a: ADD 00001c1b: SWAP1 00001c1c: PUSH1 0x01 00001c1e: PUSH1 0xa0 00001c20: PUSH1 0x02 00001c22: EXP 00001c23: SUB 00001c24: AND 00001c25: SWAP1 00001c26: DUP2 00001c27: PUSH1 0x01 00001c29: PUSH1 0xa0 00001c2b: PUSH1 0x02 00001c2d: EXP 00001c2e: SUB 00001c2f: AND 00001c30: DUP2 00001c31: MSTORE 00001c32: POP 00001c33: POP 00001c34: DUP11 00001c35: DUP9 00001c36: PUSH1 0x60 00001c38: ADD 00001c39: SWAP1 00001c3a: PUSH1 0x01 00001c3c: PUSH1 0xa0 00001c3e: PUSH1 0x02 00001c40: EXP 00001c41: SUB 00001c42: AND 00001c43: SWAP1 00001c44: DUP2 00001c45: PUSH1 0x01 00001c47: PUSH1 0xa0 00001c49: PUSH1 0x02 00001c4b: EXP 00001c4c: SUB 00001c4d: AND 00001c4e: DUP2 00001c4f: MSTORE 00001c50: POP 00001c51: POP 00001c52: PUSH1 0x05 00001c54: PUSH1 0x00 00001c56: DUP14 00001c57: PUSH1 0x01 00001c59: PUSH1 0xa0 00001c5b: PUSH1 0x02 00001c5d: EXP 00001c5e: SUB 00001c5f: AND 00001c60: PUSH1 0x01 00001c62: PUSH1 0xa0 00001c64: PUSH1 0x02 00001c66: EXP 00001c67: SUB 00001c68: AND 00001c69: DUP2 00001c6a: MSTORE 00001c6b: PUSH1 0x20 00001c6d: ADD 00001c6e: SWAP1 00001c6f: DUP2 00001c70: MSTORE 00001c71: PUSH1 0x20 00001c73: ADD 00001c74: PUSH1 0x00 00001c76: KECCAK256 00001c77: SWAP7 00001c78: POP 00001c79: PUSH1 0x05 00001c7b: PUSH1 0x00 00001c7d: DUP13 00001c7e: PUSH1 0x01 00001c80: PUSH1 0xa0 00001c82: PUSH1 0x02 00001c84: EXP 00001c85: SUB 00001c86: AND 00001c87: PUSH1 0x01 00001c89: PUSH1 0xa0 00001c8b: PUSH1 0x02 00001c8d: EXP 00001c8e: SUB 00001c8f: AND 00001c90: DUP2 00001c91: MSTORE 00001c92: PUSH1 0x20 00001c94: ADD 00001c95: SWAP1 00001c96: DUP2 00001c97: MSTORE 00001c98: PUSH1 0x20 00001c9a: ADD 00001c9b: PUSH1 0x00 00001c9d: KECCAK256 00001c9e: SWAP6 00001c9f: POP 00001ca0: PUSH1 0x04 00001ca2: PUSH1 0x00 00001ca4: DUP15 00001ca5: PUSH1 0x01 00001ca7: PUSH1 0xa0 00001ca9: PUSH1 0x02 00001cab: EXP 00001cac: SUB 00001cad: AND 00001cae: PUSH1 0x01 00001cb0: PUSH1 0xa0 00001cb2: PUSH1 0x02 00001cb4: EXP 00001cb5: SUB 00001cb6: AND 00001cb7: DUP2 00001cb8: MSTORE 00001cb9: PUSH1 0x20 00001cbb: ADD 00001cbc: SWAP1 00001cbd: DUP2 00001cbe: MSTORE 00001cbf: PUSH1 0x20 00001cc1: ADD 00001cc2: PUSH1 0x00 00001cc4: KECCAK256 00001cc5: PUSH1 0x00 00001cc7: DUP14 00001cc8: PUSH1 0x01 00001cca: PUSH1 0xa0 00001ccc: PUSH1 0x02 00001cce: EXP 00001ccf: SUB 00001cd0: AND 00001cd1: PUSH1 0x01 00001cd3: PUSH1 0xa0 00001cd5: PUSH1 0x02 00001cd7: EXP 00001cd8: SUB 00001cd9: AND 00001cda: DUP2 00001cdb: MSTORE 00001cdc: PUSH1 0x20 00001cde: ADD 00001cdf: SWAP1 00001ce0: DUP2 00001ce1: MSTORE 00001ce2: PUSH1 0x20 00001ce4: ADD 00001ce5: PUSH1 0x00 00001ce7: KECCAK256 00001ce8: SWAP5 00001ce9: POP 00001cea: PUSH1 0x03 00001cec: PUSH1 0x00 00001cee: DUP15 00001cef: PUSH1 0x01 00001cf1: PUSH1 0xa0 00001cf3: PUSH1 0x02 00001cf5: EXP 00001cf6: SUB 00001cf7: AND 00001cf8: PUSH1 0x01 00001cfa: PUSH1 0xa0 00001cfc: PUSH1 0x02 00001cfe: EXP 00001cff: SUB 00001d00: AND 00001d01: DUP2 00001d02: MSTORE 00001d03: PUSH1 0x20 00001d05: ADD 00001d06: SWAP1 00001d07: DUP2 00001d08: MSTORE 00001d09: PUSH1 0x20 00001d0b: ADD 00001d0c: PUSH1 0x00 00001d0e: KECCAK256 00001d0f: PUSH1 0x00 00001d11: DUP13 00001d12: PUSH1 0x01 00001d14: PUSH1 0xa0 00001d16: PUSH1 0x02 00001d18: EXP 00001d19: SUB 00001d1a: AND 00001d1b: PUSH1 0x01 00001d1d: PUSH1 0xa0 00001d1f: PUSH1 0x02 00001d21: EXP 00001d22: SUB 00001d23: AND 00001d24: DUP2 00001d25: MSTORE 00001d26: PUSH1 0x20 00001d28: ADD 00001d29: SWAP1 00001d2a: DUP2 00001d2b: MSTORE 00001d2c: PUSH1 0x20 00001d2e: ADD 00001d2f: PUSH1 0x00 00001d31: KECCAK256 00001d32: SWAP4 00001d33: POP 00001d34: PUSH1 0x03 00001d36: PUSH1 0x00 00001d38: DUP10 00001d39: PUSH1 0x40 00001d3b: ADD 00001d3c: MLOAD 00001d3d: PUSH1 0x01 00001d3f: PUSH1 0xa0 00001d41: PUSH1 0x02 00001d43: EXP 00001d44: SUB 00001d45: AND 00001d46: PUSH1 0x01 00001d48: PUSH1 0xa0 00001d4a: PUSH1 0x02 00001d4c: EXP 00001d4d: SUB 00001d4e: AND 00001d4f: DUP2 00001d50: MSTORE 00001d51: PUSH1 0x20 00001d53: ADD 00001d54: SWAP1 00001d55: DUP2 00001d56: MSTORE 00001d57: PUSH1 0x20 00001d59: ADD 00001d5a: PUSH1 0x00 00001d5c: KECCAK256 00001d5d: PUSH1 0x00 00001d5f: DUP13 00001d60: PUSH1 0x01 00001d62: PUSH1 0xa0 00001d64: PUSH1 0x02 00001d66: EXP 00001d67: SUB 00001d68: AND 00001d69: PUSH1 0x01 00001d6b: PUSH1 0xa0 00001d6d: PUSH1 0x02 00001d6f: EXP 00001d70: SUB 00001d71: AND 00001d72: DUP2 00001d73: MSTORE 00001d74: PUSH1 0x20 00001d76: ADD 00001d77: SWAP1 00001d78: DUP2 00001d79: MSTORE 00001d7a: PUSH1 0x20 00001d7c: ADD 00001d7d: PUSH1 0x00 00001d7f: KECCAK256 00001d80: SWAP3 00001d81: POP 00001d82: PUSH2 0x1d8a 00001d85: DUP12 00001d86: PUSH2 0x37a8 00001d89: JUMP 00001d8a: JUMPDEST 00001d8b: PUSH2 0x0380 00001d8e: DUP11 00001d8f: ADD 00001d90: MSTORE 00001d91: SWAP1 00001d92: POP 00001d93: PUSH1 0x00 00001d95: DUP2 00001d96: PUSH1 0x19 00001d98: DUP2 00001d99: GT 00001d9a: ISZERO 00001d9b: PUSH2 0x1da0 00001d9e: JUMPI 00001d9f: INVALID 00001da0: JUMPDEST 00001da1: EQ 00001da2: PUSH2 0x1db0 00001da5: JUMPI 00001da6: PUSH2 0x1bd2 00001da9: DUP2 00001daa: PUSH1 0x27 00001dac: PUSH2 0x3196 00001daf: JUMP 00001db0: JUMPDEST 00001db1: PUSH2 0x1db9 00001db4: DUP13 00001db5: PUSH2 0x37a8 00001db8: JUMP 00001db9: JUMPDEST 00001dba: PUSH2 0x03a0 00001dbd: DUP11 00001dbe: ADD 00001dbf: MSTORE 00001dc0: SWAP1 00001dc1: POP 00001dc2: PUSH1 0x00 00001dc4: DUP2 00001dc5: PUSH1 0x19 00001dc7: DUP2 00001dc8: GT 00001dc9: ISZERO 00001dca: PUSH2 0x1dcf 00001dcd: JUMPI 00001dce: INVALID 00001dcf: JUMPDEST 00001dd0: EQ 00001dd1: PUSH2 0x1dd6 00001dd4: JUMPI 00001dd5: INVALID 00001dd6: JUMPDEST 00001dd7: PUSH2 0x1df0 00001dda: DUP8 00001ddb: PUSH1 0x08 00001ddd: ADD 00001dde: SLOAD 00001ddf: DUP9 00001de0: PUSH1 0x07 00001de2: ADD 00001de3: SLOAD 00001de4: DUP10 00001de5: PUSH1 0x01 00001de7: ADD 00001de8: SLOAD 00001de9: PUSH2 0x067d 00001dec: PUSH2 0x3006 00001def: JUMP 00001df0: JUMPDEST 00001df1: PUSH1 0x80 00001df3: DUP11 00001df4: ADD 00001df5: MSTORE 00001df6: SWAP1 00001df7: POP 00001df8: PUSH1 0x00 00001dfa: DUP2 00001dfb: PUSH1 0x19 00001dfd: DUP2 00001dfe: GT 00001dff: ISZERO 00001e00: PUSH2 0x1e05 00001e03: JUMPI 00001e04: INVALID 00001e05: JUMPDEST 00001e06: EQ 00001e07: PUSH2 0x1e15 00001e0a: JUMPI 00001e0b: PUSH2 0x1bd2 00001e0e: DUP2 00001e0f: PUSH1 0x1d 00001e11: PUSH2 0x3196 00001e14: JUMP 00001e15: JUMPDEST 00001e16: PUSH2 0x1e2c 00001e19: DUP6 00001e1a: PUSH1 0x00 00001e1c: ADD 00001e1d: SLOAD 00001e1e: DUP7 00001e1f: PUSH1 0x01 00001e21: ADD 00001e22: SLOAD 00001e23: DUP11 00001e24: PUSH1 0x80 00001e26: ADD 00001e27: MLOAD 00001e28: PUSH2 0x3135 00001e2b: JUMP 00001e2c: JUMPDEST 00001e2d: PUSH2 0x0100 00001e30: DUP11 00001e31: ADD 00001e32: MSTORE 00001e33: SWAP1 00001e34: POP 00001e35: PUSH1 0x00 00001e37: DUP2 00001e38: PUSH1 0x19 00001e3a: DUP2 00001e3b: GT 00001e3c: ISZERO 00001e3d: PUSH2 0x1e42 00001e40: JUMPI 00001e41: INVALID 00001e42: JUMPDEST 00001e43: EQ 00001e44: PUSH2 0x1e52 00001e47: JUMPI 00001e48: PUSH2 0x1bd2 00001e4b: DUP2 00001e4c: PUSH1 0x15 00001e4e: PUSH2 0x3196 00001e51: JUMP 00001e52: JUMPDEST 00001e53: PUSH2 0x1e6c 00001e56: DUP7 00001e57: PUSH1 0x05 00001e59: ADD 00001e5a: SLOAD 00001e5b: DUP8 00001e5c: PUSH1 0x04 00001e5e: ADD 00001e5f: SLOAD 00001e60: DUP9 00001e61: PUSH1 0x01 00001e63: ADD 00001e64: SLOAD 00001e65: PUSH2 0x067d 00001e68: PUSH2 0x3006 00001e6b: JUMP 00001e6c: JUMPDEST 00001e6d: PUSH1 0xe0 00001e6f: DUP11 00001e70: ADD 00001e71: MSTORE 00001e72: SWAP1 00001e73: POP 00001e74: PUSH1 0x00 00001e76: DUP2 00001e77: PUSH1 0x19 00001e79: DUP2 00001e7a: GT 00001e7b: ISZERO 00001e7c: PUSH2 0x1e81 00001e7f: JUMPI 00001e80: INVALID 00001e81: JUMPDEST 00001e82: EQ 00001e83: PUSH2 0x1e91 00001e86: JUMPI 00001e87: PUSH2 0x1bd2 00001e8a: DUP2 00001e8b: PUSH1 0x21 00001e8d: PUSH2 0x3196 00001e90: JUMP 00001e91: JUMPDEST 00001e92: PUSH2 0x1ea8 00001e95: DUP5 00001e96: PUSH1 0x00 00001e98: ADD 00001e99: SLOAD 00001e9a: DUP6 00001e9b: PUSH1 0x01 00001e9d: ADD 00001e9e: SLOAD 00001e9f: DUP11 00001ea0: PUSH1 0xe0 00001ea2: ADD 00001ea3: MLOAD 00001ea4: PUSH2 0x3135 00001ea7: JUMP 00001ea8: JUMPDEST 00001ea9: PUSH2 0x01c0 00001eac: DUP11 00001ead: ADD 00001eae: MSTORE 00001eaf: SWAP1 00001eb0: POP 00001eb1: PUSH1 0x00 00001eb3: DUP2 00001eb4: PUSH1 0x19 00001eb6: DUP2 00001eb7: GT 00001eb8: ISZERO 00001eb9: PUSH2 0x1ebe 00001ebc: JUMPI 00001ebd: INVALID 00001ebe: JUMPDEST 00001ebf: EQ 00001ec0: PUSH2 0x1ece 00001ec3: JUMPI 00001ec4: PUSH2 0x1bd2 00001ec7: DUP2 00001ec8: PUSH1 0x16 00001eca: PUSH2 0x3196 00001ecd: JUMP 00001ece: JUMPDEST 00001ecf: PUSH2 0x1ee5 00001ed2: DUP4 00001ed3: PUSH1 0x00 00001ed5: ADD 00001ed6: SLOAD 00001ed7: DUP5 00001ed8: PUSH1 0x01 00001eda: ADD 00001edb: SLOAD 00001edc: DUP11 00001edd: PUSH1 0xe0 00001edf: ADD 00001ee0: MLOAD 00001ee1: PUSH2 0x3135 00001ee4: JUMP 00001ee5: JUMPDEST 00001ee6: PUSH2 0x0200 00001ee9: DUP11 00001eea: ADD 00001eeb: MSTORE 00001eec: SWAP1 00001eed: POP 00001eee: PUSH1 0x00 00001ef0: DUP2 00001ef1: PUSH1 0x19 00001ef3: DUP2 00001ef4: GT 00001ef5: ISZERO 00001ef6: PUSH2 0x1efb 00001ef9: JUMPI 00001efa: INVALID 00001efb: JUMPDEST 00001efc: EQ 00001efd: PUSH2 0x1f0b 00001f00: JUMPI 00001f01: PUSH2 0x1bd2 00001f04: DUP2 00001f05: PUSH1 0x17 00001f07: PUSH2 0x3196 00001f0a: JUMP 00001f0b: JUMPDEST 00001f0c: PUSH2 0x1f23 00001f0f: DUP7 00001f10: PUSH1 0x03 00001f12: ADD 00001f13: SLOAD 00001f14: DUP10 00001f15: PUSH2 0x01c0 00001f18: ADD 00001f19: MLOAD 00001f1a: DUP7 00001f1b: PUSH1 0x00 00001f1d: ADD 00001f1e: SLOAD 00001f1f: PUSH2 0x3294 00001f22: JUMP 00001f23: JUMPDEST 00001f24: PUSH2 0x0240 00001f27: DUP11 00001f28: ADD 00001f29: MSTORE 00001f2a: SWAP1 00001f2b: POP 00001f2c: PUSH1 0x00 00001f2e: DUP2 00001f2f: PUSH1 0x19 00001f31: DUP2 00001f32: GT 00001f33: ISZERO 00001f34: PUSH2 0x1f39 00001f37: JUMPI 00001f38: INVALID 00001f39: JUMPDEST 00001f3a: EQ 00001f3b: PUSH2 0x1f49 00001f3e: JUMPI 00001f3f: PUSH2 0x1bd2 00001f42: DUP2 00001f43: PUSH1 0x25 00001f45: PUSH2 0x3196 00001f48: JUMP 00001f49: JUMPDEST 00001f4a: PUSH2 0x1f62 00001f4d: DUP9 00001f4e: PUSH2 0x0240 00001f51: ADD 00001f52: MLOAD 00001f53: DUP10 00001f54: PUSH2 0x0200 00001f57: ADD 00001f58: MLOAD 00001f59: DUP6 00001f5a: PUSH1 0x00 00001f5c: ADD 00001f5d: SLOAD 00001f5e: PUSH2 0x3294 00001f61: JUMP 00001f62: JUMPDEST 00001f63: PUSH2 0x0240 00001f66: DUP11 00001f67: ADD 00001f68: MSTORE 00001f69: SWAP1 00001f6a: POP 00001f6b: PUSH1 0x00 00001f6d: DUP2 00001f6e: PUSH1 0x19 00001f70: DUP2 00001f71: GT 00001f72: ISZERO 00001f73: PUSH2 0x1f78 00001f76: JUMPI 00001f77: INVALID 00001f78: JUMPDEST 00001f79: EQ 00001f7a: PUSH2 0x1f88 00001f7d: JUMPI 00001f7e: PUSH2 0x1bd2 00001f81: DUP2 00001f82: PUSH1 0x26 00001f84: PUSH2 0x3196 00001f87: JUMP 00001f88: JUMPDEST 00001f89: PUSH2 0x1fa2 00001f8c: DUP9 00001f8d: PUSH2 0x03a0 00001f90: ADD 00001f91: MLOAD 00001f92: DUP10 00001f93: PUSH2 0x0380 00001f96: ADD 00001f97: MLOAD 00001f98: DUP11 00001f99: PUSH2 0x01c0 00001f9c: ADD 00001f9d: MLOAD 00001f9e: PUSH2 0x3f69 00001fa1: JUMP 00001fa2: JUMPDEST 00001fa3: PUSH2 0x0300 00001fa6: DUP11 00001fa7: ADD 00001fa8: MSTORE 00001fa9: SWAP1 00001faa: POP 00001fab: PUSH1 0x00 00001fad: DUP2 00001fae: PUSH1 0x19 00001fb0: DUP2 00001fb1: GT 00001fb2: ISZERO 00001fb3: PUSH2 0x1fb8 00001fb6: JUMPI 00001fb7: INVALID 00001fb8: JUMPDEST 00001fb9: EQ 00001fba: PUSH2 0x1fc8 00001fbd: JUMPI 00001fbe: PUSH2 0x1bd2 00001fc1: DUP2 00001fc2: PUSH1 0x19 00001fc4: PUSH2 0x3196 00001fc7: JUMP 00001fc8: JUMPDEST 00001fc9: DUP7 00001fca: SLOAD 00001fcb: PUSH1 0xff 00001fcd: AND 00001fce: ISZERO 00001fcf: PUSH2 0x203e 00001fd2: JUMPI 00001fd3: PUSH2 0x1fe1 00001fd6: DUP14 00001fd7: DUP10 00001fd8: PUSH2 0x03a0 00001fdb: ADD 00001fdc: MLOAD 00001fdd: PUSH2 0x408d 00001fe0: JUMP 00001fe1: JUMPDEST 00001fe2: PUSH2 0x02e0 00001fe5: DUP11 00001fe6: ADD 00001fe7: MSTORE 00001fe8: SWAP1 00001fe9: POP 00001fea: PUSH1 0x00 00001fec: DUP2 00001fed: PUSH1 0x19 00001fef: DUP2 00001ff0: GT 00001ff1: ISZERO 00001ff2: PUSH2 0x1ff7 00001ff5: JUMPI 00001ff6: INVALID 00001ff7: JUMPDEST 00001ff8: EQ 00001ff9: PUSH2 0x2007 00001ffc: JUMPI 00001ffd: PUSH2 0x1bd2 00002000: DUP2 00002001: PUSH1 0x1c 00002003: PUSH2 0x3196 00002006: JUMP 00002007: JUMPDEST 00002008: PUSH2 0x201b 0000200b: DUP9 0000200c: PUSH2 0x0100 0000200f: ADD 00002010: MLOAD 00002011: DUP10 00002012: PUSH2 0x0300 00002015: ADD 00002016: MLOAD 00002017: PUSH2 0x3c40 0000201a: JUMP 0000201b: JUMPDEST 0000201c: PUSH2 0x0320 0000201f: DUP10 00002020: ADD 00002021: DUP2 00002022: SWAP1 00002023: MSTORE 00002024: PUSH2 0x02e0 00002027: DUP10 00002028: ADD 00002029: MLOAD 0000202a: PUSH2 0x2033 0000202d: SWAP2 0000202e: SWAP1 0000202f: PUSH2 0x3c40 00002032: JUMP 00002033: JUMPDEST 00002034: PUSH2 0x0320 00002037: DUP10 00002038: ADD 00002039: MSTORE 0000203a: PUSH2 0x2059 0000203d: JUMP 0000203e: JUMPDEST 0000203f: PUSH2 0x2052 00002042: DUP9 00002043: PUSH2 0x0100 00002046: ADD 00002047: MLOAD 00002048: DUP10 00002049: PUSH2 0x0300 0000204c: ADD 0000204d: MLOAD 0000204e: PUSH2 0x3c40 00002051: JUMP 00002052: JUMPDEST 00002053: PUSH2 0x0320 00002056: DUP10 00002057: ADD 00002058: MSTORE 00002059: JUMPDEST 0000205a: PUSH1 0x00 0000205c: NOT 0000205d: DUP11 0000205e: EQ 0000205f: ISZERO 00002060: PUSH2 0x2074 00002063: JUMPI 00002064: PUSH2 0x0320 00002067: DUP9 00002068: ADD 00002069: MLOAD 0000206a: PUSH2 0x0340 0000206d: DUP10 0000206e: ADD 0000206f: MSTORE 00002070: PUSH2 0x207d 00002073: JUMP 00002074: JUMPDEST 00002075: PUSH2 0x0340 00002078: DUP9 00002079: ADD 0000207a: DUP11 0000207b: SWAP1 0000207c: MSTORE 0000207d: JUMPDEST 0000207e: DUP8 0000207f: PUSH2 0x0320 00002082: ADD 00002083: MLOAD 00002084: DUP9 00002085: PUSH2 0x0340 00002088: ADD 00002089: MLOAD 0000208a: GT 0000208b: ISZERO 0000208c: PUSH2 0x209b 0000208f: JUMPI 00002090: PUSH2 0x1bd2 00002093: PUSH1 0x14 00002095: PUSH1 0x1a 00002097: PUSH2 0x3196 0000209a: JUMP 0000209b: JUMPDEST 0000209c: PUSH2 0x20b5 0000209f: DUP9 000020a0: PUSH2 0x03a0 000020a3: ADD 000020a4: MLOAD 000020a5: DUP10 000020a6: PUSH2 0x0380 000020a9: ADD 000020aa: MLOAD 000020ab: DUP11 000020ac: PUSH2 0x0340 000020af: ADD 000020b0: MLOAD 000020b1: PUSH2 0x41f8 000020b4: JUMP 000020b5: JUMPDEST 000020b6: PUSH2 0x0360 000020b9: DUP11 000020ba: ADD 000020bb: MSTORE 000020bc: SWAP1 000020bd: POP 000020be: PUSH1 0x00 000020c0: DUP2 000020c1: PUSH1 0x19 000020c3: DUP2 000020c4: GT 000020c5: ISZERO 000020c6: PUSH2 0x20cb 000020c9: JUMPI 000020ca: INVALID 000020cb: JUMPDEST 000020cc: EQ 000020cd: PUSH2 0x20db 000020d0: JUMPI 000020d1: PUSH2 0x1bd2 000020d4: DUP2 000020d5: PUSH1 0x18 000020d7: PUSH2 0x3196 000020da: JUMP 000020db: JUMPDEST 000020dc: PUSH2 0x20ef 000020df: DUP13 000020e0: DUP10 000020e1: PUSH1 0x40 000020e3: ADD 000020e4: MLOAD 000020e5: DUP11 000020e6: PUSH2 0x0340 000020e9: ADD 000020ea: MLOAD 000020eb: PUSH2 0x3c58 000020ee: JUMP 000020ef: JUMPDEST 000020f0: SWAP1 000020f1: POP 000020f2: PUSH1 0x00 000020f4: DUP2 000020f5: PUSH1 0x19 000020f7: DUP2 000020f8: GT 000020f9: ISZERO 000020fa: PUSH2 0x20ff 000020fd: JUMPI 000020fe: INVALID 000020ff: JUMPDEST 00002100: EQ 00002101: PUSH2 0x210f 00002104: JUMPI 00002105: PUSH2 0x1bd2 00002108: DUP2 00002109: PUSH1 0x29 0000210b: PUSH2 0x3196 0000210e: JUMP 0000210f: JUMPDEST 00002110: PUSH2 0x2123 00002113: DUP9 00002114: PUSH2 0x0100 00002117: ADD 00002118: MLOAD 00002119: DUP10 0000211a: PUSH2 0x0340 0000211d: ADD 0000211e: MLOAD 0000211f: PUSH2 0x372b 00002122: JUMP 00002123: JUMPDEST 00002124: PUSH2 0x0120 00002127: DUP11 00002128: ADD 00002129: MSTORE 0000212a: SWAP1 0000212b: POP 0000212c: PUSH1 0x00 0000212e: DUP2 0000212f: PUSH1 0x19 00002131: DUP2 00002132: GT 00002133: ISZERO 00002134: PUSH2 0x2139 00002137: JUMPI 00002138: INVALID 00002139: JUMPDEST 0000213a: EQ 0000213b: PUSH2 0x2140 0000213e: JUMPI 0000213f: INVALID 00002140: JUMPDEST 00002141: PUSH2 0x2158 00002144: DUP8 00002145: PUSH1 0x06 00002147: ADD 00002148: SLOAD 00002149: DUP10 0000214a: PUSH2 0x0120 0000214d: ADD 0000214e: MLOAD 0000214f: DUP8 00002150: PUSH1 0x00 00002152: ADD 00002153: SLOAD 00002154: PUSH2 0x3294 00002157: JUMP 00002158: JUMPDEST 00002159: PUSH2 0x0140 0000215c: DUP11 0000215d: ADD 0000215e: MSTORE 0000215f: SWAP1 00002160: POP 00002161: PUSH1 0x00 00002163: DUP2 00002164: PUSH1 0x19 00002166: DUP2 00002167: GT 00002168: ISZERO 00002169: PUSH2 0x216e 0000216c: JUMPI 0000216d: INVALID 0000216e: JUMPDEST 0000216f: EQ 00002170: PUSH2 0x217e 00002173: JUMPI 00002174: PUSH2 0x1bd2 00002177: DUP2 00002178: PUSH1 0x23 0000217a: PUSH2 0x3196 0000217d: JUMP 0000217e: JUMPDEST 0000217f: PUSH2 0x2187 00002182: DUP13 00002183: PUSH2 0x31fc 00002186: JUMP 00002187: JUMPDEST 00002188: PUSH2 0x0260 0000218b: DUP10 0000218c: ADD 0000218d: DUP2 0000218e: SWAP1 0000218f: MSTORE 00002190: PUSH2 0x0340 00002193: DUP10 00002194: ADD 00002195: MLOAD 00002196: PUSH2 0x219f 00002199: SWAP2 0000219a: SWAP1 0000219b: PUSH2 0x347e 0000219e: JUMP 0000219f: JUMPDEST 000021a0: PUSH2 0x0280 000021a3: DUP11 000021a4: ADD 000021a5: MSTORE 000021a6: SWAP1 000021a7: POP 000021a8: PUSH1 0x00 000021aa: DUP2 000021ab: PUSH1 0x19 000021ad: DUP2 000021ae: GT 000021af: ISZERO 000021b0: PUSH2 0x21b5 000021b3: JUMPI 000021b4: INVALID 000021b5: JUMPDEST 000021b6: EQ 000021b7: PUSH2 0x21c5 000021ba: JUMPI 000021bb: PUSH2 0x1bd2 000021be: DUP2 000021bf: PUSH1 0x24 000021c1: PUSH2 0x3196 000021c4: JUMP 000021c5: JUMPDEST 000021c6: PUSH2 0x21df 000021c9: DUP8 000021ca: PUSH1 0x05 000021cc: ADD 000021cd: SLOAD 000021ce: DUP9 000021cf: PUSH1 0x04 000021d1: ADD 000021d2: SLOAD 000021d3: DUP10 000021d4: PUSH1 0x01 000021d6: ADD 000021d7: SLOAD 000021d8: PUSH2 0x067d 000021db: PUSH2 0x3006 000021de: JUMP 000021df: JUMPDEST 000021e0: PUSH1 0xa0 000021e2: DUP11 000021e3: ADD 000021e4: MSTORE 000021e5: SWAP1 000021e6: POP 000021e7: PUSH1 0x00 000021e9: DUP2 000021ea: PUSH1 0x19 000021ec: DUP2 000021ed: GT 000021ee: ISZERO 000021ef: PUSH2 0x21f4 000021f2: JUMPI 000021f3: INVALID 000021f4: JUMPDEST 000021f5: EQ 000021f6: PUSH2 0x2204 000021f9: JUMPI 000021fa: PUSH2 0x1bd2 000021fd: DUP2 000021fe: PUSH1 0x20 00002200: PUSH2 0x3196 00002203: JUMP 00002204: JUMPDEST 00002205: DUP7 00002206: PUSH1 0x02 00002208: ADD 00002209: PUSH1 0x00 0000220b: SWAP1 0000220c: SLOAD 0000220d: SWAP1 0000220e: PUSH2 0x0100 00002211: EXP 00002212: SWAP1 00002213: DIV 00002214: PUSH1 0x01 00002216: PUSH1 0xa0 00002218: PUSH1 0x02 0000221a: EXP 0000221b: SUB 0000221c: AND 0000221d: PUSH1 0x01 0000221f: PUSH1 0xa0 00002221: PUSH1 0x02 00002223: EXP 00002224: SUB 00002225: AND 00002226: PUSH4 0x517cf73e 0000222b: DUP14 0000222c: DUP11 0000222d: PUSH2 0x0280 00002230: ADD 00002231: MLOAD 00002232: DUP12 00002233: PUSH2 0x0140 00002236: ADD 00002237: MLOAD 00002238: PUSH1 0x40 0000223a: MLOAD 0000223b: DUP5 0000223c: PUSH4 0xffffffff 00002241: AND 00002242: PUSH1 0xe0 00002244: PUSH1 0x02 00002246: EXP 00002247: MUL 00002248: DUP2 00002249: MSTORE 0000224a: PUSH1 0x04 0000224c: ADD 0000224d: DUP1 0000224e: DUP5 0000224f: PUSH1 0x01 00002251: PUSH1 0xa0 00002253: PUSH1 0x02 00002255: EXP 00002256: SUB 00002257: AND 00002258: PUSH1 0x01 0000225a: PUSH1 0xa0 0000225c: PUSH1 0x02 0000225e: EXP 0000225f: SUB 00002260: AND 00002261: DUP2 00002262: MSTORE 00002263: PUSH1 0x20 00002265: ADD 00002266: DUP4 00002267: DUP2 00002268: MSTORE 00002269: PUSH1 0x20 0000226b: ADD 0000226c: DUP3 0000226d: DUP2 0000226e: MSTORE 0000226f: PUSH1 0x20 00002271: ADD 00002272: SWAP4 00002273: POP 00002274: POP 00002275: POP 00002276: POP 00002277: PUSH1 0x40 00002279: DUP1 0000227a: MLOAD 0000227b: DUP1 0000227c: DUP4 0000227d: SUB 0000227e: DUP2 0000227f: PUSH1 0x00 00002281: DUP8 00002282: DUP1 00002283: EXTCODESIZE 00002284: ISZERO 00002285: DUP1 00002286: ISZERO 00002287: PUSH2 0x228f 0000228a: JUMPI 0000228b: PUSH1 0x00 0000228d: DUP1 0000228e: REVERT 0000228f: JUMPDEST 00002290: POP 00002291: GAS 00002292: CALL 00002293: ISZERO 00002294: DUP1 00002295: ISZERO 00002296: PUSH2 0x22a3 00002299: JUMPI 0000229a: RETURNDATASIZE 0000229b: PUSH1 0x00 0000229d: DUP1 0000229e: RETURNDATACOPY 0000229f: RETURNDATASIZE 000022a0: PUSH1 0x00 000022a2: REVERT 000022a3: JUMPDEST 000022a4: POP 000022a5: POP 000022a6: POP 000022a7: POP 000022a8: PUSH1 0x40 000022aa: MLOAD 000022ab: RETURNDATASIZE 000022ac: PUSH1 0x40 000022ae: DUP2 000022af: LT 000022b0: ISZERO 000022b1: PUSH2 0x22b9 000022b4: JUMPI 000022b5: PUSH1 0x00 000022b7: DUP1 000022b8: REVERT 000022b9: JUMPDEST 000022ba: POP 000022bb: DUP1 000022bc: MLOAD 000022bd: PUSH1 0x20 000022bf: SWAP1 000022c0: SWAP2 000022c1: ADD 000022c2: MLOAD 000022c3: PUSH2 0x02a0 000022c6: DUP11 000022c7: ADD 000022c8: MSTORE 000022c9: SWAP2 000022ca: POP 000022cb: DUP2 000022cc: ISZERO 000022cd: PUSH2 0x22db 000022d0: JUMPI 000022d1: PUSH2 0x1bd2 000022d4: PUSH1 0x22 000022d6: DUP4 000022d7: PUSH2 0x3751 000022da: JUMP 000022db: JUMPDEST 000022dc: DUP7 000022dd: PUSH1 0x02 000022df: ADD 000022e0: PUSH1 0x00 000022e2: SWAP1 000022e3: SLOAD 000022e4: SWAP1 000022e5: PUSH2 0x0100 000022e8: EXP 000022e9: SWAP1 000022ea: DIV 000022eb: PUSH1 0x01 000022ed: PUSH1 0xa0 000022ef: PUSH1 0x02 000022f1: EXP 000022f2: SUB 000022f3: AND 000022f4: PUSH1 0x01 000022f6: PUSH1 0xa0 000022f8: PUSH1 0x02 000022fa: EXP 000022fb: SUB 000022fc: AND 000022fd: PUSH4 0xed2b5a3c 00002302: DUP14 00002303: DUP11 00002304: PUSH2 0x0280 00002307: ADD 00002308: MLOAD 00002309: DUP12 0000230a: PUSH2 0x0140 0000230d: ADD 0000230e: MLOAD 0000230f: PUSH1 0x40 00002311: MLOAD 00002312: DUP5 00002313: PUSH4 0xffffffff 00002318: AND 00002319: PUSH1 0xe0 0000231b: PUSH1 0x02 0000231d: EXP 0000231e: MUL 0000231f: DUP2 00002320: MSTORE 00002321: PUSH1 0x04 00002323: ADD 00002324: DUP1 00002325: DUP5 00002326: PUSH1 0x01 00002328: PUSH1 0xa0 0000232a: PUSH1 0x02 0000232c: EXP 0000232d: SUB 0000232e: AND 0000232f: PUSH1 0x01 00002331: PUSH1 0xa0 00002333: PUSH1 0x02 00002335: EXP 00002336: SUB 00002337: AND 00002338: DUP2 00002339: MSTORE 0000233a: PUSH1 0x20 0000233c: ADD 0000233d: DUP4 0000233e: DUP2 0000233f: MSTORE 00002340: PUSH1 0x20 00002342: ADD 00002343: DUP3 00002344: DUP2 00002345: MSTORE 00002346: PUSH1 0x20 00002348: ADD 00002349: SWAP4 0000234a: POP 0000234b: POP 0000234c: POP 0000234d: POP 0000234e: PUSH1 0x40 00002350: DUP1 00002351: MLOAD 00002352: DUP1 00002353: DUP4 00002354: SUB 00002355: DUP2 00002356: PUSH1 0x00 00002358: DUP8 00002359: DUP1 0000235a: EXTCODESIZE 0000235b: ISZERO 0000235c: DUP1 0000235d: ISZERO 0000235e: PUSH2 0x2366 00002361: JUMPI 00002362: PUSH1 0x00 00002364: DUP1 00002365: REVERT 00002366: JUMPDEST 00002367: POP 00002368: GAS 00002369: CALL 0000236a: ISZERO 0000236b: DUP1 0000236c: ISZERO 0000236d: PUSH2 0x237a 00002370: JUMPI 00002371: RETURNDATASIZE 00002372: PUSH1 0x00 00002374: DUP1 00002375: RETURNDATACOPY 00002376: RETURNDATASIZE 00002377: PUSH1 0x00 00002379: REVERT 0000237a: JUMPDEST 0000237b: POP 0000237c: POP 0000237d: POP 0000237e: POP 0000237f: PUSH1 0x40 00002381: MLOAD 00002382: RETURNDATASIZE 00002383: PUSH1 0x40 00002385: DUP2 00002386: LT 00002387: ISZERO 00002388: PUSH2 0x2390 0000238b: JUMPI 0000238c: PUSH1 0x00 0000238e: DUP1 0000238f: REVERT 00002390: JUMPDEST 00002391: POP 00002392: DUP1 00002393: MLOAD 00002394: PUSH1 0x20 00002396: SWAP1 00002397: SWAP2 00002398: ADD 00002399: MLOAD 0000239a: PUSH2 0x02c0 0000239d: DUP11 0000239e: ADD 0000239f: MSTORE 000023a0: SWAP2 000023a1: POP 000023a2: DUP2 000023a3: ISZERO 000023a4: PUSH2 0x23b2 000023a7: JUMPI 000023a8: PUSH2 0x1bd2 000023ab: PUSH1 0x1f 000023ad: DUP4 000023ae: PUSH2 0x3751 000023b1: JUMP 000023b2: JUMPDEST 000023b3: PUSH2 0x23cc 000023b6: DUP7 000023b7: PUSH1 0x08 000023b9: ADD 000023ba: SLOAD 000023bb: DUP8 000023bc: PUSH1 0x07 000023be: ADD 000023bf: SLOAD 000023c0: DUP9 000023c1: PUSH1 0x01 000023c3: ADD 000023c4: SLOAD 000023c5: PUSH2 0x067d 000023c8: PUSH2 0x3006 000023cb: JUMP 000023cc: JUMPDEST 000023cd: PUSH1 0xc0 000023cf: DUP11 000023d0: ADD 000023d1: MSTORE 000023d2: SWAP1 000023d3: POP 000023d4: PUSH1 0x00 000023d6: DUP2 000023d7: PUSH1 0x19 000023d9: DUP2 000023da: GT 000023db: ISZERO 000023dc: PUSH2 0x23e1 000023df: JUMPI 000023e0: INVALID 000023e1: JUMPDEST 000023e2: EQ 000023e3: PUSH2 0x23f1 000023e6: JUMPI 000023e7: PUSH2 0x1bd2 000023ea: DUP2 000023eb: PUSH1 0x1e 000023ed: PUSH2 0x3196 000023f0: JUMP 000023f1: JUMPDEST 000023f2: PUSH2 0x2405 000023f5: DUP9 000023f6: PUSH2 0x01c0 000023f9: ADD 000023fa: MLOAD 000023fb: DUP10 000023fc: PUSH2 0x0360 000023ff: ADD 00002400: MLOAD 00002401: PUSH2 0x372b 00002404: JUMP 00002405: JUMPDEST 00002406: PUSH2 0x01e0 00002409: DUP11 0000240a: ADD 0000240b: MSTORE 0000240c: SWAP1 0000240d: POP 0000240e: PUSH1 0x00 00002410: DUP2 00002411: PUSH1 0x19 00002413: DUP2 00002414: GT 00002415: ISZERO 00002416: PUSH2 0x241b 00002419: JUMPI 0000241a: INVALID 0000241b: JUMPDEST 0000241c: EQ 0000241d: PUSH2 0x2422 00002420: JUMPI 00002421: INVALID 00002422: JUMPDEST 00002423: PUSH2 0x2436 00002426: DUP9 00002427: PUSH2 0x0200 0000242a: ADD 0000242b: MLOAD 0000242c: DUP10 0000242d: PUSH2 0x0360 00002430: ADD 00002431: MLOAD 00002432: PUSH2 0x347e 00002435: JUMP 00002436: JUMPDEST 00002437: PUSH2 0x0220 0000243a: DUP11 0000243b: ADD 0000243c: MSTORE 0000243d: SWAP1 0000243e: POP 0000243f: PUSH1 0x00 00002441: DUP2 00002442: PUSH1 0x19 00002444: DUP2 00002445: GT 00002446: ISZERO 00002447: PUSH2 0x244c 0000244a: JUMPI 0000244b: INVALID 0000244c: JUMPDEST 0000244d: EQ 0000244e: PUSH2 0x2453 00002451: JUMPI 00002452: INVALID 00002453: JUMPDEST 00002454: PUSH2 0x2467 00002457: DUP13 00002458: DUP10 00002459: PUSH1 0x40 0000245b: ADD 0000245c: MLOAD 0000245d: DUP11 0000245e: PUSH2 0x0340 00002461: ADD 00002462: MLOAD 00002463: PUSH2 0x3da8 00002466: JUMP 00002467: JUMPDEST 00002468: SWAP1 00002469: POP 0000246a: PUSH1 0x00 0000246c: DUP2 0000246d: PUSH1 0x19 0000246f: DUP2 00002470: GT 00002471: ISZERO 00002472: PUSH2 0x2477 00002475: JUMPI 00002476: INVALID 00002477: JUMPDEST 00002478: EQ 00002479: PUSH2 0x2487 0000247c: JUMPI 0000247d: PUSH2 0x1bd2 00002480: DUP2 00002481: PUSH1 0x28 00002483: PUSH2 0x3196 00002486: JUMP 00002487: JUMPDEST 00002488: PUSH2 0x248f 0000248b: PUSH2 0x3006 0000248e: JUMP 0000248f: JUMPDEST 00002490: PUSH1 0x01 00002492: DUP9 00002493: ADD 00002494: SSTORE 00002495: PUSH2 0x0140 00002498: DUP9 00002499: ADD 0000249a: MLOAD 0000249b: PUSH1 0x06 0000249d: DUP9 0000249e: ADD 0000249f: SSTORE 000024a0: PUSH2 0x02a0 000024a3: DUP9 000024a4: ADD 000024a5: MLOAD 000024a6: PUSH1 0x04 000024a8: DUP9 000024a9: ADD 000024aa: SSTORE 000024ab: PUSH1 0xa0 000024ad: DUP9 000024ae: ADD 000024af: MLOAD 000024b0: PUSH1 0x05 000024b2: DUP9 000024b3: ADD 000024b4: SSTORE 000024b5: PUSH2 0x02c0 000024b8: DUP9 000024b9: ADD 000024ba: MLOAD 000024bb: PUSH1 0x07 000024bd: DUP9 000024be: ADD 000024bf: SSTORE 000024c0: PUSH1 0x80 000024c2: DUP9 000024c3: ADD 000024c4: MLOAD 000024c5: PUSH1 0x08 000024c7: DUP9 000024c8: ADD 000024c9: SSTORE 000024ca: PUSH2 0x24d1 000024cd: PUSH2 0x3006 000024d0: JUMP 000024d1: JUMPDEST 000024d2: PUSH1 0x01 000024d4: DUP1 000024d5: DUP9 000024d6: ADD 000024d7: SWAP2 000024d8: SWAP1 000024d9: SWAP2 000024da: SSTORE 000024db: PUSH2 0x0240 000024de: DUP10 000024df: ADD 000024e0: MLOAD 000024e1: PUSH1 0x03 000024e3: DUP9 000024e4: ADD 000024e5: SSTORE 000024e6: PUSH1 0xe0 000024e8: DUP10 000024e9: ADD 000024ea: MLOAD 000024eb: PUSH1 0x05 000024ed: DUP9 000024ee: ADD 000024ef: DUP2 000024f0: SWAP1 000024f1: SSTORE 000024f2: PUSH1 0xc0 000024f4: DUP11 000024f5: ADD 000024f6: MLOAD 000024f7: PUSH1 0x08 000024f9: DUP10 000024fa: ADD 000024fb: SSTORE 000024fc: DUP7 000024fd: SLOAD 000024fe: PUSH2 0x0160 00002501: DUP12 00002502: ADD 00002503: MSTORE 00002504: PUSH2 0x0120 00002507: DUP11 00002508: ADD 00002509: MLOAD 0000250a: DUP8 0000250b: SSTORE 0000250c: PUSH1 0x80 0000250e: DUP11 0000250f: ADD 00002510: MLOAD 00002511: DUP8 00002512: DUP4 00002513: ADD 00002514: SSTORE 00002515: DUP6 00002516: SLOAD 00002517: PUSH2 0x0180 0000251a: DUP12 0000251b: ADD 0000251c: MSTORE 0000251d: PUSH2 0x01e0 00002520: DUP11 00002521: ADD 00002522: MLOAD 00002523: DUP7 00002524: SSTORE 00002525: DUP6 00002526: DUP3 00002527: ADD 00002528: DUP2 00002529: SWAP1 0000252a: SSTORE 0000252b: DUP5 0000252c: SLOAD 0000252d: PUSH2 0x01a0 00002530: DUP12 00002531: ADD 00002532: MSTORE 00002533: PUSH2 0x0220 00002536: DUP11 00002537: ADD 00002538: MLOAD 00002539: DUP6 0000253a: SSTORE 0000253b: SWAP1 0000253c: DUP5 0000253d: ADD 0000253e: SSTORE 0000253f: PUSH2 0x2547 00002542: DUP9 00002543: PUSH2 0x42cd 00002546: JUMP 00002547: JUMPDEST 00002548: PUSH1 0x00 0000254a: SWAP9 0000254b: POP 0000254c: JUMPDEST 0000254d: POP 0000254e: POP 0000254f: POP 00002550: POP 00002551: POP 00002552: POP 00002553: POP 00002554: POP 00002555: SWAP5 00002556: SWAP4 00002557: POP 00002558: POP 00002559: POP 0000255a: POP 0000255b: JUMP 0000255c: JUMPDEST 0000255d: PUSH1 0x00 0000255f: DUP1 00002560: SLOAD 00002561: DUP2 00002562: SWAP1 00002563: PUSH1 0x01 00002565: PUSH1 0xa0 00002567: PUSH1 0x02 00002569: EXP 0000256a: SUB 0000256b: AND 0000256c: CALLER 0000256d: EQ 0000256e: PUSH2 0x2584 00002571: JUMPI 00002572: PUSH2 0x257d 00002575: PUSH1 0x02 00002577: PUSH1 0x00 00002579: PUSH2 0x3196 0000257c: JUMP 0000257d: JUMPDEST 0000257e: SWAP2 0000257f: POP 00002580: PUSH2 0x25fe 00002583: JUMP 00002584: JUMPDEST 00002585: POP 00002586: PUSH1 0x01 00002588: DUP1 00002589: SLOAD 0000258a: PUSH1 0x00 0000258c: DUP1 0000258d: SLOAD 0000258e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025a3: NOT 000025a4: DUP1 000025a5: DUP5 000025a6: AND 000025a7: PUSH1 0x01 000025a9: PUSH1 0xa0 000025ab: PUSH1 0x02 000025ad: EXP 000025ae: SUB 000025af: DUP4 000025b0: DUP2 000025b1: AND 000025b2: SWAP2 000025b3: SWAP1 000025b4: SWAP2 000025b5: OR 000025b6: SWAP1 000025b7: SWAP6 000025b8: SSTORE 000025b9: AND 000025ba: SWAP1 000025bb: SSTORE 000025bc: PUSH1 0x40 000025be: DUP1 000025bf: MLOAD 000025c0: SWAP3 000025c1: SWAP1 000025c2: SWAP2 000025c3: AND 000025c4: DUP1 000025c5: DUP4 000025c6: MSTORE 000025c7: CALLER 000025c8: PUSH1 0x20 000025ca: DUP5 000025cb: ADD 000025cc: MSTORE 000025cd: DUP2 000025ce: MLOAD 000025cf: SWAP1 000025d0: SWAP3 000025d1: PUSH32 0xf9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc 000025f2: SWAP3 000025f3: SWAP1 000025f4: DUP3 000025f5: SWAP1 000025f6: SUB 000025f7: ADD 000025f8: SWAP1 000025f9: LOG1 000025fa: PUSH1 0x00 000025fc: SWAP2 000025fd: POP 000025fe: JUMPDEST 000025ff: POP 00002600: SWAP1 00002601: JUMP 00002602: JUMPDEST 00002603: PUSH1 0x00 00002605: DUP1 00002606: PUSH1 0x00 00002608: PUSH2 0x260f 0000260b: PUSH2 0x499b 0000260e: JUMP 0000260f: JUMPDEST 00002610: PUSH1 0x0a 00002612: SLOAD 00002613: PUSH1 0x00 00002615: SWAP1 00002616: DUP2 00002617: SWAP1 00002618: PUSH1 0xff 0000261a: AND 0000261b: ISZERO 0000261c: PUSH2 0x262b 0000261f: JUMPI 00002620: PUSH2 0x0a91 00002623: PUSH1 0x19 00002625: PUSH1 0x3e 00002627: PUSH2 0x3196 0000262a: JUMP 0000262b: JUMPDEST 0000262c: PUSH1 0x01 0000262e: PUSH1 0xa0 00002630: PUSH1 0x02 00002632: EXP 00002633: SUB 00002634: DUP9 00002635: AND 00002636: PUSH1 0x00 00002638: DUP2 00002639: DUP2 0000263a: MSTORE 0000263b: PUSH1 0x05 0000263d: PUSH1 0x20 0000263f: SWAP1 00002640: DUP2 00002641: MSTORE 00002642: PUSH1 0x40 00002644: DUP1 00002645: DUP4 00002646: KECCAK256 00002647: CALLER 00002648: DUP5 00002649: MSTORE 0000264a: PUSH1 0x03 0000264c: DUP4 0000264d: MSTORE 0000264e: DUP2 0000264f: DUP5 00002650: KECCAK256 00002651: SWAP5 00002652: DUP5 00002653: MSTORE 00002654: SWAP4 00002655: SWAP1 00002656: SWAP2 00002657: MSTORE 00002658: SWAP1 00002659: KECCAK256 0000265a: DUP2 0000265b: SLOAD 0000265c: SWAP2 0000265d: SWAP7 0000265e: POP 0000265f: SWAP5 00002660: POP 00002661: PUSH1 0xff 00002663: AND 00002664: ISZERO 00002665: ISZERO 00002666: PUSH2 0x2675 00002669: JUMPI 0000266a: PUSH2 0x0a91 0000266d: PUSH1 0x0a 0000266f: PUSH1 0x3f 00002671: PUSH2 0x3196 00002674: JUMP 00002675: JUMPDEST 00002676: PUSH2 0x2680 00002679: DUP9 0000267a: CALLER 0000267b: DUP10 0000267c: PUSH2 0x3c58 0000267f: JUMP 00002680: JUMPDEST 00002681: SWAP2 00002682: POP 00002683: PUSH1 0x00 00002685: DUP3 00002686: PUSH1 0x19 00002688: DUP2 00002689: GT 0000268a: ISZERO 0000268b: PUSH2 0x2690 0000268e: JUMPI 0000268f: INVALID 00002690: JUMPDEST 00002691: EQ 00002692: PUSH2 0x26a0 00002695: JUMPI 00002696: PUSH2 0x0a91 00002699: DUP3 0000269a: PUSH1 0x48 0000269c: PUSH2 0x3196 0000269f: JUMP 000026a0: JUMPDEST 000026a1: PUSH2 0x26ba 000026a4: DUP6 000026a5: PUSH1 0x05 000026a7: ADD 000026a8: SLOAD 000026a9: DUP7 000026aa: PUSH1 0x04 000026ac: ADD 000026ad: SLOAD 000026ae: DUP8 000026af: PUSH1 0x01 000026b1: ADD 000026b2: SLOAD 000026b3: PUSH2 0x067d 000026b6: PUSH2 0x3006 000026b9: JUMP 000026ba: JUMPDEST 000026bb: PUSH1 0x20 000026bd: DUP6 000026be: ADD 000026bf: MSTORE 000026c0: SWAP2 000026c1: POP 000026c2: PUSH1 0x00 000026c4: DUP3 000026c5: PUSH1 0x19 000026c7: DUP2 000026c8: GT 000026c9: ISZERO 000026ca: PUSH2 0x26cf 000026cd: JUMPI 000026ce: INVALID 000026cf: JUMPDEST 000026d0: EQ 000026d1: PUSH2 0x26df 000026d4: JUMPI 000026d5: PUSH2 0x0a91 000026d8: DUP3 000026d9: PUSH1 0x42 000026db: PUSH2 0x3196 000026de: JUMP 000026df: JUMPDEST 000026e0: PUSH2 0x26f6 000026e3: DUP5 000026e4: PUSH1 0x00 000026e6: ADD 000026e7: SLOAD 000026e8: DUP6 000026e9: PUSH1 0x01 000026eb: ADD 000026ec: SLOAD 000026ed: DUP6 000026ee: PUSH1 0x20 000026f0: ADD 000026f1: MLOAD 000026f2: PUSH2 0x3135 000026f5: JUMP 000026f6: JUMPDEST 000026f7: PUSH1 0x40 000026f9: DUP6 000026fa: ADD 000026fb: MSTORE 000026fc: SWAP2 000026fd: POP 000026fe: PUSH1 0x00 00002700: DUP3 00002701: PUSH1 0x19 00002703: DUP2 00002704: GT 00002705: ISZERO 00002706: PUSH2 0x270b 00002709: JUMPI 0000270a: INVALID 0000270b: JUMPDEST 0000270c: EQ 0000270d: PUSH2 0x271b 00002710: JUMPI 00002711: PUSH2 0x0a91 00002714: DUP3 00002715: PUSH1 0x3d 00002717: PUSH2 0x3196 0000271a: JUMP 0000271b: JUMPDEST 0000271c: PUSH2 0x2729 0000271f: DUP4 00002720: PUSH1 0x40 00002722: ADD 00002723: MLOAD 00002724: DUP9 00002725: PUSH2 0x347e 00002728: JUMP 00002729: JUMPDEST 0000272a: PUSH1 0x60 0000272c: DUP6 0000272d: ADD 0000272e: MSTORE 0000272f: SWAP2 00002730: POP 00002731: PUSH1 0x00 00002733: DUP3 00002734: PUSH1 0x19 00002736: DUP2 00002737: GT 00002738: ISZERO 00002739: PUSH2 0x273e 0000273c: JUMPI 0000273d: INVALID 0000273e: JUMPDEST 0000273f: EQ 00002740: PUSH2 0x274e 00002743: JUMPI 00002744: PUSH2 0x0a91 00002747: DUP3 00002748: PUSH1 0x44 0000274a: PUSH2 0x3196 0000274d: JUMP 0000274e: JUMPDEST 0000274f: PUSH2 0x2765 00002752: DUP6 00002753: PUSH1 0x03 00002755: ADD 00002756: SLOAD 00002757: DUP5 00002758: PUSH1 0x60 0000275a: ADD 0000275b: MLOAD 0000275c: DUP7 0000275d: PUSH1 0x00 0000275f: ADD 00002760: SLOAD 00002761: PUSH2 0x3294 00002764: JUMP 00002765: JUMPDEST 00002766: PUSH1 0x80 00002768: DUP6 00002769: ADD 0000276a: MSTORE 0000276b: SWAP2 0000276c: POP 0000276d: PUSH1 0x00 0000276f: DUP3 00002770: PUSH1 0x19 00002772: DUP2 00002773: GT 00002774: ISZERO 00002775: PUSH2 0x277a 00002778: JUMPI 00002779: INVALID 0000277a: JUMPDEST 0000277b: EQ 0000277c: PUSH2 0x278a 0000277f: JUMPI 00002780: PUSH2 0x0a91 00002783: DUP3 00002784: PUSH1 0x46 00002786: PUSH2 0x3196 00002789: JUMP 0000278a: JUMPDEST 0000278b: PUSH2 0x2793 0000278e: DUP9 0000278f: PUSH2 0x31fc 00002792: JUMP 00002793: JUMPDEST 00002794: PUSH1 0xa0 00002796: DUP5 00002797: ADD 00002798: DUP2 00002799: SWAP1 0000279a: MSTORE 0000279b: PUSH2 0x27a4 0000279e: SWAP1 0000279f: DUP9 000027a0: PUSH2 0x347e 000027a3: JUMP 000027a4: JUMPDEST 000027a5: PUSH1 0xc0 000027a7: DUP6 000027a8: ADD 000027a9: MSTORE 000027aa: SWAP2 000027ab: POP 000027ac: PUSH1 0x00 000027ae: DUP3 000027af: PUSH1 0x19 000027b1: DUP2 000027b2: GT 000027b3: ISZERO 000027b4: PUSH2 0x27b9 000027b7: JUMPI 000027b8: INVALID 000027b9: JUMPDEST 000027ba: EQ 000027bb: PUSH2 0x27c9 000027be: JUMPI 000027bf: PUSH2 0x0a91 000027c2: DUP3 000027c3: PUSH1 0x45 000027c5: PUSH2 0x3196 000027c8: JUMP 000027c9: JUMPDEST 000027ca: PUSH1 0x02 000027cc: DUP6 000027cd: ADD 000027ce: SLOAD 000027cf: PUSH1 0xc0 000027d1: DUP5 000027d2: ADD 000027d3: MLOAD 000027d4: PUSH1 0x06 000027d6: DUP8 000027d7: ADD 000027d8: SLOAD 000027d9: PUSH1 0x40 000027db: DUP1 000027dc: MLOAD 000027dd: PUSH1 0xe1 000027df: PUSH1 0x02 000027e1: EXP 000027e2: PUSH4 0x28be7b9f 000027e7: MUL 000027e8: DUP2 000027e9: MSTORE 000027ea: PUSH1 0x01 000027ec: PUSH1 0xa0 000027ee: PUSH1 0x02 000027f0: EXP 000027f1: SUB 000027f2: DUP14 000027f3: DUP2 000027f4: AND 000027f5: PUSH1 0x04 000027f7: DUP4 000027f8: ADD 000027f9: MSTORE 000027fa: PUSH1 0x24 000027fc: DUP3 000027fd: ADD 000027fe: SWAP5 000027ff: SWAP1 00002800: SWAP5 00002801: MSTORE 00002802: PUSH1 0x44 00002804: DUP2 00002805: ADD 00002806: SWAP3 00002807: SWAP1 00002808: SWAP3 00002809: MSTORE 0000280a: DUP1 0000280b: MLOAD 0000280c: SWAP3 0000280d: SWAP1 0000280e: SWAP4 0000280f: AND 00002810: SWAP3 00002811: PUSH4 0x517cf73e 00002816: SWAP3 00002817: PUSH1 0x64 00002819: DUP1 0000281a: DUP5 0000281b: ADD 0000281c: SWAP4 0000281d: DUP3 0000281e: SWAP1 0000281f: SUB 00002820: ADD 00002821: DUP2 00002822: PUSH1 0x00 00002824: DUP8 00002825: DUP1 00002826: EXTCODESIZE 00002827: ISZERO 00002828: DUP1 00002829: ISZERO 0000282a: PUSH2 0x2832 0000282d: JUMPI 0000282e: PUSH1 0x00 00002830: DUP1 00002831: REVERT 00002832: JUMPDEST 00002833: POP 00002834: GAS 00002835: CALL 00002836: ISZERO 00002837: DUP1 00002838: ISZERO 00002839: PUSH2 0x2846 0000283c: JUMPI 0000283d: RETURNDATASIZE 0000283e: PUSH1 0x00 00002840: DUP1 00002841: RETURNDATACOPY 00002842: RETURNDATASIZE 00002843: PUSH1 0x00 00002845: REVERT 00002846: JUMPDEST 00002847: POP 00002848: POP 00002849: POP 0000284a: POP 0000284b: PUSH1 0x40 0000284d: MLOAD 0000284e: RETURNDATASIZE 0000284f: PUSH1 0x40 00002851: DUP2 00002852: LT 00002853: ISZERO 00002854: PUSH2 0x285c 00002857: JUMPI 00002858: PUSH1 0x00 0000285a: DUP1 0000285b: REVERT 0000285c: JUMPDEST 0000285d: POP 0000285e: DUP1 0000285f: MLOAD 00002860: PUSH1 0x20 00002862: SWAP1 00002863: SWAP2 00002864: ADD 00002865: MLOAD 00002866: PUSH1 0xe0 00002868: DUP6 00002869: ADD 0000286a: MSTORE 0000286b: SWAP1 0000286c: POP 0000286d: DUP1 0000286e: ISZERO 0000286f: PUSH2 0x287d 00002872: JUMPI 00002873: PUSH2 0x0a91 00002876: PUSH1 0x43 00002878: DUP3 00002879: PUSH2 0x3751 0000287c: JUMP 0000287d: JUMPDEST 0000287e: PUSH2 0x2897 00002881: DUP6 00002882: PUSH1 0x08 00002884: ADD 00002885: SLOAD 00002886: DUP7 00002887: PUSH1 0x07 00002889: ADD 0000288a: SLOAD 0000288b: DUP8 0000288c: PUSH1 0x01 0000288e: ADD 0000288f: SLOAD 00002890: PUSH2 0x067d 00002893: PUSH2 0x3006 00002896: JUMP 00002897: JUMPDEST 00002898: PUSH2 0x0100 0000289b: DUP6 0000289c: ADD 0000289d: MSTORE 0000289e: SWAP2 0000289f: POP 000028a0: PUSH1 0x00 000028a2: DUP3 000028a3: PUSH1 0x19 000028a5: DUP2 000028a6: GT 000028a7: ISZERO 000028a8: PUSH2 0x28ad 000028ab: JUMPI 000028ac: INVALID 000028ad: JUMPDEST 000028ae: EQ 000028af: PUSH2 0x28bd 000028b2: JUMPI 000028b3: PUSH2 0x0a91 000028b6: DUP3 000028b7: PUSH1 0x40 000028b9: PUSH2 0x3196 000028bc: JUMP 000028bd: JUMPDEST 000028be: PUSH1 0x02 000028c0: DUP6 000028c1: ADD 000028c2: SLOAD 000028c3: PUSH1 0xc0 000028c5: DUP5 000028c6: ADD 000028c7: MLOAD 000028c8: PUSH1 0x06 000028ca: DUP8 000028cb: ADD 000028cc: SLOAD 000028cd: PUSH1 0x40 000028cf: DUP1 000028d0: MLOAD 000028d1: PUSH1 0xe2 000028d3: PUSH1 0x02 000028d5: EXP 000028d6: PUSH4 0x3b4ad68f 000028db: MUL 000028dc: DUP2 000028dd: MSTORE 000028de: PUSH1 0x01 000028e0: PUSH1 0xa0 000028e2: PUSH1 0x02 000028e4: EXP 000028e5: SUB 000028e6: DUP14 000028e7: DUP2 000028e8: AND 000028e9: PUSH1 0x04 000028eb: DUP4 000028ec: ADD 000028ed: MSTORE 000028ee: PUSH1 0x24 000028f0: DUP3 000028f1: ADD 000028f2: SWAP5 000028f3: SWAP1 000028f4: SWAP5 000028f5: MSTORE 000028f6: PUSH1 0x44 000028f8: DUP2 000028f9: ADD 000028fa: SWAP3 000028fb: SWAP1 000028fc: SWAP3 000028fd: MSTORE 000028fe: DUP1 000028ff: MLOAD 00002900: SWAP3 00002901: SWAP1 00002902: SWAP4 00002903: AND 00002904: SWAP3 00002905: PUSH4 0xed2b5a3c 0000290a: SWAP3 0000290b: PUSH1 0x64 0000290d: DUP1 0000290e: DUP5 0000290f: ADD 00002910: SWAP4 00002911: DUP3 00002912: SWAP1 00002913: SUB 00002914: ADD 00002915: DUP2 00002916: PUSH1 0x00 00002918: DUP8 00002919: DUP1 0000291a: EXTCODESIZE 0000291b: ISZERO 0000291c: DUP1 0000291d: ISZERO 0000291e: PUSH2 0x2926 00002921: JUMPI 00002922: PUSH1 0x00 00002924: DUP1 00002925: REVERT 00002926: JUMPDEST 00002927: POP 00002928: GAS 00002929: CALL 0000292a: ISZERO 0000292b: DUP1 0000292c: ISZERO 0000292d: PUSH2 0x293a 00002930: JUMPI 00002931: RETURNDATASIZE 00002932: PUSH1 0x00 00002934: DUP1 00002935: RETURNDATACOPY 00002936: RETURNDATASIZE 00002937: PUSH1 0x00 00002939: REVERT 0000293a: JUMPDEST 0000293b: POP 0000293c: POP 0000293d: POP 0000293e: POP 0000293f: PUSH1 0x40 00002941: MLOAD 00002942: RETURNDATASIZE 00002943: PUSH1 0x40 00002945: DUP2 00002946: LT 00002947: ISZERO 00002948: PUSH2 0x2950 0000294b: JUMPI 0000294c: PUSH1 0x00 0000294e: DUP1 0000294f: REVERT 00002950: JUMPDEST 00002951: POP 00002952: DUP1 00002953: MLOAD 00002954: PUSH1 0x20 00002956: SWAP1 00002957: SWAP2 00002958: ADD 00002959: MLOAD 0000295a: PUSH2 0x0120 0000295d: DUP6 0000295e: ADD 0000295f: MSTORE 00002960: SWAP1 00002961: POP 00002962: DUP1 00002963: ISZERO 00002964: PUSH2 0x2972 00002967: JUMPI 00002968: PUSH2 0x0a91 0000296b: PUSH1 0x41 0000296d: DUP3 0000296e: PUSH2 0x3751 00002971: JUMP 00002972: JUMPDEST 00002973: PUSH2 0x297d 00002976: DUP9 00002977: CALLER 00002978: DUP10 00002979: PUSH2 0x3da8 0000297c: JUMP 0000297d: JUMPDEST 0000297e: SWAP2 0000297f: POP 00002980: PUSH1 0x00 00002982: DUP3 00002983: PUSH1 0x19 00002985: DUP2 00002986: GT 00002987: ISZERO 00002988: PUSH2 0x298d 0000298b: JUMPI 0000298c: INVALID 0000298d: JUMPDEST 0000298e: EQ 0000298f: PUSH2 0x299d 00002992: JUMPI 00002993: PUSH2 0x0a91 00002996: DUP3 00002997: PUSH1 0x47 00002999: PUSH2 0x3196 0000299c: JUMP 0000299d: JUMPDEST 0000299e: PUSH2 0x29a5 000029a1: PUSH2 0x3006 000029a4: JUMP 000029a5: JUMPDEST 000029a6: PUSH1 0x01 000029a8: DUP1 000029a9: DUP8 000029aa: ADD 000029ab: SWAP2 000029ac: SWAP1 000029ad: SWAP2 000029ae: SSTORE 000029af: PUSH1 0x80 000029b1: DUP1 000029b2: DUP6 000029b3: ADD 000029b4: MLOAD 000029b5: PUSH1 0x03 000029b7: DUP9 000029b8: ADD 000029b9: SSTORE 000029ba: PUSH1 0xe0 000029bc: DUP6 000029bd: ADD 000029be: MLOAD 000029bf: PUSH1 0x04 000029c1: DUP9 000029c2: ADD 000029c3: SSTORE 000029c4: PUSH1 0x20 000029c6: DUP1 000029c7: DUP7 000029c8: ADD 000029c9: MLOAD 000029ca: PUSH1 0x05 000029cc: DUP10 000029cd: ADD 000029ce: DUP2 000029cf: SWAP1 000029d0: SSTORE 000029d1: PUSH2 0x0120 000029d4: DUP8 000029d5: ADD 000029d6: MLOAD 000029d7: PUSH1 0x07 000029d9: DUP11 000029da: ADD 000029db: SSTORE 000029dc: PUSH2 0x0100 000029df: DUP8 000029e0: ADD 000029e1: MLOAD 000029e2: PUSH1 0x08 000029e4: DUP11 000029e5: ADD 000029e6: SSTORE 000029e7: DUP8 000029e8: SLOAD 000029e9: DUP1 000029ea: DUP9 000029eb: MSTORE 000029ec: PUSH1 0x60 000029ee: DUP1 000029ef: DUP10 000029f0: ADD 000029f1: MLOAD 000029f2: DUP1 000029f3: DUP12 000029f4: SSTORE 000029f5: SWAP6 000029f6: DUP11 000029f7: ADD 000029f8: SWAP3 000029f9: SWAP1 000029fa: SWAP3 000029fb: SSTORE 000029fc: PUSH1 0x40 000029fe: DUP1 000029ff: MLOAD 00002a00: CALLER 00002a01: DUP2 00002a02: MSTORE 00002a03: PUSH1 0x01 00002a05: PUSH1 0xa0 00002a07: PUSH1 0x02 00002a09: EXP 00002a0a: SUB 00002a0b: DUP16 00002a0c: AND 00002a0d: SWAP5 00002a0e: DUP2 00002a0f: ADD 00002a10: SWAP5 00002a11: SWAP1 00002a12: SWAP5 00002a13: MSTORE 00002a14: DUP4 00002a15: DUP2 00002a16: ADD 00002a17: DUP14 00002a18: SWAP1 00002a19: MSTORE 00002a1a: SWAP2 00002a1b: DUP4 00002a1c: ADD 00002a1d: MSTORE 00002a1e: SWAP2 00002a1f: DUP2 00002a20: ADD 00002a21: SWAP3 00002a22: SWAP1 00002a23: SWAP3 00002a24: MSTORE 00002a25: MLOAD 00002a26: PUSH32 0x4ea5606ff36959d6c1a24f693661d800a98dd80c0fb8469a665d2ec7e8313c21 00002a47: SWAP2 00002a48: DUP2 00002a49: SWAP1 00002a4a: SUB 00002a4b: PUSH1 0xa0 00002a4d: ADD 00002a4e: SWAP1 00002a4f: LOG1 00002a50: PUSH1 0x00 00002a52: PUSH2 0x0f7a 00002a55: JUMP 00002a56: JUMPDEST 00002a57: PUSH1 0x00 00002a59: DUP1 00002a5a: PUSH1 0x00 00002a5c: PUSH2 0x2a63 00002a5f: PUSH2 0x49ef 00002a62: JUMP 00002a63: JUMPDEST 00002a64: PUSH1 0x0a 00002a66: SLOAD 00002a67: PUSH1 0x00 00002a69: SWAP1 00002a6a: DUP2 00002a6b: SWAP1 00002a6c: PUSH1 0xff 00002a6e: AND 00002a6f: ISZERO 00002a70: PUSH2 0x2a7f 00002a73: JUMPI 00002a74: PUSH2 0x0a91 00002a77: PUSH1 0x19 00002a79: PUSH1 0x53 00002a7b: PUSH2 0x3196 00002a7e: JUMP 00002a7f: JUMPDEST 00002a80: PUSH1 0x01 00002a82: PUSH1 0xa0 00002a84: PUSH1 0x02 00002a86: EXP 00002a87: SUB 00002a88: DUP9 00002a89: AND 00002a8a: PUSH1 0x00 00002a8c: DUP2 00002a8d: DUP2 00002a8e: MSTORE 00002a8f: PUSH1 0x05 00002a91: PUSH1 0x20 00002a93: SWAP1 00002a94: DUP2 00002a95: MSTORE 00002a96: PUSH1 0x40 00002a98: DUP1 00002a99: DUP4 00002a9a: KECCAK256 00002a9b: CALLER 00002a9c: DUP1 00002a9d: DUP6 00002a9e: MSTORE 00002a9f: PUSH1 0x03 00002aa1: DUP5 00002aa2: MSTORE 00002aa3: DUP3 00002aa4: DUP6 00002aa5: KECCAK256 00002aa6: SWAP6 00002aa7: DUP6 00002aa8: MSTORE 00002aa9: SWAP5 00002aaa: SWAP1 00002aab: SWAP3 00002aac: MSTORE 00002aad: SWAP1 00002aae: SWAP2 00002aaf: KECCAK256 00002ab0: SWAP1 00002ab1: SWAP7 00002ab2: POP 00002ab3: SWAP5 00002ab4: POP 00002ab5: PUSH2 0x2abd 00002ab8: SWAP1 00002ab9: PUSH2 0x34a8 00002abc: JUMP 00002abd: JUMPDEST 00002abe: PUSH2 0x0180 00002ac1: DUP7 00002ac2: ADD 00002ac3: MSTORE 00002ac4: PUSH2 0x0160 00002ac7: DUP6 00002ac8: ADD 00002ac9: MSTORE 00002aca: SWAP2 00002acb: POP 00002acc: PUSH1 0x00 00002ace: DUP3 00002acf: PUSH1 0x19 00002ad1: DUP2 00002ad2: GT 00002ad3: ISZERO 00002ad4: PUSH2 0x2ad9 00002ad7: JUMPI 00002ad8: INVALID 00002ad9: JUMPDEST 00002ada: EQ 00002adb: PUSH2 0x2ae9 00002ade: JUMPI 00002adf: PUSH2 0x0a91 00002ae2: DUP3 00002ae3: PUSH1 0x4d 00002ae5: PUSH2 0x3196 00002ae8: JUMP 00002ae9: JUMPDEST 00002aea: PUSH2 0x2b03 00002aed: DUP6 00002aee: PUSH1 0x05 00002af0: ADD 00002af1: SLOAD 00002af2: DUP7 00002af3: PUSH1 0x04 00002af5: ADD 00002af6: SLOAD 00002af7: DUP8 00002af8: PUSH1 0x01 00002afa: ADD 00002afb: SLOAD 00002afc: PUSH2 0x067d 00002aff: PUSH2 0x3006 00002b02: JUMP 00002b03: JUMPDEST 00002b04: PUSH1 0x40 00002b06: DUP6 00002b07: ADD 00002b08: MSTORE 00002b09: SWAP2 00002b0a: POP 00002b0b: PUSH1 0x00 00002b0d: DUP3 00002b0e: PUSH1 0x19 00002b10: DUP2 00002b11: GT 00002b12: ISZERO 00002b13: PUSH2 0x2b18 00002b16: JUMPI 00002b17: INVALID 00002b18: JUMPDEST 00002b19: EQ 00002b1a: PUSH2 0x2b28 00002b1d: JUMPI 00002b1e: PUSH2 0x0a91 00002b21: DUP3 00002b22: PUSH1 0x56 00002b24: PUSH2 0x3196 00002b27: JUMP 00002b28: JUMPDEST 00002b29: PUSH2 0x2b3f 00002b2c: DUP5 00002b2d: PUSH1 0x00 00002b2f: ADD 00002b30: SLOAD 00002b31: DUP6 00002b32: PUSH1 0x01 00002b34: ADD 00002b35: SLOAD 00002b36: DUP6 00002b37: PUSH1 0x40 00002b39: ADD 00002b3a: MLOAD 00002b3b: PUSH2 0x3135 00002b3e: JUMP 00002b3f: JUMPDEST 00002b40: PUSH1 0x60 00002b42: DUP6 00002b43: ADD 00002b44: MSTORE 00002b45: SWAP2 00002b46: POP 00002b47: PUSH1 0x00 00002b49: DUP3 00002b4a: PUSH1 0x19 00002b4c: DUP2 00002b4d: GT 00002b4e: ISZERO 00002b4f: PUSH2 0x2b54 00002b52: JUMPI 00002b53: INVALID 00002b54: JUMPDEST 00002b55: EQ 00002b56: PUSH2 0x2b64 00002b59: JUMPI 00002b5a: PUSH2 0x0a91 00002b5d: DUP3 00002b5e: PUSH1 0x4f 00002b60: PUSH2 0x3196 00002b63: JUMP 00002b64: JUMPDEST 00002b65: PUSH1 0x00 00002b67: NOT 00002b68: DUP8 00002b69: EQ 00002b6a: ISZERO 00002b6b: PUSH2 0x2bbd 00002b6e: JUMPI 00002b6f: PUSH2 0x2b7d 00002b72: DUP9 00002b73: DUP5 00002b74: PUSH2 0x0160 00002b77: ADD 00002b78: MLOAD 00002b79: PUSH2 0x43df 00002b7c: JUMP 00002b7d: JUMPDEST 00002b7e: PUSH2 0x01c0 00002b81: DUP6 00002b82: ADD 00002b83: MSTORE 00002b84: SWAP2 00002b85: POP 00002b86: PUSH1 0x00 00002b88: DUP3 00002b89: PUSH1 0x19 00002b8b: DUP2 00002b8c: GT 00002b8d: ISZERO 00002b8e: PUSH2 0x2b93 00002b91: JUMPI 00002b92: INVALID 00002b93: JUMPDEST 00002b94: EQ 00002b95: PUSH2 0x2ba3 00002b98: JUMPI 00002b99: PUSH2 0x0a91 00002b9c: DUP3 00002b9d: PUSH1 0x52 00002b9f: PUSH2 0x3196 00002ba2: JUMP 00002ba3: JUMPDEST 00002ba4: PUSH2 0x2bb6 00002ba7: DUP4 00002ba8: PUSH2 0x01c0 00002bab: ADD 00002bac: MLOAD 00002bad: DUP5 00002bae: PUSH1 0x60 00002bb0: ADD 00002bb1: MLOAD 00002bb2: PUSH2 0x3c40 00002bb5: JUMP 00002bb6: JUMPDEST 00002bb7: DUP4 00002bb8: MSTORE 00002bb9: PUSH2 0x2bc1 00002bbc: JUMP 00002bbd: JUMPDEST 00002bbe: DUP7 00002bbf: DUP4 00002bc0: MSTORE 00002bc1: JUMPDEST 00002bc2: PUSH2 0x2bca 00002bc5: DUP9 00002bc6: PUSH2 0x31fc 00002bc9: JUMP 00002bca: JUMPDEST 00002bcb: PUSH1 0xc0 00002bcd: DUP5 00002bce: ADD 00002bcf: DUP2 00002bd0: SWAP1 00002bd1: MSTORE 00002bd2: DUP4 00002bd3: MLOAD 00002bd4: PUSH2 0x2bdd 00002bd7: SWAP2 00002bd8: SWAP1 00002bd9: PUSH2 0x372b 00002bdc: JUMP 00002bdd: JUMPDEST 00002bde: PUSH1 0xe0 00002be0: DUP6 00002be1: ADD 00002be2: MSTORE 00002be3: SWAP2 00002be4: POP 00002be5: PUSH1 0x00 00002be7: DUP3 00002be8: PUSH1 0x19 00002bea: DUP2 00002beb: GT 00002bec: ISZERO 00002bed: PUSH2 0x2bf2 00002bf0: JUMPI 00002bf1: INVALID 00002bf2: JUMPDEST 00002bf3: EQ 00002bf4: PUSH2 0x2c03 00002bf7: JUMPI 00002bf8: PUSH2 0x0a91 00002bfb: PUSH1 0x0d 00002bfd: PUSH1 0x5b 00002bff: PUSH2 0x3196 00002c02: JUMP 00002c03: JUMPDEST 00002c04: PUSH2 0x2c15 00002c07: DUP4 00002c08: PUSH1 0x60 00002c0a: ADD 00002c0b: MLOAD 00002c0c: DUP5 00002c0d: PUSH1 0x00 00002c0f: ADD 00002c10: MLOAD 00002c11: PUSH2 0x372b 00002c14: JUMP 00002c15: JUMPDEST 00002c16: PUSH1 0x80 00002c18: DUP6 00002c19: ADD 00002c1a: MSTORE 00002c1b: SWAP2 00002c1c: POP 00002c1d: PUSH1 0x00 00002c1f: DUP3 00002c20: PUSH1 0x19 00002c22: DUP2 00002c23: GT 00002c24: ISZERO 00002c25: PUSH2 0x2c2a 00002c28: JUMPI 00002c29: INVALID 00002c2a: JUMPDEST 00002c2b: EQ 00002c2c: PUSH2 0x2c3b 00002c2f: JUMPI 00002c30: PUSH2 0x0a91 00002c33: PUSH1 0x10 00002c35: PUSH1 0x58 00002c37: PUSH2 0x3196 00002c3a: JUMP 00002c3b: JUMPDEST 00002c3c: PUSH2 0x2c49 00002c3f: DUP4 00002c40: PUSH2 0x0180 00002c43: ADD 00002c44: MLOAD 00002c45: PUSH2 0x3637 00002c48: JUMP 00002c49: JUMPDEST 00002c4a: ISZERO 00002c4b: ISZERO 00002c4c: PUSH2 0x2c5b 00002c4f: JUMPI 00002c50: PUSH2 0x0a91 00002c53: PUSH1 0x0f 00002c55: PUSH1 0x4e 00002c57: PUSH2 0x3196 00002c5a: JUMP 00002c5b: JUMPDEST 00002c5c: PUSH2 0x2c69 00002c5f: DUP9 00002c60: DUP5 00002c61: PUSH1 0x00 00002c63: ADD 00002c64: MLOAD 00002c65: PUSH2 0x445e 00002c68: JUMP 00002c69: JUMPDEST 00002c6a: PUSH2 0x01a0 00002c6d: DUP6 00002c6e: ADD 00002c6f: MSTORE 00002c70: SWAP2 00002c71: POP 00002c72: PUSH1 0x00 00002c74: DUP3 00002c75: PUSH1 0x19 00002c77: DUP2 00002c78: GT 00002c79: ISZERO 00002c7a: PUSH2 0x2c7f 00002c7d: JUMPI 00002c7e: INVALID 00002c7f: JUMPDEST 00002c80: EQ 00002c81: PUSH2 0x2c8f 00002c84: JUMPI 00002c85: PUSH2 0x0a91 00002c88: DUP3 00002c89: PUSH1 0x51 00002c8b: PUSH2 0x3196 00002c8e: JUMP 00002c8f: JUMPDEST 00002c90: PUSH2 0x2ca3 00002c93: DUP4 00002c94: PUSH2 0x0160 00002c97: ADD 00002c98: MLOAD 00002c99: DUP5 00002c9a: PUSH2 0x01a0 00002c9d: ADD 00002c9e: MLOAD 00002c9f: PUSH2 0x3724 00002ca2: JUMP 00002ca3: JUMPDEST 00002ca4: ISZERO 00002ca5: PUSH2 0x2cb4 00002ca8: JUMPI 00002ca9: PUSH2 0x0a91 00002cac: PUSH1 0x0f 00002cae: PUSH1 0x50 00002cb0: PUSH2 0x3196 00002cb3: JUMP 00002cb4: JUMPDEST 00002cb5: PUSH2 0x2ccb 00002cb8: DUP6 00002cb9: PUSH1 0x03 00002cbb: ADD 00002cbc: SLOAD 00002cbd: DUP5 00002cbe: PUSH1 0x80 00002cc0: ADD 00002cc1: MLOAD 00002cc2: DUP7 00002cc3: PUSH1 0x00 00002cc5: ADD 00002cc6: SLOAD 00002cc7: PUSH2 0x3294 00002cca: JUMP 00002ccb: JUMPDEST 00002ccc: PUSH1 0xa0 00002cce: DUP6 00002ccf: ADD 00002cd0: MSTORE 00002cd1: SWAP2 00002cd2: POP 00002cd3: PUSH1 0x00 00002cd5: DUP3 00002cd6: PUSH1 0x19 00002cd8: DUP2 00002cd9: GT 00002cda: ISZERO 00002cdb: PUSH2 0x2ce0 00002cde: JUMPI 00002cdf: INVALID 00002ce0: JUMPDEST 00002ce1: EQ 00002ce2: PUSH2 0x2cf0 00002ce5: JUMPI 00002ce6: PUSH2 0x0a91 00002ce9: DUP3 00002cea: PUSH1 0x59 00002cec: PUSH2 0x3196 00002cef: JUMP 00002cf0: JUMPDEST 00002cf1: PUSH1 0x02 00002cf3: DUP6 00002cf4: ADD 00002cf5: SLOAD 00002cf6: PUSH1 0xe0 00002cf8: DUP5 00002cf9: ADD 00002cfa: MLOAD 00002cfb: PUSH1 0x06 00002cfd: DUP8 00002cfe: ADD 00002cff: SLOAD 00002d00: PUSH1 0x40 00002d02: DUP1 00002d03: MLOAD 00002d04: PUSH1 0xe1 00002d06: PUSH1 0x02 00002d08: EXP 00002d09: PUSH4 0x28be7b9f 00002d0e: MUL 00002d0f: DUP2 00002d10: MSTORE 00002d11: PUSH1 0x01 00002d13: PUSH1 0xa0 00002d15: PUSH1 0x02 00002d17: EXP 00002d18: SUB 00002d19: DUP14 00002d1a: DUP2 00002d1b: AND 00002d1c: PUSH1 0x04 00002d1e: DUP4 00002d1f: ADD 00002d20: MSTORE 00002d21: PUSH1 0x24 00002d23: DUP3 00002d24: ADD 00002d25: SWAP5 00002d26: SWAP1 00002d27: SWAP5 00002d28: MSTORE 00002d29: PUSH1 0x44 00002d2b: DUP2 00002d2c: ADD 00002d2d: SWAP3 00002d2e: SWAP1 00002d2f: SWAP3 00002d30: MSTORE 00002d31: DUP1 00002d32: MLOAD 00002d33: SWAP3 00002d34: SWAP1 00002d35: SWAP4 00002d36: AND 00002d37: SWAP3 00002d38: PUSH4 0x517cf73e 00002d3d: SWAP3 00002d3e: PUSH1 0x64 00002d40: DUP1 00002d41: DUP5 00002d42: ADD 00002d43: SWAP4 00002d44: DUP3 00002d45: SWAP1 00002d46: SUB 00002d47: ADD 00002d48: DUP2 00002d49: PUSH1 0x00 00002d4b: DUP8 00002d4c: DUP1 00002d4d: EXTCODESIZE 00002d4e: ISZERO 00002d4f: DUP1 00002d50: ISZERO 00002d51: PUSH2 0x2d59 00002d54: JUMPI 00002d55: PUSH1 0x00 00002d57: DUP1 00002d58: REVERT 00002d59: JUMPDEST 00002d5a: POP 00002d5b: GAS 00002d5c: CALL 00002d5d: ISZERO 00002d5e: DUP1 00002d5f: ISZERO 00002d60: PUSH2 0x2d6d 00002d63: JUMPI 00002d64: RETURNDATASIZE 00002d65: PUSH1 0x00 00002d67: DUP1 00002d68: RETURNDATACOPY 00002d69: RETURNDATASIZE 00002d6a: PUSH1 0x00 00002d6c: REVERT 00002d6d: JUMPDEST 00002d6e: POP 00002d6f: POP 00002d70: POP 00002d71: POP 00002d72: PUSH1 0x40 00002d74: MLOAD 00002d75: RETURNDATASIZE 00002d76: PUSH1 0x40 00002d78: DUP2 00002d79: LT 00002d7a: ISZERO 00002d7b: PUSH2 0x2d83 00002d7e: JUMPI 00002d7f: PUSH1 0x00 00002d81: DUP1 00002d82: REVERT 00002d83: JUMPDEST 00002d84: POP 00002d85: DUP1 00002d86: MLOAD 00002d87: PUSH1 0x20 00002d89: SWAP1 00002d8a: SWAP2 00002d8b: ADD 00002d8c: MLOAD 00002d8d: PUSH2 0x0100 00002d90: DUP6 00002d91: ADD 00002d92: MSTORE 00002d93: SWAP1 00002d94: POP 00002d95: DUP1 00002d96: ISZERO 00002d97: PUSH2 0x2da5 00002d9a: JUMPI 00002d9b: PUSH2 0x0a91 00002d9e: PUSH1 0x57 00002da0: DUP3 00002da1: PUSH2 0x3751 00002da4: JUMP 00002da5: JUMPDEST 00002da6: PUSH2 0x2dbf 00002da9: DUP6 00002daa: PUSH1 0x08 00002dac: ADD 00002dad: SLOAD 00002dae: DUP7 00002daf: PUSH1 0x07 00002db1: ADD 00002db2: SLOAD 00002db3: DUP8 00002db4: PUSH1 0x01 00002db6: ADD 00002db7: SLOAD 00002db8: PUSH2 0x067d 00002dbb: PUSH2 0x3006 00002dbe: JUMP 00002dbf: JUMPDEST 00002dc0: PUSH2 0x0120 00002dc3: DUP6 00002dc4: ADD 00002dc5: MSTORE 00002dc6: SWAP2 00002dc7: POP 00002dc8: PUSH1 0x00 00002dca: DUP3 00002dcb: PUSH1 0x19 00002dcd: DUP2 00002dce: GT 00002dcf: ISZERO 00002dd0: PUSH2 0x2dd5 00002dd3: JUMPI 00002dd4: INVALID 00002dd5: JUMPDEST 00002dd6: EQ 00002dd7: PUSH2 0x2de5 00002dda: JUMPI 00002ddb: PUSH2 0x0a91 00002dde: DUP3 00002ddf: PUSH1 0x54 00002de1: PUSH2 0x3196 00002de4: JUMP 00002de5: JUMPDEST 00002de6: PUSH1 0x02 00002de8: DUP6 00002de9: ADD 00002dea: SLOAD 00002deb: PUSH1 0xe0 00002ded: DUP5 00002dee: ADD 00002def: MLOAD 00002df0: PUSH1 0x06 00002df2: DUP8 00002df3: ADD 00002df4: SLOAD 00002df5: PUSH1 0x40 00002df7: DUP1 00002df8: MLOAD 00002df9: PUSH1 0xe2 00002dfb: PUSH1 0x02 00002dfd: EXP 00002dfe: PUSH4 0x3b4ad68f 00002e03: MUL 00002e04: DUP2 00002e05: MSTORE 00002e06: PUSH1 0x01 00002e08: PUSH1 0xa0 00002e0a: PUSH1 0x02 00002e0c: EXP 00002e0d: SUB 00002e0e: DUP14 00002e0f: DUP2 00002e10: AND 00002e11: PUSH1 0x04 00002e13: DUP4 00002e14: ADD 00002e15: MSTORE 00002e16: PUSH1 0x24 00002e18: DUP3 00002e19: ADD 00002e1a: SWAP5 00002e1b: SWAP1 00002e1c: SWAP5 00002e1d: MSTORE 00002e1e: PUSH1 0x44 00002e20: DUP2 00002e21: ADD 00002e22: SWAP3 00002e23: SWAP1 00002e24: SWAP3 00002e25: MSTORE 00002e26: DUP1 00002e27: MLOAD 00002e28: SWAP3 00002e29: SWAP1 00002e2a: SWAP4 00002e2b: AND 00002e2c: SWAP3 00002e2d: PUSH4 0xed2b5a3c 00002e32: SWAP3 00002e33: PUSH1 0x64 00002e35: DUP1 00002e36: DUP5 00002e37: ADD 00002e38: SWAP4 00002e39: DUP3 00002e3a: SWAP1 00002e3b: SUB 00002e3c: ADD 00002e3d: DUP2 00002e3e: PUSH1 0x00 00002e40: DUP8 00002e41: DUP1 00002e42: EXTCODESIZE 00002e43: ISZERO 00002e44: DUP1 00002e45: ISZERO 00002e46: PUSH2 0x2e4e 00002e49: JUMPI 00002e4a: PUSH1 0x00 00002e4c: DUP1 00002e4d: REVERT 00002e4e: JUMPDEST 00002e4f: POP 00002e50: GAS 00002e51: CALL 00002e52: ISZERO 00002e53: DUP1 00002e54: ISZERO 00002e55: PUSH2 0x2e62 00002e58: JUMPI 00002e59: RETURNDATASIZE 00002e5a: PUSH1 0x00 00002e5c: DUP1 00002e5d: RETURNDATACOPY 00002e5e: RETURNDATASIZE 00002e5f: PUSH1 0x00 00002e61: REVERT 00002e62: JUMPDEST 00002e63: POP 00002e64: POP 00002e65: POP 00002e66: POP 00002e67: PUSH1 0x40 00002e69: MLOAD 00002e6a: RETURNDATASIZE 00002e6b: PUSH1 0x40 00002e6d: DUP2 00002e6e: LT 00002e6f: ISZERO 00002e70: PUSH2 0x2e78 00002e73: JUMPI 00002e74: PUSH1 0x00 00002e76: DUP1 00002e77: REVERT 00002e78: JUMPDEST 00002e79: POP 00002e7a: DUP1 00002e7b: MLOAD 00002e7c: PUSH1 0x20 00002e7e: SWAP1 00002e7f: SWAP2 00002e80: ADD 00002e81: MLOAD 00002e82: PUSH2 0x0140 00002e85: DUP6 00002e86: ADD 00002e87: MSTORE 00002e88: SWAP1 00002e89: POP 00002e8a: DUP1 00002e8b: ISZERO 00002e8c: PUSH2 0x2e9a 00002e8f: JUMPI 00002e90: PUSH2 0x0a91 00002e93: PUSH1 0x55 00002e95: DUP3 00002e96: PUSH2 0x3751 00002e99: JUMP 00002e9a: JUMPDEST 00002e9b: PUSH2 0x2ea9 00002e9e: DUP9 00002e9f: CALLER 00002ea0: DUP6 00002ea1: PUSH1 0x00 00002ea3: ADD 00002ea4: MLOAD 00002ea5: PUSH2 0x32d4 00002ea8: JUMP 00002ea9: JUMPDEST 00002eaa: SWAP2 00002eab: POP 00002eac: PUSH1 0x00 00002eae: DUP3 00002eaf: PUSH1 0x19 00002eb1: DUP2 00002eb2: GT 00002eb3: ISZERO 00002eb4: PUSH2 0x2eb9 00002eb7: JUMPI 00002eb8: INVALID 00002eb9: JUMPDEST 00002eba: EQ 00002ebb: PUSH2 0x2ec9 00002ebe: JUMPI 00002ebf: PUSH2 0x0a91 00002ec2: DUP3 00002ec3: PUSH1 0x5a 00002ec5: PUSH2 0x3196 00002ec8: JUMP 00002ec9: JUMPDEST 00002eca: PUSH2 0x2ed1 00002ecd: PUSH2 0x3006 00002ed0: JUMP 00002ed1: JUMPDEST 00002ed2: DUP6 00002ed3: PUSH1 0x01 00002ed5: ADD 00002ed6: DUP2 00002ed7: SWAP1 00002ed8: SSTORE 00002ed9: POP 00002eda: DUP3 00002edb: PUSH1 0xa0 00002edd: ADD 00002ede: MLOAD 00002edf: DUP6 00002ee0: PUSH1 0x03 00002ee2: ADD 00002ee3: DUP2 00002ee4: SWAP1 00002ee5: SSTORE 00002ee6: POP 00002ee7: DUP3 00002ee8: PUSH2 0x0100 00002eeb: ADD 00002eec: MLOAD 00002eed: DUP6 00002eee: PUSH1 0x04 00002ef0: ADD 00002ef1: DUP2 00002ef2: SWAP1 00002ef3: SSTORE 00002ef4: POP 00002ef5: DUP3 00002ef6: PUSH1 0x40 00002ef8: ADD 00002ef9: MLOAD 00002efa: DUP6 00002efb: PUSH1 0x05 00002efd: ADD 00002efe: DUP2 00002eff: SWAP1 00002f00: SSTORE 00002f01: POP 00002f02: DUP3 00002f03: PUSH2 0x0140 00002f06: ADD 00002f07: MLOAD 00002f08: DUP6 00002f09: PUSH1 0x07 00002f0b: ADD 00002f0c: DUP2 00002f0d: SWAP1 00002f0e: SSTORE 00002f0f: POP 00002f10: DUP3 00002f11: PUSH2 0x0120 00002f14: ADD 00002f15: MLOAD 00002f16: DUP6 00002f17: PUSH1 0x08 00002f19: ADD 00002f1a: DUP2 00002f1b: SWAP1 00002f1c: SSTORE 00002f1d: POP 00002f1e: DUP4 00002f1f: PUSH1 0x00 00002f21: ADD 00002f22: SLOAD 00002f23: DUP4 00002f24: PUSH1 0x20 00002f26: ADD 00002f27: DUP2 00002f28: DUP2 00002f29: MSTORE 00002f2a: POP 00002f2b: POP 00002f2c: DUP3 00002f2d: PUSH1 0x80 00002f2f: ADD 00002f30: MLOAD 00002f31: DUP5 00002f32: PUSH1 0x00 00002f34: ADD 00002f35: DUP2 00002f36: SWAP1 00002f37: SSTORE 00002f38: POP 00002f39: DUP3 00002f3a: PUSH1 0x40 00002f3c: ADD 00002f3d: MLOAD 00002f3e: DUP5 00002f3f: PUSH1 0x01 00002f41: ADD 00002f42: DUP2 00002f43: SWAP1 00002f44: SSTORE 00002f45: POP 00002f46: PUSH32 0x56559a17e3aa8ea4b05036eaf31aeaf9fb71fc1b8865b6389647639940bed030 00002f67: CALLER 00002f68: DUP10 00002f69: DUP6 00002f6a: PUSH1 0x00 00002f6c: ADD 00002f6d: MLOAD 00002f6e: DUP7 00002f6f: PUSH1 0x20 00002f71: ADD 00002f72: MLOAD 00002f73: DUP8 00002f74: PUSH1 0x80 00002f76: ADD 00002f77: MLOAD 00002f78: PUSH1 0x40 00002f7a: MLOAD 00002f7b: DUP1 00002f7c: DUP7 00002f7d: PUSH1 0x01 00002f7f: PUSH1 0xa0 00002f81: PUSH1 0x02 00002f83: EXP 00002f84: SUB 00002f85: AND 00002f86: PUSH1 0x01 00002f88: PUSH1 0xa0 00002f8a: PUSH1 0x02 00002f8c: EXP 00002f8d: SUB 00002f8e: AND 00002f8f: DUP2 00002f90: MSTORE 00002f91: PUSH1 0x20 00002f93: ADD 00002f94: DUP6 00002f95: PUSH1 0x01 00002f97: PUSH1 0xa0 00002f99: PUSH1 0x02 00002f9b: EXP 00002f9c: SUB 00002f9d: AND 00002f9e: PUSH1 0x01 00002fa0: PUSH1 0xa0 00002fa2: PUSH1 0x02 00002fa4: EXP 00002fa5: SUB 00002fa6: AND 00002fa7: DUP2 00002fa8: MSTORE 00002fa9: PUSH1 0x20 00002fab: ADD 00002fac: DUP5 00002fad: DUP2 00002fae: MSTORE 00002faf: PUSH1 0x20 00002fb1: ADD 00002fb2: DUP4 00002fb3: DUP2 00002fb4: MSTORE 00002fb5: PUSH1 0x20 00002fb7: ADD 00002fb8: DUP3 00002fb9: DUP2 00002fba: MSTORE 00002fbb: PUSH1 0x20 00002fbd: ADD 00002fbe: SWAP6 00002fbf: POP 00002fc0: POP 00002fc1: POP 00002fc2: POP 00002fc3: POP 00002fc4: POP 00002fc5: PUSH1 0x40 00002fc7: MLOAD 00002fc8: DUP1 00002fc9: SWAP2 00002fca: SUB 00002fcb: SWAP1 00002fcc: LOG1 00002fcd: PUSH1 0x00 00002fcf: PUSH2 0x0f7a 00002fd2: JUMP 00002fd3: JUMPDEST 00002fd4: PUSH1 0x01 00002fd6: SLOAD 00002fd7: PUSH1 0x01 00002fd9: PUSH1 0xa0 00002fdb: PUSH1 0x02 00002fdd: EXP 00002fde: SUB 00002fdf: AND 00002fe0: DUP2 00002fe1: JUMP 00002fe2: JUMPDEST 00002fe3: PUSH1 0x04 00002fe5: PUSH1 0x20 00002fe7: SWAP1 00002fe8: DUP2 00002fe9: MSTORE 00002fea: PUSH1 0x00 00002fec: SWAP3 00002fed: DUP4 00002fee: MSTORE 00002fef: PUSH1 0x40 00002ff1: DUP1 00002ff2: DUP5 00002ff3: KECCAK256 00002ff4: SWAP1 00002ff5: SWAP2 00002ff6: MSTORE 00002ff7: SWAP1 00002ff8: DUP3 00002ff9: MSTORE 00002ffa: SWAP1 00002ffb: KECCAK256 00002ffc: DUP1 00002ffd: SLOAD 00002ffe: PUSH1 0x01 00003000: SWAP1 00003001: SWAP2 00003002: ADD 00003003: SLOAD 00003004: DUP3 00003005: JUMP 00003006: JUMPDEST 00003007: NUMBER 00003008: SWAP1 00003009: JUMP 0000300a: JUMPDEST 0000300b: PUSH1 0x00 0000300d: DUP1 0000300e: PUSH1 0x00 00003010: DUP1 00003011: PUSH1 0x00 00003013: PUSH2 0x301a 00003016: PUSH2 0x47b0 00003019: JUMP 0000301a: JUMPDEST 0000301b: PUSH1 0x00 0000301d: PUSH2 0x3024 00003020: PUSH2 0x47b0 00003023: JUMP 00003024: JUMPDEST 00003025: PUSH1 0x00 00003027: PUSH2 0x302e 0000302a: PUSH2 0x47b0 0000302d: JUMP 0000302e: JUMPDEST 0000302f: PUSH2 0x3038 00003032: DUP12 00003033: DUP14 00003034: PUSH2 0x372b 00003037: JUMP 00003038: JUMPDEST 00003039: SWAP1 0000303a: SWAP9 0000303b: POP 0000303c: SWAP7 0000303d: POP 0000303e: PUSH1 0x00 00003040: DUP9 00003041: PUSH1 0x19 00003043: DUP2 00003044: GT 00003045: ISZERO 00003046: PUSH2 0x304b 00003049: JUMPI 0000304a: INVALID 0000304b: JUMPDEST 0000304c: EQ 0000304d: PUSH2 0x305e 00003050: JUMPI 00003051: SWAP7 00003052: SWAP9 00003053: POP 00003054: PUSH1 0x00 00003056: SWAP8 00003057: POP 00003058: DUP9 00003059: SWAP7 0000305a: PUSH2 0x3124 0000305d: JUMP 0000305e: JUMPDEST 0000305f: PUSH2 0x3077 00003062: PUSH1 0x20 00003064: PUSH1 0x40 00003066: MLOAD 00003067: SWAP1 00003068: DUP2 00003069: ADD 0000306a: PUSH1 0x40 0000306c: MSTORE 0000306d: DUP1 0000306e: DUP16 0000306f: DUP2 00003070: MSTORE 00003071: POP 00003072: DUP9 00003073: PUSH2 0x44ee 00003076: JUMP 00003077: JUMPDEST 00003078: SWAP1 00003079: SWAP7 0000307a: POP 0000307b: SWAP5 0000307c: POP 0000307d: PUSH1 0x00 0000307f: DUP7 00003080: PUSH1 0x19 00003082: DUP2 00003083: GT 00003084: ISZERO 00003085: PUSH2 0x308a 00003088: JUMPI 00003089: INVALID 0000308a: JUMPDEST 0000308b: EQ 0000308c: PUSH2 0x309d 0000308f: JUMPI 00003090: SWAP5 00003091: SWAP9 00003092: POP 00003093: PUSH1 0x00 00003095: SWAP8 00003096: POP 00003097: DUP9 00003098: SWAP5 00003099: PUSH2 0x3124 0000309c: JUMP 0000309d: JUMPDEST 0000309e: PUSH2 0x30be 000030a1: DUP6 000030a2: PUSH1 0x20 000030a4: PUSH1 0x40 000030a6: MLOAD 000030a7: SWAP1 000030a8: DUP2 000030a9: ADD 000030aa: PUSH1 0x40 000030ac: MSTORE 000030ad: DUP1 000030ae: PUSH8 0x0de0b6b3a7640000 000030b7: DUP2 000030b8: MSTORE 000030b9: POP 000030ba: PUSH2 0x3f1f 000030bd: JUMP 000030be: JUMPDEST 000030bf: SWAP1 000030c0: SWAP5 000030c1: POP 000030c2: SWAP3 000030c3: POP 000030c4: PUSH1 0x00 000030c6: DUP5 000030c7: PUSH1 0x19 000030c9: DUP2 000030ca: GT 000030cb: ISZERO 000030cc: PUSH2 0x30d1 000030cf: JUMPI 000030d0: INVALID 000030d1: JUMPDEST 000030d2: EQ 000030d3: PUSH2 0x30e4 000030d6: JUMPI 000030d7: SWAP3 000030d8: SWAP9 000030d9: POP 000030da: PUSH1 0x00 000030dc: SWAP8 000030dd: POP 000030de: DUP9 000030df: SWAP3 000030e0: PUSH2 0x3124 000030e3: JUMP 000030e4: JUMPDEST 000030e5: PUSH2 0x30ee 000030e8: DUP4 000030e9: DUP16 000030ea: PUSH2 0x44ee 000030ed: JUMP 000030ee: JUMPDEST 000030ef: SWAP1 000030f0: SWAP3 000030f1: POP 000030f2: SWAP1 000030f3: POP 000030f4: PUSH1 0x00 000030f6: DUP3 000030f7: PUSH1 0x19 000030f9: DUP2 000030fa: GT 000030fb: ISZERO 000030fc: PUSH2 0x3101 000030ff: JUMPI 00003100: INVALID 00003101: JUMPDEST 00003102: EQ 00003103: PUSH2 0x3114 00003106: JUMPI 00003107: SWAP1 00003108: SWAP9 00003109: POP 0000310a: PUSH1 0x00 0000310c: SWAP8 0000310d: POP 0000310e: DUP9 0000310f: SWAP1 00003110: PUSH2 0x3124 00003113: JUMP 00003114: JUMPDEST 00003115: PUSH1 0x00 00003117: PUSH2 0x311f 0000311a: DUP3 0000311b: PUSH2 0x3898 0000311e: JUMP 0000311f: JUMPDEST 00003120: SWAP10 00003121: POP 00003122: SWAP10 00003123: POP 00003124: JUMPDEST 00003125: POP 00003126: POP 00003127: POP 00003128: POP 00003129: POP 0000312a: POP 0000312b: POP 0000312c: POP 0000312d: SWAP5 0000312e: POP 0000312f: SWAP5 00003130: SWAP3 00003131: POP 00003132: POP 00003133: POP 00003134: JUMP 00003135: JUMPDEST 00003136: PUSH1 0x00 00003138: DUP1 00003139: DUP1 0000313a: DUP1 0000313b: DUP7 0000313c: ISZERO 0000313d: ISZERO 0000313e: PUSH2 0x314d 00003141: JUMPI 00003142: PUSH1 0x00 00003144: SWAP4 00003145: POP 00003146: DUP4 00003147: SWAP3 00003148: POP 00003149: PUSH2 0x318c 0000314c: JUMP 0000314d: JUMPDEST 0000314e: PUSH2 0x3157 00003151: DUP8 00003152: DUP7 00003153: PUSH2 0x4558 00003156: JUMP 00003157: JUMPDEST 00003158: SWAP1 00003159: SWAP3 0000315a: POP 0000315b: SWAP1 0000315c: POP 0000315d: PUSH1 0x00 0000315f: DUP3 00003160: PUSH1 0x19 00003162: DUP2 00003163: GT 00003164: ISZERO 00003165: PUSH2 0x316a 00003168: JUMPI 00003169: INVALID 0000316a: JUMPDEST 0000316b: EQ 0000316c: PUSH2 0x317d 0000316f: JUMPI 00003170: SWAP1 00003171: SWAP3 00003172: POP 00003173: PUSH1 0x00 00003175: SWAP2 00003176: POP 00003177: DUP3 00003178: SWAP1 00003179: PUSH2 0x318c 0000317c: JUMP 0000317d: JUMPDEST 0000317e: PUSH2 0x3187 00003181: DUP2 00003182: DUP8 00003183: PUSH2 0x459e 00003186: JUMP 00003187: JUMPDEST 00003188: SWAP4 00003189: POP 0000318a: SWAP4 0000318b: POP 0000318c: JUMPDEST 0000318d: POP 0000318e: POP 0000318f: SWAP4 00003190: POP 00003191: SWAP4 00003192: SWAP2 00003193: POP 00003194: POP 00003195: JUMP 00003196: JUMPDEST 00003197: PUSH1 0x00 00003199: PUSH32 0x45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0 000031ba: DUP4 000031bb: PUSH1 0x19 000031bd: DUP2 000031be: GT 000031bf: ISZERO 000031c0: PUSH2 0x31c5 000031c3: JUMPI 000031c4: INVALID 000031c5: JUMPDEST 000031c6: DUP4 000031c7: PUSH1 0x5b 000031c9: DUP2 000031ca: GT 000031cb: ISZERO 000031cc: PUSH2 0x31d1 000031cf: JUMPI 000031d0: INVALID 000031d1: JUMPDEST 000031d2: PUSH1 0x40 000031d4: DUP1 000031d5: MLOAD 000031d6: SWAP3 000031d7: DUP4 000031d8: MSTORE 000031d9: PUSH1 0x20 000031db: DUP4 000031dc: ADD 000031dd: SWAP2 000031de: SWAP1 000031df: SWAP2 000031e0: MSTORE 000031e1: PUSH1 0x00 000031e3: DUP3 000031e4: DUP3 000031e5: ADD 000031e6: MSTORE 000031e7: MLOAD 000031e8: SWAP1 000031e9: DUP2 000031ea: SWAP1 000031eb: SUB 000031ec: PUSH1 0x60 000031ee: ADD 000031ef: SWAP1 000031f0: LOG1 000031f1: DUP3 000031f2: PUSH1 0x19 000031f4: DUP2 000031f5: GT 000031f6: ISZERO 000031f7: PUSH2 0x1033 000031fa: JUMPI 000031fb: INVALID 000031fc: JUMPDEST 000031fd: PUSH1 0x40 000031ff: DUP1 00003200: MLOAD 00003201: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00003222: DUP2 00003223: MSTORE 00003224: ADDRESS 00003225: PUSH1 0x04 00003227: DUP3 00003228: ADD 00003229: MSTORE 0000322a: SWAP1 0000322b: MLOAD 0000322c: PUSH1 0x00 0000322e: SWAP2 0000322f: DUP4 00003230: SWAP2 00003231: PUSH1 0x01 00003233: PUSH1 0xa0 00003235: PUSH1 0x02 00003237: EXP 00003238: SUB 00003239: DUP4 0000323a: AND 0000323b: SWAP2 0000323c: PUSH4 0x70a08231 00003241: SWAP2 00003242: PUSH1 0x24 00003244: DUP1 00003245: DUP4 00003246: ADD 00003247: SWAP3 00003248: PUSH1 0x20 0000324a: SWAP3 0000324b: SWAP2 0000324c: SWAP1 0000324d: DUP3 0000324e: SWAP1 0000324f: SUB 00003250: ADD 00003251: DUP2 00003252: DUP9 00003253: DUP8 00003254: DUP1 00003255: EXTCODESIZE 00003256: ISZERO 00003257: DUP1 00003258: ISZERO 00003259: PUSH2 0x3261 0000325c: JUMPI 0000325d: PUSH1 0x00 0000325f: DUP1 00003260: REVERT 00003261: JUMPDEST 00003262: POP 00003263: GAS 00003264: CALL 00003265: ISZERO 00003266: DUP1 00003267: ISZERO 00003268: PUSH2 0x3275 0000326b: JUMPI 0000326c: RETURNDATASIZE 0000326d: PUSH1 0x00 0000326f: DUP1 00003270: RETURNDATACOPY 00003271: RETURNDATASIZE 00003272: PUSH1 0x00 00003274: REVERT 00003275: JUMPDEST 00003276: POP 00003277: POP 00003278: POP 00003279: POP 0000327a: PUSH1 0x40 0000327c: MLOAD 0000327d: RETURNDATASIZE 0000327e: PUSH1 0x20 00003280: DUP2 00003281: LT 00003282: ISZERO 00003283: PUSH2 0x328b 00003286: JUMPI 00003287: PUSH1 0x00 00003289: DUP1 0000328a: REVERT 0000328b: JUMPDEST 0000328c: POP 0000328d: MLOAD 0000328e: SWAP4 0000328f: SWAP3 00003290: POP 00003291: POP 00003292: POP 00003293: JUMP 00003294: JUMPDEST 00003295: PUSH1 0x00 00003297: DUP1 00003298: PUSH1 0x00 0000329a: DUP1 0000329b: PUSH2 0x32a4 0000329e: DUP8 0000329f: DUP8 000032a0: PUSH2 0x347e 000032a3: JUMP 000032a4: JUMPDEST 000032a5: SWAP1 000032a6: SWAP3 000032a7: POP 000032a8: SWAP1 000032a9: POP 000032aa: PUSH1 0x00 000032ac: DUP3 000032ad: PUSH1 0x19 000032af: DUP2 000032b0: GT 000032b1: ISZERO 000032b2: PUSH2 0x32b7 000032b5: JUMPI 000032b6: INVALID 000032b7: JUMPDEST 000032b8: EQ 000032b9: PUSH2 0x32ca 000032bc: JUMPI 000032bd: SWAP1 000032be: SWAP3 000032bf: POP 000032c0: PUSH1 0x00 000032c2: SWAP2 000032c3: POP 000032c4: DUP3 000032c5: SWAP1 000032c6: PUSH2 0x318c 000032c9: JUMP 000032ca: JUMPDEST 000032cb: PUSH2 0x3187 000032ce: DUP2 000032cf: DUP7 000032d0: PUSH2 0x372b 000032d3: JUMP 000032d4: JUMPDEST 000032d5: PUSH1 0x00 000032d7: DUP1 000032d8: PUSH1 0x00 000032da: DUP6 000032db: SWAP2 000032dc: POP 000032dd: DUP2 000032de: PUSH1 0x01 000032e0: PUSH1 0xa0 000032e2: PUSH1 0x02 000032e4: EXP 000032e5: SUB 000032e6: AND 000032e7: PUSH4 0xa9059cbb 000032ec: DUP7 000032ed: DUP7 000032ee: PUSH1 0x40 000032f0: MLOAD 000032f1: DUP4 000032f2: PUSH4 0xffffffff 000032f7: AND 000032f8: PUSH1 0xe0 000032fa: PUSH1 0x02 000032fc: EXP 000032fd: MUL 000032fe: DUP2 000032ff: MSTORE 00003300: PUSH1 0x04 00003302: ADD 00003303: DUP1 00003304: DUP4 00003305: PUSH1 0x01 00003307: PUSH1 0xa0 00003309: PUSH1 0x02 0000330b: EXP 0000330c: SUB 0000330d: AND 0000330e: PUSH1 0x01 00003310: PUSH1 0xa0 00003312: PUSH1 0x02 00003314: EXP 00003315: SUB 00003316: AND 00003317: DUP2 00003318: MSTORE 00003319: PUSH1 0x20 0000331b: ADD 0000331c: DUP3 0000331d: DUP2 0000331e: MSTORE 0000331f: PUSH1 0x20 00003321: ADD 00003322: SWAP3 00003323: POP 00003324: POP 00003325: POP 00003326: PUSH1 0x00 00003328: PUSH1 0x40 0000332a: MLOAD 0000332b: DUP1 0000332c: DUP4 0000332d: SUB 0000332e: DUP2 0000332f: PUSH1 0x00 00003331: DUP8 00003332: DUP1 00003333: EXTCODESIZE 00003334: ISZERO 00003335: DUP1 00003336: ISZERO 00003337: PUSH2 0x333f 0000333a: JUMPI 0000333b: PUSH1 0x00 0000333d: DUP1 0000333e: REVERT 0000333f: JUMPDEST 00003340: POP 00003341: GAS 00003342: CALL 00003343: ISZERO 00003344: DUP1 00003345: ISZERO 00003346: PUSH2 0x3353 00003349: JUMPI 0000334a: RETURNDATASIZE 0000334b: PUSH1 0x00 0000334d: DUP1 0000334e: RETURNDATACOPY 0000334f: RETURNDATASIZE 00003350: PUSH1 0x00 00003352: REVERT 00003353: JUMPDEST 00003354: POP 00003355: POP 00003356: POP 00003357: POP 00003358: RETURNDATASIZE 00003359: PUSH1 0x00 0000335b: DUP2 0000335c: EQ 0000335d: PUSH2 0x336d 00003360: JUMPI 00003361: PUSH1 0x20 00003363: DUP2 00003364: EQ 00003365: PUSH2 0x3377 00003368: JUMPI 00003369: PUSH1 0x00 0000336b: DUP1 0000336c: REVERT 0000336d: JUMPDEST 0000336e: PUSH1 0x00 00003370: NOT 00003371: SWAP2 00003372: POP 00003373: PUSH2 0x3383 00003376: JUMP 00003377: JUMPDEST 00003378: PUSH1 0x20 0000337a: PUSH1 0x00 0000337c: DUP1 0000337d: RETURNDATACOPY 0000337e: PUSH1 0x00 00003380: MLOAD 00003381: SWAP2 00003382: POP 00003383: JUMPDEST 00003384: POP 00003385: DUP1 00003386: ISZERO 00003387: ISZERO 00003388: PUSH2 0x3394 0000338b: JUMPI 0000338c: PUSH1 0x0e 0000338e: SWAP3 0000338f: POP 00003390: PUSH2 0x3399 00003393: JUMP 00003394: JUMPDEST 00003395: PUSH1 0x00 00003397: SWAP3 00003398: POP 00003399: JUMPDEST 0000339a: POP 0000339b: POP 0000339c: SWAP4 0000339d: SWAP3 0000339e: POP 0000339f: POP 000033a0: POP 000033a1: JUMP 000033a2: JUMPDEST 000033a3: PUSH1 0x00 000033a5: DUP1 000033a6: PUSH1 0x00 000033a8: PUSH2 0x33af 000033ab: PUSH2 0x47b0 000033ae: JUMP 000033af: JUMPDEST 000033b0: PUSH1 0x00 000033b2: PUSH2 0x33b9 000033b5: PUSH2 0x47b0 000033b8: JUMP 000033b9: JUMPDEST 000033ba: PUSH1 0x40 000033bc: DUP1 000033bd: MLOAD 000033be: PUSH1 0x20 000033c0: DUP2 000033c1: ADD 000033c2: SWAP1 000033c3: SWAP2 000033c4: MSTORE 000033c5: PUSH1 0x08 000033c7: SLOAD 000033c8: DUP2 000033c9: MSTORE 000033ca: PUSH2 0x33d2 000033cd: SWAP1 000033ce: PUSH2 0x3637 000033d1: JUMP 000033d2: JUMPDEST 000033d3: ISZERO 000033d4: PUSH2 0x33e3 000033d7: JUMPI 000033d8: PUSH1 0x00 000033da: DUP8 000033db: SWAP6 000033dc: POP 000033dd: SWAP6 000033de: POP 000033df: PUSH2 0x3475 000033e2: JUMP 000033e3: JUMPDEST 000033e4: PUSH1 0x40 000033e6: DUP1 000033e7: MLOAD 000033e8: PUSH1 0x20 000033ea: DUP2 000033eb: DUP2 000033ec: ADD 000033ed: DUP4 000033ee: MSTORE 000033ef: PUSH1 0x08 000033f1: SLOAD 000033f2: DUP3 000033f3: MSTORE 000033f4: DUP3 000033f5: MLOAD 000033f6: SWAP1 000033f7: DUP2 000033f8: ADD 000033f9: SWAP1 000033fa: SWAP3 000033fb: MSTORE 000033fc: PUSH8 0x0de0b6b3a7640000 00003405: DUP3 00003406: MSTORE 00003407: PUSH2 0x340f 0000340a: SWAP2 0000340b: PUSH2 0x3f1f 0000340e: JUMP 0000340f: JUMPDEST 00003410: SWAP1 00003411: SWAP5 00003412: POP 00003413: SWAP3 00003414: POP 00003415: PUSH1 0x00 00003417: DUP5 00003418: PUSH1 0x19 0000341a: DUP2 0000341b: GT 0000341c: ISZERO 0000341d: PUSH2 0x3422 00003420: JUMPI 00003421: INVALID 00003422: JUMPDEST 00003423: EQ 00003424: PUSH2 0x3435 00003427: JUMPI 00003428: SWAP3 00003429: SWAP5 0000342a: POP 0000342b: PUSH1 0x00 0000342d: SWAP4 0000342e: POP 0000342f: DUP5 00003430: SWAP3 00003431: PUSH2 0x3475 00003434: JUMP 00003435: JUMPDEST 00003436: PUSH2 0x343f 00003439: DUP4 0000343a: DUP9 0000343b: PUSH2 0x44ee 0000343e: JUMP 0000343f: JUMPDEST 00003440: SWAP1 00003441: SWAP3 00003442: POP 00003443: SWAP1 00003444: POP 00003445: PUSH1 0x00 00003447: DUP3 00003448: PUSH1 0x19 0000344a: DUP2 0000344b: GT 0000344c: ISZERO 0000344d: PUSH2 0x3452 00003450: JUMPI 00003451: INVALID 00003452: JUMPDEST 00003453: EQ 00003454: PUSH2 0x3465 00003457: JUMPI 00003458: SWAP1 00003459: SWAP5 0000345a: POP 0000345b: PUSH1 0x00 0000345d: SWAP4 0000345e: POP 0000345f: DUP5 00003460: SWAP1 00003461: PUSH2 0x3475 00003464: JUMP 00003465: JUMPDEST 00003466: PUSH1 0x00 00003468: PUSH2 0x3470 0000346b: DUP3 0000346c: PUSH2 0x3898 0000346f: JUMP 00003470: JUMPDEST 00003471: SWAP6 00003472: POP 00003473: SWAP6 00003474: POP 00003475: JUMPDEST 00003476: POP 00003477: POP 00003478: POP 00003479: POP 0000347a: SWAP2 0000347b: POP 0000347c: SWAP2 0000347d: JUMP 0000347e: JUMPDEST 0000347f: PUSH1 0x00 00003481: DUP1 00003482: DUP4 00003483: DUP4 00003484: ADD 00003485: DUP5 00003486: DUP2 00003487: LT 00003488: PUSH2 0x3497 0000348b: JUMPI 0000348c: PUSH1 0x00 0000348e: DUP2 0000348f: SWAP3 00003490: POP 00003491: SWAP3 00003492: POP 00003493: PUSH2 0x34a0 00003496: JUMP 00003497: JUMPDEST 00003498: PUSH1 0x03 0000349a: SWAP3 0000349b: POP 0000349c: PUSH1 0x00 0000349e: SWAP2 0000349f: POP 000034a0: JUMPDEST 000034a1: POP 000034a2: SWAP3 000034a3: POP 000034a4: SWAP3 000034a5: SWAP1 000034a6: POP 000034a7: JUMP 000034a8: JUMPDEST 000034a9: PUSH1 0x00 000034ab: PUSH2 0x34b2 000034ae: PUSH2 0x47b0 000034b1: JUMP 000034b2: JUMPDEST 000034b3: PUSH2 0x34ba 000034b6: PUSH2 0x47b0 000034b9: JUMP 000034ba: JUMPDEST 000034bb: PUSH1 0x00 000034bd: DUP1 000034be: PUSH1 0x00 000034c0: PUSH2 0x34c7 000034c3: PUSH2 0x47b0 000034c6: JUMP 000034c7: JUMPDEST 000034c8: PUSH2 0x34cf 000034cb: PUSH2 0x47b0 000034ce: JUMP 000034cf: JUMPDEST 000034d0: PUSH2 0x34d7 000034d3: PUSH2 0x47b0 000034d6: JUMP 000034d7: JUMPDEST 000034d8: PUSH2 0x34e0 000034db: DUP11 000034dc: PUSH2 0x38a7 000034df: JUMP 000034e0: JUMPDEST 000034e1: SWAP2 000034e2: SWAP8 000034e3: POP 000034e4: SWAP6 000034e5: POP 000034e6: SWAP4 000034e7: POP 000034e8: PUSH1 0x00 000034ea: DUP7 000034eb: PUSH1 0x19 000034ed: DUP2 000034ee: GT 000034ef: ISZERO 000034f0: PUSH2 0x34f5 000034f3: JUMPI 000034f4: INVALID 000034f5: JUMPDEST 000034f6: EQ 000034f7: PUSH2 0x3525 000034fa: JUMPI 000034fb: PUSH1 0x40 000034fd: DUP1 000034fe: MLOAD 000034ff: PUSH1 0x20 00003501: DUP2 00003502: DUP2 00003503: ADD 00003504: DUP4 00003505: MSTORE 00003506: PUSH1 0x00 00003508: DUP1 00003509: DUP4 0000350a: MSTORE 0000350b: DUP4 0000350c: MLOAD 0000350d: SWAP2 0000350e: DUP3 0000350f: ADD 00003510: SWAP1 00003511: SWAP4 00003512: MSTORE 00003513: SWAP2 00003514: DUP3 00003515: MSTORE 00003516: SWAP7 00003517: SWAP10 00003518: POP 00003519: SWAP6 0000351a: SWAP8 0000351b: POP 0000351c: SWAP5 0000351d: SWAP6 0000351e: POP 0000351f: DUP8 00003520: SWAP5 00003521: PUSH2 0x362a 00003524: JUMP 00003525: JUMPDEST 00003526: PUSH1 0x40 00003528: DUP1 00003529: MLOAD 0000352a: PUSH1 0x20 0000352c: DUP2 0000352d: DUP2 0000352e: ADD 0000352f: DUP4 00003530: MSTORE 00003531: DUP8 00003532: DUP3 00003533: MSTORE 00003534: DUP3 00003535: MLOAD 00003536: DUP1 00003537: DUP3 00003538: ADD 00003539: DUP5 0000353a: MSTORE 0000353b: PUSH1 0x07 0000353d: SLOAD 0000353e: DUP2 0000353f: MSTORE 00003540: DUP4 00003541: MLOAD 00003542: SWAP2 00003543: DUP3 00003544: ADD 00003545: SWAP1 00003546: SWAP4 00003547: MSTORE 00003548: DUP7 00003549: DUP2 0000354a: MSTORE 0000354b: SWAP1 0000354c: SWAP4 0000354d: POP 0000354e: PUSH2 0x3557 00003551: SWAP2 00003552: SWAP1 00003553: PUSH2 0x45cd 00003556: JUMP 00003557: JUMPDEST 00003558: SWAP1 00003559: SWAP7 0000355a: POP 0000355b: SWAP1 0000355c: POP 0000355d: PUSH1 0x00 0000355f: DUP7 00003560: PUSH1 0x19 00003562: DUP2 00003563: GT 00003564: ISZERO 00003565: PUSH2 0x356a 00003568: JUMPI 00003569: INVALID 0000356a: JUMPDEST 0000356b: EQ 0000356c: PUSH2 0x359a 0000356f: JUMPI 00003570: PUSH1 0x40 00003572: DUP1 00003573: MLOAD 00003574: PUSH1 0x20 00003576: DUP2 00003577: DUP2 00003578: ADD 00003579: DUP4 0000357a: MSTORE 0000357b: PUSH1 0x00 0000357d: DUP1 0000357e: DUP4 0000357f: MSTORE 00003580: DUP4 00003581: MLOAD 00003582: SWAP2 00003583: DUP3 00003584: ADD 00003585: SWAP1 00003586: SWAP4 00003587: MSTORE 00003588: SWAP2 00003589: DUP3 0000358a: MSTORE 0000358b: SWAP7 0000358c: SWAP10 0000358d: POP 0000358e: SWAP6 0000358f: SWAP8 00003590: POP 00003591: SWAP5 00003592: SWAP6 00003593: POP 00003594: DUP8 00003595: SWAP5 00003596: PUSH2 0x362a 00003599: JUMP 0000359a: JUMPDEST 0000359b: PUSH2 0x35a4 0000359e: DUP3 0000359f: DUP3 000035a0: PUSH2 0x3724 000035a3: JUMP 000035a4: JUMPDEST 000035a5: ISZERO 000035a6: PUSH2 0x35eb 000035a9: JUMPI 000035aa: PUSH2 0x35b3 000035ad: DUP2 000035ae: DUP4 000035af: PUSH2 0x46ba 000035b2: JUMP 000035b3: JUMPDEST 000035b4: SWAP1 000035b5: SWAP7 000035b6: POP 000035b7: SWAP3 000035b8: POP 000035b9: PUSH1 0x00 000035bb: DUP7 000035bc: PUSH1 0x19 000035be: DUP2 000035bf: GT 000035c0: ISZERO 000035c1: PUSH2 0x35c6 000035c4: JUMPI 000035c5: INVALID 000035c6: JUMPDEST 000035c7: EQ 000035c8: PUSH2 0x35cd 000035cb: JUMPI 000035cc: INVALID 000035cd: JUMPDEST 000035ce: PUSH1 0x40 000035d0: DUP1 000035d1: MLOAD 000035d2: PUSH1 0x20 000035d4: DUP2 000035d5: ADD 000035d6: SWAP1 000035d7: SWAP2 000035d8: MSTORE 000035d9: PUSH1 0x00 000035db: DUP1 000035dc: DUP3 000035dd: MSTORE 000035de: SWAP10 000035df: POP 000035e0: SWAP8 000035e1: POP 000035e2: SWAP2 000035e3: SWAP6 000035e4: POP 000035e5: DUP6 000035e6: SWAP2 000035e7: PUSH2 0x362a 000035ea: JUMP 000035eb: JUMPDEST 000035ec: PUSH2 0x35f5 000035ef: DUP3 000035f0: DUP3 000035f1: PUSH2 0x46ba 000035f4: JUMP 000035f5: JUMPDEST 000035f6: SWAP1 000035f7: SWAP7 000035f8: POP 000035f9: SWAP3 000035fa: POP 000035fb: PUSH1 0x00 000035fd: DUP7 000035fe: PUSH1 0x19 00003600: DUP2 00003601: GT 00003602: ISZERO 00003603: PUSH2 0x3608 00003606: JUMPI 00003607: INVALID 00003608: JUMPDEST 00003609: EQ 0000360a: PUSH2 0x360f 0000360d: JUMPI 0000360e: INVALID 0000360f: JUMPDEST 00003610: PUSH1 0x40 00003612: DUP1 00003613: MLOAD 00003614: PUSH1 0x20 00003616: DUP2 00003617: ADD 00003618: SWAP1 00003619: SWAP2 0000361a: MSTORE 0000361b: PUSH1 0x00 0000361d: DUP1 0000361e: DUP3 0000361f: MSTORE 00003620: SWAP10 00003621: POP 00003622: SWAP3 00003623: SWAP8 00003624: POP 00003625: SWAP2 00003626: SWAP6 00003627: POP 00003628: DUP7 00003629: SWAP2 0000362a: JUMPDEST 0000362b: POP 0000362c: POP 0000362d: POP 0000362e: POP 0000362f: POP 00003630: POP 00003631: SWAP2 00003632: SWAP4 00003633: SWAP1 00003634: SWAP3 00003635: POP 00003636: JUMP 00003637: JUMPDEST 00003638: MLOAD 00003639: ISZERO 0000363a: SWAP1 0000363b: JUMP 0000363c: JUMPDEST 0000363d: PUSH1 0x00 0000363f: PUSH2 0x3646 00003642: PUSH2 0x47b0 00003645: JUMP 00003646: JUMPDEST 00003647: PUSH1 0x00 00003649: PUSH2 0x3650 0000364c: PUSH2 0x47b0 0000364f: JUMP 00003650: JUMPDEST 00003651: PUSH2 0x3658 00003654: PUSH2 0x47b0 00003657: JUMP 00003658: JUMPDEST 00003659: PUSH2 0x3661 0000365c: DUP8 0000365d: PUSH2 0x37a8 00003660: JUMP 00003661: JUMPDEST 00003662: SWAP1 00003663: SWAP4 00003664: POP 00003665: SWAP2 00003666: POP 00003667: PUSH1 0x00 00003669: DUP4 0000366a: PUSH1 0x19 0000366c: DUP2 0000366d: GT 0000366e: ISZERO 0000366f: PUSH2 0x3674 00003672: JUMPI 00003673: INVALID 00003674: JUMPDEST 00003675: EQ 00003676: PUSH2 0x3695 00003679: JUMPI 0000367a: PUSH1 0x40 0000367c: DUP1 0000367d: MLOAD 0000367e: PUSH1 0x20 00003680: DUP2 00003681: ADD 00003682: SWAP1 00003683: SWAP2 00003684: MSTORE 00003685: PUSH1 0x00 00003687: DUP2 00003688: MSTORE 00003689: SWAP3 0000368a: SWAP5 0000368b: POP 0000368c: SWAP2 0000368d: SWAP3 0000368e: POP 0000368f: DUP4 00003690: SWAP2 00003691: PUSH2 0x371a 00003694: JUMP 00003695: JUMPDEST 00003696: PUSH2 0x369e 00003699: DUP3 0000369a: PUSH2 0x3637 0000369d: JUMP 0000369e: JUMPDEST 0000369f: ISZERO 000036a0: PUSH2 0x36bd 000036a3: JUMPI 000036a4: PUSH1 0x40 000036a6: DUP1 000036a7: MLOAD 000036a8: PUSH1 0x20 000036aa: DUP2 000036ab: ADD 000036ac: SWAP1 000036ad: SWAP2 000036ae: MSTORE 000036af: PUSH1 0x00 000036b1: DUP2 000036b2: MSTORE 000036b3: PUSH1 0x12 000036b5: SWAP6 000036b6: POP 000036b7: SWAP4 000036b8: POP 000036b9: PUSH2 0x371a 000036bc: JUMP 000036bd: JUMPDEST 000036be: PUSH1 0x40 000036c0: DUP1 000036c1: MLOAD 000036c2: PUSH1 0x20 000036c4: DUP2 000036c5: ADD 000036c6: SWAP1 000036c7: SWAP2 000036c8: MSTORE 000036c9: PUSH1 0x07 000036cb: SLOAD 000036cc: DUP2 000036cd: MSTORE 000036ce: PUSH2 0x36d7 000036d1: SWAP1 000036d2: DUP4 000036d3: PUSH2 0x45cd 000036d6: JUMP 000036d7: JUMPDEST 000036d8: SWAP1 000036d9: SWAP4 000036da: POP 000036db: SWAP1 000036dc: POP 000036dd: PUSH1 0x00 000036df: DUP4 000036e0: PUSH1 0x19 000036e2: DUP2 000036e3: GT 000036e4: ISZERO 000036e5: PUSH2 0x36ea 000036e8: JUMPI 000036e9: INVALID 000036ea: JUMPDEST 000036eb: EQ 000036ec: PUSH2 0x370b 000036ef: JUMPI 000036f0: PUSH1 0x40 000036f2: DUP1 000036f3: MLOAD 000036f4: PUSH1 0x20 000036f6: DUP2 000036f7: ADD 000036f8: SWAP1 000036f9: SWAP2 000036fa: MSTORE 000036fb: PUSH1 0x00 000036fd: DUP2 000036fe: MSTORE 000036ff: SWAP3 00003700: SWAP5 00003701: POP 00003702: SWAP2 00003703: SWAP3 00003704: POP 00003705: DUP4 00003706: SWAP2 00003707: PUSH2 0x371a 0000370a: JUMP 0000370b: JUMPDEST 0000370c: PUSH2 0x3715 0000370f: DUP2 00003710: DUP8 00003711: PUSH2 0x44ee 00003714: JUMP 00003715: JUMPDEST 00003716: SWAP5 00003717: POP 00003718: SWAP5 00003719: POP 0000371a: JUMPDEST 0000371b: POP 0000371c: POP 0000371d: POP 0000371e: SWAP3 0000371f: POP 00003720: SWAP3 00003721: SWAP1 00003722: POP 00003723: JUMP 00003724: JUMPDEST 00003725: MLOAD 00003726: SWAP1 00003727: MLOAD 00003728: LT 00003729: SWAP1 0000372a: JUMP 0000372b: JUMPDEST 0000372c: PUSH1 0x00 0000372e: DUP1 0000372f: DUP4 00003730: DUP4 00003731: GT 00003732: PUSH2 0x3742 00003735: JUMPI 00003736: POP 00003737: PUSH1 0x00 00003739: SWAP1 0000373a: POP 0000373b: DUP2 0000373c: DUP4 0000373d: SUB 0000373e: PUSH2 0x374a 00003741: JUMP 00003742: JUMPDEST 00003743: POP 00003744: PUSH1 0x04 00003746: SWAP1 00003747: POP 00003748: PUSH1 0x00 0000374a: JUMPDEST 0000374b: SWAP3 0000374c: POP 0000374d: SWAP3 0000374e: SWAP1 0000374f: POP 00003750: JUMP 00003751: JUMPDEST 00003752: PUSH1 0x00 00003754: PUSH32 0x45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0 00003775: PUSH1 0x01 00003777: DUP5 00003778: PUSH1 0x5b 0000377a: DUP2 0000377b: GT 0000377c: ISZERO 0000377d: PUSH2 0x3782 00003780: JUMPI 00003781: INVALID 00003782: JUMPDEST 00003783: PUSH1 0x40 00003785: DUP1 00003786: MLOAD 00003787: SWAP3 00003788: DUP4 00003789: MSTORE 0000378a: PUSH1 0x20 0000378c: DUP4 0000378d: ADD 0000378e: SWAP2 0000378f: SWAP1 00003790: SWAP2 00003791: MSTORE 00003792: DUP2 00003793: DUP2 00003794: ADD 00003795: DUP6 00003796: SWAP1 00003797: MSTORE 00003798: MLOAD 00003799: SWAP1 0000379a: DUP2 0000379b: SWAP1 0000379c: SUB 0000379d: PUSH1 0x60 0000379f: ADD 000037a0: SWAP1 000037a1: LOG1 000037a2: PUSH1 0x01 000037a4: PUSH2 0x1033 000037a7: JUMP 000037a8: JUMPDEST 000037a9: PUSH1 0x00 000037ab: PUSH2 0x37b2 000037ae: PUSH2 0x47b0 000037b1: JUMP 000037b2: JUMPDEST 000037b3: PUSH1 0x02 000037b5: SLOAD 000037b6: PUSH1 0x00 000037b8: SWAP1 000037b9: DUP2 000037ba: SWAP1 000037bb: PUSH1 0x01 000037bd: PUSH1 0xa0 000037bf: PUSH1 0x02 000037c1: EXP 000037c2: SUB 000037c3: AND 000037c4: ISZERO 000037c5: ISZERO 000037c6: PUSH2 0x37e3 000037c9: JUMPI 000037ca: PUSH1 0x40 000037cc: DUP1 000037cd: MLOAD 000037ce: PUSH1 0x20 000037d0: DUP2 000037d1: ADD 000037d2: SWAP1 000037d3: SWAP2 000037d4: MSTORE 000037d5: PUSH1 0x00 000037d7: DUP2 000037d8: MSTORE 000037d9: PUSH1 0x18 000037db: SWAP5 000037dc: POP 000037dd: SWAP3 000037de: POP 000037df: PUSH2 0x3891 000037e2: JUMP 000037e3: JUMPDEST 000037e4: PUSH1 0x02 000037e6: SLOAD 000037e7: PUSH1 0x40 000037e9: DUP1 000037ea: MLOAD 000037eb: PUSH32 0x5e9a523c00000000000000000000000000000000000000000000000000000000 0000380c: DUP2 0000380d: MSTORE 0000380e: PUSH1 0x01 00003810: PUSH1 0xa0 00003812: PUSH1 0x02 00003814: EXP 00003815: SUB 00003816: DUP9 00003817: DUP2 00003818: AND 00003819: PUSH1 0x04 0000381b: DUP4 0000381c: ADD 0000381d: MSTORE 0000381e: SWAP2 0000381f: MLOAD 00003820: SWAP2 00003821: SWAP1 00003822: SWAP3 00003823: AND 00003824: SWAP4 00003825: POP 00003826: DUP4 00003827: SWAP2 00003828: PUSH4 0x5e9a523c 0000382d: SWAP2 0000382e: PUSH1 0x24 00003830: DUP1 00003831: DUP4 00003832: ADD 00003833: SWAP3 00003834: PUSH1 0x20 00003836: SWAP3 00003837: SWAP2 00003838: SWAP1 00003839: DUP3 0000383a: SWAP1 0000383b: SUB 0000383c: ADD 0000383d: DUP2 0000383e: PUSH1 0x00 00003840: DUP8 00003841: DUP1 00003842: EXTCODESIZE 00003843: ISZERO 00003844: DUP1 00003845: ISZERO 00003846: PUSH2 0x384e 00003849: JUMPI 0000384a: PUSH1 0x00 0000384c: DUP1 0000384d: REVERT 0000384e: JUMPDEST 0000384f: POP 00003850: GAS 00003851: CALL 00003852: ISZERO 00003853: DUP1 00003854: ISZERO 00003855: PUSH2 0x3862 00003858: JUMPI 00003859: RETURNDATASIZE 0000385a: PUSH1 0x00 0000385c: DUP1 0000385d: RETURNDATACOPY 0000385e: RETURNDATASIZE 0000385f: PUSH1 0x00 00003861: REVERT 00003862: JUMPDEST 00003863: POP 00003864: POP 00003865: POP 00003866: POP 00003867: PUSH1 0x40 00003869: MLOAD 0000386a: RETURNDATASIZE 0000386b: PUSH1 0x20 0000386d: DUP2 0000386e: LT 0000386f: ISZERO 00003870: PUSH2 0x3878 00003873: JUMPI 00003874: PUSH1 0x00 00003876: DUP1 00003877: REVERT 00003878: JUMPDEST 00003879: POP 0000387a: MLOAD 0000387b: PUSH1 0x40 0000387d: DUP1 0000387e: MLOAD 0000387f: PUSH1 0x20 00003881: DUP2 00003882: ADD 00003883: SWAP1 00003884: SWAP2 00003885: MSTORE 00003886: DUP2 00003887: DUP2 00003888: MSTORE 00003889: PUSH1 0x00 0000388b: SWAP6 0000388c: POP 0000388d: SWAP4 0000388e: POP 0000388f: SWAP1 00003890: POP 00003891: JUMPDEST 00003892: POP 00003893: POP 00003894: SWAP2 00003895: POP 00003896: SWAP2 00003897: JUMP 00003898: JUMPDEST 00003899: MLOAD 0000389a: PUSH8 0x0de0b6b3a7640000 000038a3: SWAP1 000038a4: DIV 000038a5: SWAP1 000038a6: JUMP 000038a7: JUMPDEST 000038a8: PUSH1 0x00 000038aa: DUP1 000038ab: PUSH1 0x00 000038ad: PUSH2 0x38b4 000038b0: PUSH2 0x4a78 000038b3: JUMP 000038b4: JUMPDEST 000038b5: PUSH1 0x40 000038b7: DUP1 000038b8: MLOAD 000038b9: PUSH1 0x20 000038bb: DUP2 000038bc: DUP2 000038bd: ADD 000038be: DUP4 000038bf: MSTORE 000038c0: PUSH1 0x00 000038c2: DUP1 000038c3: DUP4 000038c4: MSTORE 000038c5: PUSH1 0xa0 000038c7: DUP6 000038c8: ADD 000038c9: SWAP3 000038ca: SWAP1 000038cb: SWAP3 000038cc: MSTORE 000038cd: DUP3 000038ce: MLOAD 000038cf: DUP1 000038d0: DUP3 000038d1: ADD 000038d2: SWAP1 000038d3: SWAP4 000038d4: MSTORE 000038d5: DUP2 000038d6: DUP4 000038d7: MSTORE 000038d8: PUSH2 0x0120 000038db: DUP5 000038dc: ADD 000038dd: SWAP3 000038de: SWAP1 000038df: SWAP3 000038e0: MSTORE 000038e1: PUSH1 0x06 000038e3: SLOAD 000038e4: SWAP2 000038e5: DUP4 000038e6: ADD 000038e7: SWAP2 000038e8: SWAP1 000038e9: SWAP2 000038ea: MSTORE 000038eb: DUP1 000038ec: DUP1 000038ed: DUP1 000038ee: DUP1 000038ef: JUMPDEST 000038f0: DUP6 000038f1: PUSH1 0x20 000038f3: ADD 000038f4: MLOAD 000038f5: DUP5 000038f6: LT 000038f7: ISZERO 000038f8: PUSH2 0x3b8a 000038fb: JUMPI 000038fc: PUSH1 0x06 000038fe: DUP1 000038ff: SLOAD 00003900: DUP6 00003901: SWAP1 00003902: DUP2 00003903: LT 00003904: PUSH2 0x3909 00003907: JUMPI 00003908: INVALID 00003909: JUMPDEST 0000390a: PUSH1 0x00 0000390c: SWAP2 0000390d: DUP3 0000390e: MSTORE 0000390f: PUSH1 0x20 00003911: DUP1 00003912: DUP4 00003913: KECCAK256 00003914: SWAP1 00003915: SWAP2 00003916: ADD 00003917: SLOAD 00003918: PUSH1 0x01 0000391a: PUSH1 0xa0 0000391c: PUSH1 0x02 0000391e: EXP 0000391f: SUB 00003920: SWAP1 00003921: DUP2 00003922: AND 00003923: DUP1 00003924: DUP11 00003925: MSTORE 00003926: DUP4 00003927: MSTORE 00003928: PUSH1 0x05 0000392a: DUP3 0000392b: MSTORE 0000392c: PUSH1 0x40 0000392e: DUP1 0000392f: DUP5 00003930: KECCAK256 00003931: DUP15 00003932: DUP4 00003933: AND 00003934: DUP1 00003935: DUP7 00003936: MSTORE 00003937: PUSH1 0x03 00003939: DUP6 0000393a: MSTORE 0000393b: DUP3 0000393c: DUP7 0000393d: KECCAK256 0000393e: DUP13 0000393f: MLOAD 00003940: DUP6 00003941: AND 00003942: DUP8 00003943: MSTORE 00003944: DUP6 00003945: MSTORE 00003946: DUP3 00003947: DUP7 00003948: KECCAK256 00003949: SWAP1 0000394a: DUP7 0000394b: MSTORE 0000394c: PUSH1 0x04 0000394e: DUP6 0000394f: MSTORE 00003950: DUP3 00003951: DUP7 00003952: KECCAK256 00003953: DUP13 00003954: MLOAD 00003955: SWAP1 00003956: SWAP5 00003957: AND 00003958: DUP7 00003959: MSTORE 0000395a: SWAP3 0000395b: SWAP1 0000395c: SWAP4 0000395d: MSTORE 0000395e: DUP4 0000395f: KECCAK256 00003960: DUP2 00003961: SLOAD 00003962: SWAP3 00003963: SWAP7 00003964: POP 00003965: SWAP1 00003966: SWAP5 00003967: POP 00003968: SWAP3 00003969: POP 0000396a: GT 0000396b: ISZERO 0000396c: PUSH2 0x3a70 0000396f: JUMPI 00003970: PUSH2 0x3989 00003973: DUP4 00003974: PUSH1 0x05 00003976: ADD 00003977: SLOAD 00003978: DUP5 00003979: PUSH1 0x04 0000397b: ADD 0000397c: SLOAD 0000397d: DUP6 0000397e: PUSH1 0x01 00003980: ADD 00003981: SLOAD 00003982: PUSH2 0x067d 00003985: PUSH2 0x3006 00003988: JUMP 00003989: JUMPDEST 0000398a: PUSH1 0x40 0000398c: DUP9 0000398d: ADD 0000398e: MSTORE 0000398f: SWAP5 00003990: POP 00003991: PUSH1 0x00 00003993: DUP6 00003994: PUSH1 0x19 00003996: DUP2 00003997: GT 00003998: ISZERO 00003999: PUSH2 0x399e 0000399c: JUMPI 0000399d: INVALID 0000399e: JUMPDEST 0000399f: EQ 000039a0: PUSH2 0x39b4 000039a3: JUMPI 000039a4: SWAP4 000039a5: SWAP8 000039a6: POP 000039a7: PUSH1 0x00 000039a9: SWAP7 000039aa: POP 000039ab: DUP7 000039ac: SWAP6 000039ad: POP 000039ae: DUP8 000039af: SWAP4 000039b0: PUSH2 0x362a 000039b3: JUMP 000039b4: JUMPDEST 000039b5: PUSH2 0x39cb 000039b8: DUP3 000039b9: PUSH1 0x00 000039bb: ADD 000039bc: SLOAD 000039bd: DUP4 000039be: PUSH1 0x01 000039c0: ADD 000039c1: SLOAD 000039c2: DUP9 000039c3: PUSH1 0x40 000039c5: ADD 000039c6: MLOAD 000039c7: PUSH2 0x3135 000039ca: JUMP 000039cb: JUMPDEST 000039cc: PUSH1 0x60 000039ce: DUP9 000039cf: ADD 000039d0: MSTORE 000039d1: SWAP5 000039d2: POP 000039d3: PUSH1 0x00 000039d5: DUP6 000039d6: PUSH1 0x19 000039d8: DUP2 000039d9: GT 000039da: ISZERO 000039db: PUSH2 0x39e0 000039de: JUMPI 000039df: INVALID 000039e0: JUMPDEST 000039e1: EQ 000039e2: PUSH2 0x39f6 000039e5: JUMPI 000039e6: SWAP4 000039e7: SWAP8 000039e8: POP 000039e9: PUSH1 0x00 000039eb: SWAP7 000039ec: POP 000039ed: DUP7 000039ee: SWAP6 000039ef: POP 000039f0: DUP8 000039f1: SWAP4 000039f2: PUSH2 0x362a 000039f5: JUMP 000039f6: JUMPDEST 000039f7: PUSH2 0x3a08 000039fa: DUP7 000039fb: PUSH1 0x00 000039fd: ADD 000039fe: MLOAD 000039ff: DUP8 00003a00: PUSH1 0x60 00003a02: ADD 00003a03: MLOAD 00003a04: PUSH2 0x445e 00003a07: JUMP 00003a08: JUMPDEST 00003a09: PUSH1 0x80 00003a0b: DUP9 00003a0c: ADD 00003a0d: MSTORE 00003a0e: SWAP5 00003a0f: POP 00003a10: PUSH1 0x00 00003a12: DUP6 00003a13: PUSH1 0x19 00003a15: DUP2 00003a16: GT 00003a17: ISZERO 00003a18: PUSH2 0x3a1d 00003a1b: JUMPI 00003a1c: INVALID 00003a1d: JUMPDEST 00003a1e: EQ 00003a1f: PUSH2 0x3a33 00003a22: JUMPI 00003a23: SWAP4 00003a24: SWAP8 00003a25: POP 00003a26: PUSH1 0x00 00003a28: SWAP7 00003a29: POP 00003a2a: DUP7 00003a2b: SWAP6 00003a2c: POP 00003a2d: DUP8 00003a2e: SWAP4 00003a2f: PUSH2 0x362a 00003a32: JUMP 00003a33: JUMPDEST 00003a34: PUSH2 0x3a45 00003a37: DUP7 00003a38: PUSH1 0x80 00003a3a: ADD 00003a3b: MLOAD 00003a3c: DUP8 00003a3d: PUSH1 0xa0 00003a3f: ADD 00003a40: MLOAD 00003a41: PUSH2 0x3f1f 00003a44: JUMP 00003a45: JUMPDEST 00003a46: PUSH1 0xa0 00003a48: DUP9 00003a49: ADD 00003a4a: MSTORE 00003a4b: SWAP5 00003a4c: POP 00003a4d: PUSH1 0x00 00003a4f: DUP6 00003a50: PUSH1 0x19 00003a52: DUP2 00003a53: GT 00003a54: ISZERO 00003a55: PUSH2 0x3a5a 00003a58: JUMPI 00003a59: INVALID 00003a5a: JUMPDEST 00003a5b: EQ 00003a5c: PUSH2 0x3a70 00003a5f: JUMPI 00003a60: SWAP4 00003a61: SWAP8 00003a62: POP 00003a63: PUSH1 0x00 00003a65: SWAP7 00003a66: POP 00003a67: DUP7 00003a68: SWAP6 00003a69: POP 00003a6a: DUP8 00003a6b: SWAP4 00003a6c: PUSH2 0x362a 00003a6f: JUMP 00003a70: JUMPDEST 00003a71: DUP1 00003a72: SLOAD 00003a73: PUSH1 0x00 00003a75: LT 00003a76: ISZERO 00003a77: PUSH2 0x3b7f 00003a7a: JUMPI 00003a7b: PUSH2 0x3a94 00003a7e: DUP4 00003a7f: PUSH1 0x08 00003a81: ADD 00003a82: SLOAD 00003a83: DUP5 00003a84: PUSH1 0x07 00003a86: ADD 00003a87: SLOAD 00003a88: DUP6 00003a89: PUSH1 0x01 00003a8b: ADD 00003a8c: SLOAD 00003a8d: PUSH2 0x067d 00003a90: PUSH2 0x3006 00003a93: JUMP 00003a94: JUMPDEST 00003a95: PUSH1 0xc0 00003a97: DUP9 00003a98: ADD 00003a99: MSTORE 00003a9a: SWAP5 00003a9b: POP 00003a9c: PUSH1 0x00 00003a9e: DUP6 00003a9f: PUSH1 0x19 00003aa1: DUP2 00003aa2: GT 00003aa3: ISZERO 00003aa4: PUSH2 0x3aa9 00003aa7: JUMPI 00003aa8: INVALID 00003aa9: JUMPDEST 00003aaa: EQ 00003aab: PUSH2 0x3abf 00003aae: JUMPI 00003aaf: SWAP4 00003ab0: SWAP8 00003ab1: POP 00003ab2: PUSH1 0x00 00003ab4: SWAP7 00003ab5: POP 00003ab6: DUP7 00003ab7: SWAP6 00003ab8: POP 00003ab9: DUP8 00003aba: SWAP4 00003abb: PUSH2 0x362a 00003abe: JUMP 00003abf: JUMPDEST 00003ac0: PUSH2 0x3ad6 00003ac3: DUP2 00003ac4: PUSH1 0x00 00003ac6: ADD 00003ac7: SLOAD 00003ac8: DUP3 00003ac9: PUSH1 0x01 00003acb: ADD 00003acc: SLOAD 00003acd: DUP9 00003ace: PUSH1 0xc0 00003ad0: ADD 00003ad1: MLOAD 00003ad2: PUSH2 0x3135 00003ad5: JUMP 00003ad6: JUMPDEST 00003ad7: PUSH1 0xe0 00003ad9: DUP9 00003ada: ADD 00003adb: MSTORE 00003adc: SWAP5 00003add: POP 00003ade: PUSH1 0x00 00003ae0: DUP6 00003ae1: PUSH1 0x19 00003ae3: DUP2 00003ae4: GT 00003ae5: ISZERO 00003ae6: PUSH2 0x3aeb 00003ae9: JUMPI 00003aea: INVALID 00003aeb: JUMPDEST 00003aec: EQ 00003aed: PUSH2 0x3b01 00003af0: JUMPI 00003af1: SWAP4 00003af2: SWAP8 00003af3: POP 00003af4: PUSH1 0x00 00003af6: SWAP7 00003af7: POP 00003af8: DUP7 00003af9: SWAP6 00003afa: POP 00003afb: DUP8 00003afc: SWAP4 00003afd: PUSH2 0x362a 00003b00: JUMP 00003b01: JUMPDEST 00003b02: PUSH2 0x3b13 00003b05: DUP7 00003b06: PUSH1 0x00 00003b08: ADD 00003b09: MLOAD 00003b0a: DUP8 00003b0b: PUSH1 0xe0 00003b0d: ADD 00003b0e: MLOAD 00003b0f: PUSH2 0x445e 00003b12: JUMP 00003b13: JUMPDEST 00003b14: PUSH2 0x0100 00003b17: DUP9 00003b18: ADD 00003b19: MSTORE 00003b1a: SWAP5 00003b1b: POP 00003b1c: PUSH1 0x00 00003b1e: DUP6 00003b1f: PUSH1 0x19 00003b21: DUP2 00003b22: GT 00003b23: ISZERO 00003b24: PUSH2 0x3b29 00003b27: JUMPI 00003b28: INVALID 00003b29: JUMPDEST 00003b2a: EQ 00003b2b: PUSH2 0x3b3f 00003b2e: JUMPI 00003b2f: SWAP4 00003b30: SWAP8 00003b31: POP 00003b32: PUSH1 0x00 00003b34: SWAP7 00003b35: POP 00003b36: DUP7 00003b37: SWAP6 00003b38: POP 00003b39: DUP8 00003b3a: SWAP4 00003b3b: PUSH2 0x362a 00003b3e: JUMP 00003b3f: JUMPDEST 00003b40: PUSH2 0x3b53 00003b43: DUP7 00003b44: PUSH2 0x0100 00003b47: ADD 00003b48: MLOAD 00003b49: DUP8 00003b4a: PUSH2 0x0120 00003b4d: ADD 00003b4e: MLOAD 00003b4f: PUSH2 0x3f1f 00003b52: JUMP 00003b53: JUMPDEST 00003b54: PUSH2 0x0120 00003b57: DUP9 00003b58: ADD 00003b59: MSTORE 00003b5a: SWAP5 00003b5b: POP 00003b5c: PUSH1 0x00 00003b5e: DUP6 00003b5f: PUSH1 0x19 00003b61: DUP2 00003b62: GT 00003b63: ISZERO 00003b64: PUSH2 0x3b69 00003b67: JUMPI 00003b68: INVALID 00003b69: JUMPDEST 00003b6a: EQ 00003b6b: PUSH2 0x3b7f 00003b6e: JUMPI 00003b6f: SWAP4 00003b70: SWAP8 00003b71: POP 00003b72: PUSH1 0x00 00003b74: SWAP7 00003b75: POP 00003b76: DUP7 00003b77: SWAP6 00003b78: POP 00003b79: DUP8 00003b7a: SWAP4 00003b7b: PUSH2 0x362a 00003b7e: JUMP 00003b7f: JUMPDEST 00003b80: PUSH1 0x01 00003b82: SWAP1 00003b83: SWAP4 00003b84: ADD 00003b85: SWAP3 00003b86: PUSH2 0x38ef 00003b89: JUMP 00003b8a: JUMPDEST 00003b8b: POP 00003b8c: POP 00003b8d: POP 00003b8e: POP 00003b8f: PUSH1 0xa0 00003b91: DUP3 00003b92: ADD 00003b93: MLOAD 00003b94: MLOAD 00003b95: PUSH2 0x0120 00003b98: SWAP1 00003b99: SWAP3 00003b9a: ADD 00003b9b: MLOAD 00003b9c: MLOAD 00003b9d: PUSH1 0x00 00003b9f: SWAP8 00003ba0: SWAP3 00003ba1: SWAP7 00003ba2: POP 00003ba3: SWAP5 00003ba4: POP 00003ba5: SWAP1 00003ba6: SWAP3 00003ba7: POP 00003ba8: POP 00003ba9: POP 00003baa: JUMP 00003bab: JUMPDEST 00003bac: PUSH1 0x00 00003bae: DUP1 00003baf: DUP4 00003bb0: SWAP1 00003bb1: POP 00003bb2: DUP1 00003bb3: PUSH1 0x01 00003bb5: PUSH1 0xa0 00003bb7: PUSH1 0x02 00003bb9: EXP 00003bba: SUB 00003bbb: AND 00003bbc: PUSH4 0x70a08231 00003bc1: DUP5 00003bc2: PUSH1 0x40 00003bc4: MLOAD 00003bc5: DUP3 00003bc6: PUSH4 0xffffffff 00003bcb: AND 00003bcc: PUSH1 0xe0 00003bce: PUSH1 0x02 00003bd0: EXP 00003bd1: MUL 00003bd2: DUP2 00003bd3: MSTORE 00003bd4: PUSH1 0x04 00003bd6: ADD 00003bd7: DUP1 00003bd8: DUP3 00003bd9: PUSH1 0x01 00003bdb: PUSH1 0xa0 00003bdd: PUSH1 0x02 00003bdf: EXP 00003be0: SUB 00003be1: AND 00003be2: PUSH1 0x01 00003be4: PUSH1 0xa0 00003be6: PUSH1 0x02 00003be8: EXP 00003be9: SUB 00003bea: AND 00003beb: DUP2 00003bec: MSTORE 00003bed: PUSH1 0x20 00003bef: ADD 00003bf0: SWAP2 00003bf1: POP 00003bf2: POP 00003bf3: PUSH1 0x20 00003bf5: PUSH1 0x40 00003bf7: MLOAD 00003bf8: DUP1 00003bf9: DUP4 00003bfa: SUB 00003bfb: DUP2 00003bfc: PUSH1 0x00 00003bfe: DUP8 00003bff: DUP1 00003c00: EXTCODESIZE 00003c01: ISZERO 00003c02: DUP1 00003c03: ISZERO 00003c04: PUSH2 0x3c0c 00003c07: JUMPI 00003c08: PUSH1 0x00 00003c0a: DUP1 00003c0b: REVERT 00003c0c: JUMPDEST 00003c0d: POP 00003c0e: GAS 00003c0f: CALL 00003c10: ISZERO 00003c11: DUP1 00003c12: ISZERO 00003c13: PUSH2 0x3c20 00003c16: JUMPI 00003c17: RETURNDATASIZE 00003c18: PUSH1 0x00 00003c1a: DUP1 00003c1b: RETURNDATACOPY 00003c1c: RETURNDATASIZE 00003c1d: PUSH1 0x00 00003c1f: REVERT 00003c20: JUMPDEST 00003c21: POP 00003c22: POP 00003c23: POP 00003c24: POP 00003c25: PUSH1 0x40 00003c27: MLOAD 00003c28: RETURNDATASIZE 00003c29: PUSH1 0x20 00003c2b: DUP2 00003c2c: LT 00003c2d: ISZERO 00003c2e: PUSH2 0x3c36 00003c31: JUMPI 00003c32: PUSH1 0x00 00003c34: DUP1 00003c35: REVERT 00003c36: JUMPDEST 00003c37: POP 00003c38: MLOAD 00003c39: SWAP5 00003c3a: SWAP4 00003c3b: POP 00003c3c: POP 00003c3d: POP 00003c3e: POP 00003c3f: JUMP 00003c40: JUMPDEST 00003c41: PUSH1 0x00 00003c43: DUP2 00003c44: DUP4 00003c45: LT 00003c46: ISZERO 00003c47: PUSH2 0x3c51 00003c4a: JUMPI 00003c4b: POP 00003c4c: DUP2 00003c4d: PUSH2 0x1036 00003c50: JUMP 00003c51: JUMPDEST 00003c52: POP 00003c53: DUP1 00003c54: PUSH2 0x1036 00003c57: JUMP 00003c58: JUMPDEST 00003c59: PUSH1 0x40 00003c5b: DUP1 00003c5c: MLOAD 00003c5d: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000 00003c7e: DUP2 00003c7f: MSTORE 00003c80: PUSH1 0x01 00003c82: PUSH1 0xa0 00003c84: PUSH1 0x02 00003c86: EXP 00003c87: SUB 00003c88: DUP5 00003c89: DUP2 00003c8a: AND 00003c8b: PUSH1 0x04 00003c8d: DUP4 00003c8e: ADD 00003c8f: MSTORE 00003c90: ADDRESS 00003c91: PUSH1 0x24 00003c93: DUP4 00003c94: ADD 00003c95: MSTORE 00003c96: SWAP2 00003c97: MLOAD 00003c98: PUSH1 0x00 00003c9a: SWAP3 00003c9b: DUP7 00003c9c: SWAP3 00003c9d: DUP6 00003c9e: SWAP3 00003c9f: SWAP2 00003ca0: DUP5 00003ca1: AND 00003ca2: SWAP2 00003ca3: PUSH4 0xdd62ed3e 00003ca8: SWAP2 00003ca9: PUSH1 0x44 00003cab: DUP1 00003cac: DUP3 00003cad: ADD 00003cae: SWAP3 00003caf: PUSH1 0x20 00003cb1: SWAP3 00003cb2: SWAP1 00003cb3: SWAP2 00003cb4: SWAP1 00003cb5: DUP3 00003cb6: SWAP1 00003cb7: SUB 00003cb8: ADD 00003cb9: DUP2 00003cba: DUP10 00003cbb: DUP8 00003cbc: DUP1 00003cbd: EXTCODESIZE 00003cbe: ISZERO 00003cbf: DUP1 00003cc0: ISZERO 00003cc1: PUSH2 0x3cc9 00003cc4: JUMPI 00003cc5: PUSH1 0x00 00003cc7: DUP1 00003cc8: REVERT 00003cc9: JUMPDEST 00003cca: POP 00003ccb: GAS 00003ccc: CALL 00003ccd: ISZERO 00003cce: DUP1 00003ccf: ISZERO 00003cd0: PUSH2 0x3cdd 00003cd3: JUMPI 00003cd4: RETURNDATASIZE 00003cd5: PUSH1 0x00 00003cd7: DUP1 00003cd8: RETURNDATACOPY 00003cd9: RETURNDATASIZE 00003cda: PUSH1 0x00 00003cdc: REVERT 00003cdd: JUMPDEST 00003cde: POP 00003cdf: POP 00003ce0: POP 00003ce1: POP 00003ce2: PUSH1 0x40 00003ce4: MLOAD 00003ce5: RETURNDATASIZE 00003ce6: PUSH1 0x20 00003ce8: DUP2 00003ce9: LT 00003cea: ISZERO 00003ceb: PUSH2 0x3cf3 00003cee: JUMPI 00003cef: PUSH1 0x00 00003cf1: DUP1 00003cf2: REVERT 00003cf3: JUMPDEST 00003cf4: POP 00003cf5: MLOAD 00003cf6: LT 00003cf7: ISZERO 00003cf8: PUSH2 0x3d04 00003cfb: JUMPI 00003cfc: PUSH1 0x07 00003cfe: SWAP2 00003cff: POP 00003d00: PUSH2 0x3da0 00003d03: JUMP 00003d04: JUMPDEST 00003d05: DUP3 00003d06: DUP2 00003d07: PUSH1 0x01 00003d09: PUSH1 0xa0 00003d0b: PUSH1 0x02 00003d0d: EXP 00003d0e: SUB 00003d0f: AND 00003d10: PUSH4 0x70a08231 00003d15: DUP7 00003d16: PUSH1 0x40 00003d18: MLOAD 00003d19: DUP3 00003d1a: PUSH4 0xffffffff 00003d1f: AND 00003d20: PUSH1 0xe0 00003d22: PUSH1 0x02 00003d24: EXP 00003d25: MUL 00003d26: DUP2 00003d27: MSTORE 00003d28: PUSH1 0x04 00003d2a: ADD 00003d2b: DUP1 00003d2c: DUP3 00003d2d: PUSH1 0x01 00003d2f: PUSH1 0xa0 00003d31: PUSH1 0x02 00003d33: EXP 00003d34: SUB 00003d35: AND 00003d36: PUSH1 0x01 00003d38: PUSH1 0xa0 00003d3a: PUSH1 0x02 00003d3c: EXP 00003d3d: SUB 00003d3e: AND 00003d3f: DUP2 00003d40: MSTORE 00003d41: PUSH1 0x20 00003d43: ADD 00003d44: SWAP2 00003d45: POP 00003d46: POP 00003d47: PUSH1 0x20 00003d49: PUSH1 0x40 00003d4b: MLOAD 00003d4c: DUP1 00003d4d: DUP4 00003d4e: SUB 00003d4f: DUP2 00003d50: PUSH1 0x00 00003d52: DUP8 00003d53: DUP1 00003d54: EXTCODESIZE 00003d55: ISZERO 00003d56: DUP1 00003d57: ISZERO 00003d58: PUSH2 0x3d60 00003d5b: JUMPI 00003d5c: PUSH1 0x00 00003d5e: DUP1 00003d5f: REVERT 00003d60: JUMPDEST 00003d61: POP 00003d62: GAS 00003d63: CALL 00003d64: ISZERO 00003d65: DUP1 00003d66: ISZERO 00003d67: PUSH2 0x3d74 00003d6a: JUMPI 00003d6b: RETURNDATASIZE 00003d6c: PUSH1 0x00 00003d6e: DUP1 00003d6f: RETURNDATACOPY 00003d70: RETURNDATASIZE 00003d71: PUSH1 0x00 00003d73: REVERT 00003d74: JUMPDEST 00003d75: POP 00003d76: POP 00003d77: POP 00003d78: POP 00003d79: PUSH1 0x40 00003d7b: MLOAD 00003d7c: RETURNDATASIZE 00003d7d: PUSH1 0x20 00003d7f: DUP2 00003d80: LT 00003d81: ISZERO 00003d82: PUSH2 0x3d8a 00003d85: JUMPI 00003d86: PUSH1 0x00 00003d88: DUP1 00003d89: REVERT 00003d8a: JUMPDEST 00003d8b: POP 00003d8c: MLOAD 00003d8d: LT 00003d8e: ISZERO 00003d8f: PUSH2 0x3d9b 00003d92: JUMPI 00003d93: PUSH1 0x08 00003d95: SWAP2 00003d96: POP 00003d97: PUSH2 0x3da0 00003d9a: JUMP 00003d9b: JUMPDEST 00003d9c: PUSH1 0x00 00003d9e: SWAP2 00003d9f: POP 00003da0: JUMPDEST 00003da1: POP 00003da2: SWAP4 00003da3: SWAP3 00003da4: POP 00003da5: POP 00003da6: POP 00003da7: JUMP 00003da8: JUMPDEST 00003da9: PUSH1 0x40 00003dab: DUP1 00003dac: MLOAD 00003dad: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 00003dce: DUP2 00003dcf: MSTORE 00003dd0: PUSH1 0x01 00003dd2: PUSH1 0xa0 00003dd4: PUSH1 0x02 00003dd6: EXP 00003dd7: SUB 00003dd8: DUP5 00003dd9: DUP2 00003dda: AND 00003ddb: PUSH1 0x04 00003ddd: DUP4 00003dde: ADD 00003ddf: MSTORE 00003de0: ADDRESS 00003de1: PUSH1 0x24 00003de3: DUP4 00003de4: ADD 00003de5: MSTORE 00003de6: PUSH1 0x44 00003de8: DUP3 00003de9: ADD 00003dea: DUP5 00003deb: SWAP1 00003dec: MSTORE 00003ded: SWAP2 00003dee: MLOAD 00003def: PUSH1 0x00 00003df1: SWAP3 00003df2: DUP7 00003df3: SWAP3 00003df4: DUP5 00003df5: SWAP3 00003df6: SWAP2 00003df7: DUP5 00003df8: AND 00003df9: SWAP2 00003dfa: PUSH4 0x23b872dd 00003dff: SWAP2 00003e00: PUSH1 0x64 00003e02: DUP1 00003e03: DUP3 00003e04: ADD 00003e05: SWAP3 00003e06: DUP7 00003e07: SWAP3 00003e08: SWAP1 00003e09: SWAP2 00003e0a: SWAP1 00003e0b: DUP3 00003e0c: SWAP1 00003e0d: SUB 00003e0e: ADD 00003e0f: DUP2 00003e10: DUP4 00003e11: DUP8 00003e12: DUP1 00003e13: EXTCODESIZE 00003e14: ISZERO 00003e15: DUP1 00003e16: ISZERO 00003e17: PUSH2 0x3e1f 00003e1a: JUMPI 00003e1b: PUSH1 0x00 00003e1d: DUP1 00003e1e: REVERT 00003e1f: JUMPDEST 00003e20: POP 00003e21: GAS 00003e22: CALL 00003e23: ISZERO 00003e24: DUP1 00003e25: ISZERO 00003e26: PUSH2 0x3e33 00003e29: JUMPI 00003e2a: RETURNDATASIZE 00003e2b: PUSH1 0x00 00003e2d: DUP1 00003e2e: RETURNDATACOPY 00003e2f: RETURNDATASIZE 00003e30: PUSH1 0x00 00003e32: REVERT 00003e33: JUMPDEST 00003e34: POP 00003e35: POP 00003e36: POP 00003e37: POP 00003e38: RETURNDATASIZE 00003e39: PUSH1 0x00 00003e3b: DUP2 00003e3c: EQ 00003e3d: PUSH2 0x3e4d 00003e40: JUMPI 00003e41: PUSH1 0x20 00003e43: DUP2 00003e44: EQ 00003e45: PUSH2 0x3e57 00003e48: JUMPI 00003e49: PUSH1 0x00 00003e4b: DUP1 00003e4c: REVERT 00003e4d: JUMPDEST 00003e4e: PUSH1 0x00 00003e50: NOT 00003e51: SWAP2 00003e52: POP 00003e53: PUSH2 0x3e63 00003e56: JUMP 00003e57: JUMPDEST 00003e58: PUSH1 0x20 00003e5a: PUSH1 0x00 00003e5c: DUP1 00003e5d: RETURNDATACOPY 00003e5e: PUSH1 0x00 00003e60: MLOAD 00003e61: SWAP2 00003e62: POP 00003e63: JUMPDEST 00003e64: POP 00003e65: DUP1 00003e66: ISZERO 00003e67: ISZERO 00003e68: PUSH2 0x3394 00003e6b: JUMPI 00003e6c: PUSH1 0x09 00003e6e: SWAP3 00003e6f: POP 00003e70: PUSH2 0x3399 00003e73: JUMP 00003e74: JUMPDEST 00003e75: PUSH1 0x00 00003e77: JUMPDEST 00003e78: PUSH1 0x06 00003e7a: SLOAD 00003e7b: DUP2 00003e7c: LT 00003e7d: ISZERO 00003e7e: PUSH2 0x3ec2 00003e81: JUMPI 00003e82: DUP2 00003e83: PUSH1 0x01 00003e85: PUSH1 0xa0 00003e87: PUSH1 0x02 00003e89: EXP 00003e8a: SUB 00003e8b: AND 00003e8c: PUSH1 0x06 00003e8e: DUP3 00003e8f: DUP2 00003e90: SLOAD 00003e91: DUP2 00003e92: LT 00003e93: ISZERO 00003e94: ISZERO 00003e95: PUSH2 0x3e9a 00003e98: JUMPI 00003e99: INVALID 00003e9a: JUMPDEST 00003e9b: PUSH1 0x00 00003e9d: SWAP2 00003e9e: DUP3 00003e9f: MSTORE 00003ea0: PUSH1 0x20 00003ea2: SWAP1 00003ea3: SWAP2 00003ea4: KECCAK256 00003ea5: ADD 00003ea6: SLOAD 00003ea7: PUSH1 0x01 00003ea9: PUSH1 0xa0 00003eab: PUSH1 0x02 00003ead: EXP 00003eae: SUB 00003eaf: AND 00003eb0: EQ 00003eb1: ISZERO 00003eb2: PUSH2 0x3eba 00003eb5: JUMPI 00003eb6: PUSH2 0x3f1b 00003eb9: JUMP 00003eba: JUMPDEST 00003ebb: PUSH1 0x01 00003ebd: ADD 00003ebe: PUSH2 0x3e77 00003ec1: JUMP 00003ec2: JUMPDEST 00003ec3: PUSH1 0x06 00003ec5: DUP1 00003ec6: SLOAD 00003ec7: PUSH1 0x01 00003ec9: DUP2 00003eca: ADD 00003ecb: DUP3 00003ecc: SSTORE 00003ecd: PUSH1 0x00 00003ecf: SWAP2 00003ed0: SWAP1 00003ed1: SWAP2 00003ed2: MSTORE 00003ed3: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f 00003ef4: ADD 00003ef5: DUP1 00003ef6: SLOAD 00003ef7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003f0c: NOT 00003f0d: AND 00003f0e: PUSH1 0x01 00003f10: PUSH1 0xa0 00003f12: PUSH1 0x02 00003f14: EXP 00003f15: SUB 00003f16: DUP5 00003f17: AND 00003f18: OR 00003f19: SWAP1 00003f1a: SSTORE 00003f1b: JUMPDEST 00003f1c: POP 00003f1d: POP 00003f1e: JUMP 00003f1f: JUMPDEST 00003f20: PUSH1 0x00 00003f22: PUSH2 0x3f29 00003f25: PUSH2 0x47b0 00003f28: JUMP 00003f29: JUMPDEST 00003f2a: PUSH1 0x00 00003f2c: DUP1 00003f2d: PUSH2 0x3f3e 00003f30: DUP7 00003f31: PUSH1 0x00 00003f33: ADD 00003f34: MLOAD 00003f35: DUP7 00003f36: PUSH1 0x00 00003f38: ADD 00003f39: MLOAD 00003f3a: PUSH2 0x347e 00003f3d: JUMP 00003f3e: JUMPDEST 00003f3f: PUSH1 0x40 00003f41: DUP1 00003f42: MLOAD 00003f43: PUSH1 0x20 00003f45: DUP2 00003f46: ADD 00003f47: SWAP1 00003f48: SWAP2 00003f49: MSTORE 00003f4a: DUP2 00003f4b: DUP2 00003f4c: MSTORE 00003f4d: SWAP2 00003f4e: SWAP6 00003f4f: POP 00003f50: SWAP1 00003f51: SWAP4 00003f52: POP 00003f53: DUP5 00003f54: SWAP3 00003f55: POP 00003f56: SWAP1 00003f57: POP 00003f58: JUMPDEST 00003f59: POP 00003f5a: POP 00003f5b: SWAP3 00003f5c: POP 00003f5d: SWAP3 00003f5e: SWAP1 00003f5f: POP 00003f60: JUMP 00003f61: JUMPDEST 00003f62: MLOAD 00003f63: SWAP1 00003f64: MLOAD 00003f65: GT 00003f66: ISZERO 00003f67: SWAP1 00003f68: JUMP 00003f69: JUMPDEST 00003f6a: PUSH1 0x00 00003f6c: DUP1 00003f6d: PUSH1 0x00 00003f6f: PUSH2 0x3f76 00003f72: PUSH2 0x47b0 00003f75: JUMP 00003f76: JUMPDEST 00003f77: PUSH2 0x3f7e 00003f7a: PUSH2 0x47b0 00003f7d: JUMP 00003f7e: JUMPDEST 00003f7f: PUSH2 0x3f86 00003f82: PUSH2 0x47b0 00003f85: JUMP 00003f86: JUMPDEST 00003f87: PUSH2 0x3f8e 00003f8a: PUSH2 0x47b0 00003f8d: JUMP 00003f8e: JUMPDEST 00003f8f: PUSH1 0x40 00003f91: DUP1 00003f92: MLOAD 00003f93: PUSH1 0x20 00003f95: DUP2 00003f96: DUP2 00003f97: ADD 00003f98: DUP4 00003f99: MSTORE 00003f9a: PUSH8 0x0de0b6b3a7640000 00003fa3: DUP3 00003fa4: MSTORE 00003fa5: DUP3 00003fa6: MLOAD 00003fa7: SWAP1 00003fa8: DUP2 00003fa9: ADD 00003faa: SWAP1 00003fab: SWAP3 00003fac: MSTORE 00003fad: PUSH1 0x09 00003faf: SLOAD 00003fb0: DUP3 00003fb1: MSTORE 00003fb2: PUSH2 0x3fba 00003fb5: SWAP2 00003fb6: PUSH2 0x3f1f 00003fb9: JUMP 00003fba: JUMPDEST 00003fbb: SWAP1 00003fbc: SWAP6 00003fbd: POP 00003fbe: SWAP4 00003fbf: POP 00003fc0: PUSH1 0x00 00003fc2: DUP6 00003fc3: PUSH1 0x19 00003fc5: DUP2 00003fc6: GT 00003fc7: ISZERO 00003fc8: PUSH2 0x3fcd 00003fcb: JUMPI 00003fcc: INVALID 00003fcd: JUMPDEST 00003fce: EQ 00003fcf: PUSH2 0x3fe0 00003fd2: JUMPI 00003fd3: SWAP4 00003fd4: SWAP6 00003fd5: POP 00003fd6: PUSH1 0x00 00003fd8: SWAP5 00003fd9: POP 00003fda: DUP6 00003fdb: SWAP4 00003fdc: PUSH2 0x4080 00003fdf: JUMP 00003fe0: JUMPDEST 00003fe1: PUSH2 0x3fea 00003fe4: DUP10 00003fe5: DUP10 00003fe6: PUSH2 0x44ee 00003fe9: JUMP 00003fea: JUMPDEST 00003feb: SWAP1 00003fec: SWAP6 00003fed: POP 00003fee: SWAP3 00003fef: POP 00003ff0: PUSH1 0x00 00003ff2: DUP6 00003ff3: PUSH1 0x19 00003ff5: DUP2 00003ff6: GT 00003ff7: ISZERO 00003ff8: PUSH2 0x3ffd 00003ffb: JUMPI 00003ffc: INVALID 00003ffd: JUMPDEST 00003ffe: EQ 00003fff: PUSH2 0x4010 00004002: JUMPI 00004003: SWAP4 00004004: SWAP6 00004005: POP 00004006: PUSH1 0x00 00004008: SWAP5 00004009: POP 0000400a: DUP6 0000400b: SWAP4 0000400c: PUSH2 0x4080 0000400f: JUMP 00004010: JUMPDEST 00004011: PUSH2 0x401a 00004014: DUP5 00004015: DUP12 00004016: PUSH2 0x45cd 00004019: JUMP 0000401a: JUMPDEST 0000401b: SWAP1 0000401c: SWAP6 0000401d: POP 0000401e: SWAP2 0000401f: POP 00004020: PUSH1 0x00 00004022: DUP6 00004023: PUSH1 0x19 00004025: DUP2 00004026: GT 00004027: ISZERO 00004028: PUSH2 0x402d 0000402b: JUMPI 0000402c: INVALID 0000402d: JUMPDEST 0000402e: EQ 0000402f: PUSH2 0x4040 00004032: JUMPI 00004033: SWAP4 00004034: SWAP6 00004035: POP 00004036: PUSH1 0x00 00004038: SWAP5 00004039: POP 0000403a: DUP6 0000403b: SWAP4 0000403c: PUSH2 0x4080 0000403f: JUMP 00004040: JUMPDEST 00004041: PUSH2 0x404a 00004044: DUP4 00004045: DUP4 00004046: PUSH2 0x46d9 00004049: JUMP 0000404a: JUMPDEST 0000404b: SWAP1 0000404c: SWAP6 0000404d: POP 0000404e: SWAP1 0000404f: POP 00004050: PUSH1 0x00 00004052: DUP6 00004053: PUSH1 0x19 00004055: DUP2 00004056: GT 00004057: ISZERO 00004058: PUSH2 0x405d 0000405b: JUMPI 0000405c: INVALID 0000405d: JUMPDEST 0000405e: EQ 0000405f: PUSH2 0x4070 00004062: JUMPI 00004063: SWAP4 00004064: SWAP6 00004065: POP 00004066: PUSH1 0x00 00004068: SWAP5 00004069: POP 0000406a: DUP6 0000406b: SWAP4 0000406c: PUSH2 0x4080 0000406f: JUMP 00004070: JUMPDEST 00004071: PUSH1 0x00 00004073: PUSH2 0x407b 00004076: DUP3 00004077: PUSH2 0x3898 0000407a: JUMP 0000407b: JUMPDEST 0000407c: SWAP7 0000407d: POP 0000407e: SWAP7 0000407f: POP 00004080: JUMPDEST 00004081: POP 00004082: POP 00004083: POP 00004084: POP 00004085: POP 00004086: SWAP4 00004087: POP 00004088: SWAP4 00004089: SWAP2 0000408a: POP 0000408b: POP 0000408c: JUMP 0000408d: JUMPDEST 0000408e: PUSH1 0x00 00004090: DUP1 00004091: PUSH1 0x00 00004093: PUSH2 0x409a 00004096: PUSH2 0x47b0 00004099: JUMP 0000409a: JUMPDEST 0000409b: PUSH2 0x40a2 0000409e: PUSH2 0x47b0 000040a1: JUMP 000040a2: JUMPDEST 000040a3: PUSH2 0x40aa 000040a6: PUSH2 0x47b0 000040a9: JUMP 000040aa: JUMPDEST 000040ab: PUSH2 0x40b2 000040ae: PUSH2 0x47b0 000040b1: JUMP 000040b2: JUMPDEST 000040b3: PUSH2 0x40ba 000040b6: PUSH2 0x47b0 000040b9: JUMP 000040ba: JUMPDEST 000040bb: PUSH2 0x40c2 000040be: PUSH2 0x47b0 000040c1: JUMP 000040c2: JUMPDEST 000040c3: PUSH2 0x40cb 000040c6: DUP12 000040c7: PUSH2 0x34a8 000040ca: JUMP 000040cb: JUMPDEST 000040cc: SWAP2 000040cd: SWAP9 000040ce: POP 000040cf: SWAP7 000040d0: POP 000040d1: SWAP5 000040d2: POP 000040d3: PUSH1 0x00 000040d5: DUP8 000040d6: PUSH1 0x19 000040d8: DUP2 000040d9: GT 000040da: ISZERO 000040db: PUSH2 0x40e0 000040de: JUMPI 000040df: INVALID 000040e0: JUMPDEST 000040e1: EQ 000040e2: PUSH2 0x40f3 000040e5: JUMPI 000040e6: SWAP6 000040e7: SWAP8 000040e8: POP 000040e9: PUSH1 0x00 000040eb: SWAP7 000040ec: POP 000040ed: DUP8 000040ee: SWAP6 000040ef: PUSH2 0x41ea 000040f2: JUMP 000040f3: JUMPDEST 000040f4: PUSH1 0x40 000040f6: DUP1 000040f7: MLOAD 000040f8: PUSH1 0x20 000040fa: DUP2 000040fb: DUP2 000040fc: ADD 000040fd: DUP4 000040fe: MSTORE 000040ff: PUSH1 0x07 00004101: SLOAD 00004102: DUP3 00004103: MSTORE 00004104: DUP3 00004105: MLOAD 00004106: SWAP1 00004107: DUP2 00004108: ADD 00004109: SWAP1 0000410a: SWAP3 0000410b: MSTORE 0000410c: PUSH1 0x09 0000410e: SLOAD 0000410f: DUP3 00004110: MSTORE 00004111: PUSH2 0x4119 00004114: SWAP2 00004115: PUSH2 0x46ba 00004118: JUMP 00004119: JUMPDEST 0000411a: SWAP1 0000411b: SWAP8 0000411c: POP 0000411d: SWAP4 0000411e: POP 0000411f: PUSH1 0x00 00004121: DUP8 00004122: PUSH1 0x19 00004124: DUP2 00004125: GT 00004126: ISZERO 00004127: PUSH2 0x412c 0000412a: JUMPI 0000412b: INVALID 0000412c: JUMPDEST 0000412d: EQ 0000412e: PUSH2 0x413f 00004131: JUMPI 00004132: SWAP6 00004133: SWAP8 00004134: POP 00004135: PUSH1 0x00 00004137: SWAP7 00004138: POP 00004139: DUP8 0000413a: SWAP6 0000413b: PUSH2 0x41ea 0000413e: JUMP 0000413f: JUMPDEST 00004140: PUSH2 0x4160 00004143: DUP5 00004144: PUSH1 0x20 00004146: PUSH1 0x40 00004148: MLOAD 00004149: SWAP1 0000414a: DUP2 0000414b: ADD 0000414c: PUSH1 0x40 0000414e: MSTORE 0000414f: DUP1 00004150: PUSH8 0x0de0b6b3a7640000 00004159: DUP2 0000415a: MSTORE 0000415b: POP 0000415c: PUSH2 0x46ba 0000415f: JUMP 00004160: JUMPDEST 00004161: SWAP1 00004162: SWAP8 00004163: POP 00004164: SWAP3 00004165: POP 00004166: PUSH1 0x00 00004168: DUP8 00004169: PUSH1 0x19 0000416b: DUP2 0000416c: GT 0000416d: ISZERO 0000416e: PUSH2 0x4173 00004171: JUMPI 00004172: INVALID 00004173: JUMPDEST 00004174: EQ 00004175: PUSH2 0x4186 00004178: JUMPI 00004179: SWAP6 0000417a: SWAP8 0000417b: POP 0000417c: PUSH1 0x00 0000417e: SWAP7 0000417f: POP 00004180: DUP8 00004181: SWAP6 00004182: PUSH2 0x41ea 00004185: JUMP 00004186: JUMPDEST 00004187: PUSH2 0x4190 0000418a: DUP11 0000418b: DUP5 0000418c: PUSH2 0x45cd 0000418f: JUMP 00004190: JUMPDEST 00004191: SWAP1 00004192: SWAP8 00004193: POP 00004194: SWAP2 00004195: POP 00004196: PUSH1 0x00 00004198: DUP8 00004199: PUSH1 0x19 0000419b: DUP2 0000419c: GT 0000419d: ISZERO 0000419e: PUSH2 0x41a3 000041a1: JUMPI 000041a2: INVALID 000041a3: JUMPDEST 000041a4: EQ 000041a5: PUSH2 0x41aa 000041a8: JUMPI 000041a9: INVALID 000041aa: JUMPDEST 000041ab: PUSH2 0x41b4 000041ae: DUP6 000041af: DUP4 000041b0: PUSH2 0x46d9 000041b3: JUMP 000041b4: JUMPDEST 000041b5: SWAP1 000041b6: SWAP8 000041b7: POP 000041b8: SWAP1 000041b9: POP 000041ba: PUSH1 0x00 000041bc: DUP8 000041bd: PUSH1 0x19 000041bf: DUP2 000041c0: GT 000041c1: ISZERO 000041c2: PUSH2 0x41c7 000041c5: JUMPI 000041c6: INVALID 000041c7: JUMPDEST 000041c8: EQ 000041c9: PUSH2 0x41da 000041cc: JUMPI 000041cd: SWAP6 000041ce: SWAP8 000041cf: POP 000041d0: PUSH1 0x00 000041d2: SWAP7 000041d3: POP 000041d4: DUP8 000041d5: SWAP6 000041d6: PUSH2 0x41ea 000041d9: JUMP 000041da: JUMPDEST 000041db: PUSH1 0x00 000041dd: PUSH2 0x41e5 000041e0: DUP3 000041e1: PUSH2 0x3898 000041e4: JUMP 000041e5: JUMPDEST 000041e6: SWAP9 000041e7: POP 000041e8: SWAP9 000041e9: POP 000041ea: JUMPDEST 000041eb: POP 000041ec: POP 000041ed: POP 000041ee: POP 000041ef: POP 000041f0: POP 000041f1: POP 000041f2: SWAP3 000041f3: POP 000041f4: SWAP3 000041f5: SWAP1 000041f6: POP 000041f7: JUMP 000041f8: JUMPDEST 000041f9: PUSH1 0x00 000041fb: DUP1 000041fc: PUSH1 0x00 000041fe: PUSH2 0x4205 00004201: PUSH2 0x47b0 00004204: JUMP 00004205: JUMPDEST 00004206: PUSH2 0x420d 00004209: PUSH2 0x47b0 0000420c: JUMP 0000420d: JUMPDEST 0000420e: PUSH2 0x4215 00004211: PUSH2 0x47b0 00004214: JUMP 00004215: JUMPDEST 00004216: PUSH2 0x421d 00004219: PUSH2 0x47b0 0000421c: JUMP 0000421d: JUMPDEST 0000421e: PUSH1 0x40 00004220: DUP1 00004221: MLOAD 00004222: PUSH1 0x20 00004224: DUP2 00004225: DUP2 00004226: ADD 00004227: DUP4 00004228: MSTORE 00004229: PUSH8 0x0de0b6b3a7640000 00004232: DUP3 00004233: MSTORE 00004234: DUP3 00004235: MLOAD 00004236: SWAP1 00004237: DUP2 00004238: ADD 00004239: SWAP1 0000423a: SWAP3 0000423b: MSTORE 0000423c: PUSH1 0x09 0000423e: SLOAD 0000423f: DUP3 00004240: MSTORE 00004241: PUSH2 0x4249 00004244: SWAP2 00004245: PUSH2 0x3f1f 00004248: JUMP 00004249: JUMPDEST 0000424a: SWAP1 0000424b: SWAP6 0000424c: POP 0000424d: SWAP4 0000424e: POP 0000424f: PUSH1 0x00 00004251: DUP6 00004252: PUSH1 0x19 00004254: DUP2 00004255: GT 00004256: ISZERO 00004257: PUSH2 0x425c 0000425a: JUMPI 0000425b: INVALID 0000425c: JUMPDEST 0000425d: EQ 0000425e: PUSH2 0x4263 00004261: JUMPI 00004262: INVALID 00004263: JUMPDEST 00004264: PUSH2 0x426d 00004267: DUP11 00004268: DUP6 00004269: PUSH2 0x45cd 0000426c: JUMP 0000426d: JUMPDEST 0000426e: SWAP1 0000426f: SWAP6 00004270: POP 00004271: SWAP3 00004272: POP 00004273: PUSH1 0x00 00004275: DUP6 00004276: PUSH1 0x19 00004278: DUP2 00004279: GT 0000427a: ISZERO 0000427b: PUSH2 0x4280 0000427e: JUMPI 0000427f: INVALID 00004280: JUMPDEST 00004281: EQ 00004282: PUSH2 0x4293 00004285: JUMPI 00004286: SWAP4 00004287: SWAP6 00004288: POP 00004289: PUSH1 0x00 0000428b: SWAP5 0000428c: POP 0000428d: DUP6 0000428e: SWAP4 0000428f: PUSH2 0x4080 00004292: JUMP 00004293: JUMPDEST 00004294: PUSH2 0x429d 00004297: DUP4 00004298: DUP10 00004299: PUSH2 0x44ee 0000429c: JUMP 0000429d: JUMPDEST 0000429e: SWAP1 0000429f: SWAP6 000042a0: POP 000042a1: SWAP2 000042a2: POP 000042a3: PUSH1 0x00 000042a5: DUP6 000042a6: PUSH1 0x19 000042a8: DUP2 000042a9: GT 000042aa: ISZERO 000042ab: PUSH2 0x42b0 000042ae: JUMPI 000042af: INVALID 000042b0: JUMPDEST 000042b1: EQ 000042b2: PUSH2 0x42c3 000042b5: JUMPI 000042b6: SWAP4 000042b7: SWAP6 000042b8: POP 000042b9: PUSH1 0x00 000042bb: SWAP5 000042bc: POP 000042bd: DUP6 000042be: SWAP4 000042bf: PUSH2 0x4080 000042c2: JUMP 000042c3: JUMPDEST 000042c4: PUSH2 0x404a 000042c7: DUP3 000042c8: DUP11 000042c9: PUSH2 0x46d9 000042cc: JUMP 000042cd: JUMPDEST 000042ce: PUSH32 0x0938b1e79e1fd5816573487e5bd6a1e1329ec26f94f401a7b49d4b71d479657a 000042ef: DUP2 000042f0: PUSH1 0x00 000042f2: ADD 000042f3: MLOAD 000042f4: DUP3 000042f5: PUSH1 0x20 000042f7: ADD 000042f8: MLOAD 000042f9: DUP4 000042fa: PUSH2 0x0160 000042fd: ADD 000042fe: MLOAD 000042ff: DUP5 00004300: PUSH2 0x0100 00004303: ADD 00004304: MLOAD 00004305: DUP6 00004306: PUSH2 0x0340 00004309: ADD 0000430a: MLOAD 0000430b: DUP7 0000430c: PUSH2 0x0120 0000430f: ADD 00004310: MLOAD 00004311: DUP8 00004312: PUSH1 0x40 00004314: ADD 00004315: MLOAD 00004316: DUP9 00004317: PUSH1 0x60 00004319: ADD 0000431a: MLOAD 0000431b: DUP10 0000431c: PUSH2 0x0180 0000431f: ADD 00004320: MLOAD 00004321: DUP11 00004322: PUSH2 0x01c0 00004325: ADD 00004326: MLOAD 00004327: DUP12 00004328: PUSH2 0x0360 0000432b: ADD 0000432c: MLOAD 0000432d: DUP13 0000432e: PUSH2 0x01e0 00004331: ADD 00004332: MLOAD 00004333: PUSH1 0x40 00004335: MLOAD 00004336: DUP1 00004337: DUP14 00004338: PUSH1 0x01 0000433a: PUSH1 0xa0 0000433c: PUSH1 0x02 0000433e: EXP 0000433f: SUB 00004340: AND 00004341: PUSH1 0x01 00004343: PUSH1 0xa0 00004345: PUSH1 0x02 00004347: EXP 00004348: SUB 00004349: AND 0000434a: DUP2 0000434b: MSTORE 0000434c: PUSH1 0x20 0000434e: ADD 0000434f: DUP13 00004350: PUSH1 0x01 00004352: PUSH1 0xa0 00004354: PUSH1 0x02 00004356: EXP 00004357: SUB 00004358: AND 00004359: PUSH1 0x01 0000435b: PUSH1 0xa0 0000435d: PUSH1 0x02 0000435f: EXP 00004360: SUB 00004361: AND 00004362: DUP2 00004363: MSTORE 00004364: PUSH1 0x20 00004366: ADD 00004367: DUP12 00004368: DUP2 00004369: MSTORE 0000436a: PUSH1 0x20 0000436c: ADD 0000436d: DUP11 0000436e: DUP2 0000436f: MSTORE 00004370: PUSH1 0x20 00004372: ADD 00004373: DUP10 00004374: DUP2 00004375: MSTORE 00004376: PUSH1 0x20 00004378: ADD 00004379: DUP9 0000437a: DUP2 0000437b: MSTORE 0000437c: PUSH1 0x20 0000437e: ADD 0000437f: DUP8 00004380: PUSH1 0x01 00004382: PUSH1 0xa0 00004384: PUSH1 0x02 00004386: EXP 00004387: SUB 00004388: AND 00004389: PUSH1 0x01 0000438b: PUSH1 0xa0 0000438d: PUSH1 0x02 0000438f: EXP 00004390: SUB 00004391: AND 00004392: DUP2 00004393: MSTORE 00004394: PUSH1 0x20 00004396: ADD 00004397: DUP7 00004398: PUSH1 0x01 0000439a: PUSH1 0xa0 0000439c: PUSH1 0x02 0000439e: EXP 0000439f: SUB 000043a0: AND 000043a1: PUSH1 0x01 000043a3: PUSH1 0xa0 000043a5: PUSH1 0x02 000043a7: EXP 000043a8: SUB 000043a9: AND 000043aa: DUP2 000043ab: MSTORE 000043ac: PUSH1 0x20 000043ae: ADD 000043af: DUP6 000043b0: DUP2 000043b1: MSTORE 000043b2: PUSH1 0x20 000043b4: ADD 000043b5: DUP5 000043b6: DUP2 000043b7: MSTORE 000043b8: PUSH1 0x20 000043ba: ADD 000043bb: DUP4 000043bc: DUP2 000043bd: MSTORE 000043be: PUSH1 0x20 000043c0: ADD 000043c1: DUP3 000043c2: DUP2 000043c3: MSTORE 000043c4: PUSH1 0x20 000043c6: ADD 000043c7: SWAP13 000043c8: POP 000043c9: POP 000043ca: POP 000043cb: POP 000043cc: POP 000043cd: POP 000043ce: POP 000043cf: POP 000043d0: POP 000043d1: POP 000043d2: POP 000043d3: POP 000043d4: POP 000043d5: PUSH1 0x40 000043d7: MLOAD 000043d8: DUP1 000043d9: SWAP2 000043da: SUB 000043db: SWAP1 000043dc: LOG1 000043dd: POP 000043de: JUMP 000043df: JUMPDEST 000043e0: PUSH1 0x00 000043e2: DUP1 000043e3: PUSH1 0x00 000043e5: PUSH2 0x43ec 000043e8: PUSH2 0x47b0 000043eb: JUMP 000043ec: JUMPDEST 000043ed: PUSH2 0x43f4 000043f0: PUSH2 0x47b0 000043f3: JUMP 000043f4: JUMPDEST 000043f5: PUSH2 0x43fd 000043f8: DUP8 000043f9: PUSH2 0x37a8 000043fc: JUMP 000043fd: JUMPDEST 000043fe: SWAP1 000043ff: SWAP4 00004400: POP 00004401: SWAP2 00004402: POP 00004403: PUSH1 0x00 00004405: DUP4 00004406: PUSH1 0x19 00004408: DUP2 00004409: GT 0000440a: ISZERO 0000440b: PUSH2 0x4410 0000440e: JUMPI 0000440f: INVALID 00004410: JUMPDEST 00004411: EQ 00004412: PUSH2 0x4423 00004415: JUMPI 00004416: SWAP2 00004417: SWAP4 00004418: POP 00004419: PUSH1 0x00 0000441b: SWAP3 0000441c: POP 0000441d: DUP4 0000441e: SWAP2 0000441f: PUSH2 0x371a 00004422: JUMP 00004423: JUMPDEST 00004424: PUSH2 0x442d 00004427: DUP7 00004428: DUP4 00004429: PUSH2 0x46d9 0000442c: JUMP 0000442d: JUMPDEST 0000442e: SWAP1 0000442f: SWAP4 00004430: POP 00004431: SWAP1 00004432: POP 00004433: PUSH1 0x00 00004435: DUP4 00004436: PUSH1 0x19 00004438: DUP2 00004439: GT 0000443a: ISZERO 0000443b: PUSH2 0x4440 0000443e: JUMPI 0000443f: INVALID 00004440: JUMPDEST 00004441: EQ 00004442: PUSH2 0x4453 00004445: JUMPI 00004446: SWAP2 00004447: SWAP4 00004448: POP 00004449: PUSH1 0x00 0000444b: SWAP3 0000444c: POP 0000444d: DUP4 0000444e: SWAP2 0000444f: PUSH2 0x371a 00004452: JUMP 00004453: JUMPDEST 00004454: PUSH1 0x00 00004456: PUSH2 0x3715 00004459: DUP3 0000445a: PUSH2 0x3898 0000445d: JUMP 0000445e: JUMPDEST 0000445f: PUSH1 0x00 00004461: PUSH2 0x4468 00004464: PUSH2 0x47b0 00004467: JUMP 00004468: JUMPDEST 00004469: PUSH1 0x00 0000446b: PUSH2 0x4472 0000446e: PUSH2 0x47b0 00004471: JUMP 00004472: JUMPDEST 00004473: PUSH2 0x447b 00004476: DUP7 00004477: PUSH2 0x37a8 0000447a: JUMP 0000447b: JUMPDEST 0000447c: SWAP1 0000447d: SWAP3 0000447e: POP 0000447f: SWAP1 00004480: POP 00004481: PUSH1 0x00 00004483: DUP3 00004484: PUSH1 0x19 00004486: DUP2 00004487: GT 00004488: ISZERO 00004489: PUSH2 0x448e 0000448c: JUMPI 0000448d: INVALID 0000448e: JUMPDEST 0000448f: EQ 00004490: PUSH2 0x44af 00004493: JUMPI 00004494: PUSH1 0x40 00004496: DUP1 00004497: MLOAD 00004498: PUSH1 0x20 0000449a: DUP2 0000449b: ADD 0000449c: SWAP1 0000449d: SWAP2 0000449e: MSTORE 0000449f: PUSH1 0x00 000044a1: DUP2 000044a2: MSTORE 000044a3: SWAP2 000044a4: SWAP4 000044a5: POP 000044a6: SWAP1 000044a7: SWAP2 000044a8: POP 000044a9: DUP3 000044aa: SWAP1 000044ab: PUSH2 0x3f58 000044ae: JUMP 000044af: JUMPDEST 000044b0: PUSH2 0x44b8 000044b3: DUP2 000044b4: PUSH2 0x3637 000044b7: JUMP 000044b8: JUMPDEST 000044b9: ISZERO 000044ba: PUSH2 0x44d7 000044bd: JUMPI 000044be: PUSH1 0x40 000044c0: DUP1 000044c1: MLOAD 000044c2: PUSH1 0x20 000044c4: DUP2 000044c5: ADD 000044c6: SWAP1 000044c7: SWAP2 000044c8: MSTORE 000044c9: PUSH1 0x00 000044cb: DUP2 000044cc: MSTORE 000044cd: PUSH1 0x12 000044cf: SWAP5 000044d0: POP 000044d1: SWAP3 000044d2: POP 000044d3: PUSH2 0x3f58 000044d6: JUMP 000044d7: JUMPDEST 000044d8: PUSH2 0x44e1 000044db: DUP2 000044dc: DUP7 000044dd: PUSH2 0x44ee 000044e0: JUMP 000044e1: JUMPDEST 000044e2: SWAP4 000044e3: POP 000044e4: SWAP4 000044e5: POP 000044e6: POP 000044e7: POP 000044e8: SWAP3 000044e9: POP 000044ea: SWAP3 000044eb: SWAP1 000044ec: POP 000044ed: JUMP 000044ee: JUMPDEST 000044ef: PUSH1 0x00 000044f1: PUSH2 0x44f8 000044f4: PUSH2 0x47b0 000044f7: JUMP 000044f8: JUMPDEST 000044f9: PUSH1 0x00 000044fb: DUP1 000044fc: PUSH2 0x4509 000044ff: DUP7 00004500: PUSH1 0x00 00004502: ADD 00004503: MLOAD 00004504: DUP7 00004505: PUSH2 0x4558 00004508: JUMP 00004509: JUMPDEST 0000450a: SWAP1 0000450b: SWAP3 0000450c: POP 0000450d: SWAP1 0000450e: POP 0000450f: PUSH1 0x00 00004511: DUP3 00004512: PUSH1 0x19 00004514: DUP2 00004515: GT 00004516: ISZERO 00004517: PUSH2 0x451c 0000451a: JUMPI 0000451b: INVALID 0000451c: JUMPDEST 0000451d: EQ 0000451e: PUSH2 0x453d 00004521: JUMPI 00004522: PUSH1 0x40 00004524: DUP1 00004525: MLOAD 00004526: PUSH1 0x20 00004528: DUP2 00004529: ADD 0000452a: SWAP1 0000452b: SWAP2 0000452c: MSTORE 0000452d: PUSH1 0x00 0000452f: DUP2 00004530: MSTORE 00004531: SWAP2 00004532: SWAP4 00004533: POP 00004534: SWAP1 00004535: SWAP2 00004536: POP 00004537: DUP3 00004538: SWAP1 00004539: PUSH2 0x3f58 0000453c: JUMP 0000453d: JUMPDEST 0000453e: PUSH1 0x40 00004540: DUP1 00004541: MLOAD 00004542: PUSH1 0x20 00004544: DUP2 00004545: ADD 00004546: SWAP1 00004547: SWAP2 00004548: MSTORE 00004549: SWAP1 0000454a: DUP2 0000454b: MSTORE 0000454c: PUSH1 0x00 0000454e: SWAP7 0000454f: SWAP1 00004550: SWAP6 00004551: POP 00004552: SWAP4 00004553: POP 00004554: POP 00004555: POP 00004556: POP 00004557: JUMP 00004558: JUMPDEST 00004559: PUSH1 0x00 0000455b: DUP1 0000455c: DUP1 0000455d: DUP5 0000455e: ISZERO 0000455f: ISZERO 00004560: PUSH2 0x456f 00004563: JUMPI 00004564: PUSH1 0x00 00004566: SWAP3 00004567: POP 00004568: DUP3 00004569: SWAP2 0000456a: POP 0000456b: PUSH2 0x34a0 0000456e: JUMP 0000456f: JUMPDEST 00004570: POP 00004571: DUP4 00004572: DUP4 00004573: MUL 00004574: DUP4 00004575: DUP6 00004576: DUP3 00004577: DUP2 00004578: ISZERO 00004579: ISZERO 0000457a: PUSH2 0x457f 0000457d: JUMPI 0000457e: INVALID 0000457f: JUMPDEST 00004580: DIV 00004581: EQ 00004582: PUSH2 0x4592 00004585: JUMPI 00004586: PUSH1 0x03 00004588: SWAP3 00004589: POP 0000458a: PUSH1 0x00 0000458c: SWAP2 0000458d: POP 0000458e: PUSH2 0x34a0 00004591: JUMP 00004592: JUMPDEST 00004593: PUSH1 0x00 00004595: DUP2 00004596: SWAP3 00004597: POP 00004598: SWAP3 00004599: POP 0000459a: PUSH2 0x34a0 0000459d: JUMP 0000459e: JUMPDEST 0000459f: PUSH1 0x00 000045a1: DUP1 000045a2: DUP3 000045a3: ISZERO 000045a4: ISZERO 000045a5: PUSH2 0x45b4 000045a8: JUMPI 000045a9: POP 000045aa: PUSH1 0x05 000045ac: SWAP1 000045ad: POP 000045ae: PUSH1 0x00 000045b0: PUSH2 0x374a 000045b3: JUMP 000045b4: JUMPDEST 000045b5: PUSH1 0x00 000045b7: DUP4 000045b8: DUP6 000045b9: DUP2 000045ba: ISZERO 000045bb: ISZERO 000045bc: PUSH2 0x45c1 000045bf: JUMPI 000045c0: INVALID 000045c1: JUMPDEST 000045c2: DIV 000045c3: SWAP2 000045c4: POP 000045c5: SWAP2 000045c6: POP 000045c7: SWAP3 000045c8: POP 000045c9: SWAP3 000045ca: SWAP1 000045cb: POP 000045cc: JUMP 000045cd: JUMPDEST 000045ce: PUSH1 0x00 000045d0: PUSH2 0x45d7 000045d3: PUSH2 0x47b0 000045d6: JUMP 000045d7: JUMPDEST 000045d8: PUSH1 0x00 000045da: DUP1 000045db: PUSH1 0x00 000045dd: DUP1 000045de: PUSH1 0x00 000045e0: DUP1 000045e1: PUSH2 0x45f2 000045e4: DUP11 000045e5: PUSH1 0x00 000045e7: ADD 000045e8: MLOAD 000045e9: DUP11 000045ea: PUSH1 0x00 000045ec: ADD 000045ed: MLOAD 000045ee: PUSH2 0x4558 000045f1: JUMP 000045f2: JUMPDEST 000045f3: SWAP1 000045f4: SWAP7 000045f5: POP 000045f6: SWAP5 000045f7: POP 000045f8: PUSH1 0x00 000045fa: DUP7 000045fb: PUSH1 0x19 000045fd: DUP2 000045fe: GT 000045ff: ISZERO 00004600: PUSH2 0x4605 00004603: JUMPI 00004604: INVALID 00004605: JUMPDEST 00004606: EQ 00004607: PUSH2 0x4626 0000460a: JUMPI 0000460b: PUSH1 0x40 0000460d: DUP1 0000460e: MLOAD 0000460f: PUSH1 0x20 00004611: DUP2 00004612: ADD 00004613: SWAP1 00004614: SWAP2 00004615: MSTORE 00004616: PUSH1 0x00 00004618: DUP2 00004619: MSTORE 0000461a: SWAP6 0000461b: SWAP8 0000461c: POP 0000461d: SWAP5 0000461e: SWAP6 0000461f: POP 00004620: DUP7 00004621: SWAP5 00004622: PUSH2 0x46ad 00004625: JUMP 00004626: JUMPDEST 00004627: PUSH2 0x4638 0000462a: PUSH8 0x06f05b59d3b20000 00004633: DUP7 00004634: PUSH2 0x347e 00004637: JUMP 00004638: JUMPDEST 00004639: SWAP1 0000463a: SWAP5 0000463b: POP 0000463c: SWAP3 0000463d: POP 0000463e: PUSH1 0x00 00004640: DUP5 00004641: PUSH1 0x19 00004643: DUP2 00004644: GT 00004645: ISZERO 00004646: PUSH2 0x464b 00004649: JUMPI 0000464a: INVALID 0000464b: JUMPDEST 0000464c: EQ 0000464d: PUSH2 0x466c 00004650: JUMPI 00004651: PUSH1 0x40 00004653: DUP1 00004654: MLOAD 00004655: PUSH1 0x20 00004657: DUP2 00004658: ADD 00004659: SWAP1 0000465a: SWAP2 0000465b: MSTORE 0000465c: PUSH1 0x00 0000465e: DUP2 0000465f: MSTORE 00004660: SWAP4 00004661: SWAP8 00004662: POP 00004663: SWAP3 00004664: SWAP6 00004665: POP 00004666: DUP7 00004667: SWAP3 00004668: PUSH2 0x46ad 0000466b: JUMP 0000466c: JUMPDEST 0000466d: PUSH2 0x467e 00004670: DUP4 00004671: PUSH8 0x0de0b6b3a7640000 0000467a: PUSH2 0x459e 0000467d: JUMP 0000467e: JUMPDEST 0000467f: SWAP1 00004680: SWAP3 00004681: POP 00004682: SWAP1 00004683: POP 00004684: PUSH1 0x00 00004686: DUP3 00004687: PUSH1 0x19 00004689: DUP2 0000468a: GT 0000468b: ISZERO 0000468c: PUSH2 0x4691 0000468f: JUMPI 00004690: INVALID 00004691: JUMPDEST 00004692: EQ 00004693: PUSH2 0x4698 00004696: JUMPI 00004697: INVALID 00004698: JUMPDEST 00004699: PUSH1 0x40 0000469b: DUP1 0000469c: MLOAD 0000469d: PUSH1 0x20 0000469f: DUP2 000046a0: ADD 000046a1: SWAP1 000046a2: SWAP2 000046a3: MSTORE 000046a4: DUP2 000046a5: DUP2 000046a6: MSTORE 000046a7: PUSH1 0x00 000046a9: SWAP9 000046aa: POP 000046ab: SWAP7 000046ac: POP 000046ad: JUMPDEST 000046ae: POP 000046af: POP 000046b0: POP 000046b1: POP 000046b2: POP 000046b3: POP 000046b4: SWAP3 000046b5: POP 000046b6: SWAP3 000046b7: SWAP1 000046b8: POP 000046b9: JUMP 000046ba: JUMPDEST 000046bb: PUSH1 0x00 000046bd: PUSH2 0x46c4 000046c0: PUSH2 0x47b0 000046c3: JUMP 000046c4: JUMPDEST 000046c5: PUSH1 0x00 000046c7: DUP1 000046c8: PUSH2 0x3f3e 000046cb: DUP7 000046cc: PUSH1 0x00 000046ce: ADD 000046cf: MLOAD 000046d0: DUP7 000046d1: PUSH1 0x00 000046d3: ADD 000046d4: MLOAD 000046d5: PUSH2 0x372b 000046d8: JUMP 000046d9: JUMPDEST 000046da: PUSH1 0x00 000046dc: PUSH2 0x46e3 000046df: PUSH2 0x47b0 000046e2: JUMP 000046e3: JUMPDEST 000046e4: DUP4 000046e5: MLOAD 000046e6: DUP4 000046e7: MLOAD 000046e8: PUSH2 0x46f1 000046eb: SWAP2 000046ec: SWAP1 000046ed: PUSH2 0x46fc 000046f0: JUMP 000046f1: JUMPDEST 000046f2: SWAP2 000046f3: POP 000046f4: SWAP2 000046f5: POP 000046f6: SWAP3 000046f7: POP 000046f8: SWAP3 000046f9: SWAP1 000046fa: POP 000046fb: JUMP 000046fc: JUMPDEST 000046fd: PUSH1 0x00 000046ff: PUSH2 0x4706 00004702: PUSH2 0x47b0 00004705: JUMP 00004706: JUMPDEST 00004707: PUSH1 0x00 00004709: DUP1 0000470a: PUSH1 0x00 0000470c: DUP1 0000470d: PUSH2 0x471e 00004710: DUP9 00004711: PUSH8 0x0de0b6b3a7640000 0000471a: PUSH2 0x4558 0000471d: JUMP 0000471e: JUMPDEST 0000471f: SWAP1 00004720: SWAP5 00004721: POP 00004722: SWAP3 00004723: POP 00004724: PUSH1 0x00 00004726: DUP5 00004727: PUSH1 0x19 00004729: DUP2 0000472a: GT 0000472b: ISZERO 0000472c: PUSH2 0x4731 0000472f: JUMPI 00004730: INVALID 00004731: JUMPDEST 00004732: EQ 00004733: PUSH2 0x4752 00004736: JUMPI 00004737: PUSH1 0x40 00004739: DUP1 0000473a: MLOAD 0000473b: PUSH1 0x20 0000473d: DUP2 0000473e: ADD 0000473f: SWAP1 00004740: SWAP2 00004741: MSTORE 00004742: PUSH1 0x00 00004744: DUP2 00004745: MSTORE 00004746: SWAP4 00004747: SWAP6 00004748: POP 00004749: SWAP3 0000474a: SWAP4 0000474b: POP 0000474c: DUP5 0000474d: SWAP3 0000474e: PUSH2 0x47a5 00004751: JUMP 00004752: JUMPDEST 00004753: PUSH2 0x475c 00004756: DUP4 00004757: DUP9 00004758: PUSH2 0x459e 0000475b: JUMP 0000475c: JUMPDEST 0000475d: SWAP1 0000475e: SWAP3 0000475f: POP 00004760: SWAP1 00004761: POP 00004762: PUSH1 0x00 00004764: DUP3 00004765: PUSH1 0x19 00004767: DUP2 00004768: GT 00004769: ISZERO 0000476a: PUSH2 0x476f 0000476d: JUMPI 0000476e: INVALID 0000476f: JUMPDEST 00004770: EQ 00004771: PUSH2 0x4790 00004774: JUMPI 00004775: PUSH1 0x40 00004777: DUP1 00004778: MLOAD 00004779: PUSH1 0x20 0000477b: DUP2 0000477c: ADD 0000477d: SWAP1 0000477e: SWAP2 0000477f: MSTORE 00004780: PUSH1 0x00 00004782: DUP2 00004783: MSTORE 00004784: SWAP2 00004785: SWAP6 00004786: POP 00004787: SWAP1 00004788: SWAP4 00004789: POP 0000478a: DUP5 0000478b: SWAP1 0000478c: PUSH2 0x47a5 0000478f: JUMP 00004790: JUMPDEST 00004791: PUSH1 0x40 00004793: DUP1 00004794: MLOAD 00004795: PUSH1 0x20 00004797: DUP2 00004798: ADD 00004799: SWAP1 0000479a: SWAP2 0000479b: MSTORE 0000479c: DUP2 0000479d: DUP2 0000479e: MSTORE 0000479f: PUSH1 0x00 000047a1: SWAP7 000047a2: POP 000047a3: SWAP5 000047a4: POP 000047a5: JUMPDEST 000047a6: POP 000047a7: POP 000047a8: POP 000047a9: POP 000047aa: SWAP3 000047ab: POP 000047ac: SWAP3 000047ad: SWAP1 000047ae: POP 000047af: JUMP 000047b0: JUMPDEST 000047b1: PUSH1 0x40 000047b3: DUP1 000047b4: MLOAD 000047b5: PUSH1 0x20 000047b7: DUP2 000047b8: ADD 000047b9: SWAP1 000047ba: SWAP2 000047bb: MSTORE 000047bc: PUSH1 0x00 000047be: DUP2 000047bf: MSTORE 000047c0: SWAP1 000047c1: JUMP 000047c2: JUMPDEST 000047c3: PUSH2 0x01c0 000047c6: PUSH1 0x40 000047c8: MLOAD 000047c9: SWAP1 000047ca: DUP2 000047cb: ADD 000047cc: PUSH1 0x40 000047ce: MSTORE 000047cf: DUP1 000047d0: PUSH1 0x00 000047d2: DUP2 000047d3: MSTORE 000047d4: PUSH1 0x20 000047d6: ADD 000047d7: PUSH1 0x00 000047d9: DUP2 000047da: MSTORE 000047db: PUSH1 0x20 000047dd: ADD 000047de: PUSH1 0x00 000047e0: DUP2 000047e1: MSTORE 000047e2: PUSH1 0x20 000047e4: ADD 000047e5: PUSH1 0x00 000047e7: DUP2 000047e8: MSTORE 000047e9: PUSH1 0x20 000047eb: ADD 000047ec: PUSH1 0x00 000047ee: DUP2 000047ef: MSTORE 000047f0: PUSH1 0x20 000047f2: ADD 000047f3: PUSH1 0x00 000047f5: DUP2 000047f6: MSTORE 000047f7: PUSH1 0x20 000047f9: ADD 000047fa: PUSH1 0x00 000047fc: DUP2 000047fd: MSTORE 000047fe: PUSH1 0x20 00004800: ADD 00004801: PUSH1 0x00 00004803: DUP2 00004804: MSTORE 00004805: PUSH1 0x20 00004807: ADD 00004808: PUSH1 0x00 0000480a: DUP2 0000480b: MSTORE 0000480c: PUSH1 0x20 0000480e: ADD 0000480f: PUSH1 0x00 00004811: DUP2 00004812: MSTORE 00004813: PUSH1 0x20 00004815: ADD 00004816: PUSH1 0x00 00004818: DUP2 00004819: MSTORE 0000481a: PUSH1 0x20 0000481c: ADD 0000481d: PUSH2 0x4824 00004820: PUSH2 0x47b0 00004823: JUMP 00004824: JUMPDEST 00004825: DUP2 00004826: MSTORE 00004827: PUSH1 0x20 00004829: ADD 0000482a: PUSH2 0x4831 0000482d: PUSH2 0x47b0 00004830: JUMP 00004831: JUMPDEST 00004832: DUP2 00004833: MSTORE 00004834: PUSH1 0x20 00004836: ADD 00004837: PUSH2 0x483e 0000483a: PUSH2 0x47b0 0000483d: JUMP 0000483e: JUMPDEST 0000483f: SWAP1 00004840: MSTORE 00004841: SWAP1 00004842: JUMP 00004843: JUMPDEST 00004844: PUSH2 0x0160 00004847: PUSH1 0x40 00004849: MLOAD 0000484a: SWAP1 0000484b: DUP2 0000484c: ADD 0000484d: PUSH1 0x40 0000484f: MSTORE 00004850: DUP1 00004851: PUSH1 0x00 00004853: DUP2 00004854: MSTORE 00004855: PUSH1 0x20 00004857: ADD 00004858: PUSH1 0x00 0000485a: DUP2 0000485b: MSTORE 0000485c: PUSH1 0x20 0000485e: ADD 0000485f: PUSH1 0x00 00004861: DUP2 00004862: MSTORE 00004863: PUSH1 0x20 00004865: ADD 00004866: PUSH1 0x00 00004868: DUP2 00004869: MSTORE 0000486a: PUSH1 0x20 0000486c: ADD 0000486d: PUSH1 0x00 0000486f: DUP2 00004870: MSTORE 00004871: PUSH1 0x20 00004873: ADD 00004874: PUSH1 0x00 00004876: DUP2 00004877: MSTORE 00004878: PUSH1 0x20 0000487a: ADD 0000487b: PUSH1 0x00 0000487d: DUP2 0000487e: MSTORE 0000487f: PUSH1 0x20 00004881: ADD 00004882: PUSH1 0x00 00004884: DUP2 00004885: MSTORE 00004886: PUSH1 0x20 00004888: ADD 00004889: PUSH1 0x00 0000488b: DUP2 0000488c: MSTORE 0000488d: PUSH1 0x20 0000488f: ADD 00004890: PUSH1 0x00 00004892: DUP2 00004893: MSTORE 00004894: PUSH1 0x20 00004896: ADD 00004897: PUSH1 0x00 00004899: DUP2 0000489a: MSTORE 0000489b: POP 0000489c: SWAP1 0000489d: JUMP 0000489e: JUMPDEST 0000489f: PUSH2 0x03c0 000048a2: PUSH1 0x40 000048a4: MLOAD 000048a5: SWAP1 000048a6: DUP2 000048a7: ADD 000048a8: PUSH1 0x40 000048aa: MSTORE 000048ab: DUP1 000048ac: PUSH1 0x00 000048ae: PUSH1 0x01 000048b0: PUSH1 0xa0 000048b2: PUSH1 0x02 000048b4: EXP 000048b5: SUB 000048b6: AND 000048b7: DUP2 000048b8: MSTORE 000048b9: PUSH1 0x20 000048bb: ADD 000048bc: PUSH1 0x00 000048be: PUSH1 0x01 000048c0: PUSH1 0xa0 000048c2: PUSH1 0x02 000048c4: EXP 000048c5: SUB 000048c6: AND 000048c7: DUP2 000048c8: MSTORE 000048c9: PUSH1 0x20 000048cb: ADD 000048cc: PUSH1 0x00 000048ce: PUSH1 0x01 000048d0: PUSH1 0xa0 000048d2: PUSH1 0x02 000048d4: EXP 000048d5: SUB 000048d6: AND 000048d7: DUP2 000048d8: MSTORE 000048d9: PUSH1 0x20 000048db: ADD 000048dc: PUSH1 0x00 000048de: PUSH1 0x01 000048e0: PUSH1 0xa0 000048e2: PUSH1 0x02 000048e4: EXP 000048e5: SUB 000048e6: AND 000048e7: DUP2 000048e8: MSTORE 000048e9: PUSH1 0x20 000048eb: ADD 000048ec: PUSH1 0x00 000048ee: DUP2 000048ef: MSTORE 000048f0: PUSH1 0x20 000048f2: ADD 000048f3: PUSH1 0x00 000048f5: DUP2 000048f6: MSTORE 000048f7: PUSH1 0x20 000048f9: ADD 000048fa: PUSH1 0x00 000048fc: DUP2 000048fd: MSTORE 000048fe: PUSH1 0x20 00004900: ADD 00004901: PUSH1 0x00 00004903: DUP2 00004904: MSTORE 00004905: PUSH1 0x20 00004907: ADD 00004908: PUSH1 0x00 0000490a: DUP2 0000490b: MSTORE 0000490c: PUSH1 0x20 0000490e: ADD 0000490f: PUSH1 0x00 00004911: DUP2 00004912: MSTORE 00004913: PUSH1 0x20 00004915: ADD 00004916: PUSH1 0x00 00004918: DUP2 00004919: MSTORE 0000491a: PUSH1 0x20 0000491c: ADD 0000491d: PUSH1 0x00 0000491f: DUP2 00004920: MSTORE 00004921: PUSH1 0x20 00004923: ADD 00004924: PUSH1 0x00 00004926: DUP2 00004927: MSTORE 00004928: PUSH1 0x20 0000492a: ADD 0000492b: PUSH1 0x00 0000492d: DUP2 0000492e: MSTORE 0000492f: PUSH1 0x20 00004931: ADD 00004932: PUSH1 0x00 00004934: DUP2 00004935: MSTORE 00004936: PUSH1 0x20 00004938: ADD 00004939: PUSH1 0x00 0000493b: DUP2 0000493c: MSTORE 0000493d: PUSH1 0x20 0000493f: ADD 00004940: PUSH1 0x00 00004942: DUP2 00004943: MSTORE 00004944: PUSH1 0x20 00004946: ADD 00004947: PUSH1 0x00 00004949: DUP2 0000494a: MSTORE 0000494b: PUSH1 0x20 0000494d: ADD 0000494e: PUSH1 0x00 00004950: DUP2 00004951: MSTORE 00004952: PUSH1 0x20 00004954: ADD 00004955: PUSH1 0x00 00004957: DUP2 00004958: MSTORE 00004959: PUSH1 0x20 0000495b: ADD 0000495c: PUSH1 0x00 0000495e: DUP2 0000495f: MSTORE 00004960: PUSH1 0x20 00004962: ADD 00004963: PUSH1 0x00 00004965: DUP2 00004966: MSTORE 00004967: PUSH1 0x20 00004969: ADD 0000496a: PUSH1 0x00 0000496c: DUP2 0000496d: MSTORE 0000496e: PUSH1 0x20 00004970: ADD 00004971: PUSH1 0x00 00004973: DUP2 00004974: MSTORE 00004975: PUSH1 0x20 00004977: ADD 00004978: PUSH1 0x00 0000497a: DUP2 0000497b: MSTORE 0000497c: PUSH1 0x20 0000497e: ADD 0000497f: PUSH1 0x00 00004981: DUP2 00004982: MSTORE 00004983: PUSH1 0x20 00004985: ADD 00004986: PUSH1 0x00 00004988: DUP2 00004989: MSTORE 0000498a: PUSH1 0x20 0000498c: ADD 0000498d: PUSH1 0x00 0000498f: DUP2 00004990: MSTORE 00004991: PUSH1 0x20 00004993: ADD 00004994: PUSH2 0x4831 00004997: PUSH2 0x47b0 0000499a: JUMP 0000499b: JUMPDEST 0000499c: PUSH2 0x0140 0000499f: PUSH1 0x40 000049a1: MLOAD 000049a2: SWAP1 000049a3: DUP2 000049a4: ADD 000049a5: PUSH1 0x40 000049a7: MSTORE 000049a8: DUP1 000049a9: PUSH1 0x00 000049ab: DUP2 000049ac: MSTORE 000049ad: PUSH1 0x20 000049af: ADD 000049b0: PUSH1 0x00 000049b2: DUP2 000049b3: MSTORE 000049b4: PUSH1 0x20 000049b6: ADD 000049b7: PUSH1 0x00 000049b9: DUP2 000049ba: MSTORE 000049bb: PUSH1 0x20 000049bd: ADD 000049be: PUSH1 0x00 000049c0: DUP2 000049c1: MSTORE 000049c2: PUSH1 0x20 000049c4: ADD 000049c5: PUSH1 0x00 000049c7: DUP2 000049c8: MSTORE 000049c9: PUSH1 0x20 000049cb: ADD 000049cc: PUSH1 0x00 000049ce: DUP2 000049cf: MSTORE 000049d0: PUSH1 0x20 000049d2: ADD 000049d3: PUSH1 0x00 000049d5: DUP2 000049d6: MSTORE 000049d7: PUSH1 0x20 000049d9: ADD 000049da: PUSH1 0x00 000049dc: DUP2 000049dd: MSTORE 000049de: PUSH1 0x20 000049e0: ADD 000049e1: PUSH1 0x00 000049e3: DUP2 000049e4: MSTORE 000049e5: PUSH1 0x20 000049e7: ADD 000049e8: PUSH1 0x00 000049ea: DUP2 000049eb: MSTORE 000049ec: POP 000049ed: SWAP1 000049ee: JUMP 000049ef: JUMPDEST 000049f0: PUSH2 0x01e0 000049f3: PUSH1 0x40 000049f5: MLOAD 000049f6: SWAP1 000049f7: DUP2 000049f8: ADD 000049f9: PUSH1 0x40 000049fb: MSTORE 000049fc: DUP1 000049fd: PUSH1 0x00 000049ff: DUP2 00004a00: MSTORE 00004a01: PUSH1 0x20 00004a03: ADD 00004a04: PUSH1 0x00 00004a06: DUP2 00004a07: MSTORE 00004a08: PUSH1 0x20 00004a0a: ADD 00004a0b: PUSH1 0x00 00004a0d: DUP2 00004a0e: MSTORE 00004a0f: PUSH1 0x20 00004a11: ADD 00004a12: PUSH1 0x00 00004a14: DUP2 00004a15: MSTORE 00004a16: PUSH1 0x20 00004a18: ADD 00004a19: PUSH1 0x00 00004a1b: DUP2 00004a1c: MSTORE 00004a1d: PUSH1 0x20 00004a1f: ADD 00004a20: PUSH1 0x00 00004a22: DUP2 00004a23: MSTORE 00004a24: PUSH1 0x20 00004a26: ADD 00004a27: PUSH1 0x00 00004a29: DUP2 00004a2a: MSTORE 00004a2b: PUSH1 0x20 00004a2d: ADD 00004a2e: PUSH1 0x00 00004a30: DUP2 00004a31: MSTORE 00004a32: PUSH1 0x20 00004a34: ADD 00004a35: PUSH1 0x00 00004a37: DUP2 00004a38: MSTORE 00004a39: PUSH1 0x20 00004a3b: ADD 00004a3c: PUSH1 0x00 00004a3e: DUP2 00004a3f: MSTORE 00004a40: PUSH1 0x20 00004a42: ADD 00004a43: PUSH1 0x00 00004a45: DUP2 00004a46: MSTORE 00004a47: PUSH1 0x20 00004a49: ADD 00004a4a: PUSH2 0x4a51 00004a4d: PUSH2 0x47b0 00004a50: JUMP 00004a51: JUMPDEST 00004a52: DUP2 00004a53: MSTORE 00004a54: PUSH1 0x20 00004a56: ADD 00004a57: PUSH2 0x4a5e 00004a5a: PUSH2 0x47b0 00004a5d: JUMP 00004a5e: JUMPDEST 00004a5f: DUP2 00004a60: MSTORE 00004a61: PUSH1 0x20 00004a63: ADD 00004a64: PUSH2 0x4a6b 00004a67: PUSH2 0x47b0 00004a6a: JUMP 00004a6b: JUMPDEST 00004a6c: DUP2 00004a6d: MSTORE 00004a6e: PUSH1 0x20 00004a70: ADD 00004a71: PUSH1 0x00 00004a73: DUP2 00004a74: MSTORE 00004a75: POP 00004a76: SWAP1 00004a77: JUMP 00004a78: JUMPDEST 00004a79: PUSH2 0x0140 00004a7c: PUSH1 0x40 00004a7e: MLOAD 00004a7f: SWAP1 00004a80: DUP2 00004a81: ADD 00004a82: PUSH1 0x40 00004a84: MSTORE 00004a85: DUP1 00004a86: PUSH1 0x00 00004a88: PUSH1 0x01 00004a8a: PUSH1 0xa0 00004a8c: PUSH1 0x02 00004a8e: EXP 00004a8f: SUB 00004a90: AND 00004a91: DUP2 00004a92: MSTORE 00004a93: PUSH1 0x20 00004a95: ADD 00004a96: PUSH1 0x00 00004a98: DUP2 00004a99: MSTORE 00004a9a: PUSH1 0x20 00004a9c: ADD 00004a9d: PUSH1 0x00 00004a9f: DUP2 00004aa0: MSTORE 00004aa1: PUSH1 0x20 00004aa3: ADD 00004aa4: PUSH1 0x00 00004aa6: DUP2 00004aa7: MSTORE 00004aa8: PUSH1 0x20 00004aaa: ADD 00004aab: PUSH2 0x4ab2 00004aae: PUSH2 0x47b0 00004ab1: JUMP 00004ab2: JUMPDEST 00004ab3: DUP2 00004ab4: MSTORE 00004ab5: PUSH1 0x20 00004ab7: ADD 00004ab8: PUSH2 0x4abf 00004abb: PUSH2 0x47b0 00004abe: JUMP 00004abf: JUMPDEST 00004ac0: DUP2 00004ac1: MSTORE 00004ac2: PUSH1 0x20 00004ac4: ADD 00004ac5: PUSH1 0x00 00004ac7: DUP2 00004ac8: MSTORE 00004ac9: PUSH1 0x20 00004acb: ADD 00004acc: PUSH1 0x00 00004ace: DUP2 00004acf: MSTORE 00004ad0: PUSH1 0x20 00004ad2: ADD 00004ad3: PUSH2 0x4831 00004ad6: PUSH2 0x47b0 00004ad9: JUMP 00004ada: STOP 00004adb: LOG1 00004adc: PUSH6 0x627a7a723058 00004ae3: KECCAK256 00004ae4: CALLDATACOPY 00004ae5: SSTORE 00004ae6: SWAP7 00004ae7: UNKNOWN(0xF6) 00004ae8: GASLIMIT 00004ae9: UNKNOWN(0xAB) 00004aea: ISZERO 00004aeb: UNKNOWN(0xB0) 00004aec: UNKNOWN(0x0F) 00004aed: UNKNOWN(0xC8) 00004aee: NOT 00004aef: DUP13 00004af0: SUB 00004af1: DIV 00004af2: UNKNOWN(0xAF) 00004af3: UNKNOWN(0xD3) 00004af4: SLOAD 00004af5: EXP 00004af6: GAS 00004af7: UNKNOWN(0xCE) 00004af8: CALLDATALOAD 00004af9: EXTCODECOPY 00004afa: UNKNOWN(0x4F) 00004afb: JUMP 00004afc: SWAP13 00004afd: MSTORE 00004afe: EXTCODESIZE 00004aff: UNKNOWN(0xD0) 00004b00: INVALID 00004b01: DUP7 00004b02: SWAP8 00004b03: ADDRESS 00004b04: STOP 00004b05: UNKNOWN(0x29)
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | reentrancy | codex | Reentrancy via transfer-out before state updates in borrow/withdraw | 85 | no | — |
viewevidence_json{
"evidence": "`borrow` and `withdraw` perform `doTransferOut` and only update market/user storage afterwards, leaving a reentrancy window.",
"locations": [
"contracts/Contract.sol:1734",
"contracts/Contract.sol:2646"
],
"recommendation": "Apply checks-effects-interactions: update market/user balances before calling `doTransferOut`, or add a reentrancy guard around state-changing entry points. Alternatively, restrict supported assets to ERC20s without callbacks.",
"exploit_scenario": "An attacker contract borrows or withdraws an asset that triggers a callback on transfer (e.g., ERC777-style hooks). During `doTransferOut`, the token or recipient hook reenters `borrow`/`withdraw` before the protocol updates market and user balances. Because the checks still see the old balances, the attacker can repeatedly borrow/withdraw in a single transaction and drain available cash."
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x280a3d8a1db78e1d6444b74eec2e9624438081c33959a263a62e43163561d0b9
call_targets:
0x3fda67f7583380e67ef93072294a7fac882fd7e7
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x280a3d8a1db78e1d6444b74eec2e9624438081c33959a263a62e43163561d0b9",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x3fda67f7583380e67ef93072294a7fac882fd7e7"
],
"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": "0x118e31b7",
"selector": "0x118e31b7",
"calldata_variants": [
"0x118e31b7",
"0x118e31b70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x24021127",
"selector": "0x24021127",
"calldata_variants": [
"0x24021127",
"0x240211270000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x26617c28",
"selector": "0x26617c28",
"calldata_variants": [
"0x26617c28",
"0x26617c280000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x26782247",
"selector": "0x26782247",
"calldata_variants": [
"0x26782247",
"0x267822470000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3be59443",
"selector": "0x3be59443",
"calldata_variants": [
"0x3be59443",
"0x3be594430000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4706c375",
"selector": "0x4706c375",
"calldata_variants": [
"0x4706c375",
"0x4706c3750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4b8a3529",
"selector": "0x4b8a3529",
"calldata_variants": [
"0x4b8a3529",
"0x4b8a35290000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5c975abb",
"selector": "0x5c975abb",
"calldata_variants": [
"0x5c975abb",
"0x5c975abb0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2182,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3473,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3654,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 18,
"guards_detected": [],
"untrusted_call_count": 18
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x280a3d8a1db78e1d6444b74eec2e9624438081c33959a263a62e43163561d0b9
call_targets:
0x3fda67f7583380e67ef93072294a7fac882fd7e7
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x280a3d8a1db78e1d6444b74eec2e9624438081c33959a263a62e43163561d0b9",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x3fda67f7583380e67ef93072294a7fac882fd7e7"
],
"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": "0x118e31b7",
"selector": "0x118e31b7",
"calldata_variants": [
"0x118e31b7",
"0x118e31b70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x24021127",
"selector": "0x24021127",
"calldata_variants": [
"0x24021127",
"0x240211270000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x26617c28",
"selector": "0x26617c28",
"calldata_variants": [
"0x26617c28",
"0x26617c280000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x26782247",
"selector": "0x26782247",
"calldata_variants": [
"0x26782247",
"0x267822470000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3be59443",
"selector": "0x3be59443",
"calldata_variants": [
"0x3be59443",
"0x3be594430000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4706c375",
"selector": "0x4706c375",
"calldata_variants": [
"0x4706c375",
"0x4706c3750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4b8a3529",
"selector": "0x4b8a3529",
"calldata_variants": [
"0x4b8a3529",
"0x4b8a35290000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5c975abb",
"selector": "0x5c975abb",
"calldata_variants": [
"0x5c975abb",
"0x5c975abb0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2182,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3473,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3654,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 18,
"guards_detected": []
}
|
| medium | other | codex | Fee-on-transfer tokens can mint unbacked balances due to assuming full transfer-in amount | 75 | no | — |
viewevidence_json{
"evidence": "`doTransferIn` only inspects return data and never checks the actual balance delta; supply/repay calculations use the requested `amount` before the transfer occurs.",
"locations": [
"contracts/Contract.sol:396",
"contracts/Contract.sol:401",
"contracts/Contract.sol:1538",
"contracts/Contract.sol:1552",
"contracts/Contract.sol:1976"
],
"recommendation": "Use balance-delta accounting for transfer-ins (record `cashBefore`, execute transfer, compute `cashAfter - cashBefore` and use that actual amount). Consider rejecting fee-on-transfer/deflationary tokens at listing time.",
"exploit_scenario": "If a supported asset charges a transfer fee, a user can supply or repay using `amount` while the protocol receives less. The contract credits the full `amount` to supply or reduces borrow by the full `amount`, creating unbacked balances. The attacker can then borrow other assets or withdraw more than the protocol actually holds, leading to insolvency."
}
|
| 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": 20
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 18
}
|