2e4ab9d0-0558-46fd-8907-47cce41a791e
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 |
|---|---|---|---|---|
| 30483 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 103757 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 103758 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 103759 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 103760 | capability.graph | complete | 1 / 3 | 1 week ago |
| 103761 | detector.run | complete | 1 / 3 | 1 week ago |
| 103762 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:491187] OpenAI Codex v0.77.0 (research preview)
[codex:491187] --------
[codex:491187] workdir: /tmp/codex-multi-9sqbrubg
[codex:491187] model: gpt-5.2-codex
[codex:491187] provider: openai
[codex:491187] approval: never
[codex:491187] sandbox: read-only
[codex:491187] reasoning effort: xhigh
[codex:491187] reasoning summaries: auto
[codex:491187] session id: 019b6a27-8438-7633-a966-cdce117eb974
[codex:491187] --------
[codex:491187] user
[codex:491187] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:491187] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:491187] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:491187]
[codex:491187] Scope rules:
[codex:491187] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:491187] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:491187]
[codex:491187] Output MUST be valid JSON matching the provided schema.
[codex:491187] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:491187] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:491187]
[codex:491187] Output constraints (IMPORTANT):
[codex:491187] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:491187] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:491187] mcp startup: no servers
[codex:491187]
[codex:491187] thinking
[codex:491187] **Reading AUDIT_BUNDLE.txt file**
[codex:491187] exec
[codex:491187] /bin/bash -lc ls in /tmp/codex-multi-9sqbrubg succeeded in 5ms:
[codex:491187] AUDIT_BUNDLE.txt
[codex:491187] codex-output-schema.json
[codex:491187] contracts
[codex:491187] exec
[codex:491187] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:491187]
[codex:491187] ================================================================================
[codex:491187] FILE: contracts/Contract.sol
[codex:491187] ================================================================================
[codex:491187] /**
[codex:491187] *Submitted for verification at Etherscan.io on 2019-05-07
[codex:491187] */
[codex:491187]
[codex:491187] // File: contracts/ComptrollerInterface.sol
[codex:491187]
[codex:491187] pragma solidity ^0.5.8;
[codex:491187]
[codex:491187] interface ComptrollerInterface {
[codex:491187] /**
[codex:491187] * @notice Marker function used for light validation when updating the comptroller of a market
[codex:491187] * @dev Implementations should simply return true.
[codex:491187] * @return true
[codex:491187] */
[codex:491187] function isComptroller() external view returns (bool);
[codex:491187]
[codex:491187] thinking
[codex:491187] **Preparing to fully analyze large audit bundle**
[codex:491187]
[codex:491187] I’m making sure to read the entire AUDIT_BUNDLE.txt without missing anything, since the tool output was truncated. I plan to systematically search and parse the complete file—using line counts, sed excerpts, and ripgrep—to identify contract boundaries and focus on key vulnerability patterns like reentrancy and access control. This looks like Compound-style code, so I want to verify each segment carefully.
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 7ms:
[codex:491187] 4:FILE: contracts/Contract.sol
[codex:491187]
[codex:491187] thinking
[codex:491187] **Planning contract file inspection**
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 7ms:
[codex:491187] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:491187]
[codex:491187] ================================================================================
[codex:491187] FILE: contracts/Contract.sol
[codex:491187] ================================================================================
[codex:491187] /**
[codex:491187] *Submitted for verification at Etherscan.io on 2019-05-07
[codex:491187] */
[codex:491187]
[codex:491187] // File: contracts/ComptrollerInterface.sol
[codex:491187]
[codex:491187] pragma solidity ^0.5.8;
[codex:491187]
[codex:491187] interface ComptrollerInterface {
[codex:491187] /**
[codex:491187] * @notice Marker function used for light validation when updating the comptroller of a market
[codex:491187] * @dev Implementations should simply return true.
[codex:491187] * @return true
[codex:491187] */
[codex:491187] function isComptroller() external view returns (bool);
[codex:491187]
[codex:491187] thinking
[codex:491187] **Searching for reentrancy protections**
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "nonReentrant|reentr" AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] 744: * @title Helps contracts guard against reentrancy attacks.
[codex:491187] 746: * @dev If you mark a function `nonReentrant`, you should also
[codex:491187] 761: * Calling a `nonReentrant` function from another `nonReentrant`
[codex:491187] 763: * by making the `nonReentrant` function external, and make it call a
[codex:491187] 766: modifier nonReentrant() {
[codex:491187] 1116: function transfer(address dst, uint256 amount) external nonReentrant returns (bool) {
[codex:491187] 1127: function transferFrom(address src, address dst, uint256 amount) external nonReentrant returns (bool) {
[codex:491187] 1256: function totalBorrowsCurrent() external nonReentrant returns (uint) {
[codex:491187] 1266: function borrowBalanceCurrent(address account) external nonReentrant returns (uint) {
[codex:491187] 1323: function exchangeRateCurrent() public nonReentrant returns (uint) {
[codex:491187] 1475: function mintInternal(uint mintAmount) internal nonReentrant returns (uint) {
[codex:491187] 1586: function redeemInternal(uint redeemTokens) internal nonReentrant returns (uint) {
[codex:491187] 1602: function redeemUnderlyingInternal(uint redeemAmount) internal nonReentrant returns (uint) {
[codex:491187] 1733: function borrowInternal(uint borrowAmount) internal nonReentrant returns (uint) {
[codex:491187] 1828: function repayBorrowInternal(uint repayAmount) internal nonReentrant returns (uint) {
[codex:491187] 1844: function repayBorrowBehalfInternal(address borrower, uint repayAmount) internal nonReentrant returns (uint) {
[codex:491187] 1958: function liquidateBorrowInternal(address borrower, uint repayAmount, CToken cTokenCollateral) internal nonReentrant returns (uint) {
[codex:491187] 2055: function seize(address liquidator, address borrower, uint seizeTokens) external nonReentrant returns (uint) {
[codex:491187] 2188: function _setReserveFactor(uint newReserveFactorMantissa) external nonReentrant returns (uint) {
[codex:491187] 2233: function _reduceReserves(uint reduceAmount) external nonReentrant returns (uint) {
[codex:491187]
[codex:491187] thinking
[codex:491187] **Checking for delegatecall vulnerabilities**
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "delegatecall|delegate" AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg exited 1 in 6ms:
[codex:491187]
[codex:491187]
[codex:491187] thinking
[codex:491187] **Checking for proxy or implementation patterns**
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "implement|proxy|delegate" AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 7ms:
[codex:491187] 782: * @dev These functions are specifically not marked `pure` as implementations of this
[codex:491187]
[codex:491187] thinking
[codex:491187] **Inspecting reentrancy guard and potential vulnerabilities**
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '700,900p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 5ms:
[codex:491187] */
[codex:491187] function transfer(address dst, uint256 amount) external;
[codex:491187]
[codex:491187] ///
[codex:491187] /// !!!!!!!!!!!!!!
[codex:491187] /// !!! NOTICE !!! `transferFrom` does not return a value, in violation of the ERC-20 specification
[codex:491187] /// !!!!!!!!!!!!!!
[codex:491187] ///
[codex:491187]
[codex:491187] /**
[codex:491187] * @notice Transfer `amount` tokens from `src` to `dst`
[codex:491187] * @param src The address of the source account
[codex:491187] * @param dst The address of the destination account
[codex:491187] * @param amount The number of tokens to transfer
[codex:491187] */
[codex:491187] function transferFrom(address src, address dst, uint256 amount) external;
[codex:491187]
[codex:491187] /**
[codex:491187] * @notice Approve `spender` to transfer up to `amount` from `src`
[codex:491187] * @dev This will overwrite the approval amount for `spender`
[codex:491187]
[codex:491187] thinking
[codex:491187] **Analyzing token transfer vulnerabilities**
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "doTransferIn|doTransferOut" AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] 1555: * We call doTransferIn for the minter and the mintAmount
[codex:491187] 1558: * If doTransferIn fails despite the fact we checked pre-conditions,
[codex:491187] 1561: vars.err = doTransferIn(minter, mintAmount);
[codex:491187] 1705: * We invoke doTransferOut for the redeemer and the redeemAmount.
[codex:491187] 1708: * If doTransferOut fails despite the fact we checked pre-conditions,
[codex:491187] 1711: vars.err = doTransferOut(redeemer, vars.redeemAmount);
[codex:491187] 1800: * We invoke doTransferOut for the borrower and the borrowAmount.
[codex:491187] 1803: * If doTransferOut fails despite the fact we checked pre-conditions,
[codex:491187] 1806: vars.err = doTransferOut(borrower, borrowAmount);
[codex:491187] 1927: * We call doTransferIn for the payer and the repayAmount
[codex:491187] 1930: * If doTransferIn fails despite the fact we checked pre-conditions,
[codex:491187] 1933: vars.err = doTransferIn(payer, vars.repayAmount);
[codex:491187] 2287: // invoke doTransferOut(reduceAmount, admin)
[codex:491187] 2288: err = doTransferOut(admin, reduceAmount);
[codex:491187] 2370: function doTransferIn(address from, uint amount) internal returns (Error);
[codex:491187] 2377: function doTransferOut(address payable to, uint amount) internal returns (Error);
[codex:491187] 2531: function doTransferIn(address from, uint amount) internal returns (Error) {
[codex:491187] 2568: function doTransferOut(address payable to, uint amount) internal returns (Error) {
[codex:491187]
[codex:491187] thinking
[codex:491187] **Inspecting mintFresh function**
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '1480,1680p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] }
[codex:491187] // mintFresh emits the actual Mint event if successful and logs on errors, so we don't need to
[codex:491187] return mintFresh(msg.sender, mintAmount);
[codex:491187] }
[codex:491187]
[codex:491187] struct MintLocalVars {
[codex:491187] Error err;
[codex:491187] MathError mathErr;
[codex:491187] uint exchangeRateMantissa;
[codex:491187] uint mintTokens;
[codex:491187] uint totalSupplyNew;
[codex:491187] uint accountTokensNew;
[codex:491187] }
[codex:491187]
[codex:491187] /**
[codex:491187] * @notice User supplies assets into the market and receives cTokens in exchange
[codex:491187] * @dev Assumes interest has already been accrued up to the current block
[codex:491187] * @param minter The address of the account which is supplying the assets
[codex:491187] * @param mintAmount The amount of the underlying asset to supply
[codex:491187] * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:491187]
[codex:491187] thinking
[codex:491187] **Examining token transfer and reentrancy risks**
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "CEther|Ether" AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] 7: *Submitted for verification at Etherscan.io on 2019-05-07
[codex:491187]
[codex:491187] thinking
[codex:491187] **Investigating CEther absence and signature validations**
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "signature|sig|permit|ecrecover|nonce" AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 7ms:
[codex:491187] 185: * This is because FailureInfo grows significantly faster, and
[codex:491187] 454: * @dev Multiply an Exp by a scalar, then truncate to return an unsigned integer.
[codex:491187] 466: * @dev Multiply an Exp by a scalar, truncate, then add an to an unsigned integer, returning an unsigned integer.
[codex:491187] 510: * @dev Divide a scalar by an Exp, then truncate to return an unsigned integer.
[codex:491187]
[codex:491187] thinking
[codex:491187] **Searching for PriceOracle references**
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "Oracle|Price" AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg exited 1 in 6ms:
[codex:491187]
[codex:491187]
[codex:491187] thinking
[codex:491187] **Searching for Comptroller references**
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "Comptroller" AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] 10:// File: contracts/ComptrollerInterface.sol
[codex:491187] 14:interface ComptrollerInterface {
[codex:491187] 20: function isComptroller() external view returns (bool);
[codex:491187] 92:contract ComptrollerErrorReporter {
[codex:491187] 866: ComptrollerInterface public comptroller;
[codex:491187] 982: event NewComptroller(ComptrollerInterface oldComptroller, ComptrollerInterface newComptroller);
[codex:491187] 1002: * @param comptroller_ The address of the Comptroller
[codex:491187] 1009: constructor(ComptrollerInterface comptroller_,
[codex:491187] 1023: uint err = _setComptroller(comptroller_);
[codex:491187] 2164: function _setComptroller(ComptrollerInterface newComptroller) public returns (uint) {
[codex:491187] 2170: ComptrollerInterface oldComptroller = comptroller;
[codex:491187] 2171: // Ensure invoke comptroller.isComptroller() returns true
[codex:491187] 2172: require(newComptroller.isComptroller(), "marker method returned false");
[codex:491187] 2174: // Set market's comptroller to newComptroller
[codex:491187] 2175: comptroller = newComptroller;
[codex:491187] 2177: // Emit NewComptroller(oldComptroller, newComptroller)
[codex:491187] 2178: emit NewComptroller(oldComptroller, newComptroller);
[codex:491187] 2400: * @param comptroller_ The address of the Comptroller
[codex:491187] 2408: ComptrollerInterface comptroller_,
[codex:491187]
[codex:491187] thinking
[codex:491187] **Analyzing admin function vulnerabilities**
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "acceptAdmin|pendingAdmin|_setPendingAdmin" AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] 861: address payable public pendingAdmin;
[codex:491187] 970: * @notice Event emitted when pendingAdmin is changed
[codex:491187] 975: * @notice Event emitted when pendingAdmin is accepted, which means admin is updated
[codex:491187] 2107: * @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
[codex:491187] 2108: * @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
[codex:491187] 2114: function _setPendingAdmin(address payable newPendingAdmin) external returns (uint) {
[codex:491187] 2121: address oldPendingAdmin = pendingAdmin;
[codex:491187] 2123: // Store pendingAdmin with value newPendingAdmin
[codex:491187] 2124: pendingAdmin = newPendingAdmin;
[codex:491187] 2133: * @notice Accepts transfer of admin rights. msg.sender must be pendingAdmin
[codex:491187] 2137: function _acceptAdmin() external returns (uint) {
[codex:491187] 2138: // Check caller is pendingAdmin and pendingAdmin ≠ address(0)
[codex:491187] 2139: if (msg.sender != pendingAdmin || msg.sender == address(0)) {
[codex:491187] 2145: address oldPendingAdmin = pendingAdmin;
[codex:491187] 2147: // Store admin with value pendingAdmin
[codex:491187] 2148: admin = pendingAdmin;
[codex:491187] 2151: pendingAdmin = address(0);
[codex:491187] 2154: emit NewPendingAdmin(oldPendingAdmin, pendingAdmin);
[codex:491187]
[codex:491187] thinking
[codex:491187] **Reviewing _setPendingAdmin and _acceptAdmin functions**
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '2080,2160p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187]
[codex:491187] (mathErr, liquidatorTokensNew) = addUInt(accountTokens[liquidator], seizeTokens);
[codex:491187] if (mathErr != MathError.NO_ERROR) {
[codex:491187] return failOpaque(Error.MATH_ERROR, FailureInfo.LIQUIDATE_SEIZE_BALANCE_INCREMENT_FAILED, uint(mathErr));
[codex:491187] }
[codex:491187]
[codex:491187] /////////////////////////
[codex:491187] // EFFECTS & INTERACTIONS
[codex:491187] // (No safe failures beyond this point)
[codex:491187]
[codex:491187] /* We write the previously calculated values into storage */
[codex:491187] accountTokens[borrower] = borrowerTokensNew;
[codex:491187] accountTokens[liquidator] = liquidatorTokensNew;
[codex:491187]
[codex:491187] /* Emit a Transfer event */
[codex:491187] emit Transfer(borrower, liquidator, seizeTokens);
[codex:491187]
[codex:491187] /* We call the defense hook */
[codex:491187] comptroller.seizeVerify(address(this), msg.sender, liquidator, borrower, seizeTokens);
[codex:491187]
[codex:491187]
[codex:491187] thinking
[codex:491187] **Inspecting transfer functions in CToken**
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '1080,1180p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] if (mathErr != MathError.NO_ERROR) {
[codex:491187] return fail(Error.MATH_ERROR, FailureInfo.TRANSFER_NOT_ENOUGH);
[codex:491187] }
[codex:491187]
[codex:491187] (mathErr, dstTokensNew) = addUInt(accountTokens[dst], tokens);
[codex:491187] if (mathErr != MathError.NO_ERROR) {
[codex:491187] return fail(Error.MATH_ERROR, FailureInfo.TRANSFER_TOO_MUCH);
[codex:491187] }
[codex:491187]
[codex:491187] /////////////////////////
[codex:491187] // EFFECTS & INTERACTIONS
[codex:491187] // (No safe failures beyond this point)
[codex:491187]
[codex:491187] accountTokens[src] = srcTokensNew;
[codex:491187] accountTokens[dst] = dstTokensNew;
[codex:491187]
[codex:491187] /* Eat some of the allowance (if necessary) */
[codex:491187] if (startingAllowance != uint(-1)) {
[codex:491187] transferAllowances[src][spender] = allowanceNew;
[codex:491187] }
[codex:491187]
[codex:491187] thinking
[codex:491187] **Verifying external calls ordering**
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '1720,1840p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 5ms:
[codex:491187] emit Redeem(redeemer, vars.redeemAmount, vars.redeemTokens);
[codex:491187]
[codex:491187] /* We call the defense hook */
[codex:491187] comptroller.redeemVerify(address(this), redeemer, vars.redeemAmount, vars.redeemTokens);
[codex:491187]
[codex:491187] return uint(Error.NO_ERROR);
[codex:491187] }
[codex:491187]
[codex:491187] /**
[codex:491187] * @notice Sender borrows assets from the protocol to their own address
[codex:491187] * @param borrowAmount The amount of the underlying asset to borrow
[codex:491187] * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:491187] */
[codex:491187] function borrowInternal(uint borrowAmount) internal nonReentrant returns (uint) {
[codex:491187] uint error = accrueInterest();
[codex:491187] if (error != uint(Error.NO_ERROR)) {
[codex:491187] // accrueInterest emits logs on errors, but we still want to log the fact that an attempted borrow failed
[codex:491187] return fail(Error(error), FailureInfo.BORROW_ACCRUE_INTEREST_FAILED);
[codex:491187] }
[codex:491187] // borrowFresh emits borrow-specific logs on errors, so we don't need to
[codex:491187]
[codex:491187] thinking
[codex:491187] **Analyzing transfer and reentrancy order**
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '1840,2005p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] * @param borrower the account with the debt being payed off
[codex:491187] * @param repayAmount The amount to repay
[codex:491187] * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:491187] */
[codex:491187] function repayBorrowBehalfInternal(address borrower, uint repayAmount) internal nonReentrant returns (uint) {
[codex:491187] uint error = accrueInterest();
[codex:491187] if (error != uint(Error.NO_ERROR)) {
[codex:491187] // accrueInterest emits logs on errors, but we still want to log the fact that an attempted borrow failed
[codex:491187] return fail(Error(error), FailureInfo.REPAY_BEHALF_ACCRUE_INTEREST_FAILED);
[codex:491187] }
[codex:491187] // repayBorrowFresh emits repay-borrow-specific logs on errors, so we don't need to
[codex:491187] return repayBorrowFresh(msg.sender, borrower, repayAmount);
[codex:491187] }
[codex:491187]
[codex:491187] struct RepayBorrowLocalVars {
[codex:491187] Error err;
[codex:491187] MathError mathErr;
[codex:491187] uint repayAmount;
[codex:491187] uint borrowerIndex;
[codex:491187] uint accountBorrows;
[codex:491187]
[codex:491187] thinking
[codex:491187] **Ensuring liquidation uses seize and external calls**
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '2005,2105p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 5ms:
[codex:491187]
[codex:491187] /* Fail if repayAmount = 0 */
[codex:491187] if (repayAmount == 0) {
[codex:491187] return fail(Error.INVALID_CLOSE_AMOUNT_REQUESTED, FailureInfo.LIQUIDATE_CLOSE_AMOUNT_IS_ZERO);
[codex:491187] }
[codex:491187]
[codex:491187] /* Fail if repayAmount = -1 */
[codex:491187] if (repayAmount == uint(-1)) {
[codex:491187] return fail(Error.INVALID_CLOSE_AMOUNT_REQUESTED, FailureInfo.LIQUIDATE_CLOSE_AMOUNT_IS_UINT_MAX);
[codex:491187] }
[codex:491187]
[codex:491187] /* We calculate the number of collateral tokens that will be seized */
[codex:491187] (uint amountSeizeError, uint seizeTokens) = comptroller.liquidateCalculateSeizeTokens(address(this), address(cTokenCollateral), repayAmount);
[codex:491187] if (amountSeizeError != 0) {
[codex:491187] return failOpaque(Error.COMPTROLLER_CALCULATION_ERROR, FailureInfo.LIQUIDATE_COMPTROLLER_CALCULATE_AMOUNT_SEIZE_FAILED, amountSeizeError);
[codex:491187] }
[codex:491187]
[codex:491187] /* Fail if seizeTokens > borrower collateral token balance */
[codex:491187] if (seizeTokens > cTokenCollateral.balanceOf(borrower)) {
[codex:491187] return fail(Error.TOKEN_INSUFFICIENT_BALANCE, FailureInfo.LIQUIDATE_SEIZE_TOO_MUCH);
[codex:491187]
[codex:491187] thinking
[codex:491187] **Inspecting interest accrual logic**
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "accrueInterest" AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] 1257: require(accrueInterest() == uint(Error.NO_ERROR), "accrue interest failed");
[codex:491187] 1267: require(accrueInterest() == uint(Error.NO_ERROR), "accrue interest failed");
[codex:491187] 1324: require(accrueInterest() == uint(Error.NO_ERROR), "accrue interest failed");
[codex:491187] 1403: function accrueInterest() public returns (uint) {
[codex:491187] 1476: uint error = accrueInterest();
[codex:491187] 1478: // accrueInterest emits logs on errors, but we still want to log the fact that an attempted borrow failed
[codex:491187] 1587: uint error = accrueInterest();
[codex:491187] 1589: // accrueInterest emits logs on errors, but we still want to log the fact that an attempted redeem failed
[codex:491187] 1603: uint error = accrueInterest();
[codex:491187] 1605: // accrueInterest emits logs on errors, but we still want to log the fact that an attempted redeem failed
[codex:491187] 1734: uint error = accrueInterest();
[codex:491187] 1736: // accrueInterest emits logs on errors, but we still want to log the fact that an attempted borrow failed
[codex:491187] 1829: uint error = accrueInterest();
[codex:491187] 1831: // accrueInterest emits logs on errors, but we still want to log the fact that an attempted borrow failed
[codex:491187] 1845: uint error = accrueInterest();
[codex:491187] 1847: // accrueInterest emits logs on errors, but we still want to log the fact that an attempted borrow failed
[codex:491187] 1959: uint error = accrueInterest();
[codex:491187] 1961: // accrueInterest emits logs on errors, but we still want to log the fact that an attempted liquidation failed
[codex:491187] 1965: error = cTokenCollateral.accrueInterest();
[codex:491187] 1967: // accrueInterest emits logs on errors, but we still want to log the fact that an attempted liquidation failed
[codex:491187]
[codex:491187] thinking
[codex:491187] **Inspecting accrueInterest function**
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '1360,1475p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187]
[codex:491187] (mathErr, cashPlusBorrowsMinusReserves) = addThenSubUInt(totalCash, totalBorrows, totalReserves);
[codex:491187] if (mathErr != MathError.NO_ERROR) {
[codex:491187] return (mathErr, 0);
[codex:491187] }
[codex:491187]
[codex:491187] (mathErr, exchangeRate) = getExp(cashPlusBorrowsMinusReserves, totalSupply);
[codex:491187] if (mathErr != MathError.NO_ERROR) {
[codex:491187] return (mathErr, 0);
[codex:491187] }
[codex:491187]
[codex:491187] return (MathError.NO_ERROR, exchangeRate.mantissa);
[codex:491187] }
[codex:491187] }
[codex:491187]
[codex:491187] /**
[codex:491187] * @notice Get cash balance of this cToken in the underlying asset
[codex:491187] * @return The quantity of underlying asset owned by this contract
[codex:491187] */
[codex:491187] function getCash() external view returns (uint) {
[codex:491187]
[codex:491187] thinking
[codex:491187] **Reviewing transferTokens and exchangeRateStoredInternal**
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "exchangeRateStoredInternal" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] 1196: (mErr, exchangeRateMantissa) = exchangeRateStoredInternal();
[codex:491187] 1334: (MathError err, uint result) = exchangeRateStoredInternal();
[codex:491187] 1335: require(err == MathError.NO_ERROR, "exchangeRateStored: exchangeRateStoredInternal failed");
[codex:491187] 1344: function exchangeRateStoredInternal() internal view returns (MathError, uint) {
[codex:491187] 1525: (vars.mathErr, vars.exchangeRateMantissa) = exchangeRateStoredInternal();
[codex:491187] 1636: (vars.mathErr, vars.exchangeRateMantissa) = exchangeRateStoredInternal();
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '1320,1365p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] * @notice Accrue interest then return the up-to-date exchange rate
[codex:491187] * @return Calculated exchange rate scaled by 1e18
[codex:491187] */
[codex:491187] function exchangeRateCurrent() public nonReentrant returns (uint) {
[codex:491187] require(accrueInterest() == uint(Error.NO_ERROR), "accrue interest failed");
[codex:491187] return exchangeRateStored();
[codex:491187] }
[codex:491187]
[codex:491187] /**
[codex:491187] * @notice Calculates the exchange rate from the underlying to the CToken
[codex:491187] * @dev This function does not accrue interest before calculating the exchange rate
[codex:491187] * @return Calculated exchange rate scaled by 1e18
[codex:491187] */
[codex:491187] function exchangeRateStored() public view returns (uint) {
[codex:491187] (MathError err, uint result) = exchangeRateStoredInternal();
[codex:491187] require(err == MathError.NO_ERROR, "exchangeRateStored: exchangeRateStoredInternal failed");
[codex:491187] return result;
[codex:491187] }
[codex:491187]
[codex:491187] /**
[codex:491187]
[codex:491187] thinking
[codex:491187] **Analyzing potential reentrancy and admin risks**
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '1040,1105p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 5ms:
[codex:491187] * @notice Transfer `tokens` tokens from `src` to `dst` by `spender`
[codex:491187] * @dev Called by both `transfer` and `transferFrom` internally
[codex:491187] * @param spender The address of the account performing the transfer
[codex:491187] * @param src The address of the source account
[codex:491187] * @param dst The address of the destination account
[codex:491187] * @param tokens The number of tokens to transfer
[codex:491187] * @return Whether or not the transfer succeeded
[codex:491187] */
[codex:491187] function transferTokens(address spender, address src, address dst, uint tokens) internal returns (uint) {
[codex:491187] /* Fail if transfer not allowed */
[codex:491187] uint allowed = comptroller.transferAllowed(address(this), src, dst, tokens);
[codex:491187] if (allowed != 0) {
[codex:491187] return failOpaque(Error.COMPTROLLER_REJECTION, FailureInfo.TRANSFER_COMPTROLLER_REJECTION, allowed);
[codex:491187] }
[codex:491187]
[codex:491187] /* Do not allow self-transfers */
[codex:491187] if (src == dst) {
[codex:491187] return fail(Error.BAD_INPUT, FailureInfo.TRANSFER_NOT_ALLOWED);
[codex:491187] }
[codex:491187]
[codex:491187]
[codex:491187] thinking
[codex:491187] **Analyzing potential reentrancy and token transfer risks**
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '960,1045p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 5ms:
[codex:491187]
[codex:491187] /**
[codex:491187] * @notice Event emitted when a borrow is liquidated
[codex:491187] */
[codex:491187] event LiquidateBorrow(address liquidator, address borrower, uint repayAmount, address cTokenCollateral, uint seizeTokens);
[codex:491187]
[codex:491187]
[codex:491187] /*** Admin Events ***/
[codex:491187]
[codex:491187] /**
[codex:491187] * @notice Event emitted when pendingAdmin is changed
[codex:491187] */
[codex:491187] event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);
[codex:491187]
[codex:491187] /**
[codex:491187] * @notice Event emitted when pendingAdmin is accepted, which means admin is updated
[codex:491187] */
[codex:491187] event NewAdmin(address oldAdmin, address newAdmin);
[codex:491187]
[codex:491187] /**
[codex:491187]
[codex:491187] thinking
[codex:491187] **Checking for getBlockNumber override**
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "getBlockNumber" AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] 1027: accrualBlockNumber = getBlockNumber();
[codex:491187] 1208: function getBlockNumber() internal view returns (uint) {
[codex:491187] 1414: vars.currentBlockNumber = getBlockNumber();
[codex:491187] 1509: if (accrualBlockNumber != getBlockNumber()) {
[codex:491187] 1676: if (accrualBlockNumber != getBlockNumber()) {
[codex:491187] 1764: if (accrualBlockNumber != getBlockNumber()) {
[codex:491187] 1879: if (accrualBlockNumber != getBlockNumber()) {
[codex:491187] 1992: if (accrualBlockNumber != getBlockNumber()) {
[codex:491187] 1997: if (cTokenCollateral.accrualBlockNumber() != getBlockNumber()) {
[codex:491187] 2210: if (accrualBlockNumber != getBlockNumber()) {
[codex:491187] 2260: if (accrualBlockNumber != getBlockNumber()) {
[codex:491187] 2330: if (accrualBlockNumber != getBlockNumber()) {
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '1180,1235p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 5ms:
[codex:491187] * @dev This is used by comptroller to more efficiently perform liquidity checks.
[codex:491187] * @param account Address of the account to snapshot
[codex:491187] * @return (possible error, token balance, borrow balance, exchange rate mantissa)
[codex:491187] */
[codex:491187] function getAccountSnapshot(address account) external view returns (uint, uint, uint, uint) {
[codex:491187] uint cTokenBalance = accountTokens[account];
[codex:491187] uint borrowBalance;
[codex:491187] uint exchangeRateMantissa;
[codex:491187]
[codex:491187] MathError mErr;
[codex:491187]
[codex:491187] (mErr, borrowBalance) = borrowBalanceStoredInternal(account);
[codex:491187] if (mErr != MathError.NO_ERROR) {
[codex:491187] return (uint(Error.MATH_ERROR), 0, 0, 0);
[codex:491187] }
[codex:491187]
[codex:491187] (mErr, exchangeRateMantissa) = exchangeRateStoredInternal();
[codex:491187] if (mErr != MathError.NO_ERROR) {
[codex:491187] return (uint(Error.MATH_ERROR), 0, 0, 0);
[codex:491187] }
[codex:491187]
[codex:491187] thinking
[codex:491187] **Analyzing reentrancy and access control implications**
[codex:491187]
[codex:491187] I’m tracing how the ReentrancyGuard’s post-exit check allows some reentrant execution but ultimately reverts state if violated, so it seems safe barring unusual side effects like selfdestruct. I’m also inspecting public but unchecked functions like `_setInterestRateModel` and the impact of external calls—especially to underlying token’s `balanceOf`—which could reenter during interest accrual, potentially causing state inconsistencies though guarded indirectly during typical flows. There’s a subtle interplay of external calls, reentrancy guards, and nonreverted error returns in token transfers worth deeper review.
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '1660,1725p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 5ms:
[codex:491187]
[codex:491187] (vars.mathErr, vars.redeemTokens) = divScalarByExpTruncate(redeemAmountIn, Exp({mantissa: vars.exchangeRateMantissa}));
[codex:491187] if (vars.mathErr != MathError.NO_ERROR) {
[codex:491187] return failOpaque(Error.MATH_ERROR, FailureInfo.REDEEM_EXCHANGE_AMOUNT_CALCULATION_FAILED, uint(vars.mathErr));
[codex:491187] }
[codex:491187]
[codex:491187] vars.redeemAmount = redeemAmountIn;
[codex:491187] }
[codex:491187]
[codex:491187] /* Fail if redeem not allowed */
[codex:491187] uint allowed = comptroller.redeemAllowed(address(this), redeemer, vars.redeemTokens);
[codex:491187] if (allowed != 0) {
[codex:491187] return failOpaque(Error.COMPTROLLER_REJECTION, FailureInfo.REDEEM_COMPTROLLER_REJECTION, allowed);
[codex:491187] }
[codex:491187]
[codex:491187] /* Verify market's block number equals current block number */
[codex:491187] if (accrualBlockNumber != getBlockNumber()) {
[codex:491187] return fail(Error.MARKET_NOT_FRESH, FailureInfo.REDEEM_FRESHNESS_CHECK);
[codex:491187] }
[codex:491187]
[codex:491187]
[codex:491187] thinking
[codex:491187] **Analyzing potential vulnerabilities and code behaviors**
[codex:491187]
[codex:491187] I'm reviewing transfer mechanisms, interest accrual logic, and external call safety to find vulnerabilities like unchecked errors or reentrancy risks. I'm also checking token interface compliance and admin controls to assess if issues like DoS or unexpected reverts could arise, while considering if state updates and external calls pose real exploit paths.
[codex:491187] exec
[codex:491187] /bin/bash -lc 'rg -n "borrowBalanceStoredInternal" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] 1191: (mErr, borrowBalance) = borrowBalanceStoredInternal(account);
[codex:491187] 1277: (MathError err, uint result) = borrowBalanceStoredInternal(account);
[codex:491187] 1278: require(err == MathError.NO_ERROR, "borrowBalanceStored: borrowBalanceStoredInternal failed");
[codex:491187] 1287: function borrowBalanceStoredInternal(address account) internal view returns (MathError, uint) {
[codex:491187] 1780: (vars.mathErr, vars.accountBorrows) = borrowBalanceStoredInternal(borrower);
[codex:491187] 1889: (vars.mathErr, vars.accountBorrows) = borrowBalanceStoredInternal(borrower);
[codex:491187] exec
[codex:491187] /bin/bash -lc "sed -n '1240,1315p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] (MathError e2, Exp memory borrowsPer) = divScalarByExp(totalBorrows, underlying);
[codex:491187] require(e2 == MathError.NO_ERROR, "supplyRatePerBlock: calculating borrowsPer failed");
[codex:491187]
[codex:491187] (MathError e3, Exp memory oneMinusReserveFactor) = subExp(Exp({mantissa: mantissaOne}), Exp({mantissa: reserveFactorMantissa}));
[codex:491187] require(e3 == MathError.NO_ERROR, "supplyRatePerBlock: calculating oneMinusReserveFactor failed");
[codex:491187]
[codex:491187] (MathError e4, Exp memory supplyRate) = mulExp3(Exp({mantissa: borrowRateMantissa}), oneMinusReserveFactor, borrowsPer);
[codex:491187] require(e4 == MathError.NO_ERROR, "supplyRatePerBlock: calculating supplyRate failed");
[codex:491187]
[codex:491187] return supplyRate.mantissa;
[codex:491187] }
[codex:491187]
[codex:491187] /**
[codex:491187] * @notice Returns the current total borrows plus accrued interest
[codex:491187] * @return The total borrows with interest
[codex:491187] */
[codex:491187] function totalBorrowsCurrent() external nonReentrant returns (uint) {
[codex:491187] require(accrueInterest() == uint(Error.NO_ERROR), "accrue interest failed");
[codex:491187] return totalBorrows;
[codex:491187] }
[codex:491187]
[codex:491187] thinking
[codex:491187] **Analyzing potential vulnerabilities and accounting issues**
[codex:491187] exec
[codex:491187] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1500,1615p'" in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] 1500 */
[codex:491187] 1501 function mintFresh(address minter, uint mintAmount) internal returns (uint) {
[codex:491187] 1502 /* Fail if mint not allowed */
[codex:491187] 1503 uint allowed = comptroller.mintAllowed(address(this), minter, mintAmount);
[codex:491187] 1504 if (allowed != 0) {
[codex:491187] 1505 return failOpaque(Error.COMPTROLLER_REJECTION, FailureInfo.MINT_COMPTROLLER_REJECTION, allowed);
[codex:491187] 1506 }
[codex:491187] 1507
[codex:491187] 1508 /* Verify market's block number equals current block number */
[codex:491187] 1509 if (accrualBlockNumber != getBlockNumber()) {
[codex:491187] 1510 return fail(Error.MARKET_NOT_FRESH, FailureInfo.MINT_FRESHNESS_CHECK);
[codex:491187] 1511 }
[codex:491187] 1512
[codex:491187] 1513 MintLocalVars memory vars;
[codex:491187] 1514
[codex:491187] 1515 /* Fail if checkTransferIn fails */
[codex:491187] 1516 vars.err = checkTransferIn(minter, mintAmount);
[codex:491187] 1517 if (vars.err != Error.NO_ERROR) {
[codex:491187] 1518 return fail(vars.err, FailureInfo.MINT_TRANSFER_IN_NOT_POSSIBLE);
[codex:491187] 1519 }
[codex:491187]
[codex:491187] thinking
[codex:491187] **Finding line numbers for doTransferIn**
[codex:491187] exec
[codex:491187] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '2485,2595p'" in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] 2485 * @param repayAmount The amount of the underlying borrowed asset to repay
[codex:491187] 2486 * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:491187] 2487 */
[codex:491187] 2488 function liquidateBorrow(address borrower, uint repayAmount, CToken cTokenCollateral) external returns (uint) {
[codex:491187] 2489 return liquidateBorrowInternal(borrower, repayAmount, cTokenCollateral);
[codex:491187] 2490 }
[codex:491187] 2491
[codex:491187] 2492 /*** Safe Token ***/
[codex:491187] 2493
[codex:491187] 2494 /**
[codex:491187] 2495 * @notice Gets balance of this contract in terms of the underlying
[codex:491187] 2496 * @dev This excludes the value of the current message, if any
[codex:491187] 2497 * @return The quantity of underlying tokens owned by this contract
[codex:491187] 2498 */
[codex:491187] 2499 function getCashPrior() internal view returns (uint) {
[codex:491187] 2500 EIP20Interface token = EIP20Interface(underlying);
[codex:491187] 2501 return token.balanceOf(address(this));
[codex:491187] 2502 }
[codex:491187] 2503
[codex:491187] 2504 /**
[codex:491187]
[codex:491187] thinking
[codex:491187] **Analyzing token transfer and interest accrual risks**
[codex:491187] exec
[codex:491187] /bin/bash -lc 'tail -n 200 AUDIT_BUNDLE.txt' in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] /**
[codex:491187] * @notice Construct a new money market
[codex:491187] * @param underlying_ The address of the underlying asset
[codex:491187] * @param comptroller_ The address of the Comptroller
[codex:491187] * @param interestRateModel_ The address of the interest rate model
[codex:491187] * @param initialExchangeRateMantissa_ The initial exchange rate, scaled by 1e18
[codex:491187] * @param name_ ERC-20 name of this token
[codex:491187] * @param symbol_ ERC-20 symbol of this token
[codex:491187] * @param decimals_ ERC-20 decimal precision of this token
[codex:491187] */
[codex:491187] constructor(address underlying_,
[codex:491187] ComptrollerInterface comptroller_,
[codex:491187] InterestRateModel interestRateModel_,
[codex:491187] uint initialExchangeRateMantissa_,
[codex:491187] string memory name_,
[codex:491187] string memory symbol_,
[codex:491187] uint decimals_) public
[codex:491187] CToken(comptroller_, interestRateModel_, initialExchangeRateMantissa_, name_, symbol_, decimals_) {
[codex:491187] // Set underlying
[codex:491187] underlying = underlying_;
[codex:491187]
[codex:491187] thinking
[codex:491187] **Evaluating Solidity audit findings**
[codex:491187]
[codex:491187] I’m reasoning through whether to report a vulnerability related to fee-on-transfer tokens causing accounting mismatches and potential protocol reserve loss; weighing severity as low to medium since it depends on token configuration. I’m also considering confirmed protections like nonReentrant guards, unchecked return handling, and typical Compound issues to decide what meaningful findings to present within valid JSON output constraints.
[codex:491187] exec
[codex:491187] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1860,1945p'" in /tmp/codex-multi-9sqbrubg succeeded in 6ms:
[codex:491187] 1860 uint accountBorrowsNew;
[codex:491187] 1861 uint totalBorrowsNew;
[codex:491187] 1862 }
[codex:491187] 1863
[codex:491187] 1864 /**
[codex:491187] 1865 * @notice Borrows are repaid by another user (possibly the borrower).
[codex:491187] 1866 * @param payer the account paying off the borrow
[codex:491187] 1867 * @param borrower the account with the debt being payed off
[codex:491187] 1868 * @param repayAmount the amount of undelrying tokens being returned
[codex:491187] 1869 * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:491187] 1870 */
[codex:491187] 1871 function repayBorrowFresh(address payer, address borrower, uint repayAmount) internal returns (uint) {
[codex:491187] 1872 /* Fail if repayBorrow not allowed */
[codex:491187] 1873 uint allowed = comptroller.repayBorrowAllowed(address(this), payer, borrower, repayAmount);
[codex:491187] 1874 if (allowed != 0) {
[codex:491187] 1875 return failOpaque(Error.COMPTROLLER_REJECTION, FailureInfo.REPAY_BORROW_COMPTROLLER_REJECTION, allowed);
[codex:491187] 1876 }
[codex:491187] 1877
[codex:491187] 1878 /* Verify market's block number equals current block number */
[codex:491187] 1879 if (accrualBlockNumber != getBlockNumber()) {
[codex:491187]
[codex:491187] thinking
[codex:491187] **Drafting vulnerability report JSON**
[codex:491187] codex
[codex:491187] {"no_findings":false,"summary":"Identified 1 accounting/invariant issue: ERC20 transfer-in assumes full amounts received, which breaks accounting with fee-on-transfer/deflationary tokens.","findings":[{"severity":"medium","category":"other","title":"Transfer-in accounting assumes full amounts received (fee-on-transfer tokens break invariants)","exploit_scenario":"If the underlying token charges a transfer fee or is deflationary, `doTransferIn` can succeed even when the contract receives fewer tokens than `mintAmount`/`repayAmount`. A borrower can have their debt reduced by the nominal amount while the protocol receives less, creating a shortfall. If the fee is routed to an attacker-controlled address, they can effectively underpay while capturing the fee, leading to protocol losses and potential insolvency over time.","recommendation":"Use balance-delta accounting for transfer-ins (track token balance before/after and use the actual received amount for minting and debt reduction). Alternatively, explicitly block fee-on-transfer/deflationary tokens via whitelisting and enforce standard ERC20 behavior.","evidence":"`mintFresh` and `repayBorrowFresh` compute mint/repay amounts from user input and then call `doTransferIn`, which only checks the return value and not the actual received amount; no balance-delta accounting is performed.","locations":["contracts/Contract.sol:1501","contracts/Contract.sol:1561","contracts/Contract.sol:1871","contracts/Contract.sol:1933","contracts/Contract.sol:2531"]}]}
[codex:491187] tokens used
[codex:491187] 78,274
[codex:491187] {"no_findings":false,"summary":"Identified 1 accounting/invariant issue: ERC20 transfer-in assumes full amounts received, which breaks accounting with fee-on-transfer/deflationary tokens.","findings":[{"severity":"medium","category":"other","title":"Transfer-in accounting assumes full amounts received (fee-on-transfer tokens break invariants)","exploit_scenario":"If the underlying token charges a transfer fee or is deflationary, `doTransferIn` can succeed even when the contract receives fewer tokens than `mintAmount`/`repayAmount`. A borrower can have their debt reduced by the nominal amount while the protocol receives less, creating a shortfall. If the fee is routed to an attacker-controlled address, they can effectively underpay while capturing the fee, leading to protocol losses and potential insolvency over time.","recommendation":"Use balance-delta accounting for transfer-ins (track token balance before/after and use the actual received amount for minting and debt reduction). Alternatively, explicitly block fee-on-transfer/deflationary tokens via whitelisting and enforce standard ERC20 behavior.","evidence":"`mintFresh` and `repayBorrowFresh` compute mint/repay amounts from user input and then call `doTransferIn`, which only checks the return value and not the actual received amount; no balance-delta accounting is performed.","locations":["contracts/Contract.sol:1501","contracts/Contract.sol:1561","contracts/Contract.sol:1871","contracts/Contract.sol:1933","contracts/Contract.sol:2531"]}]}
{
"codex": {
"ran_at": "2025-12-29T12:56:08.139558+00:00",
"returncode": 0
},
"summary": "Identified 1 accounting/invariant issue: ERC20 transfer-in assumes full amounts received, which breaks accounting with fee-on-transfer/deflationary tokens.",
"raw_final": {
"summary": "Identified 1 accounting/invariant issue: ERC20 transfer-in assumes full amounts received, which breaks accounting with fee-on-transfer/deflationary tokens.",
"findings": [
{
"title": "Transfer-in accounting assumes full amounts received (fee-on-transfer tokens break invariants)",
"category": "other",
"evidence": "`mintFresh` and `repayBorrowFresh` compute mint/repay amounts from user input and then call `doTransferIn`, which only checks the return value and not the actual received amount; no balance-delta accounting is performed.",
"severity": "medium",
"locations": [
"contracts/Contract.sol:1501",
"contracts/Contract.sol:1561",
"contracts/Contract.sol:1871",
"contracts/Contract.sol:1933",
"contracts/Contract.sol:2531"
],
"recommendation": "Use balance-delta accounting for transfer-ins (track token balance before/after and use the actual received amount for minting and debt reduction). Alternatively, explicitly block fee-on-transfer/deflationary tokens via whitelisting and enforce standard ERC20 behavior.",
"exploit_scenario": "If the underlying token charges a transfer fee or is deflationary, `doTransferIn` can succeed even when the contract receives fewer tokens than `mintAmount`/`repayAmount`. A borrower can have their debt reduced by the nominal amount while the protocol receives less, creating a shortfall. If the fee is routed to an attacker-controlled address, they can effectively underpay while capturing the fee, leading to protocol losses and potential insolvency over time."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x0010 0000000b: JUMPI 0000000c: PUSH1 0x00 0000000e: DUP1 0000000f: REVERT 00000010: JUMPDEST 00000011: POP 00000012: PUSH1 0x04 00000014: CALLDATASIZE 00000015: LT 00000016: PUSH2 0x028a 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x8f840ddd 00000026: GT 00000027: PUSH2 0x015c 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xc37f68e2 00000031: GT 00000032: PUSH2 0x00ce 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xf3fdb15a 0000003c: GT 0000003d: PUSH2 0x0087 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xf3fdb15a 00000047: EQ 00000048: PUSH2 0x0708 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xf5e3c462 00000052: EQ 00000053: PUSH2 0x0710 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xf851a440 0000005d: EQ 0000005e: PUSH2 0x0746 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0xf8f9da28 00000068: EQ 00000069: PUSH2 0x074e 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0xfca7820b 00000073: EQ 00000074: PUSH2 0x0756 00000077: JUMPI 00000078: DUP1 00000079: PUSH4 0xfe9c44ae 0000007e: EQ 0000007f: PUSH2 0x0773 00000082: JUMPI 00000083: PUSH2 0x028a 00000086: JUMP 00000087: JUMPDEST 00000088: DUP1 00000089: PUSH4 0xc37f68e2 0000008e: EQ 0000008f: PUSH2 0x0626 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0xc5ebeaec 00000099: EQ 0000009a: PUSH2 0x0672 0000009d: JUMPI 0000009e: DUP1 0000009f: PUSH4 0xdb006a75 000000a4: EQ 000000a5: PUSH2 0x068f 000000a8: JUMPI 000000a9: DUP1 000000aa: PUSH4 0xdd62ed3e 000000af: EQ 000000b0: PUSH2 0x06ac 000000b3: JUMPI 000000b4: DUP1 000000b5: PUSH4 0xe9c714f2 000000ba: EQ 000000bb: PUSH2 0x06da 000000be: JUMPI 000000bf: DUP1 000000c0: PUSH4 0xf2b3abbd 000000c5: EQ 000000c6: PUSH2 0x06e2 000000c9: JUMPI 000000ca: PUSH2 0x028a 000000cd: JUMP 000000ce: JUMPDEST 000000cf: DUP1 000000d0: PUSH4 0xa9059cbb 000000d5: GT 000000d6: PUSH2 0x0120 000000d9: JUMPI 000000da: DUP1 000000db: PUSH4 0xa9059cbb 000000e0: EQ 000000e1: PUSH2 0x0586 000000e4: JUMPI 000000e5: DUP1 000000e6: PUSH4 0xaa5af0fd 000000eb: EQ 000000ec: PUSH2 0x05b2 000000ef: JUMPI 000000f0: DUP1 000000f1: PUSH4 0xae9d70b0 000000f6: EQ 000000f7: PUSH2 0x05ba 000000fa: JUMPI 000000fb: DUP1 000000fc: PUSH4 0xb2a02ff1 00000101: EQ 00000102: PUSH2 0x05c2 00000105: JUMPI 00000106: DUP1 00000107: PUSH4 0xb71d1a0c 0000010c: EQ 0000010d: PUSH2 0x05f8 00000110: JUMPI 00000111: DUP1 00000112: PUSH4 0xbd6d894d 00000117: EQ 00000118: PUSH2 0x061e 0000011b: JUMPI 0000011c: PUSH2 0x028a 0000011f: JUMP 00000120: JUMPDEST 00000121: DUP1 00000122: PUSH4 0x8f840ddd 00000127: EQ 00000128: PUSH2 0x052b 0000012b: JUMPI 0000012c: DUP1 0000012d: PUSH4 0x95d89b41 00000132: EQ 00000133: PUSH2 0x0533 00000136: JUMPI 00000137: DUP1 00000138: PUSH4 0x95dd9193 0000013d: EQ 0000013e: PUSH2 0x053b 00000141: JUMPI 00000142: DUP1 00000143: PUSH4 0xa0712d68 00000148: EQ 00000149: PUSH2 0x0561 0000014c: JUMPI 0000014d: DUP1 0000014e: PUSH4 0xa6afed95 00000153: EQ 00000154: PUSH2 0x057e 00000157: JUMPI 00000158: PUSH2 0x028a 0000015b: JUMP 0000015c: JUMPDEST 0000015d: DUP1 0000015e: PUSH4 0x3af9e669 00000163: GT 00000164: PUSH2 0x0200 00000167: JUMPI 00000168: DUP1 00000169: PUSH4 0x675d972c 0000016e: GT 0000016f: PUSH2 0x01b9 00000172: JUMPI 00000173: DUP1 00000174: PUSH4 0x675d972c 00000179: EQ 0000017a: PUSH2 0x04c8 0000017d: JUMPI 0000017e: DUP1 0000017f: PUSH4 0x6c540baf 00000184: EQ 00000185: PUSH2 0x04d0 00000188: JUMPI 00000189: DUP1 0000018a: PUSH4 0x6f307dc3 0000018f: EQ 00000190: PUSH2 0x04d8 00000193: JUMPI 00000194: DUP1 00000195: PUSH4 0x70a08231 0000019a: EQ 0000019b: PUSH2 0x04e0 0000019e: JUMPI 0000019f: DUP1 000001a0: PUSH4 0x73acee98 000001a5: EQ 000001a6: PUSH2 0x0506 000001a9: JUMPI 000001aa: DUP1 000001ab: PUSH4 0x852a12e3 000001b0: EQ 000001b1: PUSH2 0x050e 000001b4: JUMPI 000001b5: PUSH2 0x028a 000001b8: JUMP 000001b9: JUMPDEST 000001ba: DUP1 000001bb: PUSH4 0x3af9e669 000001c0: EQ 000001c1: PUSH2 0x0447 000001c4: JUMPI 000001c5: DUP1 000001c6: PUSH4 0x3b1d21a2 000001cb: EQ 000001cc: PUSH2 0x046d 000001cf: JUMPI 000001d0: DUP1 000001d1: PUSH4 0x4576b5db 000001d6: EQ 000001d7: PUSH2 0x0475 000001da: JUMPI 000001db: DUP1 000001dc: PUSH4 0x47bd3718 000001e1: EQ 000001e2: PUSH2 0x049b 000001e5: JUMPI 000001e6: DUP1 000001e7: PUSH4 0x5fe3b567 000001ec: EQ 000001ed: PUSH2 0x04a3 000001f0: JUMPI 000001f1: DUP1 000001f2: PUSH4 0x601a0bf1 000001f7: EQ 000001f8: PUSH2 0x04ab 000001fb: JUMPI 000001fc: PUSH2 0x028a 000001ff: JUMP 00000200: JUMPDEST 00000201: DUP1 00000202: PUSH4 0x18160ddd 00000207: GT 00000208: PUSH2 0x0252 0000020b: JUMPI 0000020c: DUP1 0000020d: PUSH4 0x18160ddd 00000212: EQ 00000213: PUSH2 0x03a9 00000216: JUMPI 00000217: DUP1 00000218: PUSH4 0x182df0f5 0000021d: EQ 0000021e: PUSH2 0x03b1 00000221: JUMPI 00000222: DUP1 00000223: PUSH4 0x23b872dd 00000228: EQ 00000229: PUSH2 0x03b9 0000022c: JUMPI 0000022d: DUP1 0000022e: PUSH4 0x2608f818 00000233: EQ 00000234: PUSH2 0x03ef 00000237: JUMPI 00000238: DUP1 00000239: PUSH4 0x26782247 0000023e: EQ 0000023f: PUSH2 0x041b 00000242: JUMPI 00000243: DUP1 00000244: PUSH4 0x313ce567 00000249: EQ 0000024a: PUSH2 0x043f 0000024d: JUMPI 0000024e: PUSH2 0x028a 00000251: JUMP 00000252: JUMPDEST 00000253: DUP1 00000254: PUSH4 0x06fdde03 00000259: EQ 0000025a: PUSH2 0x028f 0000025d: JUMPI 0000025e: DUP1 0000025f: PUSH4 0x095ea7b3 00000264: EQ 00000265: PUSH2 0x030c 00000268: JUMPI 00000269: DUP1 0000026a: PUSH4 0x0e752702 0000026f: EQ 00000270: PUSH2 0x034c 00000273: JUMPI 00000274: DUP1 00000275: PUSH4 0x173b9904 0000027a: EQ 0000027b: PUSH2 0x037b 0000027e: JUMPI 0000027f: DUP1 00000280: PUSH4 0x17bfdfbc 00000285: EQ 00000286: PUSH2 0x0383 00000289: JUMPI 0000028a: JUMPDEST 0000028b: PUSH1 0x00 0000028d: DUP1 0000028e: REVERT 0000028f: JUMPDEST 00000290: PUSH2 0x0297 00000293: PUSH2 0x077b 00000296: JUMP 00000297: JUMPDEST 00000298: PUSH1 0x40 0000029a: DUP1 0000029b: MLOAD 0000029c: PUSH1 0x20 0000029e: DUP1 0000029f: DUP3 000002a0: MSTORE 000002a1: DUP4 000002a2: MLOAD 000002a3: DUP2 000002a4: DUP4 000002a5: ADD 000002a6: MSTORE 000002a7: DUP4 000002a8: MLOAD 000002a9: SWAP2 000002aa: SWAP3 000002ab: DUP4 000002ac: SWAP3 000002ad: SWAP1 000002ae: DUP4 000002af: ADD 000002b0: SWAP2 000002b1: DUP6 000002b2: ADD 000002b3: SWAP1 000002b4: DUP1 000002b5: DUP4 000002b6: DUP4 000002b7: PUSH1 0x00 000002b9: JUMPDEST 000002ba: DUP4 000002bb: DUP2 000002bc: LT 000002bd: ISZERO 000002be: PUSH2 0x02d1 000002c1: JUMPI 000002c2: DUP2 000002c3: DUP2 000002c4: ADD 000002c5: MLOAD 000002c6: DUP4 000002c7: DUP3 000002c8: ADD 000002c9: MSTORE 000002ca: PUSH1 0x20 000002cc: ADD 000002cd: PUSH2 0x02b9 000002d0: JUMP 000002d1: JUMPDEST 000002d2: POP 000002d3: POP 000002d4: POP 000002d5: POP 000002d6: SWAP1 000002d7: POP 000002d8: SWAP1 000002d9: DUP2 000002da: ADD 000002db: SWAP1 000002dc: PUSH1 0x1f 000002de: AND 000002df: DUP1 000002e0: ISZERO 000002e1: PUSH2 0x02fe 000002e4: JUMPI 000002e5: DUP1 000002e6: DUP3 000002e7: SUB 000002e8: DUP1 000002e9: MLOAD 000002ea: PUSH1 0x01 000002ec: DUP4 000002ed: PUSH1 0x20 000002ef: SUB 000002f0: PUSH2 0x0100 000002f3: EXP 000002f4: SUB 000002f5: NOT 000002f6: AND 000002f7: DUP2 000002f8: MSTORE 000002f9: PUSH1 0x20 000002fb: ADD 000002fc: SWAP2 000002fd: POP 000002fe: JUMPDEST 000002ff: POP 00000300: SWAP3 00000301: POP 00000302: POP 00000303: POP 00000304: PUSH1 0x40 00000306: MLOAD 00000307: DUP1 00000308: SWAP2 00000309: SUB 0000030a: SWAP1 0000030b: RETURN 0000030c: JUMPDEST 0000030d: PUSH2 0x0338 00000310: PUSH1 0x04 00000312: DUP1 00000313: CALLDATASIZE 00000314: SUB 00000315: PUSH1 0x40 00000317: DUP2 00000318: LT 00000319: ISZERO 0000031a: PUSH2 0x0322 0000031d: JUMPI 0000031e: PUSH1 0x00 00000320: DUP1 00000321: REVERT 00000322: JUMPDEST 00000323: POP 00000324: PUSH1 0x01 00000326: PUSH1 0x01 00000328: PUSH1 0xa0 0000032a: SHL 0000032b: SUB 0000032c: DUP2 0000032d: CALLDATALOAD 0000032e: AND 0000032f: SWAP1 00000330: PUSH1 0x20 00000332: ADD 00000333: CALLDATALOAD 00000334: PUSH2 0x0808 00000337: JUMP 00000338: JUMPDEST 00000339: PUSH1 0x40 0000033b: DUP1 0000033c: MLOAD 0000033d: SWAP2 0000033e: ISZERO 0000033f: ISZERO 00000340: DUP3 00000341: MSTORE 00000342: MLOAD 00000343: SWAP1 00000344: DUP2 00000345: SWAP1 00000346: SUB 00000347: PUSH1 0x20 00000349: ADD 0000034a: SWAP1 0000034b: RETURN 0000034c: JUMPDEST 0000034d: PUSH2 0x0369 00000350: PUSH1 0x04 00000352: DUP1 00000353: CALLDATASIZE 00000354: SUB 00000355: PUSH1 0x20 00000357: DUP2 00000358: LT 00000359: ISZERO 0000035a: PUSH2 0x0362 0000035d: JUMPI 0000035e: PUSH1 0x00 00000360: DUP1 00000361: REVERT 00000362: JUMPDEST 00000363: POP 00000364: CALLDATALOAD 00000365: PUSH2 0x0875 00000368: JUMP 00000369: JUMPDEST 0000036a: PUSH1 0x40 0000036c: DUP1 0000036d: MLOAD 0000036e: SWAP2 0000036f: DUP3 00000370: MSTORE 00000371: MLOAD 00000372: SWAP1 00000373: DUP2 00000374: SWAP1 00000375: SUB 00000376: PUSH1 0x20 00000378: ADD 00000379: SWAP1 0000037a: RETURN 0000037b: JUMPDEST 0000037c: PUSH2 0x0369 0000037f: PUSH2 0x0888 00000382: JUMP 00000383: JUMPDEST 00000384: PUSH2 0x0369 00000387: PUSH1 0x04 00000389: DUP1 0000038a: CALLDATASIZE 0000038b: SUB 0000038c: PUSH1 0x20 0000038e: DUP2 0000038f: LT 00000390: ISZERO 00000391: PUSH2 0x0399 00000394: JUMPI 00000395: PUSH1 0x00 00000397: DUP1 00000398: REVERT 00000399: JUMPDEST 0000039a: POP 0000039b: CALLDATALOAD 0000039c: PUSH1 0x01 0000039e: PUSH1 0x01 000003a0: PUSH1 0xa0 000003a2: SHL 000003a3: SUB 000003a4: AND 000003a5: PUSH2 0x088e 000003a8: JUMP 000003a9: JUMPDEST 000003aa: PUSH2 0x0369 000003ad: PUSH2 0x0951 000003b0: JUMP 000003b1: JUMPDEST 000003b2: PUSH2 0x0369 000003b5: PUSH2 0x0957 000003b8: JUMP 000003b9: JUMPDEST 000003ba: PUSH2 0x0338 000003bd: PUSH1 0x04 000003bf: DUP1 000003c0: CALLDATASIZE 000003c1: SUB 000003c2: PUSH1 0x60 000003c4: DUP2 000003c5: LT 000003c6: ISZERO 000003c7: PUSH2 0x03cf 000003ca: JUMPI 000003cb: PUSH1 0x00 000003cd: DUP1 000003ce: REVERT 000003cf: JUMPDEST 000003d0: POP 000003d1: PUSH1 0x01 000003d3: PUSH1 0x01 000003d5: PUSH1 0xa0 000003d7: SHL 000003d8: SUB 000003d9: DUP2 000003da: CALLDATALOAD 000003db: DUP2 000003dc: AND 000003dd: SWAP2 000003de: PUSH1 0x20 000003e0: DUP2 000003e1: ADD 000003e2: CALLDATALOAD 000003e3: SWAP1 000003e4: SWAP2 000003e5: AND 000003e6: SWAP1 000003e7: PUSH1 0x40 000003e9: ADD 000003ea: CALLDATALOAD 000003eb: PUSH2 0x09bd 000003ee: JUMP 000003ef: JUMPDEST 000003f0: PUSH2 0x0369 000003f3: PUSH1 0x04 000003f5: DUP1 000003f6: CALLDATASIZE 000003f7: SUB 000003f8: PUSH1 0x40 000003fa: DUP2 000003fb: LT 000003fc: ISZERO 000003fd: PUSH2 0x0405 00000400: JUMPI 00000401: PUSH1 0x00 00000403: DUP1 00000404: REVERT 00000405: JUMPDEST 00000406: POP 00000407: PUSH1 0x01 00000409: PUSH1 0x01 0000040b: PUSH1 0xa0 0000040d: SHL 0000040e: SUB 0000040f: DUP2 00000410: CALLDATALOAD 00000411: AND 00000412: SWAP1 00000413: PUSH1 0x20 00000415: ADD 00000416: CALLDATALOAD 00000417: PUSH2 0x0a29 0000041a: JUMP 0000041b: JUMPDEST 0000041c: PUSH2 0x0423 0000041f: PUSH2 0x0a3c 00000422: JUMP 00000423: JUMPDEST 00000424: PUSH1 0x40 00000426: DUP1 00000427: MLOAD 00000428: PUSH1 0x01 0000042a: PUSH1 0x01 0000042c: PUSH1 0xa0 0000042e: SHL 0000042f: SUB 00000430: SWAP1 00000431: SWAP3 00000432: AND 00000433: DUP3 00000434: MSTORE 00000435: MLOAD 00000436: SWAP1 00000437: DUP2 00000438: SWAP1 00000439: SUB 0000043a: PUSH1 0x20 0000043c: ADD 0000043d: SWAP1 0000043e: RETURN 0000043f: JUMPDEST 00000440: PUSH2 0x0369 00000443: PUSH2 0x0a4b 00000446: JUMP 00000447: JUMPDEST 00000448: PUSH2 0x0369 0000044b: PUSH1 0x04 0000044d: DUP1 0000044e: CALLDATASIZE 0000044f: SUB 00000450: PUSH1 0x20 00000452: DUP2 00000453: LT 00000454: ISZERO 00000455: PUSH2 0x045d 00000458: JUMPI 00000459: PUSH1 0x00 0000045b: DUP1 0000045c: REVERT 0000045d: JUMPDEST 0000045e: POP 0000045f: CALLDATALOAD 00000460: PUSH1 0x01 00000462: PUSH1 0x01 00000464: PUSH1 0xa0 00000466: SHL 00000467: SUB 00000468: AND 00000469: PUSH2 0x0a51 0000046c: JUMP 0000046d: JUMPDEST 0000046e: PUSH2 0x0369 00000471: PUSH2 0x0abf 00000474: JUMP 00000475: JUMPDEST 00000476: PUSH2 0x0369 00000479: PUSH1 0x04 0000047b: DUP1 0000047c: CALLDATASIZE 0000047d: SUB 0000047e: PUSH1 0x20 00000480: DUP2 00000481: LT 00000482: ISZERO 00000483: PUSH2 0x048b 00000486: JUMPI 00000487: PUSH1 0x00 00000489: DUP1 0000048a: REVERT 0000048b: JUMPDEST 0000048c: POP 0000048d: CALLDATALOAD 0000048e: PUSH1 0x01 00000490: PUSH1 0x01 00000492: PUSH1 0xa0 00000494: SHL 00000495: SUB 00000496: AND 00000497: PUSH2 0x0ace 0000049a: JUMP 0000049b: JUMPDEST 0000049c: PUSH2 0x0369 0000049f: PUSH2 0x0c23 000004a2: JUMP 000004a3: JUMPDEST 000004a4: PUSH2 0x0423 000004a7: PUSH2 0x0c29 000004aa: JUMP 000004ab: JUMPDEST 000004ac: PUSH2 0x0369 000004af: PUSH1 0x04 000004b1: DUP1 000004b2: CALLDATASIZE 000004b3: SUB 000004b4: PUSH1 0x20 000004b6: DUP2 000004b7: LT 000004b8: ISZERO 000004b9: PUSH2 0x04c1 000004bc: JUMPI 000004bd: PUSH1 0x00 000004bf: DUP1 000004c0: REVERT 000004c1: JUMPDEST 000004c2: POP 000004c3: CALLDATALOAD 000004c4: PUSH2 0x0c38 000004c7: JUMP 000004c8: JUMPDEST 000004c9: PUSH2 0x0369 000004cc: PUSH2 0x0cc6 000004cf: JUMP 000004d0: JUMPDEST 000004d1: PUSH2 0x0369 000004d4: PUSH2 0x0ccc 000004d7: JUMP 000004d8: JUMPDEST 000004d9: PUSH2 0x0423 000004dc: PUSH2 0x0cd2 000004df: JUMP 000004e0: JUMPDEST 000004e1: PUSH2 0x0369 000004e4: PUSH1 0x04 000004e6: DUP1 000004e7: CALLDATASIZE 000004e8: SUB 000004e9: PUSH1 0x20 000004eb: DUP2 000004ec: LT 000004ed: ISZERO 000004ee: PUSH2 0x04f6 000004f1: JUMPI 000004f2: PUSH1 0x00 000004f4: DUP1 000004f5: REVERT 000004f6: JUMPDEST 000004f7: POP 000004f8: CALLDATALOAD 000004f9: PUSH1 0x01 000004fb: PUSH1 0x01 000004fd: PUSH1 0xa0 000004ff: SHL 00000500: SUB 00000501: AND 00000502: PUSH2 0x0ce1 00000505: JUMP 00000506: JUMPDEST 00000507: PUSH2 0x0369 0000050a: PUSH2 0x0cfc 0000050d: JUMP 0000050e: JUMPDEST 0000050f: PUSH2 0x0369 00000512: PUSH1 0x04 00000514: DUP1 00000515: CALLDATASIZE 00000516: SUB 00000517: PUSH1 0x20 00000519: DUP2 0000051a: LT 0000051b: ISZERO 0000051c: PUSH2 0x0524 0000051f: JUMPI 00000520: PUSH1 0x00 00000522: DUP1 00000523: REVERT 00000524: JUMPDEST 00000525: POP 00000526: CALLDATALOAD 00000527: PUSH2 0x0db6 0000052a: JUMP 0000052b: JUMPDEST 0000052c: PUSH2 0x0369 0000052f: PUSH2 0x0dc1 00000532: JUMP 00000533: JUMPDEST 00000534: PUSH2 0x0297 00000537: PUSH2 0x0dc7 0000053a: JUMP 0000053b: JUMPDEST 0000053c: PUSH2 0x0369 0000053f: PUSH1 0x04 00000541: DUP1 00000542: CALLDATASIZE 00000543: SUB 00000544: PUSH1 0x20 00000546: DUP2 00000547: LT 00000548: ISZERO 00000549: PUSH2 0x0551 0000054c: JUMPI 0000054d: PUSH1 0x00 0000054f: DUP1 00000550: REVERT 00000551: JUMPDEST 00000552: POP 00000553: CALLDATALOAD 00000554: PUSH1 0x01 00000556: PUSH1 0x01 00000558: PUSH1 0xa0 0000055a: SHL 0000055b: SUB 0000055c: AND 0000055d: PUSH2 0x0e1f 00000560: JUMP 00000561: JUMPDEST 00000562: PUSH2 0x0369 00000565: PUSH1 0x04 00000567: DUP1 00000568: CALLDATASIZE 00000569: SUB 0000056a: PUSH1 0x20 0000056c: DUP2 0000056d: LT 0000056e: ISZERO 0000056f: PUSH2 0x0577 00000572: JUMPI 00000573: PUSH1 0x00 00000575: DUP1 00000576: REVERT 00000577: JUMPDEST 00000578: POP 00000579: CALLDATALOAD 0000057a: PUSH2 0x0e7f 0000057d: JUMP 0000057e: JUMPDEST 0000057f: PUSH2 0x0369 00000582: PUSH2 0x0e8a 00000585: JUMP 00000586: JUMPDEST 00000587: PUSH2 0x0338 0000058a: PUSH1 0x04 0000058c: DUP1 0000058d: CALLDATASIZE 0000058e: SUB 0000058f: PUSH1 0x40 00000591: DUP2 00000592: LT 00000593: ISZERO 00000594: PUSH2 0x059c 00000597: JUMPI 00000598: PUSH1 0x00 0000059a: DUP1 0000059b: REVERT 0000059c: JUMPDEST 0000059d: POP 0000059e: PUSH1 0x01 000005a0: PUSH1 0x01 000005a2: PUSH1 0xa0 000005a4: SHL 000005a5: SUB 000005a6: DUP2 000005a7: CALLDATALOAD 000005a8: AND 000005a9: SWAP1 000005aa: PUSH1 0x20 000005ac: ADD 000005ad: CALLDATALOAD 000005ae: PUSH2 0x1286 000005b1: JUMP 000005b2: JUMPDEST 000005b3: PUSH2 0x0369 000005b6: PUSH2 0x12f1 000005b9: JUMP 000005ba: JUMPDEST 000005bb: PUSH2 0x0369 000005be: PUSH2 0x12f7 000005c1: JUMP 000005c2: JUMPDEST 000005c3: PUSH2 0x0369 000005c6: PUSH1 0x04 000005c8: DUP1 000005c9: CALLDATASIZE 000005ca: SUB 000005cb: PUSH1 0x60 000005cd: DUP2 000005ce: LT 000005cf: ISZERO 000005d0: PUSH2 0x05d8 000005d3: JUMPI 000005d4: PUSH1 0x00 000005d6: DUP1 000005d7: REVERT 000005d8: JUMPDEST 000005d9: POP 000005da: PUSH1 0x01 000005dc: PUSH1 0x01 000005de: PUSH1 0xa0 000005e0: SHL 000005e1: SUB 000005e2: DUP2 000005e3: CALLDATALOAD 000005e4: DUP2 000005e5: AND 000005e6: SWAP2 000005e7: PUSH1 0x20 000005e9: DUP2 000005ea: ADD 000005eb: CALLDATALOAD 000005ec: SWAP1 000005ed: SWAP2 000005ee: AND 000005ef: SWAP1 000005f0: PUSH1 0x40 000005f2: ADD 000005f3: CALLDATALOAD 000005f4: PUSH2 0x15d1 000005f7: JUMP 000005f8: JUMPDEST 000005f9: PUSH2 0x0369 000005fc: PUSH1 0x04 000005fe: DUP1 000005ff: CALLDATASIZE 00000600: SUB 00000601: PUSH1 0x20 00000603: DUP2 00000604: LT 00000605: ISZERO 00000606: PUSH2 0x060e 00000609: JUMPI 0000060a: PUSH1 0x00 0000060c: DUP1 0000060d: REVERT 0000060e: JUMPDEST 0000060f: POP 00000610: CALLDATALOAD 00000611: PUSH1 0x01 00000613: PUSH1 0x01 00000615: PUSH1 0xa0 00000617: SHL 00000618: SUB 00000619: AND 0000061a: PUSH2 0x188e 0000061d: JUMP 0000061e: JUMPDEST 0000061f: PUSH2 0x0369 00000622: PUSH2 0x1915 00000625: JUMP 00000626: JUMPDEST 00000627: PUSH2 0x064c 0000062a: PUSH1 0x04 0000062c: DUP1 0000062d: CALLDATASIZE 0000062e: SUB 0000062f: PUSH1 0x20 00000631: DUP2 00000632: LT 00000633: ISZERO 00000634: PUSH2 0x063c 00000637: JUMPI 00000638: PUSH1 0x00 0000063a: DUP1 0000063b: REVERT 0000063c: JUMPDEST 0000063d: POP 0000063e: CALLDATALOAD 0000063f: PUSH1 0x01 00000641: PUSH1 0x01 00000643: PUSH1 0xa0 00000645: SHL 00000646: SUB 00000647: AND 00000648: PUSH2 0x19d0 0000064b: JUMP 0000064c: JUMPDEST 0000064d: PUSH1 0x40 0000064f: DUP1 00000650: MLOAD 00000651: SWAP5 00000652: DUP6 00000653: MSTORE 00000654: PUSH1 0x20 00000656: DUP6 00000657: ADD 00000658: SWAP4 00000659: SWAP1 0000065a: SWAP4 0000065b: MSTORE 0000065c: DUP4 0000065d: DUP4 0000065e: ADD 0000065f: SWAP2 00000660: SWAP1 00000661: SWAP2 00000662: MSTORE 00000663: PUSH1 0x60 00000665: DUP4 00000666: ADD 00000667: MSTORE 00000668: MLOAD 00000669: SWAP1 0000066a: DUP2 0000066b: SWAP1 0000066c: SUB 0000066d: PUSH1 0x80 0000066f: ADD 00000670: SWAP1 00000671: RETURN 00000672: JUMPDEST 00000673: PUSH2 0x0369 00000676: PUSH1 0x04 00000678: DUP1 00000679: CALLDATASIZE 0000067a: SUB 0000067b: PUSH1 0x20 0000067d: DUP2 0000067e: LT 0000067f: ISZERO 00000680: PUSH2 0x0688 00000683: JUMPI 00000684: PUSH1 0x00 00000686: DUP1 00000687: REVERT 00000688: JUMPDEST 00000689: POP 0000068a: CALLDATALOAD 0000068b: PUSH2 0x1a65 0000068e: JUMP 0000068f: JUMPDEST 00000690: PUSH2 0x0369 00000693: PUSH1 0x04 00000695: DUP1 00000696: CALLDATASIZE 00000697: SUB 00000698: PUSH1 0x20 0000069a: DUP2 0000069b: LT 0000069c: ISZERO 0000069d: PUSH2 0x06a5 000006a0: JUMPI 000006a1: PUSH1 0x00 000006a3: DUP1 000006a4: REVERT 000006a5: JUMPDEST 000006a6: POP 000006a7: CALLDATALOAD 000006a8: PUSH2 0x1a70 000006ab: JUMP 000006ac: JUMPDEST 000006ad: PUSH2 0x0369 000006b0: PUSH1 0x04 000006b2: DUP1 000006b3: CALLDATASIZE 000006b4: SUB 000006b5: PUSH1 0x40 000006b7: DUP2 000006b8: LT 000006b9: ISZERO 000006ba: PUSH2 0x06c2 000006bd: JUMPI 000006be: PUSH1 0x00 000006c0: DUP1 000006c1: REVERT 000006c2: JUMPDEST 000006c3: POP 000006c4: PUSH1 0x01 000006c6: PUSH1 0x01 000006c8: PUSH1 0xa0 000006ca: SHL 000006cb: SUB 000006cc: DUP2 000006cd: CALLDATALOAD 000006ce: DUP2 000006cf: AND 000006d0: SWAP2 000006d1: PUSH1 0x20 000006d3: ADD 000006d4: CALLDATALOAD 000006d5: AND 000006d6: PUSH2 0x1a7b 000006d9: JUMP 000006da: JUMPDEST 000006db: PUSH2 0x0369 000006de: PUSH2 0x1aa6 000006e1: JUMP 000006e2: JUMPDEST 000006e3: PUSH2 0x0369 000006e6: PUSH1 0x04 000006e8: DUP1 000006e9: CALLDATASIZE 000006ea: SUB 000006eb: PUSH1 0x20 000006ed: DUP2 000006ee: LT 000006ef: ISZERO 000006f0: PUSH2 0x06f8 000006f3: JUMPI 000006f4: PUSH1 0x00 000006f6: DUP1 000006f7: REVERT 000006f8: JUMPDEST 000006f9: POP 000006fa: CALLDATALOAD 000006fb: PUSH1 0x01 000006fd: PUSH1 0x01 000006ff: PUSH1 0xa0 00000701: SHL 00000702: SUB 00000703: AND 00000704: PUSH2 0x1b95 00000707: JUMP 00000708: JUMPDEST 00000709: PUSH2 0x0423 0000070c: PUSH2 0x1bcf 0000070f: JUMP 00000710: JUMPDEST 00000711: PUSH2 0x0369 00000714: PUSH1 0x04 00000716: DUP1 00000717: CALLDATASIZE 00000718: SUB 00000719: PUSH1 0x60 0000071b: DUP2 0000071c: LT 0000071d: ISZERO 0000071e: PUSH2 0x0726 00000721: JUMPI 00000722: PUSH1 0x00 00000724: DUP1 00000725: REVERT 00000726: JUMPDEST 00000727: POP 00000728: PUSH1 0x01 0000072a: PUSH1 0x01 0000072c: PUSH1 0xa0 0000072e: SHL 0000072f: SUB 00000730: DUP2 00000731: CALLDATALOAD 00000732: DUP2 00000733: AND 00000734: SWAP2 00000735: PUSH1 0x20 00000737: DUP2 00000738: ADD 00000739: CALLDATALOAD 0000073a: SWAP2 0000073b: PUSH1 0x40 0000073d: SWAP1 0000073e: SWAP2 0000073f: ADD 00000740: CALLDATALOAD 00000741: AND 00000742: PUSH2 0x1bde 00000745: JUMP 00000746: JUMPDEST 00000747: PUSH2 0x0423 0000074a: PUSH2 0x1beb 0000074d: JUMP 0000074e: JUMPDEST 0000074f: PUSH2 0x0369 00000752: PUSH2 0x1bfa 00000755: JUMP 00000756: JUMPDEST 00000757: PUSH2 0x0369 0000075a: PUSH1 0x04 0000075c: DUP1 0000075d: CALLDATASIZE 0000075e: SUB 0000075f: PUSH1 0x20 00000761: DUP2 00000762: LT 00000763: ISZERO 00000764: PUSH2 0x076c 00000767: JUMPI 00000768: PUSH1 0x00 0000076a: DUP1 0000076b: REVERT 0000076c: JUMPDEST 0000076d: POP 0000076e: CALLDATALOAD 0000076f: PUSH2 0x1cd9 00000772: JUMP 00000773: JUMPDEST 00000774: PUSH2 0x0338 00000777: PUSH2 0x1d13 0000077a: JUMP 0000077b: JUMPDEST 0000077c: PUSH1 0x01 0000077e: DUP1 0000077f: SLOAD 00000780: PUSH1 0x40 00000782: DUP1 00000783: MLOAD 00000784: PUSH1 0x20 00000786: PUSH1 0x02 00000788: DUP5 00000789: DUP7 0000078a: AND 0000078b: ISZERO 0000078c: PUSH2 0x0100 0000078f: MUL 00000790: PUSH1 0x00 00000792: NOT 00000793: ADD 00000794: SWAP1 00000795: SWAP5 00000796: AND 00000797: SWAP4 00000798: SWAP1 00000799: SWAP4 0000079a: DIV 0000079b: PUSH1 0x1f 0000079d: DUP2 0000079e: ADD 0000079f: DUP5 000007a0: SWAP1 000007a1: DIV 000007a2: DUP5 000007a3: MUL 000007a4: DUP3 000007a5: ADD 000007a6: DUP5 000007a7: ADD 000007a8: SWAP1 000007a9: SWAP3 000007aa: MSTORE 000007ab: DUP2 000007ac: DUP2 000007ad: MSTORE 000007ae: SWAP3 000007af: SWAP2 000007b0: DUP4 000007b1: ADD 000007b2: DUP3 000007b3: DUP3 000007b4: DUP1 000007b5: ISZERO 000007b6: PUSH2 0x0800 000007b9: JUMPI 000007ba: DUP1 000007bb: PUSH1 0x1f 000007bd: LT 000007be: PUSH2 0x07d5 000007c1: JUMPI 000007c2: PUSH2 0x0100 000007c5: DUP1 000007c6: DUP4 000007c7: SLOAD 000007c8: DIV 000007c9: MUL 000007ca: DUP4 000007cb: MSTORE 000007cc: SWAP2 000007cd: PUSH1 0x20 000007cf: ADD 000007d0: SWAP2 000007d1: PUSH2 0x0800 000007d4: JUMP 000007d5: JUMPDEST 000007d6: DUP3 000007d7: ADD 000007d8: SWAP2 000007d9: SWAP1 000007da: PUSH1 0x00 000007dc: MSTORE 000007dd: PUSH1 0x20 000007df: PUSH1 0x00 000007e1: KECCAK256 000007e2: SWAP1 000007e3: JUMPDEST 000007e4: DUP2 000007e5: SLOAD 000007e6: DUP2 000007e7: MSTORE 000007e8: SWAP1 000007e9: PUSH1 0x01 000007eb: ADD 000007ec: SWAP1 000007ed: PUSH1 0x20 000007ef: ADD 000007f0: DUP1 000007f1: DUP4 000007f2: GT 000007f3: PUSH2 0x07e3 000007f6: JUMPI 000007f7: DUP3 000007f8: SWAP1 000007f9: SUB 000007fa: PUSH1 0x1f 000007fc: AND 000007fd: DUP3 000007fe: ADD 000007ff: SWAP2 00000800: JUMPDEST 00000801: POP 00000802: POP 00000803: POP 00000804: POP 00000805: POP 00000806: DUP2 00000807: JUMP 00000808: JUMPDEST 00000809: CALLER 0000080a: PUSH1 0x00 0000080c: DUP2 0000080d: DUP2 0000080e: MSTORE 0000080f: PUSH1 0x10 00000811: PUSH1 0x20 00000813: SWAP1 00000814: DUP2 00000815: MSTORE 00000816: PUSH1 0x40 00000818: DUP1 00000819: DUP4 0000081a: KECCAK256 0000081b: PUSH1 0x01 0000081d: PUSH1 0x01 0000081f: PUSH1 0xa0 00000821: SHL 00000822: SUB 00000823: DUP8 00000824: AND 00000825: DUP1 00000826: DUP6 00000827: MSTORE 00000828: SWAP1 00000829: DUP4 0000082a: MSTORE 0000082b: DUP2 0000082c: DUP5 0000082d: KECCAK256 0000082e: DUP7 0000082f: SWAP1 00000830: SSTORE 00000831: DUP2 00000832: MLOAD 00000833: DUP7 00000834: DUP2 00000835: MSTORE 00000836: SWAP2 00000837: MLOAD 00000838: SWAP4 00000839: SWAP5 0000083a: SWAP4 0000083b: SWAP1 0000083c: SWAP3 0000083d: DUP5 0000083e: SWAP3 0000083f: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00000860: SWAP3 00000861: SWAP1 00000862: DUP2 00000863: SWAP1 00000864: SUB 00000865: SWAP1 00000866: SWAP2 00000867: ADD 00000868: SWAP1 00000869: LOG3 0000086a: PUSH1 0x01 0000086c: SWAP2 0000086d: POP 0000086e: POP 0000086f: JUMPDEST 00000870: SWAP3 00000871: SWAP2 00000872: POP 00000873: POP 00000874: JUMP 00000875: JUMPDEST 00000876: PUSH1 0x00 00000878: PUSH2 0x0880 0000087b: DUP3 0000087c: PUSH2 0x1d18 0000087f: JUMP 00000880: JUMPDEST 00000881: SWAP1 00000882: POP 00000883: JUMPDEST 00000884: SWAP2 00000885: SWAP1 00000886: POP 00000887: JUMP 00000888: JUMPDEST 00000889: PUSH1 0x09 0000088b: SLOAD 0000088c: DUP2 0000088d: JUMP 0000088e: JUMPDEST 0000088f: PUSH1 0x00 00000891: DUP1 00000892: SLOAD 00000893: PUSH1 0x01 00000895: ADD 00000896: DUP1 00000897: DUP3 00000898: SSTORE 00000899: DUP2 0000089a: PUSH2 0x08a1 0000089d: PUSH2 0x0e8a 000008a0: JUMP 000008a1: JUMPDEST 000008a2: EQ 000008a3: PUSH2 0x08f6 000008a6: JUMPI 000008a7: PUSH1 0x40 000008a9: DUP1 000008aa: MLOAD 000008ab: PUSH1 0x01 000008ad: PUSH1 0xe5 000008af: SHL 000008b0: PUSH3 0x461bcd 000008b4: MUL 000008b5: DUP2 000008b6: MSTORE 000008b7: PUSH1 0x20 000008b9: PUSH1 0x04 000008bb: DUP3 000008bc: ADD 000008bd: MSTORE 000008be: PUSH1 0x16 000008c0: PUSH1 0x24 000008c2: DUP3 000008c3: ADD 000008c4: MSTORE 000008c5: PUSH32 0x61636372756520696e746572657374206661696c656400000000000000000000 000008e6: PUSH1 0x44 000008e8: DUP3 000008e9: ADD 000008ea: MSTORE 000008eb: SWAP1 000008ec: MLOAD 000008ed: SWAP1 000008ee: DUP2 000008ef: SWAP1 000008f0: SUB 000008f1: PUSH1 0x64 000008f3: ADD 000008f4: SWAP1 000008f5: REVERT 000008f6: JUMPDEST 000008f7: PUSH2 0x08ff 000008fa: DUP4 000008fb: PUSH2 0x0e1f 000008fe: JUMP 000008ff: JUMPDEST 00000900: SWAP2 00000901: POP 00000902: JUMPDEST 00000903: PUSH1 0x00 00000905: SLOAD 00000906: DUP2 00000907: EQ 00000908: PUSH2 0x094b 0000090b: JUMPI 0000090c: PUSH1 0x40 0000090e: DUP1 0000090f: MLOAD 00000910: PUSH1 0x01 00000912: PUSH1 0xe5 00000914: SHL 00000915: PUSH3 0x461bcd 00000919: MUL 0000091a: DUP2 0000091b: MSTORE 0000091c: PUSH1 0x20 0000091e: PUSH1 0x04 00000920: DUP3 00000921: ADD 00000922: MSTORE 00000923: PUSH1 0x0a 00000925: PUSH1 0x24 00000927: DUP3 00000928: ADD 00000929: MSTORE 0000092a: PUSH1 0x01 0000092c: PUSH1 0xb2 0000092e: SHL 0000092f: PUSH10 0x1c994b595b9d195c9959 0000093a: MUL 0000093b: PUSH1 0x44 0000093d: DUP3 0000093e: ADD 0000093f: MSTORE 00000940: SWAP1 00000941: MLOAD 00000942: SWAP1 00000943: DUP2 00000944: SWAP1 00000945: SUB 00000946: PUSH1 0x64 00000948: ADD 00000949: SWAP1 0000094a: REVERT 0000094b: JUMPDEST 0000094c: POP 0000094d: SWAP2 0000094e: SWAP1 0000094f: POP 00000950: JUMP 00000951: JUMPDEST 00000952: PUSH1 0x0e 00000954: SLOAD 00000955: DUP2 00000956: JUMP 00000957: JUMPDEST 00000958: PUSH1 0x00 0000095a: DUP1 0000095b: PUSH1 0x00 0000095d: PUSH2 0x0964 00000960: PUSH2 0x1d54 00000963: JUMP 00000964: JUMPDEST 00000965: SWAP1 00000966: SWAP3 00000967: POP 00000968: SWAP1 00000969: POP 0000096a: PUSH1 0x00 0000096c: DUP3 0000096d: PUSH1 0x03 0000096f: DUP2 00000970: GT 00000971: ISZERO 00000972: PUSH2 0x0977 00000975: JUMPI 00000976: INVALID 00000977: JUMPDEST 00000978: EQ 00000979: PUSH2 0x09b6 0000097c: JUMPI 0000097d: PUSH1 0x40 0000097f: MLOAD 00000980: PUSH1 0x01 00000982: PUSH1 0xe5 00000984: SHL 00000985: PUSH3 0x461bcd 00000989: MUL 0000098a: DUP2 0000098b: MSTORE 0000098c: PUSH1 0x04 0000098e: ADD 0000098f: DUP1 00000990: DUP1 00000991: PUSH1 0x20 00000993: ADD 00000994: DUP3 00000995: DUP2 00000996: SUB 00000997: DUP3 00000998: MSTORE 00000999: PUSH1 0x35 0000099b: DUP2 0000099c: MSTORE 0000099d: PUSH1 0x20 0000099f: ADD 000009a0: DUP1 000009a1: PUSH2 0x4962 000009a4: PUSH1 0x35 000009a6: SWAP2 000009a7: CODECOPY 000009a8: PUSH1 0x40 000009aa: ADD 000009ab: SWAP2 000009ac: POP 000009ad: POP 000009ae: PUSH1 0x40 000009b0: MLOAD 000009b1: DUP1 000009b2: SWAP2 000009b3: SUB 000009b4: SWAP1 000009b5: REVERT 000009b6: JUMPDEST 000009b7: SWAP2 000009b8: POP 000009b9: POP 000009ba: JUMPDEST 000009bb: SWAP1 000009bc: JUMP 000009bd: JUMPDEST 000009be: PUSH1 0x00 000009c0: DUP1 000009c1: SLOAD 000009c2: PUSH1 0x01 000009c4: ADD 000009c5: DUP1 000009c6: DUP3 000009c7: SSTORE 000009c8: DUP2 000009c9: PUSH2 0x09d4 000009cc: CALLER 000009cd: DUP8 000009ce: DUP8 000009cf: DUP8 000009d0: PUSH2 0x1e02 000009d3: JUMP 000009d4: JUMPDEST 000009d5: EQ 000009d6: SWAP2 000009d7: POP 000009d8: JUMPDEST 000009d9: PUSH1 0x00 000009db: SLOAD 000009dc: DUP2 000009dd: EQ 000009de: PUSH2 0x0a21 000009e1: JUMPI 000009e2: PUSH1 0x40 000009e4: DUP1 000009e5: MLOAD 000009e6: PUSH1 0x01 000009e8: PUSH1 0xe5 000009ea: SHL 000009eb: PUSH3 0x461bcd 000009ef: MUL 000009f0: DUP2 000009f1: MSTORE 000009f2: PUSH1 0x20 000009f4: PUSH1 0x04 000009f6: DUP3 000009f7: ADD 000009f8: MSTORE 000009f9: PUSH1 0x0a 000009fb: PUSH1 0x24 000009fd: DUP3 000009fe: ADD 000009ff: MSTORE 00000a00: PUSH1 0x01 00000a02: PUSH1 0xb2 00000a04: SHL 00000a05: PUSH10 0x1c994b595b9d195c9959 00000a10: MUL 00000a11: PUSH1 0x44 00000a13: DUP3 00000a14: ADD 00000a15: MSTORE 00000a16: SWAP1 00000a17: MLOAD 00000a18: SWAP1 00000a19: DUP2 00000a1a: SWAP1 00000a1b: SUB 00000a1c: PUSH1 0x64 00000a1e: ADD 00000a1f: SWAP1 00000a20: REVERT 00000a21: JUMPDEST 00000a22: POP 00000a23: SWAP4 00000a24: SWAP3 00000a25: POP 00000a26: POP 00000a27: POP 00000a28: JUMP 00000a29: JUMPDEST 00000a2a: PUSH1 0x00 00000a2c: PUSH2 0x0a35 00000a2f: DUP4 00000a30: DUP4 00000a31: PUSH2 0x2116 00000a34: JUMP 00000a35: JUMPDEST 00000a36: SWAP4 00000a37: SWAP3 00000a38: POP 00000a39: POP 00000a3a: POP 00000a3b: JUMP 00000a3c: JUMPDEST 00000a3d: PUSH1 0x05 00000a3f: SLOAD 00000a40: PUSH1 0x01 00000a42: PUSH1 0x01 00000a44: PUSH1 0xa0 00000a46: SHL 00000a47: SUB 00000a48: AND 00000a49: DUP2 00000a4a: JUMP 00000a4b: JUMPDEST 00000a4c: PUSH1 0x03 00000a4e: SLOAD 00000a4f: DUP2 00000a50: JUMP 00000a51: JUMPDEST 00000a52: PUSH1 0x00 00000a54: PUSH2 0x0a5b 00000a57: PUSH2 0x46bb 00000a5a: JUMP 00000a5b: JUMPDEST 00000a5c: PUSH1 0x40 00000a5e: MLOAD 00000a5f: DUP1 00000a60: PUSH1 0x20 00000a62: ADD 00000a63: PUSH1 0x40 00000a65: MSTORE 00000a66: DUP1 00000a67: PUSH2 0x0a6e 00000a6a: PUSH2 0x1915 00000a6d: JUMP 00000a6e: JUMPDEST 00000a6f: SWAP1 00000a70: MSTORE 00000a71: PUSH1 0x01 00000a73: PUSH1 0x01 00000a75: PUSH1 0xa0 00000a77: SHL 00000a78: SUB 00000a79: DUP5 00000a7a: AND 00000a7b: PUSH1 0x00 00000a7d: SWAP1 00000a7e: DUP2 00000a7f: MSTORE 00000a80: PUSH1 0x0f 00000a82: PUSH1 0x20 00000a84: MSTORE 00000a85: PUSH1 0x40 00000a87: DUP2 00000a88: KECCAK256 00000a89: SLOAD 00000a8a: SWAP2 00000a8b: SWAP3 00000a8c: POP 00000a8d: SWAP1 00000a8e: DUP2 00000a8f: SWAP1 00000a90: PUSH2 0x0a9a 00000a93: SWAP1 00000a94: DUP5 00000a95: SWAP1 00000a96: PUSH2 0x21a6 00000a99: JUMP 00000a9a: JUMPDEST 00000a9b: SWAP1 00000a9c: SWAP3 00000a9d: POP 00000a9e: SWAP1 00000a9f: POP 00000aa0: PUSH1 0x00 00000aa2: DUP3 00000aa3: PUSH1 0x03 00000aa5: DUP2 00000aa6: GT 00000aa7: ISZERO 00000aa8: PUSH2 0x0aad 00000aab: JUMPI 00000aac: INVALID 00000aad: JUMPDEST 00000aae: EQ 00000aaf: PUSH2 0x0ab7 00000ab2: JUMPI 00000ab3: PUSH1 0x00 00000ab5: DUP1 00000ab6: REVERT 00000ab7: JUMPDEST 00000ab8: SWAP5 00000ab9: SWAP4 00000aba: POP 00000abb: POP 00000abc: POP 00000abd: POP 00000abe: JUMP 00000abf: JUMPDEST 00000ac0: PUSH1 0x00 00000ac2: PUSH2 0x0ac9 00000ac5: PUSH2 0x21fa 00000ac8: JUMP 00000ac9: JUMPDEST 00000aca: SWAP1 00000acb: POP 00000acc: SWAP1 00000acd: JUMP 00000ace: JUMPDEST 00000acf: PUSH1 0x04 00000ad1: SLOAD 00000ad2: PUSH1 0x00 00000ad4: SWAP1 00000ad5: PUSH1 0x01 00000ad7: PUSH1 0x01 00000ad9: PUSH1 0xa0 00000adb: SHL 00000adc: SUB 00000add: AND 00000ade: CALLER 00000adf: EQ 00000ae0: PUSH2 0x0af6 00000ae3: JUMPI 00000ae4: PUSH2 0x0aef 00000ae7: PUSH1 0x01 00000ae9: PUSH1 0x3f 00000aeb: PUSH2 0x227d 00000aee: JUMP 00000aef: JUMPDEST 00000af0: SWAP1 00000af1: POP 00000af2: PUSH2 0x0883 00000af5: JUMP 00000af6: JUMPDEST 00000af7: PUSH1 0x06 00000af9: SLOAD 00000afa: PUSH1 0x40 00000afc: DUP1 00000afd: MLOAD 00000afe: PUSH1 0x01 00000b00: PUSH1 0xe1 00000b02: SHL 00000b03: PUSH3 0x3f1ee9 00000b07: MUL 00000b08: DUP2 00000b09: MSTORE 00000b0a: SWAP1 00000b0b: MLOAD 00000b0c: PUSH1 0x01 00000b0e: PUSH1 0x01 00000b10: PUSH1 0xa0 00000b12: SHL 00000b13: SUB 00000b14: SWAP3 00000b15: DUP4 00000b16: AND 00000b17: SWAP3 00000b18: DUP6 00000b19: AND 00000b1a: SWAP2 00000b1b: PUSH3 0x7e3dd2 00000b1f: SWAP2 00000b20: PUSH1 0x04 00000b22: DUP1 00000b23: DUP4 00000b24: ADD 00000b25: SWAP3 00000b26: PUSH1 0x20 00000b28: SWAP3 00000b29: SWAP2 00000b2a: SWAP1 00000b2b: DUP3 00000b2c: SWAP1 00000b2d: SUB 00000b2e: ADD 00000b2f: DUP2 00000b30: DUP7 00000b31: DUP1 00000b32: EXTCODESIZE 00000b33: ISZERO 00000b34: DUP1 00000b35: ISZERO 00000b36: PUSH2 0x0b3e 00000b39: JUMPI 00000b3a: PUSH1 0x00 00000b3c: DUP1 00000b3d: REVERT 00000b3e: JUMPDEST 00000b3f: POP 00000b40: GAS 00000b41: STATICCALL 00000b42: ISZERO 00000b43: DUP1 00000b44: ISZERO 00000b45: PUSH2 0x0b52 00000b48: JUMPI 00000b49: RETURNDATASIZE 00000b4a: PUSH1 0x00 00000b4c: DUP1 00000b4d: RETURNDATACOPY 00000b4e: RETURNDATASIZE 00000b4f: PUSH1 0x00 00000b51: REVERT 00000b52: JUMPDEST 00000b53: POP 00000b54: POP 00000b55: POP 00000b56: POP 00000b57: PUSH1 0x40 00000b59: MLOAD 00000b5a: RETURNDATASIZE 00000b5b: PUSH1 0x20 00000b5d: DUP2 00000b5e: LT 00000b5f: ISZERO 00000b60: PUSH2 0x0b68 00000b63: JUMPI 00000b64: PUSH1 0x00 00000b66: DUP1 00000b67: REVERT 00000b68: JUMPDEST 00000b69: POP 00000b6a: MLOAD 00000b6b: PUSH2 0x0bbe 00000b6e: JUMPI 00000b6f: PUSH1 0x40 00000b71: DUP1 00000b72: MLOAD 00000b73: PUSH1 0x01 00000b75: PUSH1 0xe5 00000b77: SHL 00000b78: PUSH3 0x461bcd 00000b7c: MUL 00000b7d: DUP2 00000b7e: MSTORE 00000b7f: PUSH1 0x20 00000b81: PUSH1 0x04 00000b83: DUP3 00000b84: ADD 00000b85: MSTORE 00000b86: PUSH1 0x1c 00000b88: PUSH1 0x24 00000b8a: DUP3 00000b8b: ADD 00000b8c: MSTORE 00000b8d: PUSH32 0x6d61726b6572206d6574686f642072657475726e65642066616c736500000000 00000bae: PUSH1 0x44 00000bb0: DUP3 00000bb1: ADD 00000bb2: MSTORE 00000bb3: SWAP1 00000bb4: MLOAD 00000bb5: SWAP1 00000bb6: DUP2 00000bb7: SWAP1 00000bb8: SUB 00000bb9: PUSH1 0x64 00000bbb: ADD 00000bbc: SWAP1 00000bbd: REVERT 00000bbe: JUMPDEST 00000bbf: PUSH1 0x06 00000bc1: DUP1 00000bc2: SLOAD 00000bc3: PUSH1 0x01 00000bc5: PUSH1 0x01 00000bc7: PUSH1 0xa0 00000bc9: SHL 00000bca: SUB 00000bcb: NOT 00000bcc: AND 00000bcd: PUSH1 0x01 00000bcf: PUSH1 0x01 00000bd1: PUSH1 0xa0 00000bd3: SHL 00000bd4: SUB 00000bd5: DUP6 00000bd6: DUP2 00000bd7: AND 00000bd8: SWAP2 00000bd9: DUP3 00000bda: OR 00000bdb: SWAP1 00000bdc: SWAP3 00000bdd: SSTORE 00000bde: PUSH1 0x40 00000be0: DUP1 00000be1: MLOAD 00000be2: SWAP3 00000be3: DUP5 00000be4: AND 00000be5: DUP4 00000be6: MSTORE 00000be7: PUSH1 0x20 00000be9: DUP4 00000bea: ADD 00000beb: SWAP2 00000bec: SWAP1 00000bed: SWAP2 00000bee: MSTORE 00000bef: DUP1 00000bf0: MLOAD 00000bf1: PUSH32 0x7ac369dbd14fa5ea3f473ed67cc9d598964a77501540ba6751eb0b3decf5870d 00000c12: SWAP3 00000c13: DUP2 00000c14: SWAP1 00000c15: SUB 00000c16: SWAP1 00000c17: SWAP2 00000c18: ADD 00000c19: SWAP1 00000c1a: LOG1 00000c1b: PUSH1 0x00 00000c1d: SWAP4 00000c1e: SWAP3 00000c1f: POP 00000c20: POP 00000c21: POP 00000c22: JUMP 00000c23: JUMPDEST 00000c24: PUSH1 0x0c 00000c26: SLOAD 00000c27: DUP2 00000c28: JUMP 00000c29: JUMPDEST 00000c2a: PUSH1 0x06 00000c2c: SLOAD 00000c2d: PUSH1 0x01 00000c2f: PUSH1 0x01 00000c31: PUSH1 0xa0 00000c33: SHL 00000c34: SUB 00000c35: AND 00000c36: DUP2 00000c37: JUMP 00000c38: JUMPDEST 00000c39: PUSH1 0x00 00000c3b: DUP1 00000c3c: SLOAD 00000c3d: PUSH1 0x01 00000c3f: ADD 00000c40: DUP1 00000c41: DUP3 00000c42: SSTORE 00000c43: DUP2 00000c44: PUSH2 0x0c4b 00000c47: PUSH2 0x0e8a 00000c4a: JUMP 00000c4b: JUMPDEST 00000c4c: SWAP1 00000c4d: POP 00000c4e: DUP1 00000c4f: ISZERO 00000c50: PUSH2 0x0c71 00000c53: JUMPI 00000c54: PUSH2 0x0c69 00000c57: DUP2 00000c58: PUSH1 0x10 00000c5a: DUP2 00000c5b: GT 00000c5c: ISZERO 00000c5d: PUSH2 0x0c62 00000c60: JUMPI 00000c61: INVALID 00000c62: JUMPDEST 00000c63: PUSH1 0x30 00000c65: PUSH2 0x227d 00000c68: JUMP 00000c69: JUMPDEST 00000c6a: SWAP3 00000c6b: POP 00000c6c: POP 00000c6d: PUSH2 0x0902 00000c70: JUMP 00000c71: JUMPDEST 00000c72: PUSH2 0x0c7a 00000c75: DUP5 00000c76: PUSH2 0x22e3 00000c79: JUMP 00000c7a: JUMPDEST 00000c7b: SWAP3 00000c7c: POP 00000c7d: POP 00000c7e: PUSH1 0x00 00000c80: SLOAD 00000c81: DUP2 00000c82: EQ 00000c83: PUSH2 0x094b 00000c86: JUMPI 00000c87: PUSH1 0x40 00000c89: DUP1 00000c8a: MLOAD 00000c8b: PUSH1 0x01 00000c8d: PUSH1 0xe5 00000c8f: SHL 00000c90: PUSH3 0x461bcd 00000c94: MUL 00000c95: DUP2 00000c96: MSTORE 00000c97: PUSH1 0x20 00000c99: PUSH1 0x04 00000c9b: DUP3 00000c9c: ADD 00000c9d: MSTORE 00000c9e: PUSH1 0x0a 00000ca0: PUSH1 0x24 00000ca2: DUP3 00000ca3: ADD 00000ca4: MSTORE 00000ca5: PUSH1 0x01 00000ca7: PUSH1 0xb2 00000ca9: SHL 00000caa: PUSH10 0x1c994b595b9d195c9959 00000cb5: MUL 00000cb6: PUSH1 0x44 00000cb8: DUP3 00000cb9: ADD 00000cba: MSTORE 00000cbb: SWAP1 00000cbc: MLOAD 00000cbd: SWAP1 00000cbe: DUP2 00000cbf: SWAP1 00000cc0: SUB 00000cc1: PUSH1 0x64 00000cc3: ADD 00000cc4: SWAP1 00000cc5: REVERT 00000cc6: JUMPDEST 00000cc7: PUSH1 0x08 00000cc9: SLOAD 00000cca: DUP2 00000ccb: JUMP 00000ccc: JUMPDEST 00000ccd: PUSH1 0x0a 00000ccf: SLOAD 00000cd0: DUP2 00000cd1: JUMP 00000cd2: JUMPDEST 00000cd3: PUSH1 0x12 00000cd5: SLOAD 00000cd6: PUSH1 0x01 00000cd8: PUSH1 0x01 00000cda: PUSH1 0xa0 00000cdc: SHL 00000cdd: SUB 00000cde: AND 00000cdf: DUP2 00000ce0: JUMP 00000ce1: JUMPDEST 00000ce2: PUSH1 0x01 00000ce4: PUSH1 0x01 00000ce6: PUSH1 0xa0 00000ce8: SHL 00000ce9: SUB 00000cea: AND 00000ceb: PUSH1 0x00 00000ced: SWAP1 00000cee: DUP2 00000cef: MSTORE 00000cf0: PUSH1 0x0f 00000cf2: PUSH1 0x20 00000cf4: MSTORE 00000cf5: PUSH1 0x40 00000cf7: SWAP1 00000cf8: KECCAK256 00000cf9: SLOAD 00000cfa: SWAP1 00000cfb: JUMP 00000cfc: JUMPDEST 00000cfd: PUSH1 0x00 00000cff: DUP1 00000d00: SLOAD 00000d01: PUSH1 0x01 00000d03: ADD 00000d04: DUP1 00000d05: DUP3 00000d06: SSTORE 00000d07: DUP2 00000d08: PUSH2 0x0d0f 00000d0b: PUSH2 0x0e8a 00000d0e: JUMP 00000d0f: JUMPDEST 00000d10: EQ 00000d11: PUSH2 0x0d64 00000d14: JUMPI 00000d15: PUSH1 0x40 00000d17: DUP1 00000d18: MLOAD 00000d19: PUSH1 0x01 00000d1b: PUSH1 0xe5 00000d1d: SHL 00000d1e: PUSH3 0x461bcd 00000d22: MUL 00000d23: DUP2 00000d24: MSTORE 00000d25: PUSH1 0x20 00000d27: PUSH1 0x04 00000d29: DUP3 00000d2a: ADD 00000d2b: MSTORE 00000d2c: PUSH1 0x16 00000d2e: PUSH1 0x24 00000d30: DUP3 00000d31: ADD 00000d32: MSTORE 00000d33: PUSH32 0x61636372756520696e746572657374206661696c656400000000000000000000 00000d54: PUSH1 0x44 00000d56: DUP3 00000d57: ADD 00000d58: MSTORE 00000d59: SWAP1 00000d5a: MLOAD 00000d5b: SWAP1 00000d5c: DUP2 00000d5d: SWAP1 00000d5e: SUB 00000d5f: PUSH1 0x64 00000d61: ADD 00000d62: SWAP1 00000d63: REVERT 00000d64: JUMPDEST 00000d65: PUSH1 0x0c 00000d67: SLOAD 00000d68: SWAP2 00000d69: POP 00000d6a: PUSH1 0x00 00000d6c: SLOAD 00000d6d: DUP2 00000d6e: EQ 00000d6f: PUSH2 0x0db2 00000d72: JUMPI 00000d73: PUSH1 0x40 00000d75: DUP1 00000d76: MLOAD 00000d77: PUSH1 0x01 00000d79: PUSH1 0xe5 00000d7b: SHL 00000d7c: PUSH3 0x461bcd 00000d80: MUL 00000d81: DUP2 00000d82: MSTORE 00000d83: PUSH1 0x20 00000d85: PUSH1 0x04 00000d87: DUP3 00000d88: ADD 00000d89: MSTORE 00000d8a: PUSH1 0x0a 00000d8c: PUSH1 0x24 00000d8e: DUP3 00000d8f: ADD 00000d90: MSTORE 00000d91: PUSH1 0x01 00000d93: PUSH1 0xb2 00000d95: SHL 00000d96: PUSH10 0x1c994b595b9d195c9959 00000da1: MUL 00000da2: PUSH1 0x44 00000da4: DUP3 00000da5: ADD 00000da6: MSTORE 00000da7: SWAP1 00000da8: MLOAD 00000da9: SWAP1 00000daa: DUP2 00000dab: SWAP1 00000dac: SUB 00000dad: PUSH1 0x64 00000daf: ADD 00000db0: SWAP1 00000db1: REVERT 00000db2: JUMPDEST 00000db3: POP 00000db4: SWAP1 00000db5: JUMP 00000db6: JUMPDEST 00000db7: PUSH1 0x00 00000db9: PUSH2 0x0880 00000dbc: DUP3 00000dbd: PUSH2 0x2467 00000dc0: JUMP 00000dc1: JUMPDEST 00000dc2: PUSH1 0x0d 00000dc4: SLOAD 00000dc5: DUP2 00000dc6: JUMP 00000dc7: JUMPDEST 00000dc8: PUSH1 0x02 00000dca: DUP1 00000dcb: SLOAD 00000dcc: PUSH1 0x40 00000dce: DUP1 00000dcf: MLOAD 00000dd0: PUSH1 0x20 00000dd2: PUSH1 0x01 00000dd4: DUP5 00000dd5: AND 00000dd6: ISZERO 00000dd7: PUSH2 0x0100 00000dda: MUL 00000ddb: PUSH1 0x00 00000ddd: NOT 00000dde: ADD 00000ddf: SWAP1 00000de0: SWAP4 00000de1: AND 00000de2: DUP5 00000de3: SWAP1 00000de4: DIV 00000de5: PUSH1 0x1f 00000de7: DUP2 00000de8: ADD 00000de9: DUP5 00000dea: SWAP1 00000deb: DIV 00000dec: DUP5 00000ded: MUL 00000dee: DUP3 00000def: ADD 00000df0: DUP5 00000df1: ADD 00000df2: SWAP1 00000df3: SWAP3 00000df4: MSTORE 00000df5: DUP2 00000df6: DUP2 00000df7: MSTORE 00000df8: SWAP3 00000df9: SWAP2 00000dfa: DUP4 00000dfb: ADD 00000dfc: DUP3 00000dfd: DUP3 00000dfe: DUP1 00000dff: ISZERO 00000e00: PUSH2 0x0800 00000e03: JUMPI 00000e04: DUP1 00000e05: PUSH1 0x1f 00000e07: LT 00000e08: PUSH2 0x07d5 00000e0b: JUMPI 00000e0c: PUSH2 0x0100 00000e0f: DUP1 00000e10: DUP4 00000e11: SLOAD 00000e12: DIV 00000e13: MUL 00000e14: DUP4 00000e15: MSTORE 00000e16: SWAP2 00000e17: PUSH1 0x20 00000e19: ADD 00000e1a: SWAP2 00000e1b: PUSH2 0x0800 00000e1e: JUMP 00000e1f: JUMPDEST 00000e20: PUSH1 0x00 00000e22: DUP1 00000e23: PUSH1 0x00 00000e25: PUSH2 0x0e2d 00000e28: DUP5 00000e29: PUSH2 0x24a4 00000e2c: JUMP 00000e2d: JUMPDEST 00000e2e: SWAP1 00000e2f: SWAP3 00000e30: POP 00000e31: SWAP1 00000e32: POP 00000e33: PUSH1 0x00 00000e35: DUP3 00000e36: PUSH1 0x03 00000e38: DUP2 00000e39: GT 00000e3a: ISZERO 00000e3b: PUSH2 0x0e40 00000e3e: JUMPI 00000e3f: INVALID 00000e40: JUMPDEST 00000e41: EQ 00000e42: PUSH2 0x0a35 00000e45: JUMPI 00000e46: PUSH1 0x40 00000e48: MLOAD 00000e49: PUSH1 0x01 00000e4b: PUSH1 0xe5 00000e4d: SHL 00000e4e: PUSH3 0x461bcd 00000e52: MUL 00000e53: DUP2 00000e54: MSTORE 00000e55: PUSH1 0x04 00000e57: ADD 00000e58: DUP1 00000e59: DUP1 00000e5a: PUSH1 0x20 00000e5c: ADD 00000e5d: DUP3 00000e5e: DUP2 00000e5f: SUB 00000e60: DUP3 00000e61: MSTORE 00000e62: PUSH1 0x37 00000e64: DUP2 00000e65: MSTORE 00000e66: PUSH1 0x20 00000e68: ADD 00000e69: DUP1 00000e6a: PUSH2 0x4836 00000e6d: PUSH1 0x37 00000e6f: SWAP2 00000e70: CODECOPY 00000e71: PUSH1 0x40 00000e73: ADD 00000e74: SWAP2 00000e75: POP 00000e76: POP 00000e77: PUSH1 0x40 00000e79: MLOAD 00000e7a: DUP1 00000e7b: SWAP2 00000e7c: SUB 00000e7d: SWAP1 00000e7e: REVERT 00000e7f: JUMPDEST 00000e80: PUSH1 0x00 00000e82: PUSH2 0x0880 00000e85: DUP3 00000e86: PUSH2 0x2558 00000e89: JUMP 00000e8a: JUMPDEST 00000e8b: PUSH1 0x00 00000e8d: PUSH2 0x0e94 00000e90: PUSH2 0x46ce 00000e93: JUMP 00000e94: JUMPDEST 00000e95: PUSH1 0x07 00000e97: SLOAD 00000e98: PUSH1 0x01 00000e9a: PUSH1 0x01 00000e9c: PUSH1 0xa0 00000e9e: SHL 00000e9f: SUB 00000ea0: AND 00000ea1: PUSH4 0x15f24053 00000ea6: PUSH2 0x0ead 00000ea9: PUSH2 0x21fa 00000eac: JUMP 00000ead: JUMPDEST 00000eae: PUSH1 0x0c 00000eb0: SLOAD 00000eb1: PUSH1 0x0d 00000eb3: SLOAD 00000eb4: PUSH1 0x40 00000eb6: MLOAD 00000eb7: DUP5 00000eb8: PUSH4 0xffffffff 00000ebd: AND 00000ebe: PUSH1 0xe0 00000ec0: SHL 00000ec1: DUP2 00000ec2: MSTORE 00000ec3: PUSH1 0x04 00000ec5: ADD 00000ec6: DUP1 00000ec7: DUP5 00000ec8: DUP2 00000ec9: MSTORE 00000eca: PUSH1 0x20 00000ecc: ADD 00000ecd: DUP4 00000ece: DUP2 00000ecf: MSTORE 00000ed0: PUSH1 0x20 00000ed2: ADD 00000ed3: DUP3 00000ed4: DUP2 00000ed5: MSTORE 00000ed6: PUSH1 0x20 00000ed8: ADD 00000ed9: SWAP4 00000eda: POP 00000edb: POP 00000edc: POP 00000edd: POP 00000ede: PUSH1 0x40 00000ee0: DUP1 00000ee1: MLOAD 00000ee2: DUP1 00000ee3: DUP4 00000ee4: SUB 00000ee5: DUP2 00000ee6: DUP7 00000ee7: DUP1 00000ee8: EXTCODESIZE 00000ee9: ISZERO 00000eea: DUP1 00000eeb: ISZERO 00000eec: PUSH2 0x0ef4 00000eef: JUMPI 00000ef0: PUSH1 0x00 00000ef2: DUP1 00000ef3: REVERT 00000ef4: JUMPDEST 00000ef5: POP 00000ef6: GAS 00000ef7: STATICCALL 00000ef8: ISZERO 00000ef9: DUP1 00000efa: ISZERO 00000efb: PUSH2 0x0f08 00000efe: JUMPI 00000eff: RETURNDATASIZE 00000f00: PUSH1 0x00 00000f02: DUP1 00000f03: RETURNDATACOPY 00000f04: RETURNDATASIZE 00000f05: PUSH1 0x00 00000f07: REVERT 00000f08: JUMPDEST 00000f09: POP 00000f0a: POP 00000f0b: POP 00000f0c: POP 00000f0d: PUSH1 0x40 00000f0f: MLOAD 00000f10: RETURNDATASIZE 00000f11: PUSH1 0x40 00000f13: DUP2 00000f14: LT 00000f15: ISZERO 00000f16: PUSH2 0x0f1e 00000f19: JUMPI 00000f1a: PUSH1 0x00 00000f1c: DUP1 00000f1d: REVERT 00000f1e: JUMPDEST 00000f1f: POP 00000f20: DUP1 00000f21: MLOAD 00000f22: PUSH1 0x20 00000f24: SWAP2 00000f25: DUP3 00000f26: ADD 00000f27: MLOAD 00000f28: PUSH1 0x40 00000f2a: DUP5 00000f2b: ADD 00000f2c: DUP2 00000f2d: SWAP1 00000f2e: MSTORE 00000f2f: SWAP2 00000f30: DUP4 00000f31: ADD 00000f32: MSTORE 00000f33: PUSH7 0x01c6bf52634000 00000f3b: LT 00000f3c: ISZERO 00000f3d: PUSH2 0x0f90 00000f40: JUMPI 00000f41: PUSH1 0x40 00000f43: DUP1 00000f44: MLOAD 00000f45: PUSH1 0x01 00000f47: PUSH1 0xe5 00000f49: SHL 00000f4a: PUSH3 0x461bcd 00000f4e: MUL 00000f4f: DUP2 00000f50: MSTORE 00000f51: PUSH1 0x20 00000f53: PUSH1 0x04 00000f55: DUP3 00000f56: ADD 00000f57: MSTORE 00000f58: PUSH1 0x1c 00000f5a: PUSH1 0x24 00000f5c: DUP3 00000f5d: ADD 00000f5e: MSTORE 00000f5f: PUSH32 0x626f72726f772072617465206973206162737572646c79206869676800000000 00000f80: PUSH1 0x44 00000f82: DUP3 00000f83: ADD 00000f84: MSTORE 00000f85: SWAP1 00000f86: MLOAD 00000f87: SWAP1 00000f88: DUP2 00000f89: SWAP1 00000f8a: SUB 00000f8b: PUSH1 0x64 00000f8d: ADD 00000f8e: SWAP1 00000f8f: REVERT 00000f90: JUMPDEST 00000f91: PUSH1 0x20 00000f93: DUP2 00000f94: ADD 00000f95: MLOAD 00000f96: ISZERO 00000f97: PUSH2 0x0fb3 00000f9a: JUMPI 00000f9b: PUSH2 0x0fab 00000f9e: PUSH1 0x05 00000fa0: PUSH1 0x02 00000fa2: DUP4 00000fa3: PUSH1 0x20 00000fa5: ADD 00000fa6: MLOAD 00000fa7: PUSH2 0x2593 00000faa: JUMP 00000fab: JUMPDEST 00000fac: SWAP2 00000fad: POP 00000fae: POP 00000faf: PUSH2 0x09ba 00000fb2: JUMP 00000fb3: JUMPDEST 00000fb4: PUSH2 0x0fbb 00000fb7: PUSH2 0x25f9 00000fba: JUMP 00000fbb: JUMPDEST 00000fbc: PUSH1 0x60 00000fbe: DUP3 00000fbf: ADD 00000fc0: DUP2 00000fc1: SWAP1 00000fc2: MSTORE 00000fc3: PUSH1 0x0a 00000fc5: SLOAD 00000fc6: PUSH2 0x0fcf 00000fc9: SWAP2 00000fca: SWAP1 00000fcb: PUSH2 0x25fd 00000fce: JUMP 00000fcf: JUMPDEST 00000fd0: PUSH1 0x80 00000fd2: DUP4 00000fd3: ADD 00000fd4: DUP2 00000fd5: SWAP1 00000fd6: MSTORE 00000fd7: DUP3 00000fd8: DUP3 00000fd9: PUSH1 0x03 00000fdb: DUP2 00000fdc: GT 00000fdd: ISZERO 00000fde: PUSH2 0x0fe3 00000fe1: JUMPI 00000fe2: INVALID 00000fe3: JUMPDEST 00000fe4: PUSH1 0x03 00000fe6: DUP2 00000fe7: GT 00000fe8: ISZERO 00000fe9: PUSH2 0x0fee 00000fec: JUMPI 00000fed: INVALID 00000fee: JUMPDEST 00000fef: SWAP1 00000ff0: MSTORE 00000ff1: POP 00000ff2: PUSH1 0x00 00000ff4: SWAP1 00000ff5: POP 00000ff6: DUP2 00000ff7: MLOAD 00000ff8: PUSH1 0x03 00000ffa: DUP2 00000ffb: GT 00000ffc: ISZERO 00000ffd: PUSH2 0x1002 00001000: JUMPI 00001001: INVALID 00001002: JUMPDEST 00001003: EQ 00001004: PUSH2 0x1009 00001007: JUMPI 00001008: INVALID 00001009: JUMPDEST 0000100a: PUSH2 0x1029 0000100d: PUSH1 0x40 0000100f: MLOAD 00001010: DUP1 00001011: PUSH1 0x20 00001013: ADD 00001014: PUSH1 0x40 00001016: MSTORE 00001017: DUP1 00001018: DUP4 00001019: PUSH1 0x40 0000101b: ADD 0000101c: MLOAD 0000101d: DUP2 0000101e: MSTORE 0000101f: POP 00001020: DUP3 00001021: PUSH1 0x80 00001023: ADD 00001024: MLOAD 00001025: PUSH2 0x2620 00001028: JUMP 00001029: JUMPDEST 0000102a: PUSH1 0xa0 0000102c: DUP4 0000102d: ADD 0000102e: DUP2 0000102f: SWAP1 00001030: MSTORE 00001031: DUP3 00001032: DUP3 00001033: PUSH1 0x03 00001035: DUP2 00001036: GT 00001037: ISZERO 00001038: PUSH2 0x103d 0000103b: JUMPI 0000103c: INVALID 0000103d: JUMPDEST 0000103e: PUSH1 0x03 00001040: DUP2 00001041: GT 00001042: ISZERO 00001043: PUSH2 0x1048 00001046: JUMPI 00001047: INVALID 00001048: JUMPDEST 00001049: SWAP1 0000104a: MSTORE 0000104b: POP 0000104c: PUSH1 0x00 0000104e: SWAP1 0000104f: POP 00001050: DUP2 00001051: MLOAD 00001052: PUSH1 0x03 00001054: DUP2 00001055: GT 00001056: ISZERO 00001057: PUSH2 0x105c 0000105a: JUMPI 0000105b: INVALID 0000105c: JUMPDEST 0000105d: EQ 0000105e: PUSH2 0x107d 00001061: JUMPI 00001062: PUSH2 0x0fab 00001065: PUSH1 0x09 00001067: PUSH1 0x06 00001069: DUP4 0000106a: PUSH1 0x00 0000106c: ADD 0000106d: MLOAD 0000106e: PUSH1 0x03 00001070: DUP2 00001071: GT 00001072: ISZERO 00001073: PUSH2 0x1078 00001076: JUMPI 00001077: INVALID 00001078: JUMPDEST 00001079: PUSH2 0x2593 0000107c: JUMP 0000107d: JUMPDEST 0000107e: PUSH2 0x108d 00001081: DUP2 00001082: PUSH1 0xa0 00001084: ADD 00001085: MLOAD 00001086: PUSH1 0x0c 00001088: SLOAD 00001089: PUSH2 0x21a6 0000108c: JUMP 0000108d: JUMPDEST 0000108e: PUSH1 0xc0 00001090: DUP4 00001091: ADD 00001092: DUP2 00001093: SWAP1 00001094: MSTORE 00001095: DUP3 00001096: DUP3 00001097: PUSH1 0x03 00001099: DUP2 0000109a: GT 0000109b: ISZERO 0000109c: PUSH2 0x10a1 0000109f: JUMPI 000010a0: INVALID 000010a1: JUMPDEST 000010a2: PUSH1 0x03 000010a4: DUP2 000010a5: GT 000010a6: ISZERO 000010a7: PUSH2 0x10ac 000010aa: JUMPI 000010ab: INVALID 000010ac: JUMPDEST 000010ad: SWAP1 000010ae: MSTORE 000010af: POP 000010b0: PUSH1 0x00 000010b2: SWAP1 000010b3: POP 000010b4: DUP2 000010b5: MLOAD 000010b6: PUSH1 0x03 000010b8: DUP2 000010b9: GT 000010ba: ISZERO 000010bb: PUSH2 0x10c0 000010be: JUMPI 000010bf: INVALID 000010c0: JUMPDEST 000010c1: EQ 000010c2: PUSH2 0x10dc 000010c5: JUMPI 000010c6: PUSH2 0x0fab 000010c9: PUSH1 0x09 000010cb: PUSH1 0x01 000010cd: DUP4 000010ce: PUSH1 0x00 000010d0: ADD 000010d1: MLOAD 000010d2: PUSH1 0x03 000010d4: DUP2 000010d5: GT 000010d6: ISZERO 000010d7: PUSH2 0x1078 000010da: JUMPI 000010db: INVALID 000010dc: JUMPDEST 000010dd: PUSH2 0x10ec 000010e0: DUP2 000010e1: PUSH1 0xc0 000010e3: ADD 000010e4: MLOAD 000010e5: PUSH1 0x0c 000010e7: SLOAD 000010e8: PUSH2 0x2688 000010eb: JUMP 000010ec: JUMPDEST 000010ed: PUSH1 0xe0 000010ef: DUP4 000010f0: ADD 000010f1: DUP2 000010f2: SWAP1 000010f3: MSTORE 000010f4: DUP3 000010f5: DUP3 000010f6: PUSH1 0x03 000010f8: DUP2 000010f9: GT 000010fa: ISZERO 000010fb: PUSH2 0x1100 000010fe: JUMPI 000010ff: INVALID 00001100: JUMPDEST 00001101: PUSH1 0x03 00001103: DUP2 00001104: GT 00001105: ISZERO 00001106: PUSH2 0x110b 00001109: JUMPI 0000110a: INVALID 0000110b: JUMPDEST 0000110c: SWAP1 0000110d: MSTORE 0000110e: POP 0000110f: PUSH1 0x00 00001111: SWAP1 00001112: POP 00001113: DUP2 00001114: MLOAD 00001115: PUSH1 0x03 00001117: DUP2 00001118: GT 00001119: ISZERO 0000111a: PUSH2 0x111f 0000111d: JUMPI 0000111e: INVALID 0000111f: JUMPDEST 00001120: EQ 00001121: PUSH2 0x113b 00001124: JUMPI 00001125: PUSH2 0x0fab 00001128: PUSH1 0x09 0000112a: PUSH1 0x04 0000112c: DUP4 0000112d: PUSH1 0x00 0000112f: ADD 00001130: MLOAD 00001131: PUSH1 0x03 00001133: DUP2 00001134: GT 00001135: ISZERO 00001136: PUSH2 0x1078 00001139: JUMPI 0000113a: INVALID 0000113b: JUMPDEST 0000113c: PUSH2 0x115c 0000113f: PUSH1 0x40 00001141: MLOAD 00001142: DUP1 00001143: PUSH1 0x20 00001145: ADD 00001146: PUSH1 0x40 00001148: MSTORE 00001149: DUP1 0000114a: PUSH1 0x09 0000114c: SLOAD 0000114d: DUP2 0000114e: MSTORE 0000114f: POP 00001150: DUP3 00001151: PUSH1 0xc0 00001153: ADD 00001154: MLOAD 00001155: PUSH1 0x0d 00001157: SLOAD 00001158: PUSH2 0x26ae 0000115b: JUMP 0000115c: JUMPDEST 0000115d: PUSH2 0x0100 00001160: DUP4 00001161: ADD 00001162: DUP2 00001163: SWAP1 00001164: MSTORE 00001165: DUP3 00001166: DUP3 00001167: PUSH1 0x03 00001169: DUP2 0000116a: GT 0000116b: ISZERO 0000116c: PUSH2 0x1171 0000116f: JUMPI 00001170: INVALID 00001171: JUMPDEST 00001172: PUSH1 0x03 00001174: DUP2 00001175: GT 00001176: ISZERO 00001177: PUSH2 0x117c 0000117a: JUMPI 0000117b: INVALID 0000117c: JUMPDEST 0000117d: SWAP1 0000117e: MSTORE 0000117f: POP 00001180: PUSH1 0x00 00001182: SWAP1 00001183: POP 00001184: DUP2 00001185: MLOAD 00001186: PUSH1 0x03 00001188: DUP2 00001189: GT 0000118a: ISZERO 0000118b: PUSH2 0x1190 0000118e: JUMPI 0000118f: INVALID 00001190: JUMPDEST 00001191: EQ 00001192: PUSH2 0x11ac 00001195: JUMPI 00001196: PUSH2 0x0fab 00001199: PUSH1 0x09 0000119b: PUSH1 0x05 0000119d: DUP4 0000119e: PUSH1 0x00 000011a0: ADD 000011a1: MLOAD 000011a2: PUSH1 0x03 000011a4: DUP2 000011a5: GT 000011a6: ISZERO 000011a7: PUSH2 0x1078 000011aa: JUMPI 000011ab: INVALID 000011ac: JUMPDEST 000011ad: PUSH2 0x11bf 000011b0: DUP2 000011b1: PUSH1 0xa0 000011b3: ADD 000011b4: MLOAD 000011b5: PUSH1 0x0b 000011b7: SLOAD 000011b8: PUSH1 0x0b 000011ba: SLOAD 000011bb: PUSH2 0x26ae 000011be: JUMP 000011bf: JUMPDEST 000011c0: PUSH2 0x0120 000011c3: DUP4 000011c4: ADD 000011c5: DUP2 000011c6: SWAP1 000011c7: MSTORE 000011c8: DUP3 000011c9: DUP3 000011ca: PUSH1 0x03 000011cc: DUP2 000011cd: GT 000011ce: ISZERO 000011cf: PUSH2 0x11d4 000011d2: JUMPI 000011d3: INVALID 000011d4: JUMPDEST 000011d5: PUSH1 0x03 000011d7: DUP2 000011d8: GT 000011d9: ISZERO 000011da: PUSH2 0x11df 000011dd: JUMPI 000011de: INVALID 000011df: JUMPDEST 000011e0: SWAP1 000011e1: MSTORE 000011e2: POP 000011e3: PUSH1 0x00 000011e5: SWAP1 000011e6: POP 000011e7: DUP2 000011e8: MLOAD 000011e9: PUSH1 0x03 000011eb: DUP2 000011ec: GT 000011ed: ISZERO 000011ee: PUSH2 0x11f3 000011f1: JUMPI 000011f2: INVALID 000011f3: JUMPDEST 000011f4: EQ 000011f5: PUSH2 0x120f 000011f8: JUMPI 000011f9: PUSH2 0x0fab 000011fc: PUSH1 0x09 000011fe: PUSH1 0x03 00001200: DUP4 00001201: PUSH1 0x00 00001203: ADD 00001204: MLOAD 00001205: PUSH1 0x03 00001207: DUP2 00001208: GT 00001209: ISZERO 0000120a: PUSH2 0x1078 0000120d: JUMPI 0000120e: INVALID 0000120f: JUMPDEST 00001210: PUSH1 0x60 00001212: DUP1 00001213: DUP3 00001214: ADD 00001215: MLOAD 00001216: PUSH1 0x0a 00001218: SSTORE 00001219: PUSH2 0x0120 0000121c: DUP3 0000121d: ADD 0000121e: MLOAD 0000121f: PUSH1 0x0b 00001221: DUP2 00001222: SWAP1 00001223: SSTORE 00001224: PUSH1 0xe0 00001226: DUP4 00001227: ADD 00001228: MLOAD 00001229: PUSH1 0x0c 0000122b: DUP2 0000122c: SWAP1 0000122d: SSTORE 0000122e: PUSH2 0x0100 00001231: DUP5 00001232: ADD 00001233: MLOAD 00001234: PUSH1 0x0d 00001236: SSTORE 00001237: PUSH1 0xc0 00001239: DUP5 0000123a: ADD 0000123b: MLOAD 0000123c: PUSH1 0x40 0000123e: DUP1 0000123f: MLOAD 00001240: SWAP2 00001241: DUP3 00001242: MSTORE 00001243: PUSH1 0x20 00001245: DUP3 00001246: ADD 00001247: SWAP4 00001248: SWAP1 00001249: SWAP4 0000124a: MSTORE 0000124b: DUP1 0000124c: DUP4 0000124d: ADD 0000124e: SWAP2 0000124f: SWAP1 00001250: SWAP2 00001251: MSTORE 00001252: SWAP1 00001253: MLOAD 00001254: PUSH32 0x875352fb3fadeb8c0be7cbbe8ff761b308fa7033470cd0287f02f3436fd76cb9 00001275: SWAP3 00001276: SWAP2 00001277: DUP2 00001278: SWAP1 00001279: SUB 0000127a: SWAP1 0000127b: SWAP2 0000127c: ADD 0000127d: SWAP1 0000127e: LOG1 0000127f: PUSH1 0x00 00001281: SWAP2 00001282: POP 00001283: POP 00001284: SWAP1 00001285: JUMP 00001286: JUMPDEST 00001287: PUSH1 0x00 00001289: DUP1 0000128a: SLOAD 0000128b: PUSH1 0x01 0000128d: ADD 0000128e: DUP1 0000128f: DUP3 00001290: SSTORE 00001291: DUP2 00001292: PUSH2 0x129d 00001295: CALLER 00001296: CALLER 00001297: DUP8 00001298: DUP8 00001299: PUSH2 0x1e02 0000129c: JUMP 0000129d: JUMPDEST 0000129e: EQ 0000129f: SWAP2 000012a0: POP 000012a1: JUMPDEST 000012a2: PUSH1 0x00 000012a4: SLOAD 000012a5: DUP2 000012a6: EQ 000012a7: PUSH2 0x12ea 000012aa: JUMPI 000012ab: PUSH1 0x40 000012ad: DUP1 000012ae: MLOAD 000012af: PUSH1 0x01 000012b1: PUSH1 0xe5 000012b3: SHL 000012b4: PUSH3 0x461bcd 000012b8: MUL 000012b9: DUP2 000012ba: MSTORE 000012bb: PUSH1 0x20 000012bd: PUSH1 0x04 000012bf: DUP3 000012c0: ADD 000012c1: MSTORE 000012c2: PUSH1 0x0a 000012c4: PUSH1 0x24 000012c6: DUP3 000012c7: ADD 000012c8: MSTORE 000012c9: PUSH1 0x01 000012cb: PUSH1 0xb2 000012cd: SHL 000012ce: PUSH10 0x1c994b595b9d195c9959 000012d9: MUL 000012da: PUSH1 0x44 000012dc: DUP3 000012dd: ADD 000012de: MSTORE 000012df: SWAP1 000012e0: MLOAD 000012e1: SWAP1 000012e2: DUP2 000012e3: SWAP1 000012e4: SUB 000012e5: PUSH1 0x64 000012e7: ADD 000012e8: SWAP1 000012e9: REVERT 000012ea: JUMPDEST 000012eb: POP 000012ec: SWAP3 000012ed: SWAP2 000012ee: POP 000012ef: POP 000012f0: JUMP 000012f1: JUMPDEST 000012f2: PUSH1 0x0b 000012f4: SLOAD 000012f5: DUP2 000012f6: JUMP 000012f7: JUMPDEST 000012f8: PUSH1 0x00 000012fa: DUP1 000012fb: PUSH2 0x1302 000012fe: PUSH2 0x0957 00001301: JUMP 00001302: JUMPDEST 00001303: PUSH1 0x07 00001305: SLOAD 00001306: SWAP1 00001307: SWAP2 00001308: POP 00001309: PUSH1 0x00 0000130b: SWAP1 0000130c: DUP2 0000130d: SWAP1 0000130e: PUSH1 0x01 00001310: PUSH1 0x01 00001312: PUSH1 0xa0 00001314: SHL 00001315: SUB 00001316: AND 00001317: PUSH4 0x15f24053 0000131c: PUSH2 0x1323 0000131f: PUSH2 0x21fa 00001322: JUMP 00001323: JUMPDEST 00001324: PUSH1 0x0c 00001326: SLOAD 00001327: PUSH1 0x0d 00001329: SLOAD 0000132a: PUSH1 0x40 0000132c: MLOAD 0000132d: DUP5 0000132e: PUSH4 0xffffffff 00001333: AND 00001334: PUSH1 0xe0 00001336: SHL 00001337: DUP2 00001338: MSTORE 00001339: PUSH1 0x04 0000133b: ADD 0000133c: DUP1 0000133d: DUP5 0000133e: DUP2 0000133f: MSTORE 00001340: PUSH1 0x20 00001342: ADD 00001343: DUP4 00001344: DUP2 00001345: MSTORE 00001346: PUSH1 0x20 00001348: ADD 00001349: DUP3 0000134a: DUP2 0000134b: MSTORE 0000134c: PUSH1 0x20 0000134e: ADD 0000134f: SWAP4 00001350: POP 00001351: POP 00001352: POP 00001353: POP 00001354: PUSH1 0x40 00001356: DUP1 00001357: MLOAD 00001358: DUP1 00001359: DUP4 0000135a: SUB 0000135b: DUP2 0000135c: DUP7 0000135d: DUP1 0000135e: EXTCODESIZE 0000135f: ISZERO 00001360: DUP1 00001361: ISZERO 00001362: PUSH2 0x136a 00001365: JUMPI 00001366: PUSH1 0x00 00001368: DUP1 00001369: REVERT 0000136a: JUMPDEST 0000136b: POP 0000136c: GAS 0000136d: STATICCALL 0000136e: ISZERO 0000136f: DUP1 00001370: ISZERO 00001371: PUSH2 0x137e 00001374: JUMPI 00001375: RETURNDATASIZE 00001376: PUSH1 0x00 00001378: DUP1 00001379: RETURNDATACOPY 0000137a: RETURNDATASIZE 0000137b: PUSH1 0x00 0000137d: REVERT 0000137e: JUMPDEST 0000137f: POP 00001380: POP 00001381: POP 00001382: POP 00001383: PUSH1 0x40 00001385: MLOAD 00001386: RETURNDATASIZE 00001387: PUSH1 0x40 00001389: DUP2 0000138a: LT 0000138b: ISZERO 0000138c: PUSH2 0x1394 0000138f: JUMPI 00001390: PUSH1 0x00 00001392: DUP1 00001393: REVERT 00001394: JUMPDEST 00001395: POP 00001396: DUP1 00001397: MLOAD 00001398: PUSH1 0x20 0000139a: SWAP1 0000139b: SWAP2 0000139c: ADD 0000139d: MLOAD 0000139e: SWAP1 0000139f: SWAP3 000013a0: POP 000013a1: SWAP1 000013a2: POP 000013a3: DUP2 000013a4: ISZERO 000013a5: PUSH2 0x13e2 000013a8: JUMPI 000013a9: PUSH1 0x40 000013ab: MLOAD 000013ac: PUSH1 0x01 000013ae: PUSH1 0xe5 000013b0: SHL 000013b1: PUSH3 0x461bcd 000013b5: MUL 000013b6: DUP2 000013b7: MSTORE 000013b8: PUSH1 0x04 000013ba: ADD 000013bb: DUP1 000013bc: DUP1 000013bd: PUSH1 0x20 000013bf: ADD 000013c0: DUP3 000013c1: DUP2 000013c2: SUB 000013c3: DUP3 000013c4: MSTORE 000013c5: PUSH1 0x31 000013c7: DUP2 000013c8: MSTORE 000013c9: PUSH1 0x20 000013cb: ADD 000013cc: DUP1 000013cd: PUSH2 0x48d5 000013d0: PUSH1 0x31 000013d2: SWAP2 000013d3: CODECOPY 000013d4: PUSH1 0x40 000013d6: ADD 000013d7: SWAP2 000013d8: POP 000013d9: POP 000013da: PUSH1 0x40 000013dc: MLOAD 000013dd: DUP1 000013de: SWAP2 000013df: SUB 000013e0: SWAP1 000013e1: REVERT 000013e2: JUMPDEST 000013e3: PUSH1 0x00 000013e5: PUSH2 0x13ec 000013e8: PUSH2 0x46bb 000013eb: JUMP 000013ec: JUMPDEST 000013ed: PUSH2 0x1406 000013f0: PUSH1 0x40 000013f2: MLOAD 000013f3: DUP1 000013f4: PUSH1 0x20 000013f6: ADD 000013f7: PUSH1 0x40 000013f9: MSTORE 000013fa: DUP1 000013fb: DUP8 000013fc: DUP2 000013fd: MSTORE 000013fe: POP 000013ff: PUSH1 0x0e 00001401: SLOAD 00001402: PUSH2 0x2620 00001405: JUMP 00001406: JUMPDEST 00001407: SWAP1 00001408: SWAP3 00001409: POP 0000140a: SWAP1 0000140b: POP 0000140c: PUSH1 0x00 0000140e: DUP3 0000140f: PUSH1 0x03 00001411: DUP2 00001412: GT 00001413: ISZERO 00001414: PUSH2 0x1419 00001417: JUMPI 00001418: INVALID 00001419: JUMPDEST 0000141a: EQ 0000141b: PUSH2 0x1458 0000141e: JUMPI 0000141f: PUSH1 0x40 00001421: MLOAD 00001422: PUSH1 0x01 00001424: PUSH1 0xe5 00001426: SHL 00001427: PUSH3 0x461bcd 0000142b: MUL 0000142c: DUP2 0000142d: MSTORE 0000142e: PUSH1 0x04 00001430: ADD 00001431: DUP1 00001432: DUP1 00001433: PUSH1 0x20 00001435: ADD 00001436: DUP3 00001437: DUP2 00001438: SUB 00001439: DUP3 0000143a: MSTORE 0000143b: PUSH1 0x31 0000143d: DUP2 0000143e: MSTORE 0000143f: PUSH1 0x20 00001441: ADD 00001442: DUP1 00001443: PUSH2 0x486d 00001446: PUSH1 0x31 00001448: SWAP2 00001449: CODECOPY 0000144a: PUSH1 0x40 0000144c: ADD 0000144d: SWAP2 0000144e: POP 0000144f: POP 00001450: PUSH1 0x40 00001452: MLOAD 00001453: DUP1 00001454: SWAP2 00001455: SUB 00001456: SWAP1 00001457: REVERT 00001458: JUMPDEST 00001459: PUSH1 0x00 0000145b: PUSH2 0x1462 0000145e: PUSH2 0x46bb 00001461: JUMP 00001462: JUMPDEST 00001463: PUSH2 0x146e 00001466: PUSH1 0x0c 00001468: SLOAD 00001469: DUP5 0000146a: PUSH2 0x270a 0000146d: JUMP 0000146e: JUMPDEST 0000146f: SWAP1 00001470: SWAP3 00001471: POP 00001472: SWAP1 00001473: POP 00001474: PUSH1 0x00 00001476: DUP3 00001477: PUSH1 0x03 00001479: DUP2 0000147a: GT 0000147b: ISZERO 0000147c: PUSH2 0x1481 0000147f: JUMPI 00001480: INVALID 00001481: JUMPDEST 00001482: EQ 00001483: PUSH2 0x14c0 00001486: JUMPI 00001487: PUSH1 0x40 00001489: MLOAD 0000148a: PUSH1 0x01 0000148c: PUSH1 0xe5 0000148e: SHL 0000148f: PUSH3 0x461bcd 00001493: MUL 00001494: DUP2 00001495: MSTORE 00001496: PUSH1 0x04 00001498: ADD 00001499: DUP1 0000149a: DUP1 0000149b: PUSH1 0x20 0000149d: ADD 0000149e: DUP3 0000149f: DUP2 000014a0: SUB 000014a1: DUP3 000014a2: MSTORE 000014a3: PUSH1 0x31 000014a5: DUP2 000014a6: MSTORE 000014a7: PUSH1 0x20 000014a9: ADD 000014aa: DUP1 000014ab: PUSH2 0x47b1 000014ae: PUSH1 0x31 000014b0: SWAP2 000014b1: CODECOPY 000014b2: PUSH1 0x40 000014b4: ADD 000014b5: SWAP2 000014b6: POP 000014b7: POP 000014b8: PUSH1 0x40 000014ba: MLOAD 000014bb: DUP1 000014bc: SWAP2 000014bd: SUB 000014be: SWAP1 000014bf: REVERT 000014c0: JUMPDEST 000014c1: PUSH1 0x00 000014c3: PUSH2 0x14ca 000014c6: PUSH2 0x46bb 000014c9: JUMP 000014ca: JUMPDEST 000014cb: PUSH2 0x14fa 000014ce: PUSH1 0x40 000014d0: MLOAD 000014d1: DUP1 000014d2: PUSH1 0x20 000014d4: ADD 000014d5: PUSH1 0x40 000014d7: MSTORE 000014d8: DUP1 000014d9: PUSH8 0x0de0b6b3a7640000 000014e2: DUP2 000014e3: MSTORE 000014e4: POP 000014e5: PUSH1 0x40 000014e7: MLOAD 000014e8: DUP1 000014e9: PUSH1 0x20 000014eb: ADD 000014ec: PUSH1 0x40 000014ee: MSTORE 000014ef: DUP1 000014f0: PUSH1 0x09 000014f2: SLOAD 000014f3: DUP2 000014f4: MSTORE 000014f5: POP 000014f6: PUSH2 0x2769 000014f9: JUMP 000014fa: JUMPDEST 000014fb: SWAP1 000014fc: SWAP3 000014fd: POP 000014fe: SWAP1 000014ff: POP 00001500: PUSH1 0x00 00001502: DUP3 00001503: PUSH1 0x03 00001505: DUP2 00001506: GT 00001507: ISZERO 00001508: PUSH2 0x150d 0000150b: JUMPI 0000150c: INVALID 0000150d: JUMPDEST 0000150e: EQ 0000150f: PUSH2 0x154c 00001512: JUMPI 00001513: PUSH1 0x40 00001515: MLOAD 00001516: PUSH1 0x01 00001518: PUSH1 0xe5 0000151a: SHL 0000151b: PUSH3 0x461bcd 0000151f: MUL 00001520: DUP2 00001521: MSTORE 00001522: PUSH1 0x04 00001524: ADD 00001525: DUP1 00001526: DUP1 00001527: PUSH1 0x20 00001529: ADD 0000152a: DUP3 0000152b: DUP2 0000152c: SUB 0000152d: DUP3 0000152e: MSTORE 0000152f: PUSH1 0x3c 00001531: DUP2 00001532: MSTORE 00001533: PUSH1 0x20 00001535: ADD 00001536: DUP1 00001537: PUSH2 0x4926 0000153a: PUSH1 0x3c 0000153c: SWAP2 0000153d: CODECOPY 0000153e: PUSH1 0x40 00001540: ADD 00001541: SWAP2 00001542: POP 00001543: POP 00001544: PUSH1 0x40 00001546: MLOAD 00001547: DUP1 00001548: SWAP2 00001549: SUB 0000154a: SWAP1 0000154b: REVERT 0000154c: JUMPDEST 0000154d: PUSH1 0x00 0000154f: PUSH2 0x1556 00001552: PUSH2 0x46bb 00001555: JUMP 00001556: JUMPDEST 00001557: PUSH2 0x156f 0000155a: PUSH1 0x40 0000155c: MLOAD 0000155d: DUP1 0000155e: PUSH1 0x20 00001560: ADD 00001561: PUSH1 0x40 00001563: MSTORE 00001564: DUP1 00001565: DUP12 00001566: DUP2 00001567: MSTORE 00001568: POP 00001569: DUP5 0000156a: DUP8 0000156b: PUSH2 0x27a3 0000156e: JUMP 0000156f: JUMPDEST 00001570: SWAP1 00001571: SWAP3 00001572: POP 00001573: SWAP1 00001574: POP 00001575: PUSH1 0x00 00001577: DUP3 00001578: PUSH1 0x03 0000157a: DUP2 0000157b: GT 0000157c: ISZERO 0000157d: PUSH2 0x1582 00001580: JUMPI 00001581: INVALID 00001582: JUMPDEST 00001583: EQ 00001584: PUSH2 0x15c1 00001587: JUMPI 00001588: PUSH1 0x40 0000158a: MLOAD 0000158b: PUSH1 0x01 0000158d: PUSH1 0xe5 0000158f: SHL 00001590: PUSH3 0x461bcd 00001594: MUL 00001595: DUP2 00001596: MSTORE 00001597: PUSH1 0x04 00001599: ADD 0000159a: DUP1 0000159b: DUP1 0000159c: PUSH1 0x20 0000159e: ADD 0000159f: DUP3 000015a0: DUP2 000015a1: SUB 000015a2: DUP3 000015a3: MSTORE 000015a4: PUSH1 0x31 000015a6: DUP2 000015a7: MSTORE 000015a8: PUSH1 0x20 000015aa: ADD 000015ab: DUP1 000015ac: PUSH2 0x4805 000015af: PUSH1 0x31 000015b1: SWAP2 000015b2: CODECOPY 000015b3: PUSH1 0x40 000015b5: ADD 000015b6: SWAP2 000015b7: POP 000015b8: POP 000015b9: PUSH1 0x40 000015bb: MLOAD 000015bc: DUP1 000015bd: SWAP2 000015be: SUB 000015bf: SWAP1 000015c0: REVERT 000015c1: JUMPDEST 000015c2: MLOAD 000015c3: SWAP11 000015c4: POP 000015c5: POP 000015c6: POP 000015c7: POP 000015c8: POP 000015c9: POP 000015ca: POP 000015cb: POP 000015cc: POP 000015cd: POP 000015ce: POP 000015cf: SWAP1 000015d0: JUMP 000015d1: JUMPDEST 000015d2: PUSH1 0x00 000015d4: DUP1 000015d5: SLOAD 000015d6: PUSH1 0x01 000015d8: ADD 000015d9: DUP1 000015da: DUP3 000015db: SSTORE 000015dc: PUSH1 0x06 000015de: SLOAD 000015df: PUSH1 0x40 000015e1: DUP1 000015e2: MLOAD 000015e3: PUSH1 0x01 000015e5: PUSH1 0xe0 000015e7: SHL 000015e8: PUSH4 0xd02f7351 000015ed: MUL 000015ee: DUP2 000015ef: MSTORE 000015f0: ADDRESS 000015f1: PUSH1 0x04 000015f3: DUP3 000015f4: ADD 000015f5: MSTORE 000015f6: CALLER 000015f7: PUSH1 0x24 000015f9: DUP3 000015fa: ADD 000015fb: MSTORE 000015fc: PUSH1 0x01 000015fe: PUSH1 0x01 00001600: PUSH1 0xa0 00001602: SHL 00001603: SUB 00001604: DUP9 00001605: DUP2 00001606: AND 00001607: PUSH1 0x44 00001609: DUP4 0000160a: ADD 0000160b: MSTORE 0000160c: DUP8 0000160d: DUP2 0000160e: AND 0000160f: PUSH1 0x64 00001611: DUP4 00001612: ADD 00001613: MSTORE 00001614: PUSH1 0x84 00001616: DUP3 00001617: ADD 00001618: DUP8 00001619: SWAP1 0000161a: MSTORE 0000161b: SWAP2 0000161c: MLOAD 0000161d: DUP6 0000161e: SWAP4 0000161f: SWAP3 00001620: SWAP1 00001621: SWAP3 00001622: AND 00001623: SWAP2 00001624: PUSH4 0xd02f7351 00001629: SWAP2 0000162a: PUSH1 0xa4 0000162c: DUP1 0000162d: DUP3 0000162e: ADD 0000162f: SWAP3 00001630: PUSH1 0x20 00001632: SWAP3 00001633: SWAP1 00001634: SWAP2 00001635: SWAP1 00001636: DUP3 00001637: SWAP1 00001638: SUB 00001639: ADD 0000163a: DUP2 0000163b: DUP8 0000163c: DUP8 0000163d: DUP1 0000163e: EXTCODESIZE 0000163f: ISZERO 00001640: DUP1 00001641: ISZERO 00001642: PUSH2 0x164a 00001645: JUMPI 00001646: PUSH1 0x00 00001648: DUP1 00001649: REVERT 0000164a: JUMPDEST 0000164b: POP 0000164c: GAS 0000164d: CALL 0000164e: ISZERO 0000164f: DUP1 00001650: ISZERO 00001651: PUSH2 0x165e 00001654: JUMPI 00001655: RETURNDATASIZE 00001656: PUSH1 0x00 00001658: DUP1 00001659: RETURNDATACOPY 0000165a: RETURNDATASIZE 0000165b: PUSH1 0x00 0000165d: REVERT 0000165e: JUMPDEST 0000165f: POP 00001660: POP 00001661: POP 00001662: POP 00001663: PUSH1 0x40 00001665: MLOAD 00001666: RETURNDATASIZE 00001667: PUSH1 0x20 00001669: DUP2 0000166a: LT 0000166b: ISZERO 0000166c: PUSH2 0x1674 0000166f: JUMPI 00001670: PUSH1 0x00 00001672: DUP1 00001673: REVERT 00001674: JUMPDEST 00001675: POP 00001676: MLOAD 00001677: SWAP1 00001678: POP 00001679: DUP1 0000167a: ISZERO 0000167b: PUSH2 0x1693 0000167e: JUMPI 0000167f: PUSH2 0x168b 00001682: PUSH1 0x03 00001684: PUSH1 0x1b 00001686: DUP4 00001687: PUSH2 0x2593 0000168a: JUMP 0000168b: JUMPDEST 0000168c: SWAP3 0000168d: POP 0000168e: POP 0000168f: PUSH2 0x09d8 00001692: JUMP 00001693: JUMPDEST 00001694: DUP6 00001695: PUSH1 0x01 00001697: PUSH1 0x01 00001699: PUSH1 0xa0 0000169b: SHL 0000169c: SUB 0000169d: AND 0000169e: DUP6 0000169f: PUSH1 0x01 000016a1: PUSH1 0x01 000016a3: PUSH1 0xa0 000016a5: SHL 000016a6: SUB 000016a7: AND 000016a8: EQ 000016a9: ISZERO 000016aa: PUSH2 0x16b9 000016ad: JUMPI 000016ae: PUSH2 0x168b 000016b1: PUSH1 0x06 000016b3: PUSH1 0x1c 000016b5: PUSH2 0x227d 000016b8: JUMP 000016b9: JUMPDEST 000016ba: PUSH1 0x01 000016bc: PUSH1 0x01 000016be: PUSH1 0xa0 000016c0: SHL 000016c1: SUB 000016c2: DUP6 000016c3: AND 000016c4: PUSH1 0x00 000016c6: SWAP1 000016c7: DUP2 000016c8: MSTORE 000016c9: PUSH1 0x0f 000016cb: PUSH1 0x20 000016cd: MSTORE 000016ce: PUSH1 0x40 000016d0: DUP2 000016d1: KECCAK256 000016d2: SLOAD 000016d3: DUP2 000016d4: SWAP1 000016d5: DUP2 000016d6: SWAP1 000016d7: PUSH2 0x16e0 000016da: SWAP1 000016db: DUP9 000016dc: PUSH2 0x25fd 000016df: JUMP 000016e0: JUMPDEST 000016e1: SWAP1 000016e2: SWAP4 000016e3: POP 000016e4: SWAP2 000016e5: POP 000016e6: PUSH1 0x00 000016e8: DUP4 000016e9: PUSH1 0x03 000016eb: DUP2 000016ec: GT 000016ed: ISZERO 000016ee: PUSH2 0x16f3 000016f1: JUMPI 000016f2: INVALID 000016f3: JUMPDEST 000016f4: EQ 000016f5: PUSH2 0x1716 000016f8: JUMPI 000016f9: PUSH2 0x170b 000016fc: PUSH1 0x09 000016fe: PUSH1 0x1a 00001700: DUP6 00001701: PUSH1 0x03 00001703: DUP2 00001704: GT 00001705: ISZERO 00001706: PUSH2 0x1078 00001709: JUMPI 0000170a: INVALID 0000170b: JUMPDEST 0000170c: SWAP6 0000170d: POP 0000170e: POP 0000170f: POP 00001710: POP 00001711: POP 00001712: PUSH2 0x09d8 00001715: JUMP 00001716: JUMPDEST 00001717: PUSH1 0x01 00001719: PUSH1 0x01 0000171b: PUSH1 0xa0 0000171d: SHL 0000171e: SUB 0000171f: DUP10 00001720: AND 00001721: PUSH1 0x00 00001723: SWAP1 00001724: DUP2 00001725: MSTORE 00001726: PUSH1 0x0f 00001728: PUSH1 0x20 0000172a: MSTORE 0000172b: PUSH1 0x40 0000172d: SWAP1 0000172e: KECCAK256 0000172f: SLOAD 00001730: PUSH2 0x1739 00001733: SWAP1 00001734: DUP9 00001735: PUSH2 0x2688 00001738: JUMP 00001739: JUMPDEST 0000173a: SWAP1 0000173b: SWAP4 0000173c: POP 0000173d: SWAP1 0000173e: POP 0000173f: PUSH1 0x00 00001741: DUP4 00001742: PUSH1 0x03 00001744: DUP2 00001745: GT 00001746: ISZERO 00001747: PUSH2 0x174c 0000174a: JUMPI 0000174b: INVALID 0000174c: JUMPDEST 0000174d: EQ 0000174e: PUSH2 0x1764 00001751: JUMPI 00001752: PUSH2 0x170b 00001755: PUSH1 0x09 00001757: PUSH1 0x19 00001759: DUP6 0000175a: PUSH1 0x03 0000175c: DUP2 0000175d: GT 0000175e: ISZERO 0000175f: PUSH2 0x1078 00001762: JUMPI 00001763: INVALID 00001764: JUMPDEST 00001765: PUSH1 0x01 00001767: PUSH1 0x01 00001769: PUSH1 0xa0 0000176b: SHL 0000176c: SUB 0000176d: DUP1 0000176e: DUP10 0000176f: AND 00001770: PUSH1 0x00 00001772: DUP2 00001773: DUP2 00001774: MSTORE 00001775: PUSH1 0x0f 00001777: PUSH1 0x20 00001779: SWAP1 0000177a: DUP2 0000177b: MSTORE 0000177c: PUSH1 0x40 0000177e: DUP1 0000177f: DUP4 00001780: KECCAK256 00001781: DUP8 00001782: SWAP1 00001783: SSTORE 00001784: SWAP4 00001785: DUP14 00001786: AND 00001787: DUP1 00001788: DUP4 00001789: MSTORE 0000178a: SWAP2 0000178b: DUP5 0000178c: SWAP1 0000178d: KECCAK256 0000178e: DUP6 0000178f: SWAP1 00001790: SSTORE 00001791: DUP4 00001792: MLOAD 00001793: DUP12 00001794: DUP2 00001795: MSTORE 00001796: SWAP4 00001797: MLOAD 00001798: SWAP2 00001799: SWAP4 0000179a: PUSH1 0x00 0000179c: DUP1 0000179d: MLOAD 0000179e: PUSH1 0x20 000017a0: PUSH2 0x4906 000017a3: DUP4 000017a4: CODECOPY 000017a5: DUP2 000017a6: MLOAD 000017a7: SWAP2 000017a8: MSTORE 000017a9: SWAP3 000017aa: SWAP1 000017ab: DUP2 000017ac: SWAP1 000017ad: SUB 000017ae: SWAP1 000017af: SWAP2 000017b0: ADD 000017b1: SWAP1 000017b2: LOG3 000017b3: PUSH1 0x06 000017b5: SLOAD 000017b6: PUSH1 0x40 000017b8: DUP1 000017b9: MLOAD 000017ba: PUSH1 0x01 000017bc: PUSH1 0xe0 000017be: SHL 000017bf: PUSH4 0x6d35bf91 000017c4: MUL 000017c5: DUP2 000017c6: MSTORE 000017c7: ADDRESS 000017c8: PUSH1 0x04 000017ca: DUP3 000017cb: ADD 000017cc: MSTORE 000017cd: CALLER 000017ce: PUSH1 0x24 000017d0: DUP3 000017d1: ADD 000017d2: MSTORE 000017d3: PUSH1 0x01 000017d5: PUSH1 0x01 000017d7: PUSH1 0xa0 000017d9: SHL 000017da: SUB 000017db: DUP13 000017dc: DUP2 000017dd: AND 000017de: PUSH1 0x44 000017e0: DUP4 000017e1: ADD 000017e2: MSTORE 000017e3: DUP12 000017e4: DUP2 000017e5: AND 000017e6: PUSH1 0x64 000017e8: DUP4 000017e9: ADD 000017ea: MSTORE 000017eb: PUSH1 0x84 000017ed: DUP3 000017ee: ADD 000017ef: DUP12 000017f0: SWAP1 000017f1: MSTORE 000017f2: SWAP2 000017f3: MLOAD 000017f4: SWAP2 000017f5: SWAP1 000017f6: SWAP3 000017f7: AND 000017f8: SWAP2 000017f9: PUSH4 0x6d35bf91 000017fe: SWAP2 000017ff: PUSH1 0xa4 00001801: DUP1 00001802: DUP4 00001803: ADD 00001804: SWAP3 00001805: PUSH1 0x00 00001807: SWAP3 00001808: SWAP2 00001809: SWAP1 0000180a: DUP3 0000180b: SWAP1 0000180c: SUB 0000180d: ADD 0000180e: DUP2 0000180f: DUP4 00001810: DUP8 00001811: DUP1 00001812: EXTCODESIZE 00001813: ISZERO 00001814: DUP1 00001815: ISZERO 00001816: PUSH2 0x181e 00001819: JUMPI 0000181a: PUSH1 0x00 0000181c: DUP1 0000181d: REVERT 0000181e: JUMPDEST 0000181f: POP 00001820: GAS 00001821: CALL 00001822: ISZERO 00001823: DUP1 00001824: ISZERO 00001825: PUSH2 0x1832 00001828: JUMPI 00001829: RETURNDATASIZE 0000182a: PUSH1 0x00 0000182c: DUP1 0000182d: RETURNDATACOPY 0000182e: RETURNDATASIZE 0000182f: PUSH1 0x00 00001831: REVERT 00001832: JUMPDEST 00001833: POP 00001834: PUSH1 0x00 00001836: SWAP3 00001837: POP 00001838: PUSH2 0x183f 0000183b: SWAP2 0000183c: POP 0000183d: POP 0000183e: JUMP 0000183f: JUMPDEST 00001840: SWAP6 00001841: POP 00001842: POP 00001843: POP 00001844: POP 00001845: POP 00001846: PUSH1 0x00 00001848: SLOAD 00001849: DUP2 0000184a: EQ 0000184b: PUSH2 0x0a21 0000184e: JUMPI 0000184f: PUSH1 0x40 00001851: DUP1 00001852: MLOAD 00001853: PUSH1 0x01 00001855: PUSH1 0xe5 00001857: SHL 00001858: PUSH3 0x461bcd 0000185c: MUL 0000185d: DUP2 0000185e: MSTORE 0000185f: PUSH1 0x20 00001861: PUSH1 0x04 00001863: DUP3 00001864: ADD 00001865: MSTORE 00001866: PUSH1 0x0a 00001868: PUSH1 0x24 0000186a: DUP3 0000186b: ADD 0000186c: MSTORE 0000186d: PUSH1 0x01 0000186f: PUSH1 0xb2 00001871: SHL 00001872: PUSH10 0x1c994b595b9d195c9959 0000187d: MUL 0000187e: PUSH1 0x44 00001880: DUP3 00001881: ADD 00001882: MSTORE 00001883: SWAP1 00001884: MLOAD 00001885: SWAP1 00001886: DUP2 00001887: SWAP1 00001888: SUB 00001889: PUSH1 0x64 0000188b: ADD 0000188c: SWAP1 0000188d: REVERT 0000188e: JUMPDEST 0000188f: PUSH1 0x04 00001891: SLOAD 00001892: PUSH1 0x00 00001894: SWAP1 00001895: PUSH1 0x01 00001897: PUSH1 0x01 00001899: PUSH1 0xa0 0000189b: SHL 0000189c: SUB 0000189d: AND 0000189e: CALLER 0000189f: EQ 000018a0: PUSH2 0x18af 000018a3: JUMPI 000018a4: PUSH2 0x0aef 000018a7: PUSH1 0x01 000018a9: PUSH1 0x45 000018ab: PUSH2 0x227d 000018ae: JUMP 000018af: JUMPDEST 000018b0: PUSH1 0x05 000018b2: DUP1 000018b3: SLOAD 000018b4: PUSH1 0x01 000018b6: PUSH1 0x01 000018b8: PUSH1 0xa0 000018ba: SHL 000018bb: SUB 000018bc: DUP5 000018bd: DUP2 000018be: AND 000018bf: PUSH1 0x01 000018c1: PUSH1 0x01 000018c3: PUSH1 0xa0 000018c5: SHL 000018c6: SUB 000018c7: NOT 000018c8: DUP4 000018c9: AND 000018ca: DUP2 000018cb: OR 000018cc: SWAP1 000018cd: SWAP4 000018ce: SSTORE 000018cf: PUSH1 0x40 000018d1: DUP1 000018d2: MLOAD 000018d3: SWAP2 000018d4: SWAP1 000018d5: SWAP3 000018d6: AND 000018d7: DUP1 000018d8: DUP3 000018d9: MSTORE 000018da: PUSH1 0x20 000018dc: DUP3 000018dd: ADD 000018de: SWAP4 000018df: SWAP1 000018e0: SWAP4 000018e1: MSTORE 000018e2: DUP2 000018e3: MLOAD 000018e4: PUSH32 0xca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9 00001905: SWAP3 00001906: SWAP2 00001907: DUP2 00001908: SWAP1 00001909: SUB 0000190a: SWAP1 0000190b: SWAP2 0000190c: ADD 0000190d: SWAP1 0000190e: LOG1 0000190f: PUSH1 0x00 00001911: PUSH2 0x0a35 00001914: JUMP 00001915: JUMPDEST 00001916: PUSH1 0x00 00001918: DUP1 00001919: SLOAD 0000191a: PUSH1 0x01 0000191c: ADD 0000191d: DUP1 0000191e: DUP3 0000191f: SSTORE 00001920: DUP2 00001921: PUSH2 0x1928 00001924: PUSH2 0x0e8a 00001927: JUMP 00001928: JUMPDEST 00001929: EQ 0000192a: PUSH2 0x197d 0000192d: JUMPI 0000192e: PUSH1 0x40 00001930: DUP1 00001931: MLOAD 00001932: PUSH1 0x01 00001934: PUSH1 0xe5 00001936: SHL 00001937: PUSH3 0x461bcd 0000193b: MUL 0000193c: DUP2 0000193d: MSTORE 0000193e: PUSH1 0x20 00001940: PUSH1 0x04 00001942: DUP3 00001943: ADD 00001944: MSTORE 00001945: PUSH1 0x16 00001947: PUSH1 0x24 00001949: DUP3 0000194a: ADD 0000194b: MSTORE 0000194c: PUSH32 0x61636372756520696e746572657374206661696c656400000000000000000000 0000196d: PUSH1 0x44 0000196f: DUP3 00001970: ADD 00001971: MSTORE 00001972: SWAP1 00001973: MLOAD 00001974: SWAP1 00001975: DUP2 00001976: SWAP1 00001977: SUB 00001978: PUSH1 0x64 0000197a: ADD 0000197b: SWAP1 0000197c: REVERT 0000197d: JUMPDEST 0000197e: PUSH2 0x1985 00001981: PUSH2 0x0957 00001984: JUMP 00001985: JUMPDEST 00001986: SWAP2 00001987: POP 00001988: PUSH1 0x00 0000198a: SLOAD 0000198b: DUP2 0000198c: EQ 0000198d: PUSH2 0x0db2 00001990: JUMPI 00001991: PUSH1 0x40 00001993: DUP1 00001994: MLOAD 00001995: PUSH1 0x01 00001997: PUSH1 0xe5 00001999: SHL 0000199a: PUSH3 0x461bcd 0000199e: MUL 0000199f: DUP2 000019a0: MSTORE 000019a1: PUSH1 0x20 000019a3: PUSH1 0x04 000019a5: DUP3 000019a6: ADD 000019a7: MSTORE 000019a8: PUSH1 0x0a 000019aa: PUSH1 0x24 000019ac: DUP3 000019ad: ADD 000019ae: MSTORE 000019af: PUSH1 0x01 000019b1: PUSH1 0xb2 000019b3: SHL 000019b4: PUSH10 0x1c994b595b9d195c9959 000019bf: MUL 000019c0: PUSH1 0x44 000019c2: DUP3 000019c3: ADD 000019c4: MSTORE 000019c5: SWAP1 000019c6: MLOAD 000019c7: SWAP1 000019c8: DUP2 000019c9: SWAP1 000019ca: SUB 000019cb: PUSH1 0x64 000019cd: ADD 000019ce: SWAP1 000019cf: REVERT 000019d0: JUMPDEST 000019d1: PUSH1 0x01 000019d3: PUSH1 0x01 000019d5: PUSH1 0xa0 000019d7: SHL 000019d8: SUB 000019d9: DUP2 000019da: AND 000019db: PUSH1 0x00 000019dd: SWAP1 000019de: DUP2 000019df: MSTORE 000019e0: PUSH1 0x0f 000019e2: PUSH1 0x20 000019e4: MSTORE 000019e5: PUSH1 0x40 000019e7: DUP2 000019e8: KECCAK256 000019e9: SLOAD 000019ea: DUP2 000019eb: SWAP1 000019ec: DUP2 000019ed: SWAP1 000019ee: DUP2 000019ef: SWAP1 000019f0: DUP2 000019f1: DUP1 000019f2: DUP1 000019f3: PUSH2 0x19fb 000019f6: DUP10 000019f7: PUSH2 0x24a4 000019fa: JUMP 000019fb: JUMPDEST 000019fc: SWAP4 000019fd: POP 000019fe: SWAP1 000019ff: POP 00001a00: PUSH1 0x00 00001a02: DUP2 00001a03: PUSH1 0x03 00001a05: DUP2 00001a06: GT 00001a07: ISZERO 00001a08: PUSH2 0x1a0d 00001a0b: JUMPI 00001a0c: INVALID 00001a0d: JUMPDEST 00001a0e: EQ 00001a0f: PUSH2 0x1a2b 00001a12: JUMPI 00001a13: PUSH1 0x09 00001a15: JUMPDEST 00001a16: SWAP8 00001a17: POP 00001a18: PUSH1 0x00 00001a1a: SWAP7 00001a1b: POP 00001a1c: DUP7 00001a1d: SWAP6 00001a1e: POP 00001a1f: DUP6 00001a20: SWAP5 00001a21: POP 00001a22: PUSH2 0x1a5e 00001a25: SWAP4 00001a26: POP 00001a27: POP 00001a28: POP 00001a29: POP 00001a2a: JUMP 00001a2b: JUMPDEST 00001a2c: PUSH2 0x1a33 00001a2f: PUSH2 0x1d54 00001a32: JUMP 00001a33: JUMPDEST 00001a34: SWAP3 00001a35: POP 00001a36: SWAP1 00001a37: POP 00001a38: PUSH1 0x00 00001a3a: DUP2 00001a3b: PUSH1 0x03 00001a3d: DUP2 00001a3e: GT 00001a3f: ISZERO 00001a40: PUSH2 0x1a45 00001a43: JUMPI 00001a44: INVALID 00001a45: JUMPDEST 00001a46: EQ 00001a47: PUSH2 0x1a51 00001a4a: JUMPI 00001a4b: PUSH1 0x09 00001a4d: PUSH2 0x1a15 00001a50: JUMP 00001a51: JUMPDEST 00001a52: POP 00001a53: PUSH1 0x00 00001a55: SWAP7 00001a56: POP 00001a57: SWAP2 00001a58: SWAP5 00001a59: POP 00001a5a: SWAP3 00001a5b: POP 00001a5c: SWAP1 00001a5d: POP 00001a5e: JUMPDEST 00001a5f: SWAP2 00001a60: SWAP4 00001a61: POP 00001a62: SWAP2 00001a63: SWAP4 00001a64: JUMP 00001a65: JUMPDEST 00001a66: PUSH1 0x00 00001a68: PUSH2 0x0880 00001a6b: DUP3 00001a6c: PUSH2 0x27ed 00001a6f: JUMP 00001a70: JUMPDEST 00001a71: PUSH1 0x00 00001a73: PUSH2 0x0880 00001a76: DUP3 00001a77: PUSH2 0x2828 00001a7a: JUMP 00001a7b: JUMPDEST 00001a7c: PUSH1 0x01 00001a7e: PUSH1 0x01 00001a80: PUSH1 0xa0 00001a82: SHL 00001a83: SUB 00001a84: SWAP2 00001a85: DUP3 00001a86: AND 00001a87: PUSH1 0x00 00001a89: SWAP1 00001a8a: DUP2 00001a8b: MSTORE 00001a8c: PUSH1 0x10 00001a8e: PUSH1 0x20 00001a90: SWAP1 00001a91: DUP2 00001a92: MSTORE 00001a93: PUSH1 0x40 00001a95: DUP1 00001a96: DUP4 00001a97: KECCAK256 00001a98: SWAP4 00001a99: SWAP1 00001a9a: SWAP5 00001a9b: AND 00001a9c: DUP3 00001a9d: MSTORE 00001a9e: SWAP2 00001a9f: SWAP1 00001aa0: SWAP2 00001aa1: MSTORE 00001aa2: KECCAK256 00001aa3: SLOAD 00001aa4: SWAP1 00001aa5: JUMP 00001aa6: JUMPDEST 00001aa7: PUSH1 0x05 00001aa9: SLOAD 00001aaa: PUSH1 0x00 00001aac: SWAP1 00001aad: PUSH1 0x01 00001aaf: PUSH1 0x01 00001ab1: PUSH1 0xa0 00001ab3: SHL 00001ab4: SUB 00001ab5: AND 00001ab6: CALLER 00001ab7: EQ 00001ab8: ISZERO 00001ab9: DUP1 00001aba: PUSH2 0x1ac1 00001abd: JUMPI 00001abe: POP 00001abf: CALLER 00001ac0: ISZERO 00001ac1: JUMPDEST 00001ac2: ISZERO 00001ac3: PUSH2 0x1ad9 00001ac6: JUMPI 00001ac7: PUSH2 0x1ad2 00001aca: PUSH1 0x01 00001acc: PUSH1 0x00 00001ace: PUSH2 0x227d 00001ad1: JUMP 00001ad2: JUMPDEST 00001ad3: SWAP1 00001ad4: POP 00001ad5: PUSH2 0x09ba 00001ad8: JUMP 00001ad9: JUMPDEST 00001ada: PUSH1 0x04 00001adc: DUP1 00001add: SLOAD 00001ade: PUSH1 0x05 00001ae0: DUP1 00001ae1: SLOAD 00001ae2: PUSH1 0x01 00001ae4: PUSH1 0x01 00001ae6: PUSH1 0xa0 00001ae8: SHL 00001ae9: SUB 00001aea: DUP1 00001aeb: DUP3 00001aec: AND 00001aed: PUSH1 0x01 00001aef: PUSH1 0x01 00001af1: PUSH1 0xa0 00001af3: SHL 00001af4: SUB 00001af5: NOT 00001af6: DUP1 00001af7: DUP7 00001af8: AND 00001af9: DUP3 00001afa: OR 00001afb: SWAP7 00001afc: DUP8 00001afd: SWAP1 00001afe: SSTORE 00001aff: SWAP1 00001b00: SWAP3 00001b01: AND 00001b02: SWAP1 00001b03: SWAP3 00001b04: SSTORE 00001b05: PUSH1 0x40 00001b07: DUP1 00001b08: MLOAD 00001b09: SWAP4 00001b0a: DUP4 00001b0b: AND 00001b0c: DUP1 00001b0d: DUP6 00001b0e: MSTORE 00001b0f: SWAP5 00001b10: SWAP1 00001b11: SWAP3 00001b12: AND 00001b13: PUSH1 0x20 00001b15: DUP5 00001b16: ADD 00001b17: MSTORE 00001b18: DUP2 00001b19: MLOAD 00001b1a: SWAP1 00001b1b: SWAP3 00001b1c: PUSH32 0xf9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc 00001b3d: SWAP3 00001b3e: SWAP1 00001b3f: DUP3 00001b40: SWAP1 00001b41: SUB 00001b42: ADD 00001b43: SWAP1 00001b44: LOG1 00001b45: PUSH1 0x05 00001b47: SLOAD 00001b48: PUSH1 0x40 00001b4a: DUP1 00001b4b: MLOAD 00001b4c: PUSH1 0x01 00001b4e: PUSH1 0x01 00001b50: PUSH1 0xa0 00001b52: SHL 00001b53: SUB 00001b54: DUP1 00001b55: DUP6 00001b56: AND 00001b57: DUP3 00001b58: MSTORE 00001b59: SWAP1 00001b5a: SWAP3 00001b5b: AND 00001b5c: PUSH1 0x20 00001b5e: DUP4 00001b5f: ADD 00001b60: MSTORE 00001b61: DUP1 00001b62: MLOAD 00001b63: PUSH32 0xca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9 00001b84: SWAP3 00001b85: DUP2 00001b86: SWAP1 00001b87: SUB 00001b88: SWAP1 00001b89: SWAP2 00001b8a: ADD 00001b8b: SWAP1 00001b8c: LOG1 00001b8d: PUSH1 0x00 00001b8f: SWAP3 00001b90: POP 00001b91: POP 00001b92: POP 00001b93: SWAP1 00001b94: JUMP 00001b95: JUMPDEST 00001b96: PUSH1 0x00 00001b98: DUP1 00001b99: PUSH2 0x1ba0 00001b9c: PUSH2 0x0e8a 00001b9f: JUMP 00001ba0: JUMPDEST 00001ba1: SWAP1 00001ba2: POP 00001ba3: DUP1 00001ba4: ISZERO 00001ba5: PUSH2 0x1bc6 00001ba8: JUMPI 00001ba9: PUSH2 0x1bbe 00001bac: DUP2 00001bad: PUSH1 0x10 00001baf: DUP2 00001bb0: GT 00001bb1: ISZERO 00001bb2: PUSH2 0x1bb7 00001bb5: JUMPI 00001bb6: INVALID 00001bb7: JUMPDEST 00001bb8: PUSH1 0x40 00001bba: PUSH2 0x227d 00001bbd: JUMP 00001bbe: JUMPDEST 00001bbf: SWAP2 00001bc0: POP 00001bc1: POP 00001bc2: PUSH2 0x0883 00001bc5: JUMP 00001bc6: JUMPDEST 00001bc7: PUSH2 0x0a35 00001bca: DUP4 00001bcb: PUSH2 0x285e 00001bce: JUMP 00001bcf: JUMPDEST 00001bd0: PUSH1 0x07 00001bd2: SLOAD 00001bd3: PUSH1 0x01 00001bd5: PUSH1 0x01 00001bd7: PUSH1 0xa0 00001bd9: SHL 00001bda: SUB 00001bdb: AND 00001bdc: DUP2 00001bdd: JUMP 00001bde: JUMPDEST 00001bdf: PUSH1 0x00 00001be1: PUSH2 0x0ab7 00001be4: DUP5 00001be5: DUP5 00001be6: DUP5 00001be7: PUSH2 0x29d1 00001bea: JUMP 00001beb: JUMPDEST 00001bec: PUSH1 0x04 00001bee: SLOAD 00001bef: PUSH1 0x01 00001bf1: PUSH1 0x01 00001bf3: PUSH1 0xa0 00001bf5: SHL 00001bf6: SUB 00001bf7: AND 00001bf8: DUP2 00001bf9: JUMP 00001bfa: JUMPDEST 00001bfb: PUSH1 0x07 00001bfd: SLOAD 00001bfe: PUSH1 0x00 00001c00: SWAP1 00001c01: DUP2 00001c02: SWAP1 00001c03: DUP2 00001c04: SWAP1 00001c05: PUSH1 0x01 00001c07: PUSH1 0x01 00001c09: PUSH1 0xa0 00001c0b: SHL 00001c0c: SUB 00001c0d: AND 00001c0e: PUSH4 0x15f24053 00001c13: PUSH2 0x1c1a 00001c16: PUSH2 0x21fa 00001c19: JUMP 00001c1a: JUMPDEST 00001c1b: PUSH1 0x0c 00001c1d: SLOAD 00001c1e: PUSH1 0x0d 00001c20: SLOAD 00001c21: PUSH1 0x40 00001c23: MLOAD 00001c24: DUP5 00001c25: PUSH4 0xffffffff 00001c2a: AND 00001c2b: PUSH1 0xe0 00001c2d: SHL 00001c2e: DUP2 00001c2f: MSTORE 00001c30: PUSH1 0x04 00001c32: ADD 00001c33: DUP1 00001c34: DUP5 00001c35: DUP2 00001c36: MSTORE 00001c37: PUSH1 0x20 00001c39: ADD 00001c3a: DUP4 00001c3b: DUP2 00001c3c: MSTORE 00001c3d: PUSH1 0x20 00001c3f: ADD 00001c40: DUP3 00001c41: DUP2 00001c42: MSTORE 00001c43: PUSH1 0x20 00001c45: ADD 00001c46: SWAP4 00001c47: POP 00001c48: POP 00001c49: POP 00001c4a: POP 00001c4b: PUSH1 0x40 00001c4d: DUP1 00001c4e: MLOAD 00001c4f: DUP1 00001c50: DUP4 00001c51: SUB 00001c52: DUP2 00001c53: DUP7 00001c54: DUP1 00001c55: EXTCODESIZE 00001c56: ISZERO 00001c57: DUP1 00001c58: ISZERO 00001c59: PUSH2 0x1c61 00001c5c: JUMPI 00001c5d: PUSH1 0x00 00001c5f: DUP1 00001c60: REVERT 00001c61: JUMPDEST 00001c62: POP 00001c63: GAS 00001c64: STATICCALL 00001c65: ISZERO 00001c66: DUP1 00001c67: ISZERO 00001c68: PUSH2 0x1c75 00001c6b: JUMPI 00001c6c: RETURNDATASIZE 00001c6d: PUSH1 0x00 00001c6f: DUP1 00001c70: RETURNDATACOPY 00001c71: RETURNDATASIZE 00001c72: PUSH1 0x00 00001c74: REVERT 00001c75: JUMPDEST 00001c76: POP 00001c77: POP 00001c78: POP 00001c79: POP 00001c7a: PUSH1 0x40 00001c7c: MLOAD 00001c7d: RETURNDATASIZE 00001c7e: PUSH1 0x40 00001c80: DUP2 00001c81: LT 00001c82: ISZERO 00001c83: PUSH2 0x1c8b 00001c86: JUMPI 00001c87: PUSH1 0x00 00001c89: DUP1 00001c8a: REVERT 00001c8b: JUMPDEST 00001c8c: POP 00001c8d: DUP1 00001c8e: MLOAD 00001c8f: PUSH1 0x20 00001c91: SWAP1 00001c92: SWAP2 00001c93: ADD 00001c94: MLOAD 00001c95: SWAP1 00001c96: SWAP3 00001c97: POP 00001c98: SWAP1 00001c99: POP 00001c9a: DUP2 00001c9b: ISZERO 00001c9c: PUSH2 0x09b6 00001c9f: JUMPI 00001ca0: PUSH1 0x40 00001ca2: MLOAD 00001ca3: PUSH1 0x01 00001ca5: PUSH1 0xe5 00001ca7: SHL 00001ca8: PUSH3 0x461bcd 00001cac: MUL 00001cad: DUP2 00001cae: MSTORE 00001caf: PUSH1 0x04 00001cb1: ADD 00001cb2: DUP1 00001cb3: DUP1 00001cb4: PUSH1 0x20 00001cb6: ADD 00001cb7: DUP3 00001cb8: DUP2 00001cb9: SUB 00001cba: DUP3 00001cbb: MSTORE 00001cbc: PUSH1 0x37 00001cbe: DUP2 00001cbf: MSTORE 00001cc0: PUSH1 0x20 00001cc2: ADD 00001cc3: DUP1 00001cc4: PUSH2 0x489e 00001cc7: PUSH1 0x37 00001cc9: SWAP2 00001cca: CODECOPY 00001ccb: PUSH1 0x40 00001ccd: ADD 00001cce: SWAP2 00001ccf: POP 00001cd0: POP 00001cd1: PUSH1 0x40 00001cd3: MLOAD 00001cd4: DUP1 00001cd5: SWAP2 00001cd6: SUB 00001cd7: SWAP1 00001cd8: REVERT 00001cd9: JUMPDEST 00001cda: PUSH1 0x00 00001cdc: DUP1 00001cdd: SLOAD 00001cde: PUSH1 0x01 00001ce0: ADD 00001ce1: DUP1 00001ce2: DUP3 00001ce3: SSTORE 00001ce4: DUP2 00001ce5: PUSH2 0x1cec 00001ce8: PUSH2 0x0e8a 00001ceb: JUMP 00001cec: JUMPDEST 00001ced: SWAP1 00001cee: POP 00001cef: DUP1 00001cf0: ISZERO 00001cf1: PUSH2 0x1d0a 00001cf4: JUMPI 00001cf5: PUSH2 0x0c69 00001cf8: DUP2 00001cf9: PUSH1 0x10 00001cfb: DUP2 00001cfc: GT 00001cfd: ISZERO 00001cfe: PUSH2 0x1d03 00001d01: JUMPI 00001d02: INVALID 00001d03: JUMPDEST 00001d04: PUSH1 0x46 00001d06: PUSH2 0x227d 00001d09: JUMP 00001d0a: JUMPDEST 00001d0b: PUSH2 0x0c7a 00001d0e: DUP5 00001d0f: PUSH2 0x2adf 00001d12: JUMP 00001d13: JUMPDEST 00001d14: PUSH1 0x01 00001d16: DUP2 00001d17: JUMP 00001d18: JUMPDEST 00001d19: PUSH1 0x00 00001d1b: DUP1 00001d1c: SLOAD 00001d1d: PUSH1 0x01 00001d1f: ADD 00001d20: DUP1 00001d21: DUP3 00001d22: SSTORE 00001d23: DUP2 00001d24: PUSH2 0x1d2b 00001d27: PUSH2 0x0e8a 00001d2a: JUMP 00001d2b: JUMPDEST 00001d2c: SWAP1 00001d2d: POP 00001d2e: DUP1 00001d2f: ISZERO 00001d30: PUSH2 0x1d49 00001d33: JUMPI 00001d34: PUSH2 0x0c69 00001d37: DUP2 00001d38: PUSH1 0x10 00001d3a: DUP2 00001d3b: GT 00001d3c: ISZERO 00001d3d: PUSH2 0x1d42 00001d40: JUMPI 00001d41: INVALID 00001d42: JUMPDEST 00001d43: PUSH1 0x36 00001d45: PUSH2 0x227d 00001d48: JUMP 00001d49: JUMPDEST 00001d4a: PUSH2 0x0c7a 00001d4d: CALLER 00001d4e: CALLER 00001d4f: DUP7 00001d50: PUSH2 0x2b82 00001d53: JUMP 00001d54: JUMPDEST 00001d55: PUSH1 0x00 00001d57: DUP1 00001d58: PUSH1 0x0e 00001d5a: SLOAD 00001d5b: PUSH1 0x00 00001d5d: EQ 00001d5e: ISZERO 00001d5f: PUSH2 0x1d6f 00001d62: JUMPI 00001d63: POP 00001d64: POP 00001d65: PUSH1 0x08 00001d67: SLOAD 00001d68: PUSH1 0x00 00001d6a: SWAP1 00001d6b: PUSH2 0x1dfe 00001d6e: JUMP 00001d6f: JUMPDEST 00001d70: PUSH1 0x00 00001d72: PUSH2 0x1d79 00001d75: PUSH2 0x21fa 00001d78: JUMP 00001d79: JUMPDEST 00001d7a: SWAP1 00001d7b: POP 00001d7c: PUSH1 0x00 00001d7e: PUSH2 0x1d85 00001d81: PUSH2 0x46bb 00001d84: JUMP 00001d85: JUMPDEST 00001d86: PUSH1 0x00 00001d88: PUSH2 0x1d96 00001d8b: DUP5 00001d8c: PUSH1 0x0c 00001d8e: SLOAD 00001d8f: PUSH1 0x0d 00001d91: SLOAD 00001d92: PUSH2 0x2fde 00001d95: JUMP 00001d96: JUMPDEST 00001d97: SWAP4 00001d98: POP 00001d99: SWAP1 00001d9a: POP 00001d9b: PUSH1 0x00 00001d9d: DUP2 00001d9e: PUSH1 0x03 00001da0: DUP2 00001da1: GT 00001da2: ISZERO 00001da3: PUSH2 0x1da8 00001da6: JUMPI 00001da7: INVALID 00001da8: JUMPDEST 00001da9: EQ 00001daa: PUSH2 0x1dbc 00001dad: JUMPI 00001dae: SWAP5 00001daf: POP 00001db0: PUSH1 0x00 00001db2: SWAP4 00001db3: POP 00001db4: PUSH2 0x1dfe 00001db7: SWAP3 00001db8: POP 00001db9: POP 00001dba: POP 00001dbb: JUMP 00001dbc: JUMPDEST 00001dbd: PUSH2 0x1dc8 00001dc0: DUP4 00001dc1: PUSH1 0x0e 00001dc3: SLOAD 00001dc4: PUSH2 0x301c 00001dc7: JUMP 00001dc8: JUMPDEST 00001dc9: SWAP3 00001dca: POP 00001dcb: SWAP1 00001dcc: POP 00001dcd: PUSH1 0x00 00001dcf: DUP2 00001dd0: PUSH1 0x03 00001dd2: DUP2 00001dd3: GT 00001dd4: ISZERO 00001dd5: PUSH2 0x1dda 00001dd8: JUMPI 00001dd9: INVALID 00001dda: JUMPDEST 00001ddb: EQ 00001ddc: PUSH2 0x1dee 00001ddf: JUMPI 00001de0: SWAP5 00001de1: POP 00001de2: PUSH1 0x00 00001de4: SWAP4 00001de5: POP 00001de6: PUSH2 0x1dfe 00001de9: SWAP3 00001dea: POP 00001deb: POP 00001dec: POP 00001ded: JUMP 00001dee: JUMPDEST 00001def: POP 00001df0: MLOAD 00001df1: PUSH1 0x00 00001df3: SWAP5 00001df4: POP 00001df5: SWAP3 00001df6: POP 00001df7: PUSH2 0x1dfe 00001dfa: SWAP2 00001dfb: POP 00001dfc: POP 00001dfd: JUMP 00001dfe: JUMPDEST 00001dff: SWAP1 00001e00: SWAP2 00001e01: JUMP 00001e02: JUMPDEST 00001e03: PUSH1 0x06 00001e05: SLOAD 00001e06: PUSH1 0x40 00001e08: DUP1 00001e09: MLOAD 00001e0a: PUSH1 0x01 00001e0c: PUSH1 0xe3 00001e0e: SHL 00001e0f: PUSH4 0x17b9b84b 00001e14: MUL 00001e15: DUP2 00001e16: MSTORE 00001e17: ADDRESS 00001e18: PUSH1 0x04 00001e1a: DUP3 00001e1b: ADD 00001e1c: MSTORE 00001e1d: PUSH1 0x01 00001e1f: PUSH1 0x01 00001e21: PUSH1 0xa0 00001e23: SHL 00001e24: SUB 00001e25: DUP7 00001e26: DUP2 00001e27: AND 00001e28: PUSH1 0x24 00001e2a: DUP4 00001e2b: ADD 00001e2c: MSTORE 00001e2d: DUP6 00001e2e: DUP2 00001e2f: AND 00001e30: PUSH1 0x44 00001e32: DUP4 00001e33: ADD 00001e34: MSTORE 00001e35: PUSH1 0x64 00001e37: DUP3 00001e38: ADD 00001e39: DUP6 00001e3a: SWAP1 00001e3b: MSTORE 00001e3c: SWAP2 00001e3d: MLOAD 00001e3e: PUSH1 0x00 00001e40: SWAP4 00001e41: DUP5 00001e42: SWAP4 00001e43: AND 00001e44: SWAP2 00001e45: PUSH4 0xbdcdc258 00001e4a: SWAP2 00001e4b: PUSH1 0x84 00001e4d: DUP1 00001e4e: DUP4 00001e4f: ADD 00001e50: SWAP3 00001e51: PUSH1 0x20 00001e53: SWAP3 00001e54: SWAP2 00001e55: SWAP1 00001e56: DUP3 00001e57: SWAP1 00001e58: SUB 00001e59: ADD 00001e5a: DUP2 00001e5b: DUP8 00001e5c: DUP8 00001e5d: DUP1 00001e5e: EXTCODESIZE 00001e5f: ISZERO 00001e60: DUP1 00001e61: ISZERO 00001e62: PUSH2 0x1e6a 00001e65: JUMPI 00001e66: PUSH1 0x00 00001e68: DUP1 00001e69: REVERT 00001e6a: JUMPDEST 00001e6b: POP 00001e6c: GAS 00001e6d: CALL 00001e6e: ISZERO 00001e6f: DUP1 00001e70: ISZERO 00001e71: PUSH2 0x1e7e 00001e74: JUMPI 00001e75: RETURNDATASIZE 00001e76: PUSH1 0x00 00001e78: DUP1 00001e79: RETURNDATACOPY 00001e7a: RETURNDATASIZE 00001e7b: PUSH1 0x00 00001e7d: REVERT 00001e7e: JUMPDEST 00001e7f: POP 00001e80: POP 00001e81: POP 00001e82: POP 00001e83: PUSH1 0x40 00001e85: MLOAD 00001e86: RETURNDATASIZE 00001e87: PUSH1 0x20 00001e89: DUP2 00001e8a: LT 00001e8b: ISZERO 00001e8c: PUSH2 0x1e94 00001e8f: JUMPI 00001e90: PUSH1 0x00 00001e92: DUP1 00001e93: REVERT 00001e94: JUMPDEST 00001e95: POP 00001e96: MLOAD 00001e97: SWAP1 00001e98: POP 00001e99: DUP1 00001e9a: ISZERO 00001e9b: PUSH2 0x1eb3 00001e9e: JUMPI 00001e9f: PUSH2 0x1eab 00001ea2: PUSH1 0x03 00001ea4: PUSH1 0x4a 00001ea6: DUP4 00001ea7: PUSH2 0x2593 00001eaa: JUMP 00001eab: JUMPDEST 00001eac: SWAP2 00001ead: POP 00001eae: POP 00001eaf: PUSH2 0x0ab7 00001eb2: JUMP 00001eb3: JUMPDEST 00001eb4: DUP4 00001eb5: PUSH1 0x01 00001eb7: PUSH1 0x01 00001eb9: PUSH1 0xa0 00001ebb: SHL 00001ebc: SUB 00001ebd: AND 00001ebe: DUP6 00001ebf: PUSH1 0x01 00001ec1: PUSH1 0x01 00001ec3: PUSH1 0xa0 00001ec5: SHL 00001ec6: SUB 00001ec7: AND 00001ec8: EQ 00001ec9: ISZERO 00001eca: PUSH2 0x1ed9 00001ecd: JUMPI 00001ece: PUSH2 0x1eab 00001ed1: PUSH1 0x02 00001ed3: PUSH1 0x4b 00001ed5: PUSH2 0x227d 00001ed8: JUMP 00001ed9: JUMPDEST 00001eda: PUSH1 0x00 00001edc: PUSH1 0x01 00001ede: PUSH1 0x01 00001ee0: PUSH1 0xa0 00001ee2: SHL 00001ee3: SUB 00001ee4: DUP8 00001ee5: DUP2 00001ee6: AND 00001ee7: SWAP1 00001ee8: DUP8 00001ee9: AND 00001eea: EQ 00001eeb: ISZERO 00001eec: PUSH2 0x1ef8 00001eef: JUMPI 00001ef0: POP 00001ef1: PUSH1 0x00 00001ef3: NOT 00001ef4: PUSH2 0x1f20 00001ef7: JUMP 00001ef8: JUMPDEST 00001ef9: POP 00001efa: PUSH1 0x01 00001efc: PUSH1 0x01 00001efe: PUSH1 0xa0 00001f00: SHL 00001f01: SUB 00001f02: DUP1 00001f03: DUP7 00001f04: AND 00001f05: PUSH1 0x00 00001f07: SWAP1 00001f08: DUP2 00001f09: MSTORE 00001f0a: PUSH1 0x10 00001f0c: PUSH1 0x20 00001f0e: SWAP1 00001f0f: DUP2 00001f10: MSTORE 00001f11: PUSH1 0x40 00001f13: DUP1 00001f14: DUP4 00001f15: KECCAK256 00001f16: SWAP4 00001f17: DUP11 00001f18: AND 00001f19: DUP4 00001f1a: MSTORE 00001f1b: SWAP3 00001f1c: SWAP1 00001f1d: MSTORE 00001f1e: KECCAK256 00001f1f: SLOAD 00001f20: JUMPDEST 00001f21: PUSH1 0x00 00001f23: DUP1 00001f24: PUSH1 0x00 00001f26: DUP1 00001f27: PUSH2 0x1f30 00001f2a: DUP6 00001f2b: DUP10 00001f2c: PUSH2 0x25fd 00001f2f: JUMP 00001f30: JUMPDEST 00001f31: SWAP1 00001f32: SWAP5 00001f33: POP 00001f34: SWAP3 00001f35: POP 00001f36: PUSH1 0x00 00001f38: DUP5 00001f39: PUSH1 0x03 00001f3b: DUP2 00001f3c: GT 00001f3d: ISZERO 00001f3e: PUSH2 0x1f43 00001f41: JUMPI 00001f42: INVALID 00001f43: JUMPDEST 00001f44: EQ 00001f45: PUSH2 0x1f61 00001f48: JUMPI 00001f49: PUSH2 0x1f54 00001f4c: PUSH1 0x09 00001f4e: PUSH1 0x4b 00001f50: PUSH2 0x227d 00001f53: JUMP 00001f54: JUMPDEST 00001f55: SWAP7 00001f56: POP 00001f57: POP 00001f58: POP 00001f59: POP 00001f5a: POP 00001f5b: POP 00001f5c: POP 00001f5d: PUSH2 0x0ab7 00001f60: JUMP 00001f61: JUMPDEST 00001f62: PUSH1 0x01 00001f64: PUSH1 0x01 00001f66: PUSH1 0xa0 00001f68: SHL 00001f69: SUB 00001f6a: DUP11 00001f6b: AND 00001f6c: PUSH1 0x00 00001f6e: SWAP1 00001f6f: DUP2 00001f70: MSTORE 00001f71: PUSH1 0x0f 00001f73: PUSH1 0x20 00001f75: MSTORE 00001f76: PUSH1 0x40 00001f78: SWAP1 00001f79: KECCAK256 00001f7a: SLOAD 00001f7b: PUSH2 0x1f84 00001f7e: SWAP1 00001f7f: DUP10 00001f80: PUSH2 0x25fd 00001f83: JUMP 00001f84: JUMPDEST 00001f85: SWAP1 00001f86: SWAP5 00001f87: POP 00001f88: SWAP2 00001f89: POP 00001f8a: PUSH1 0x00 00001f8c: DUP5 00001f8d: PUSH1 0x03 00001f8f: DUP2 00001f90: GT 00001f91: ISZERO 00001f92: PUSH2 0x1f97 00001f95: JUMPI 00001f96: INVALID 00001f97: JUMPDEST 00001f98: EQ 00001f99: PUSH2 0x1fa8 00001f9c: JUMPI 00001f9d: PUSH2 0x1f54 00001fa0: PUSH1 0x09 00001fa2: PUSH1 0x4c 00001fa4: PUSH2 0x227d 00001fa7: JUMP 00001fa8: JUMPDEST 00001fa9: PUSH1 0x01 00001fab: PUSH1 0x01 00001fad: PUSH1 0xa0 00001faf: SHL 00001fb0: SUB 00001fb1: DUP10 00001fb2: AND 00001fb3: PUSH1 0x00 00001fb5: SWAP1 00001fb6: DUP2 00001fb7: MSTORE 00001fb8: PUSH1 0x0f 00001fba: PUSH1 0x20 00001fbc: MSTORE 00001fbd: PUSH1 0x40 00001fbf: SWAP1 00001fc0: KECCAK256 00001fc1: SLOAD 00001fc2: PUSH2 0x1fcb 00001fc5: SWAP1 00001fc6: DUP10 00001fc7: PUSH2 0x2688 00001fca: JUMP 00001fcb: JUMPDEST 00001fcc: SWAP1 00001fcd: SWAP5 00001fce: POP 00001fcf: SWAP1 00001fd0: POP 00001fd1: PUSH1 0x00 00001fd3: DUP5 00001fd4: PUSH1 0x03 00001fd6: DUP2 00001fd7: GT 00001fd8: ISZERO 00001fd9: PUSH2 0x1fde 00001fdc: JUMPI 00001fdd: INVALID 00001fde: JUMPDEST 00001fdf: EQ 00001fe0: PUSH2 0x1fef 00001fe3: JUMPI 00001fe4: PUSH2 0x1f54 00001fe7: PUSH1 0x09 00001fe9: PUSH1 0x4d 00001feb: PUSH2 0x227d 00001fee: JUMP 00001fef: JUMPDEST 00001ff0: PUSH1 0x01 00001ff2: PUSH1 0x01 00001ff4: PUSH1 0xa0 00001ff6: SHL 00001ff7: SUB 00001ff8: DUP1 00001ff9: DUP12 00001ffa: AND 00001ffb: PUSH1 0x00 00001ffd: SWAP1 00001ffe: DUP2 00001fff: MSTORE 00002000: PUSH1 0x0f 00002002: PUSH1 0x20 00002004: MSTORE 00002005: PUSH1 0x40 00002007: DUP1 00002008: DUP3 00002009: KECCAK256 0000200a: DUP6 0000200b: SWAP1 0000200c: SSTORE 0000200d: SWAP2 0000200e: DUP12 0000200f: AND 00002010: DUP2 00002011: MSTORE 00002012: KECCAK256 00002013: DUP2 00002014: SWAP1 00002015: SSTORE 00002016: PUSH1 0x00 00002018: NOT 00002019: DUP6 0000201a: EQ 0000201b: PUSH2 0x2047 0000201e: JUMPI 0000201f: PUSH1 0x01 00002021: PUSH1 0x01 00002023: PUSH1 0xa0 00002025: SHL 00002026: SUB 00002027: DUP1 00002028: DUP12 00002029: AND 0000202a: PUSH1 0x00 0000202c: SWAP1 0000202d: DUP2 0000202e: MSTORE 0000202f: PUSH1 0x10 00002031: PUSH1 0x20 00002033: SWAP1 00002034: DUP2 00002035: MSTORE 00002036: PUSH1 0x40 00002038: DUP1 00002039: DUP4 0000203a: KECCAK256 0000203b: SWAP4 0000203c: DUP16 0000203d: AND 0000203e: DUP4 0000203f: MSTORE 00002040: SWAP3 00002041: SWAP1 00002042: MSTORE 00002043: KECCAK256 00002044: DUP4 00002045: SWAP1 00002046: SSTORE 00002047: JUMPDEST 00002048: DUP9 00002049: PUSH1 0x01 0000204b: PUSH1 0x01 0000204d: PUSH1 0xa0 0000204f: SHL 00002050: SUB 00002051: AND 00002052: DUP11 00002053: PUSH1 0x01 00002055: PUSH1 0x01 00002057: PUSH1 0xa0 00002059: SHL 0000205a: SUB 0000205b: AND 0000205c: PUSH1 0x00 0000205e: DUP1 0000205f: MLOAD 00002060: PUSH1 0x20 00002062: PUSH2 0x4906 00002065: DUP4 00002066: CODECOPY 00002067: DUP2 00002068: MLOAD 00002069: SWAP2 0000206a: MSTORE 0000206b: DUP11 0000206c: PUSH1 0x40 0000206e: MLOAD 0000206f: DUP1 00002070: DUP3 00002071: DUP2 00002072: MSTORE 00002073: PUSH1 0x20 00002075: ADD 00002076: SWAP2 00002077: POP 00002078: POP 00002079: PUSH1 0x40 0000207b: MLOAD 0000207c: DUP1 0000207d: SWAP2 0000207e: SUB 0000207f: SWAP1 00002080: LOG3 00002081: PUSH1 0x06 00002083: SLOAD 00002084: PUSH1 0x40 00002086: DUP1 00002087: MLOAD 00002088: PUSH1 0x01 0000208a: PUSH1 0xe1 0000208c: SHL 0000208d: PUSH4 0x352b4a3f 00002092: MUL 00002093: DUP2 00002094: MSTORE 00002095: ADDRESS 00002096: PUSH1 0x04 00002098: DUP3 00002099: ADD 0000209a: MSTORE 0000209b: PUSH1 0x01 0000209d: PUSH1 0x01 0000209f: PUSH1 0xa0 000020a1: SHL 000020a2: SUB 000020a3: DUP14 000020a4: DUP2 000020a5: AND 000020a6: PUSH1 0x24 000020a8: DUP4 000020a9: ADD 000020aa: MSTORE 000020ab: DUP13 000020ac: DUP2 000020ad: AND 000020ae: PUSH1 0x44 000020b0: DUP4 000020b1: ADD 000020b2: MSTORE 000020b3: PUSH1 0x64 000020b5: DUP3 000020b6: ADD 000020b7: DUP13 000020b8: SWAP1 000020b9: MSTORE 000020ba: SWAP2 000020bb: MLOAD 000020bc: SWAP2 000020bd: SWAP1 000020be: SWAP3 000020bf: AND 000020c0: SWAP2 000020c1: PUSH4 0x6a56947e 000020c6: SWAP2 000020c7: PUSH1 0x84 000020c9: DUP1 000020ca: DUP4 000020cb: ADD 000020cc: SWAP3 000020cd: PUSH1 0x00 000020cf: SWAP3 000020d0: SWAP2 000020d1: SWAP1 000020d2: DUP3 000020d3: SWAP1 000020d4: SUB 000020d5: ADD 000020d6: DUP2 000020d7: DUP4 000020d8: DUP8 000020d9: DUP1 000020da: EXTCODESIZE 000020db: ISZERO 000020dc: DUP1 000020dd: ISZERO 000020de: PUSH2 0x20e6 000020e1: JUMPI 000020e2: PUSH1 0x00 000020e4: DUP1 000020e5: REVERT 000020e6: JUMPDEST 000020e7: POP 000020e8: GAS 000020e9: CALL 000020ea: ISZERO 000020eb: DUP1 000020ec: ISZERO 000020ed: PUSH2 0x20fa 000020f0: JUMPI 000020f1: RETURNDATASIZE 000020f2: PUSH1 0x00 000020f4: DUP1 000020f5: RETURNDATACOPY 000020f6: RETURNDATASIZE 000020f7: PUSH1 0x00 000020f9: REVERT 000020fa: JUMPDEST 000020fb: POP 000020fc: PUSH1 0x00 000020fe: SWAP3 000020ff: POP 00002100: PUSH2 0x2107 00002103: SWAP2 00002104: POP 00002105: POP 00002106: JUMP 00002107: JUMPDEST 00002108: SWAP12 00002109: SWAP11 0000210a: POP 0000210b: POP 0000210c: POP 0000210d: POP 0000210e: POP 0000210f: POP 00002110: POP 00002111: POP 00002112: POP 00002113: POP 00002114: POP 00002115: JUMP 00002116: JUMPDEST 00002117: PUSH1 0x00 00002119: DUP1 0000211a: SLOAD 0000211b: PUSH1 0x01 0000211d: ADD 0000211e: DUP1 0000211f: DUP3 00002120: SSTORE 00002121: DUP2 00002122: PUSH2 0x2129 00002125: PUSH2 0x0e8a 00002128: JUMP 00002129: JUMPDEST 0000212a: SWAP1 0000212b: POP 0000212c: DUP1 0000212d: ISZERO 0000212e: PUSH2 0x214f 00002131: JUMPI 00002132: PUSH2 0x2147 00002135: DUP2 00002136: PUSH1 0x10 00002138: DUP2 00002139: GT 0000213a: ISZERO 0000213b: PUSH2 0x2140 0000213e: JUMPI 0000213f: INVALID 00002140: JUMPDEST 00002141: PUSH1 0x35 00002143: PUSH2 0x227d 00002146: JUMP 00002147: JUMPDEST 00002148: SWAP3 00002149: POP 0000214a: POP 0000214b: PUSH2 0x12a1 0000214e: JUMP 0000214f: JUMPDEST 00002150: PUSH2 0x215a 00002153: CALLER 00002154: DUP7 00002155: DUP7 00002156: PUSH2 0x2b82 00002159: JUMP 0000215a: JUMPDEST 0000215b: SWAP3 0000215c: POP 0000215d: POP 0000215e: PUSH1 0x00 00002160: SLOAD 00002161: DUP2 00002162: EQ 00002163: PUSH2 0x12ea 00002166: JUMPI 00002167: PUSH1 0x40 00002169: DUP1 0000216a: MLOAD 0000216b: PUSH1 0x01 0000216d: PUSH1 0xe5 0000216f: SHL 00002170: PUSH3 0x461bcd 00002174: MUL 00002175: DUP2 00002176: MSTORE 00002177: PUSH1 0x20 00002179: PUSH1 0x04 0000217b: DUP3 0000217c: ADD 0000217d: MSTORE 0000217e: PUSH1 0x0a 00002180: PUSH1 0x24 00002182: DUP3 00002183: ADD 00002184: MSTORE 00002185: PUSH1 0x01 00002187: PUSH1 0xb2 00002189: SHL 0000218a: PUSH10 0x1c994b595b9d195c9959 00002195: MUL 00002196: PUSH1 0x44 00002198: DUP3 00002199: ADD 0000219a: MSTORE 0000219b: SWAP1 0000219c: MLOAD 0000219d: SWAP1 0000219e: DUP2 0000219f: SWAP1 000021a0: SUB 000021a1: PUSH1 0x64 000021a3: ADD 000021a4: SWAP1 000021a5: REVERT 000021a6: JUMPDEST 000021a7: PUSH1 0x00 000021a9: DUP1 000021aa: PUSH1 0x00 000021ac: PUSH2 0x21b3 000021af: PUSH2 0x46bb 000021b2: JUMP 000021b3: JUMPDEST 000021b4: PUSH2 0x21bd 000021b7: DUP7 000021b8: DUP7 000021b9: PUSH2 0x2620 000021bc: JUMP 000021bd: JUMPDEST 000021be: SWAP1 000021bf: SWAP3 000021c0: POP 000021c1: SWAP1 000021c2: POP 000021c3: PUSH1 0x00 000021c5: DUP3 000021c6: PUSH1 0x03 000021c8: DUP2 000021c9: GT 000021ca: ISZERO 000021cb: PUSH2 0x21d0 000021ce: JUMPI 000021cf: INVALID 000021d0: JUMPDEST 000021d1: EQ 000021d2: PUSH2 0x21e1 000021d5: JUMPI 000021d6: POP 000021d7: SWAP2 000021d8: POP 000021d9: PUSH1 0x00 000021db: SWAP1 000021dc: POP 000021dd: PUSH2 0x21f3 000021e0: JUMP 000021e1: JUMPDEST 000021e2: PUSH1 0x00 000021e4: PUSH2 0x21ec 000021e7: DUP3 000021e8: PUSH2 0x30cc 000021eb: JUMP 000021ec: JUMPDEST 000021ed: SWAP4 000021ee: POP 000021ef: SWAP4 000021f0: POP 000021f1: POP 000021f2: POP 000021f3: JUMPDEST 000021f4: SWAP3 000021f5: POP 000021f6: SWAP3 000021f7: SWAP1 000021f8: POP 000021f9: JUMP 000021fa: JUMPDEST 000021fb: PUSH1 0x12 000021fd: SLOAD 000021fe: PUSH1 0x40 00002200: DUP1 00002201: MLOAD 00002202: PUSH1 0x01 00002204: PUSH1 0xe0 00002206: SHL 00002207: PUSH4 0x70a08231 0000220c: MUL 0000220d: DUP2 0000220e: MSTORE 0000220f: ADDRESS 00002210: PUSH1 0x04 00002212: DUP3 00002213: ADD 00002214: MSTORE 00002215: SWAP1 00002216: MLOAD 00002217: PUSH1 0x00 00002219: SWAP3 0000221a: PUSH1 0x01 0000221c: PUSH1 0x01 0000221e: PUSH1 0xa0 00002220: SHL 00002221: SUB 00002222: AND 00002223: SWAP2 00002224: DUP3 00002225: SWAP2 00002226: PUSH4 0x70a08231 0000222b: SWAP2 0000222c: PUSH1 0x24 0000222e: DUP1 0000222f: DUP3 00002230: ADD 00002231: SWAP3 00002232: PUSH1 0x20 00002234: SWAP3 00002235: SWAP1 00002236: SWAP2 00002237: SWAP1 00002238: DUP3 00002239: SWAP1 0000223a: SUB 0000223b: ADD 0000223c: DUP2 0000223d: DUP7 0000223e: DUP1 0000223f: EXTCODESIZE 00002240: ISZERO 00002241: DUP1 00002242: ISZERO 00002243: PUSH2 0x224b 00002246: JUMPI 00002247: PUSH1 0x00 00002249: DUP1 0000224a: REVERT 0000224b: JUMPDEST 0000224c: POP 0000224d: GAS 0000224e: STATICCALL 0000224f: ISZERO 00002250: DUP1 00002251: ISZERO 00002252: PUSH2 0x225f 00002255: JUMPI 00002256: RETURNDATASIZE 00002257: PUSH1 0x00 00002259: DUP1 0000225a: RETURNDATACOPY 0000225b: RETURNDATASIZE 0000225c: PUSH1 0x00 0000225e: REVERT 0000225f: JUMPDEST 00002260: POP 00002261: POP 00002262: POP 00002263: POP 00002264: PUSH1 0x40 00002266: MLOAD 00002267: RETURNDATASIZE 00002268: PUSH1 0x20 0000226a: DUP2 0000226b: LT 0000226c: ISZERO 0000226d: PUSH2 0x2275 00002270: JUMPI 00002271: PUSH1 0x00 00002273: DUP1 00002274: REVERT 00002275: JUMPDEST 00002276: POP 00002277: MLOAD 00002278: SWAP2 00002279: POP 0000227a: POP 0000227b: SWAP1 0000227c: JUMP 0000227d: JUMPDEST 0000227e: PUSH1 0x00 00002280: PUSH32 0x45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0 000022a1: DUP4 000022a2: PUSH1 0x10 000022a4: DUP2 000022a5: GT 000022a6: ISZERO 000022a7: PUSH2 0x22ac 000022aa: JUMPI 000022ab: INVALID 000022ac: JUMPDEST 000022ad: DUP4 000022ae: PUSH1 0x4d 000022b0: DUP2 000022b1: GT 000022b2: ISZERO 000022b3: PUSH2 0x22b8 000022b6: JUMPI 000022b7: INVALID 000022b8: JUMPDEST 000022b9: PUSH1 0x40 000022bb: DUP1 000022bc: MLOAD 000022bd: SWAP3 000022be: DUP4 000022bf: MSTORE 000022c0: PUSH1 0x20 000022c2: DUP4 000022c3: ADD 000022c4: SWAP2 000022c5: SWAP1 000022c6: SWAP2 000022c7: MSTORE 000022c8: PUSH1 0x00 000022ca: DUP3 000022cb: DUP3 000022cc: ADD 000022cd: MSTORE 000022ce: MLOAD 000022cf: SWAP1 000022d0: DUP2 000022d1: SWAP1 000022d2: SUB 000022d3: PUSH1 0x60 000022d5: ADD 000022d6: SWAP1 000022d7: LOG1 000022d8: DUP3 000022d9: PUSH1 0x10 000022db: DUP2 000022dc: GT 000022dd: ISZERO 000022de: PUSH2 0x0a35 000022e1: JUMPI 000022e2: INVALID 000022e3: JUMPDEST 000022e4: PUSH1 0x04 000022e6: SLOAD 000022e7: PUSH1 0x00 000022e9: SWAP1 000022ea: DUP2 000022eb: SWAP1 000022ec: DUP2 000022ed: SWAP1 000022ee: PUSH1 0x01 000022f0: PUSH1 0x01 000022f2: PUSH1 0xa0 000022f4: SHL 000022f5: SUB 000022f6: AND 000022f7: CALLER 000022f8: EQ 000022f9: PUSH2 0x2311 000022fc: JUMPI 000022fd: PUSH2 0x2308 00002300: PUSH1 0x01 00002302: PUSH1 0x31 00002304: PUSH2 0x227d 00002307: JUMP 00002308: JUMPDEST 00002309: SWAP3 0000230a: POP 0000230b: POP 0000230c: POP 0000230d: PUSH2 0x0883 00002310: JUMP 00002311: JUMPDEST 00002312: PUSH2 0x2319 00002315: PUSH2 0x25f9 00002318: JUMP 00002319: JUMPDEST 0000231a: PUSH1 0x0a 0000231c: SLOAD 0000231d: EQ 0000231e: PUSH2 0x232d 00002321: JUMPI 00002322: PUSH2 0x2308 00002325: PUSH1 0x0a 00002327: PUSH1 0x33 00002329: PUSH2 0x227d 0000232c: JUMP 0000232d: JUMPDEST 0000232e: DUP4 0000232f: PUSH2 0x2336 00002332: PUSH2 0x21fa 00002335: JUMP 00002336: JUMPDEST 00002337: LT 00002338: ISZERO 00002339: PUSH2 0x2348 0000233c: JUMPI 0000233d: PUSH2 0x2308 00002340: PUSH1 0x0e 00002342: PUSH1 0x32 00002344: PUSH2 0x227d 00002347: JUMP 00002348: JUMPDEST 00002349: PUSH1 0x0d 0000234b: SLOAD 0000234c: DUP5 0000234d: GT 0000234e: ISZERO 0000234f: PUSH2 0x235e 00002352: JUMPI 00002353: PUSH2 0x2308 00002356: PUSH1 0x02 00002358: PUSH1 0x34 0000235a: PUSH2 0x227d 0000235d: JUMP 0000235e: JUMPDEST 0000235f: POP 00002360: PUSH1 0x0d 00002362: SLOAD 00002363: DUP4 00002364: DUP2 00002365: SUB 00002366: SWAP1 00002367: DUP2 00002368: GT 00002369: ISZERO 0000236a: PUSH2 0x23a7 0000236d: JUMPI 0000236e: PUSH1 0x40 00002370: MLOAD 00002371: PUSH1 0x01 00002373: PUSH1 0xe5 00002375: SHL 00002376: PUSH3 0x461bcd 0000237a: MUL 0000237b: DUP2 0000237c: MSTORE 0000237d: PUSH1 0x04 0000237f: ADD 00002380: DUP1 00002381: DUP1 00002382: PUSH1 0x20 00002384: ADD 00002385: DUP3 00002386: DUP2 00002387: SUB 00002388: DUP3 00002389: MSTORE 0000238a: PUSH1 0x24 0000238c: DUP2 0000238d: MSTORE 0000238e: PUSH1 0x20 00002390: ADD 00002391: DUP1 00002392: PUSH2 0x49cb 00002395: PUSH1 0x24 00002397: SWAP2 00002398: CODECOPY 00002399: PUSH1 0x40 0000239b: ADD 0000239c: SWAP2 0000239d: POP 0000239e: POP 0000239f: PUSH1 0x40 000023a1: MLOAD 000023a2: DUP1 000023a3: SWAP2 000023a4: SUB 000023a5: SWAP1 000023a6: REVERT 000023a7: JUMPDEST 000023a8: PUSH1 0x0d 000023aa: DUP2 000023ab: SWAP1 000023ac: SSTORE 000023ad: PUSH1 0x04 000023af: SLOAD 000023b0: PUSH2 0x23c2 000023b3: SWAP1 000023b4: PUSH1 0x01 000023b6: PUSH1 0x01 000023b8: PUSH1 0xa0 000023ba: SHL 000023bb: SUB 000023bc: AND 000023bd: DUP6 000023be: PUSH2 0x30db 000023c1: JUMP 000023c2: JUMPDEST 000023c3: SWAP2 000023c4: POP 000023c5: PUSH1 0x00 000023c7: DUP3 000023c8: PUSH1 0x10 000023ca: DUP2 000023cb: GT 000023cc: ISZERO 000023cd: PUSH2 0x23d2 000023d0: JUMPI 000023d1: INVALID 000023d2: JUMPDEST 000023d3: EQ 000023d4: PUSH2 0x2411 000023d7: JUMPI 000023d8: PUSH1 0x40 000023da: MLOAD 000023db: PUSH1 0x01 000023dd: PUSH1 0xe5 000023df: SHL 000023e0: PUSH3 0x461bcd 000023e4: MUL 000023e5: DUP2 000023e6: MSTORE 000023e7: PUSH1 0x04 000023e9: ADD 000023ea: DUP1 000023eb: DUP1 000023ec: PUSH1 0x20 000023ee: ADD 000023ef: DUP3 000023f0: DUP2 000023f1: SUB 000023f2: DUP3 000023f3: MSTORE 000023f4: PUSH1 0x23 000023f6: DUP2 000023f7: MSTORE 000023f8: PUSH1 0x20 000023fa: ADD 000023fb: DUP1 000023fc: PUSH2 0x47e2 000023ff: PUSH1 0x23 00002401: SWAP2 00002402: CODECOPY 00002403: PUSH1 0x40 00002405: ADD 00002406: SWAP2 00002407: POP 00002408: POP 00002409: PUSH1 0x40 0000240b: MLOAD 0000240c: DUP1 0000240d: SWAP2 0000240e: SUB 0000240f: SWAP1 00002410: REVERT 00002411: JUMPDEST 00002412: PUSH1 0x04 00002414: SLOAD 00002415: PUSH1 0x40 00002417: DUP1 00002418: MLOAD 00002419: PUSH1 0x01 0000241b: PUSH1 0x01 0000241d: PUSH1 0xa0 0000241f: SHL 00002420: SUB 00002421: SWAP1 00002422: SWAP3 00002423: AND 00002424: DUP3 00002425: MSTORE 00002426: PUSH1 0x20 00002428: DUP3 00002429: ADD 0000242a: DUP7 0000242b: SWAP1 0000242c: MSTORE 0000242d: DUP2 0000242e: DUP2 0000242f: ADD 00002430: DUP4 00002431: SWAP1 00002432: MSTORE 00002433: MLOAD 00002434: PUSH32 0x3bad0c59cf2f06e7314077049f48a93578cd16f5ef92329f1dab1420a99c177e 00002455: SWAP2 00002456: DUP2 00002457: SWAP1 00002458: SUB 00002459: PUSH1 0x60 0000245b: ADD 0000245c: SWAP1 0000245d: LOG1 0000245e: PUSH1 0x00 00002460: SWAP5 00002461: SWAP4 00002462: POP 00002463: POP 00002464: POP 00002465: POP 00002466: JUMP 00002467: JUMPDEST 00002468: PUSH1 0x00 0000246a: DUP1 0000246b: SLOAD 0000246c: PUSH1 0x01 0000246e: ADD 0000246f: DUP1 00002470: DUP3 00002471: SSTORE 00002472: DUP2 00002473: PUSH2 0x247a 00002476: PUSH2 0x0e8a 00002479: JUMP 0000247a: JUMPDEST 0000247b: SWAP1 0000247c: POP 0000247d: DUP1 0000247e: ISZERO 0000247f: PUSH2 0x2498 00002482: JUMPI 00002483: PUSH2 0x0c69 00002486: DUP2 00002487: PUSH1 0x10 00002489: DUP2 0000248a: GT 0000248b: ISZERO 0000248c: PUSH2 0x2491 0000248f: JUMPI 00002490: INVALID 00002491: JUMPDEST 00002492: PUSH1 0x27 00002494: PUSH2 0x227d 00002497: JUMP 00002498: JUMPDEST 00002499: PUSH2 0x0c7a 0000249c: CALLER 0000249d: PUSH1 0x00 0000249f: DUP7 000024a0: PUSH2 0x319a 000024a3: JUMP 000024a4: JUMPDEST 000024a5: PUSH1 0x01 000024a7: PUSH1 0x01 000024a9: PUSH1 0xa0 000024ab: SHL 000024ac: SUB 000024ad: DUP2 000024ae: AND 000024af: PUSH1 0x00 000024b1: SWAP1 000024b2: DUP2 000024b3: MSTORE 000024b4: PUSH1 0x11 000024b6: PUSH1 0x20 000024b8: MSTORE 000024b9: PUSH1 0x40 000024bb: DUP2 000024bc: KECCAK256 000024bd: DUP1 000024be: SLOAD 000024bf: DUP3 000024c0: SWAP2 000024c1: DUP3 000024c2: SWAP2 000024c3: DUP3 000024c4: SWAP2 000024c5: DUP3 000024c6: SWAP2 000024c7: PUSH2 0x24db 000024ca: JUMPI 000024cb: POP 000024cc: PUSH1 0x00 000024ce: SWAP5 000024cf: POP 000024d0: DUP5 000024d1: SWAP4 000024d2: POP 000024d3: PUSH2 0x2553 000024d6: SWAP3 000024d7: POP 000024d8: POP 000024d9: POP 000024da: JUMP 000024db: JUMPDEST 000024dc: PUSH2 0x24eb 000024df: DUP2 000024e0: PUSH1 0x00 000024e2: ADD 000024e3: SLOAD 000024e4: PUSH1 0x0b 000024e6: SLOAD 000024e7: PUSH2 0x36af 000024ea: JUMP 000024eb: JUMPDEST 000024ec: SWAP1 000024ed: SWAP5 000024ee: POP 000024ef: SWAP3 000024f0: POP 000024f1: PUSH1 0x00 000024f3: DUP5 000024f4: PUSH1 0x03 000024f6: DUP2 000024f7: GT 000024f8: ISZERO 000024f9: PUSH2 0x24fe 000024fc: JUMPI 000024fd: INVALID 000024fe: JUMPDEST 000024ff: EQ 00002500: PUSH2 0x2513 00002503: JUMPI 00002504: POP 00002505: SWAP2 00002506: SWAP4 00002507: POP 00002508: PUSH1 0x00 0000250a: SWAP3 0000250b: POP 0000250c: PUSH2 0x2553 0000250f: SWAP2 00002510: POP 00002511: POP 00002512: JUMP 00002513: JUMPDEST 00002514: PUSH2 0x2521 00002517: DUP4 00002518: DUP3 00002519: PUSH1 0x01 0000251b: ADD 0000251c: SLOAD 0000251d: PUSH2 0x36ee 00002520: JUMP 00002521: JUMPDEST 00002522: SWAP1 00002523: SWAP5 00002524: POP 00002525: SWAP2 00002526: POP 00002527: PUSH1 0x00 00002529: DUP5 0000252a: PUSH1 0x03 0000252c: DUP2 0000252d: GT 0000252e: ISZERO 0000252f: PUSH2 0x2534 00002532: JUMPI 00002533: INVALID 00002534: JUMPDEST 00002535: EQ 00002536: PUSH2 0x2549 00002539: JUMPI 0000253a: POP 0000253b: SWAP2 0000253c: SWAP4 0000253d: POP 0000253e: PUSH1 0x00 00002540: SWAP3 00002541: POP 00002542: PUSH2 0x2553 00002545: SWAP2 00002546: POP 00002547: POP 00002548: JUMP 00002549: JUMPDEST 0000254a: POP 0000254b: PUSH1 0x00 0000254d: SWAP5 0000254e: POP 0000254f: SWAP3 00002550: POP 00002551: POP 00002552: POP 00002553: JUMPDEST 00002554: SWAP2 00002555: POP 00002556: SWAP2 00002557: JUMP 00002558: JUMPDEST 00002559: PUSH1 0x00 0000255b: DUP1 0000255c: SLOAD 0000255d: PUSH1 0x01 0000255f: ADD 00002560: DUP1 00002561: DUP3 00002562: SSTORE 00002563: DUP2 00002564: PUSH2 0x256b 00002567: PUSH2 0x0e8a 0000256a: JUMP 0000256b: JUMPDEST 0000256c: SWAP1 0000256d: POP 0000256e: DUP1 0000256f: ISZERO 00002570: PUSH2 0x2589 00002573: JUMPI 00002574: PUSH2 0x0c69 00002577: DUP2 00002578: PUSH1 0x10 0000257a: DUP2 0000257b: GT 0000257c: ISZERO 0000257d: PUSH2 0x2582 00002580: JUMPI 00002581: INVALID 00002582: JUMPDEST 00002583: PUSH1 0x1e 00002585: PUSH2 0x227d 00002588: JUMP 00002589: JUMPDEST 0000258a: PUSH2 0x0c7a 0000258d: CALLER 0000258e: DUP6 0000258f: PUSH2 0x3719 00002592: JUMP 00002593: JUMPDEST 00002594: PUSH1 0x00 00002596: PUSH32 0x45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0 000025b7: DUP5 000025b8: PUSH1 0x10 000025ba: DUP2 000025bb: GT 000025bc: ISZERO 000025bd: PUSH2 0x25c2 000025c0: JUMPI 000025c1: INVALID 000025c2: JUMPDEST 000025c3: DUP5 000025c4: PUSH1 0x4d 000025c6: DUP2 000025c7: GT 000025c8: ISZERO 000025c9: PUSH2 0x25ce 000025cc: JUMPI 000025cd: INVALID 000025ce: JUMPDEST 000025cf: PUSH1 0x40 000025d1: DUP1 000025d2: MLOAD 000025d3: SWAP3 000025d4: DUP4 000025d5: MSTORE 000025d6: PUSH1 0x20 000025d8: DUP4 000025d9: ADD 000025da: SWAP2 000025db: SWAP1 000025dc: SWAP2 000025dd: MSTORE 000025de: DUP2 000025df: DUP2 000025e0: ADD 000025e1: DUP6 000025e2: SWAP1 000025e3: MSTORE 000025e4: MLOAD 000025e5: SWAP1 000025e6: DUP2 000025e7: SWAP1 000025e8: SUB 000025e9: PUSH1 0x60 000025eb: ADD 000025ec: SWAP1 000025ed: LOG1 000025ee: DUP4 000025ef: PUSH1 0x10 000025f1: DUP2 000025f2: GT 000025f3: ISZERO 000025f4: PUSH2 0x0ab7 000025f7: JUMPI 000025f8: INVALID 000025f9: JUMPDEST 000025fa: NUMBER 000025fb: SWAP1 000025fc: JUMP 000025fd: JUMPDEST 000025fe: PUSH1 0x00 00002600: DUP1 00002601: DUP4 00002602: DUP4 00002603: GT 00002604: PUSH2 0x2614 00002607: JUMPI 00002608: POP 00002609: PUSH1 0x00 0000260b: SWAP1 0000260c: POP 0000260d: DUP2 0000260e: DUP4 0000260f: SUB 00002610: PUSH2 0x21f3 00002613: JUMP 00002614: JUMPDEST 00002615: POP 00002616: PUSH1 0x03 00002618: SWAP1 00002619: POP 0000261a: PUSH1 0x00 0000261c: PUSH2 0x21f3 0000261f: JUMP 00002620: JUMPDEST 00002621: PUSH1 0x00 00002623: PUSH2 0x262a 00002626: PUSH2 0x46bb 00002629: JUMP 0000262a: JUMPDEST 0000262b: PUSH1 0x00 0000262d: DUP1 0000262e: PUSH2 0x263b 00002631: DUP7 00002632: PUSH1 0x00 00002634: ADD 00002635: MLOAD 00002636: DUP7 00002637: PUSH2 0x36af 0000263a: JUMP 0000263b: JUMPDEST 0000263c: SWAP1 0000263d: SWAP3 0000263e: POP 0000263f: SWAP1 00002640: POP 00002641: PUSH1 0x00 00002643: DUP3 00002644: PUSH1 0x03 00002646: DUP2 00002647: GT 00002648: ISZERO 00002649: PUSH2 0x264e 0000264c: JUMPI 0000264d: INVALID 0000264e: JUMPDEST 0000264f: EQ 00002650: PUSH2 0x266d 00002653: JUMPI 00002654: POP 00002655: PUSH1 0x40 00002657: DUP1 00002658: MLOAD 00002659: PUSH1 0x20 0000265b: DUP2 0000265c: ADD 0000265d: SWAP1 0000265e: SWAP2 0000265f: MSTORE 00002660: PUSH1 0x00 00002662: DUP2 00002663: MSTORE 00002664: SWAP1 00002665: SWAP3 00002666: POP 00002667: SWAP1 00002668: POP 00002669: PUSH2 0x21f3 0000266c: JUMP 0000266d: JUMPDEST 0000266e: PUSH1 0x40 00002670: DUP1 00002671: MLOAD 00002672: PUSH1 0x20 00002674: DUP2 00002675: ADD 00002676: SWAP1 00002677: SWAP2 00002678: MSTORE 00002679: SWAP1 0000267a: DUP2 0000267b: MSTORE 0000267c: PUSH1 0x00 0000267e: SWAP7 0000267f: SWAP1 00002680: SWAP6 00002681: POP 00002682: SWAP4 00002683: POP 00002684: POP 00002685: POP 00002686: POP 00002687: JUMP 00002688: JUMPDEST 00002689: PUSH1 0x00 0000268b: DUP1 0000268c: DUP4 0000268d: DUP4 0000268e: ADD 0000268f: DUP5 00002690: DUP2 00002691: LT 00002692: PUSH2 0x26a0 00002695: JUMPI 00002696: PUSH1 0x00 00002698: SWAP3 00002699: POP 0000269a: SWAP1 0000269b: POP 0000269c: PUSH2 0x21f3 0000269f: JUMP 000026a0: JUMPDEST 000026a1: POP 000026a2: PUSH1 0x02 000026a4: SWAP2 000026a5: POP 000026a6: PUSH1 0x00 000026a8: SWAP1 000026a9: POP 000026aa: PUSH2 0x21f3 000026ad: JUMP 000026ae: JUMPDEST 000026af: PUSH1 0x00 000026b1: DUP1 000026b2: PUSH1 0x00 000026b4: PUSH2 0x26bb 000026b7: PUSH2 0x46bb 000026ba: JUMP 000026bb: JUMPDEST 000026bc: PUSH2 0x26c5 000026bf: DUP8 000026c0: DUP8 000026c1: PUSH2 0x2620 000026c4: JUMP 000026c5: JUMPDEST 000026c6: SWAP1 000026c7: SWAP3 000026c8: POP 000026c9: SWAP1 000026ca: POP 000026cb: PUSH1 0x00 000026cd: DUP3 000026ce: PUSH1 0x03 000026d0: DUP2 000026d1: GT 000026d2: ISZERO 000026d3: PUSH2 0x26d8 000026d6: JUMPI 000026d7: INVALID 000026d8: JUMPDEST 000026d9: EQ 000026da: PUSH2 0x26e9 000026dd: JUMPI 000026de: POP 000026df: SWAP2 000026e0: POP 000026e1: PUSH1 0x00 000026e3: SWAP1 000026e4: POP 000026e5: PUSH2 0x2702 000026e8: JUMP 000026e9: JUMPDEST 000026ea: PUSH2 0x26fb 000026ed: PUSH2 0x26f5 000026f0: DUP3 000026f1: PUSH2 0x30cc 000026f4: JUMP 000026f5: JUMPDEST 000026f6: DUP7 000026f7: PUSH2 0x2688 000026fa: JUMP 000026fb: JUMPDEST 000026fc: SWAP4 000026fd: POP 000026fe: SWAP4 000026ff: POP 00002700: POP 00002701: POP 00002702: JUMPDEST 00002703: SWAP4 00002704: POP 00002705: SWAP4 00002706: SWAP2 00002707: POP 00002708: POP 00002709: JUMP 0000270a: JUMPDEST 0000270b: PUSH1 0x00 0000270d: PUSH2 0x2714 00002710: PUSH2 0x46bb 00002713: JUMP 00002714: JUMPDEST 00002715: PUSH1 0x00 00002717: DUP1 00002718: PUSH2 0x2729 0000271b: PUSH8 0x0de0b6b3a7640000 00002724: DUP8 00002725: PUSH2 0x36af 00002728: JUMP 00002729: JUMPDEST 0000272a: SWAP1 0000272b: SWAP3 0000272c: POP 0000272d: SWAP1 0000272e: POP 0000272f: PUSH1 0x00 00002731: DUP3 00002732: PUSH1 0x03 00002734: DUP2 00002735: GT 00002736: ISZERO 00002737: PUSH2 0x273c 0000273a: JUMPI 0000273b: INVALID 0000273c: JUMPDEST 0000273d: EQ 0000273e: PUSH2 0x275b 00002741: JUMPI 00002742: POP 00002743: PUSH1 0x40 00002745: DUP1 00002746: MLOAD 00002747: PUSH1 0x20 00002749: DUP2 0000274a: ADD 0000274b: SWAP1 0000274c: SWAP2 0000274d: MSTORE 0000274e: PUSH1 0x00 00002750: DUP2 00002751: MSTORE 00002752: SWAP1 00002753: SWAP3 00002754: POP 00002755: SWAP1 00002756: POP 00002757: PUSH2 0x21f3 0000275a: JUMP 0000275b: JUMPDEST 0000275c: PUSH2 0x21ec 0000275f: DUP2 00002760: DUP7 00002761: PUSH1 0x00 00002763: ADD 00002764: MLOAD 00002765: PUSH2 0x301c 00002768: JUMP 00002769: JUMPDEST 0000276a: PUSH1 0x00 0000276c: PUSH2 0x2773 0000276f: PUSH2 0x46bb 00002772: JUMP 00002773: JUMPDEST 00002774: PUSH1 0x00 00002776: DUP1 00002777: PUSH2 0x2788 0000277a: DUP7 0000277b: PUSH1 0x00 0000277d: ADD 0000277e: MLOAD 0000277f: DUP7 00002780: PUSH1 0x00 00002782: ADD 00002783: MLOAD 00002784: PUSH2 0x25fd 00002787: JUMP 00002788: JUMPDEST 00002789: PUSH1 0x40 0000278b: DUP1 0000278c: MLOAD 0000278d: PUSH1 0x20 0000278f: DUP2 00002790: ADD 00002791: SWAP1 00002792: SWAP2 00002793: MSTORE 00002794: SWAP1 00002795: DUP2 00002796: MSTORE 00002797: SWAP1 00002798: SWAP8 00002799: SWAP1 0000279a: SWAP7 0000279b: POP 0000279c: SWAP5 0000279d: POP 0000279e: POP 0000279f: POP 000027a0: POP 000027a1: POP 000027a2: JUMP 000027a3: JUMPDEST 000027a4: PUSH1 0x00 000027a6: PUSH2 0x27ad 000027a9: PUSH2 0x46bb 000027ac: JUMP 000027ad: JUMPDEST 000027ae: PUSH1 0x00 000027b0: PUSH2 0x27b7 000027b3: PUSH2 0x46bb 000027b6: JUMP 000027b7: JUMPDEST 000027b8: PUSH2 0x27c1 000027bb: DUP8 000027bc: DUP8 000027bd: PUSH2 0x3b67 000027c0: JUMP 000027c1: JUMPDEST 000027c2: SWAP1 000027c3: SWAP3 000027c4: POP 000027c5: SWAP1 000027c6: POP 000027c7: PUSH1 0x00 000027c9: DUP3 000027ca: PUSH1 0x03 000027cc: DUP2 000027cd: GT 000027ce: ISZERO 000027cf: PUSH2 0x27d4 000027d2: JUMPI 000027d3: INVALID 000027d4: JUMPDEST 000027d5: EQ 000027d6: PUSH2 0x27e3 000027d9: JUMPI 000027da: SWAP1 000027db: SWAP3 000027dc: POP 000027dd: SWAP1 000027de: POP 000027df: PUSH2 0x2702 000027e2: JUMP 000027e3: JUMPDEST 000027e4: PUSH2 0x26fb 000027e7: DUP2 000027e8: DUP7 000027e9: PUSH2 0x3b67 000027ec: JUMP 000027ed: JUMPDEST 000027ee: PUSH1 0x00 000027f0: DUP1 000027f1: SLOAD 000027f2: PUSH1 0x01 000027f4: ADD 000027f5: DUP1 000027f6: DUP3 000027f7: SSTORE 000027f8: DUP2 000027f9: PUSH2 0x2800 000027fc: PUSH2 0x0e8a 000027ff: JUMP 00002800: JUMPDEST 00002801: SWAP1 00002802: POP 00002803: DUP1 00002804: ISZERO 00002805: PUSH2 0x281e 00002808: JUMPI 00002809: PUSH2 0x0c69 0000280c: DUP2 0000280d: PUSH1 0x10 0000280f: DUP2 00002810: GT 00002811: ISZERO 00002812: PUSH2 0x2817 00002815: JUMPI 00002816: INVALID 00002817: JUMPDEST 00002818: PUSH1 0x08 0000281a: PUSH2 0x227d 0000281d: JUMP 0000281e: JUMPDEST 0000281f: PUSH2 0x0c7a 00002822: CALLER 00002823: DUP6 00002824: PUSH2 0x3c50 00002827: JUMP 00002828: JUMPDEST 00002829: PUSH1 0x00 0000282b: DUP1 0000282c: SLOAD 0000282d: PUSH1 0x01 0000282f: ADD 00002830: DUP1 00002831: DUP3 00002832: SSTORE 00002833: DUP2 00002834: PUSH2 0x283b 00002837: PUSH2 0x0e8a 0000283a: JUMP 0000283b: JUMPDEST 0000283c: SWAP1 0000283d: POP 0000283e: DUP1 0000283f: ISZERO 00002840: PUSH2 0x2852 00002843: JUMPI 00002844: PUSH2 0x0c69 00002847: DUP2 00002848: PUSH1 0x10 0000284a: DUP2 0000284b: GT 0000284c: ISZERO 0000284d: PUSH2 0x2491 00002850: JUMPI 00002851: INVALID 00002852: JUMPDEST 00002853: PUSH2 0x0c7a 00002856: CALLER 00002857: DUP6 00002858: PUSH1 0x00 0000285a: PUSH2 0x319a 0000285d: JUMP 0000285e: JUMPDEST 0000285f: PUSH1 0x04 00002861: SLOAD 00002862: PUSH1 0x00 00002864: SWAP1 00002865: DUP2 00002866: SWAP1 00002867: PUSH1 0x01 00002869: PUSH1 0x01 0000286b: PUSH1 0xa0 0000286d: SHL 0000286e: SUB 0000286f: AND 00002870: CALLER 00002871: EQ 00002872: PUSH2 0x2881 00002875: JUMPI 00002876: PUSH2 0x1bbe 00002879: PUSH1 0x01 0000287b: PUSH1 0x42 0000287d: PUSH2 0x227d 00002880: JUMP 00002881: JUMPDEST 00002882: PUSH2 0x2889 00002885: PUSH2 0x25f9 00002888: JUMP 00002889: JUMPDEST 0000288a: PUSH1 0x0a 0000288c: SLOAD 0000288d: EQ 0000288e: PUSH2 0x289d 00002891: JUMPI 00002892: PUSH2 0x1bbe 00002895: PUSH1 0x0a 00002897: PUSH1 0x41 00002899: PUSH2 0x227d 0000289c: JUMP 0000289d: JUMPDEST 0000289e: PUSH1 0x07 000028a0: PUSH1 0x00 000028a2: SWAP1 000028a3: SLOAD 000028a4: SWAP1 000028a5: PUSH2 0x0100 000028a8: EXP 000028a9: SWAP1 000028aa: DIV 000028ab: PUSH1 0x01 000028ad: PUSH1 0x01 000028af: PUSH1 0xa0 000028b1: SHL 000028b2: SUB 000028b3: AND 000028b4: SWAP1 000028b5: POP 000028b6: DUP3 000028b7: PUSH1 0x01 000028b9: PUSH1 0x01 000028bb: PUSH1 0xa0 000028bd: SHL 000028be: SUB 000028bf: AND 000028c0: PUSH4 0x2191f92a 000028c5: PUSH1 0x40 000028c7: MLOAD 000028c8: DUP2 000028c9: PUSH4 0xffffffff 000028ce: AND 000028cf: PUSH1 0xe0 000028d1: SHL 000028d2: DUP2 000028d3: MSTORE 000028d4: PUSH1 0x04 000028d6: ADD 000028d7: PUSH1 0x20 000028d9: PUSH1 0x40 000028db: MLOAD 000028dc: DUP1 000028dd: DUP4 000028de: SUB 000028df: DUP2 000028e0: DUP7 000028e1: DUP1 000028e2: EXTCODESIZE 000028e3: ISZERO 000028e4: DUP1 000028e5: ISZERO 000028e6: PUSH2 0x28ee 000028e9: JUMPI 000028ea: PUSH1 0x00 000028ec: DUP1 000028ed: REVERT 000028ee: JUMPDEST 000028ef: POP 000028f0: GAS 000028f1: STATICCALL 000028f2: ISZERO 000028f3: DUP1 000028f4: ISZERO 000028f5: PUSH2 0x2902 000028f8: JUMPI 000028f9: RETURNDATASIZE 000028fa: PUSH1 0x00 000028fc: DUP1 000028fd: RETURNDATACOPY 000028fe: RETURNDATASIZE 000028ff: PUSH1 0x00 00002901: REVERT 00002902: JUMPDEST 00002903: POP 00002904: POP 00002905: POP 00002906: POP 00002907: PUSH1 0x40 00002909: MLOAD 0000290a: RETURNDATASIZE 0000290b: PUSH1 0x20 0000290d: DUP2 0000290e: LT 0000290f: ISZERO 00002910: PUSH2 0x2918 00002913: JUMPI 00002914: PUSH1 0x00 00002916: DUP1 00002917: REVERT 00002918: JUMPDEST 00002919: POP 0000291a: MLOAD 0000291b: PUSH2 0x296e 0000291e: JUMPI 0000291f: PUSH1 0x40 00002921: DUP1 00002922: MLOAD 00002923: PUSH1 0x01 00002925: PUSH1 0xe5 00002927: SHL 00002928: PUSH3 0x461bcd 0000292c: MUL 0000292d: DUP2 0000292e: MSTORE 0000292f: PUSH1 0x20 00002931: PUSH1 0x04 00002933: DUP3 00002934: ADD 00002935: MSTORE 00002936: PUSH1 0x1c 00002938: PUSH1 0x24 0000293a: DUP3 0000293b: ADD 0000293c: MSTORE 0000293d: PUSH32 0x6d61726b6572206d6574686f642072657475726e65642066616c736500000000 0000295e: PUSH1 0x44 00002960: DUP3 00002961: ADD 00002962: MSTORE 00002963: SWAP1 00002964: MLOAD 00002965: SWAP1 00002966: DUP2 00002967: SWAP1 00002968: SUB 00002969: PUSH1 0x64 0000296b: ADD 0000296c: SWAP1 0000296d: REVERT 0000296e: JUMPDEST 0000296f: PUSH1 0x07 00002971: DUP1 00002972: SLOAD 00002973: PUSH1 0x01 00002975: PUSH1 0x01 00002977: PUSH1 0xa0 00002979: SHL 0000297a: SUB 0000297b: NOT 0000297c: AND 0000297d: PUSH1 0x01 0000297f: PUSH1 0x01 00002981: PUSH1 0xa0 00002983: SHL 00002984: SUB 00002985: DUP6 00002986: DUP2 00002987: AND 00002988: SWAP2 00002989: DUP3 0000298a: OR 0000298b: SWAP1 0000298c: SWAP3 0000298d: SSTORE 0000298e: PUSH1 0x40 00002990: DUP1 00002991: MLOAD 00002992: SWAP3 00002993: DUP5 00002994: AND 00002995: DUP4 00002996: MSTORE 00002997: PUSH1 0x20 00002999: DUP4 0000299a: ADD 0000299b: SWAP2 0000299c: SWAP1 0000299d: SWAP2 0000299e: MSTORE 0000299f: DUP1 000029a0: MLOAD 000029a1: PUSH32 0xedffc32e068c7c95dfd4bdfd5c4d939a084d6b11c4199eac8436ed234d72f926 000029c2: SWAP3 000029c3: DUP2 000029c4: SWAP1 000029c5: SUB 000029c6: SWAP1 000029c7: SWAP2 000029c8: ADD 000029c9: SWAP1 000029ca: LOG1 000029cb: PUSH1 0x00 000029cd: PUSH2 0x0a35 000029d0: JUMP 000029d1: JUMPDEST 000029d2: PUSH1 0x00 000029d4: DUP1 000029d5: SLOAD 000029d6: PUSH1 0x01 000029d8: ADD 000029d9: DUP1 000029da: DUP3 000029db: SSTORE 000029dc: DUP2 000029dd: PUSH2 0x29e4 000029e0: PUSH2 0x0e8a 000029e3: JUMP 000029e4: JUMPDEST 000029e5: SWAP1 000029e6: POP 000029e7: DUP1 000029e8: ISZERO 000029e9: PUSH2 0x2a02 000029ec: JUMPI 000029ed: PUSH2 0x168b 000029f0: DUP2 000029f1: PUSH1 0x10 000029f3: DUP2 000029f4: GT 000029f5: ISZERO 000029f6: PUSH2 0x29fb 000029f9: JUMPI 000029fa: INVALID 000029fb: JUMPDEST 000029fc: PUSH1 0x0f 000029fe: PUSH2 0x227d 00002a01: JUMP 00002a02: JUMPDEST 00002a03: DUP4 00002a04: PUSH1 0x01 00002a06: PUSH1 0x01 00002a08: PUSH1 0xa0 00002a0a: SHL 00002a0b: SUB 00002a0c: AND 00002a0d: PUSH4 0xa6afed95 00002a12: PUSH1 0x40 00002a14: MLOAD 00002a15: DUP2 00002a16: PUSH4 0xffffffff 00002a1b: AND 00002a1c: PUSH1 0xe0 00002a1e: SHL 00002a1f: DUP2 00002a20: MSTORE 00002a21: PUSH1 0x04 00002a23: ADD 00002a24: PUSH1 0x20 00002a26: PUSH1 0x40 00002a28: MLOAD 00002a29: DUP1 00002a2a: DUP4 00002a2b: SUB 00002a2c: DUP2 00002a2d: PUSH1 0x00 00002a2f: DUP8 00002a30: DUP1 00002a31: EXTCODESIZE 00002a32: ISZERO 00002a33: DUP1 00002a34: ISZERO 00002a35: PUSH2 0x2a3d 00002a38: JUMPI 00002a39: PUSH1 0x00 00002a3b: DUP1 00002a3c: REVERT 00002a3d: JUMPDEST 00002a3e: POP 00002a3f: GAS 00002a40: CALL 00002a41: ISZERO 00002a42: DUP1 00002a43: ISZERO 00002a44: PUSH2 0x2a51 00002a47: JUMPI 00002a48: RETURNDATASIZE 00002a49: PUSH1 0x00 00002a4b: DUP1 00002a4c: RETURNDATACOPY 00002a4d: RETURNDATASIZE 00002a4e: PUSH1 0x00 00002a50: REVERT 00002a51: JUMPDEST 00002a52: POP 00002a53: POP 00002a54: POP 00002a55: POP 00002a56: PUSH1 0x40 00002a58: MLOAD 00002a59: RETURNDATASIZE 00002a5a: PUSH1 0x20 00002a5c: DUP2 00002a5d: LT 00002a5e: ISZERO 00002a5f: PUSH2 0x2a67 00002a62: JUMPI 00002a63: PUSH1 0x00 00002a65: DUP1 00002a66: REVERT 00002a67: JUMPDEST 00002a68: POP 00002a69: MLOAD 00002a6a: SWAP1 00002a6b: POP 00002a6c: DUP1 00002a6d: ISZERO 00002a6e: PUSH2 0x2a87 00002a71: JUMPI 00002a72: PUSH2 0x168b 00002a75: DUP2 00002a76: PUSH1 0x10 00002a78: DUP2 00002a79: GT 00002a7a: ISZERO 00002a7b: PUSH2 0x2a80 00002a7e: JUMPI 00002a7f: INVALID 00002a80: JUMPDEST 00002a81: PUSH1 0x10 00002a83: PUSH2 0x227d 00002a86: JUMP 00002a87: JUMPDEST 00002a88: PUSH2 0x2a93 00002a8b: CALLER 00002a8c: DUP8 00002a8d: DUP8 00002a8e: DUP8 00002a8f: PUSH2 0x3fbf 00002a92: JUMP 00002a93: JUMPDEST 00002a94: SWAP3 00002a95: POP 00002a96: POP 00002a97: PUSH1 0x00 00002a99: SLOAD 00002a9a: DUP2 00002a9b: EQ 00002a9c: PUSH2 0x0a21 00002a9f: JUMPI 00002aa0: PUSH1 0x40 00002aa2: DUP1 00002aa3: MLOAD 00002aa4: PUSH1 0x01 00002aa6: PUSH1 0xe5 00002aa8: SHL 00002aa9: PUSH3 0x461bcd 00002aad: MUL 00002aae: DUP2 00002aaf: MSTORE 00002ab0: PUSH1 0x20 00002ab2: PUSH1 0x04 00002ab4: DUP3 00002ab5: ADD 00002ab6: MSTORE 00002ab7: PUSH1 0x0a 00002ab9: PUSH1 0x24 00002abb: DUP3 00002abc: ADD 00002abd: MSTORE 00002abe: PUSH1 0x01 00002ac0: PUSH1 0xb2 00002ac2: SHL 00002ac3: PUSH10 0x1c994b595b9d195c9959 00002ace: MUL 00002acf: PUSH1 0x44 00002ad1: DUP3 00002ad2: ADD 00002ad3: MSTORE 00002ad4: SWAP1 00002ad5: MLOAD 00002ad6: SWAP1 00002ad7: DUP2 00002ad8: SWAP1 00002ad9: SUB 00002ada: PUSH1 0x64 00002adc: ADD 00002add: SWAP1 00002ade: REVERT 00002adf: JUMPDEST 00002ae0: PUSH1 0x04 00002ae2: SLOAD 00002ae3: PUSH1 0x00 00002ae5: SWAP1 00002ae6: PUSH1 0x01 00002ae8: PUSH1 0x01 00002aea: PUSH1 0xa0 00002aec: SHL 00002aed: SUB 00002aee: AND 00002aef: CALLER 00002af0: EQ 00002af1: PUSH2 0x2b00 00002af4: JUMPI 00002af5: PUSH2 0x0aef 00002af8: PUSH1 0x01 00002afa: PUSH1 0x47 00002afc: PUSH2 0x227d 00002aff: JUMP 00002b00: JUMPDEST 00002b01: PUSH2 0x2b08 00002b04: PUSH2 0x25f9 00002b07: JUMP 00002b08: JUMPDEST 00002b09: PUSH1 0x0a 00002b0b: SLOAD 00002b0c: EQ 00002b0d: PUSH2 0x2b1c 00002b10: JUMPI 00002b11: PUSH2 0x0aef 00002b14: PUSH1 0x0a 00002b16: PUSH1 0x48 00002b18: PUSH2 0x227d 00002b1b: JUMP 00002b1c: JUMPDEST 00002b1d: PUSH8 0x0de0b6b3a7640000 00002b26: DUP3 00002b27: GT 00002b28: ISZERO 00002b29: PUSH2 0x2b38 00002b2c: JUMPI 00002b2d: PUSH2 0x0aef 00002b30: PUSH1 0x02 00002b32: PUSH1 0x49 00002b34: PUSH2 0x227d 00002b37: JUMP 00002b38: JUMPDEST 00002b39: PUSH1 0x09 00002b3b: DUP1 00002b3c: SLOAD 00002b3d: SWAP1 00002b3e: DUP4 00002b3f: SWAP1 00002b40: SSTORE 00002b41: PUSH1 0x40 00002b43: DUP1 00002b44: MLOAD 00002b45: DUP3 00002b46: DUP2 00002b47: MSTORE 00002b48: PUSH1 0x20 00002b4a: DUP2 00002b4b: ADD 00002b4c: DUP6 00002b4d: SWAP1 00002b4e: MSTORE 00002b4f: DUP2 00002b50: MLOAD 00002b51: PUSH32 0xaaa68312e2ea9d50e16af5068410ab56e1a1fd06037b1a35664812c30f821460 00002b72: SWAP3 00002b73: SWAP2 00002b74: DUP2 00002b75: SWAP1 00002b76: SUB 00002b77: SWAP1 00002b78: SWAP2 00002b79: ADD 00002b7a: SWAP1 00002b7b: LOG1 00002b7c: PUSH1 0x00 00002b7e: PUSH2 0x0a35 00002b81: JUMP 00002b82: JUMPDEST 00002b83: PUSH1 0x06 00002b85: SLOAD 00002b86: PUSH1 0x40 00002b88: DUP1 00002b89: MLOAD 00002b8a: PUSH1 0x01 00002b8c: PUSH1 0xe1 00002b8e: SHL 00002b8f: PUSH4 0x12004531 00002b94: MUL 00002b95: DUP2 00002b96: MSTORE 00002b97: ADDRESS 00002b98: PUSH1 0x04 00002b9a: DUP3 00002b9b: ADD 00002b9c: MSTORE 00002b9d: PUSH1 0x01 00002b9f: PUSH1 0x01 00002ba1: PUSH1 0xa0 00002ba3: SHL 00002ba4: SUB 00002ba5: DUP7 00002ba6: DUP2 00002ba7: AND 00002ba8: PUSH1 0x24 00002baa: DUP4 00002bab: ADD 00002bac: MSTORE 00002bad: DUP6 00002bae: DUP2 00002baf: AND 00002bb0: PUSH1 0x44 00002bb2: DUP4 00002bb3: ADD 00002bb4: MSTORE 00002bb5: PUSH1 0x64 00002bb7: DUP3 00002bb8: ADD 00002bb9: DUP6 00002bba: SWAP1 00002bbb: MSTORE 00002bbc: SWAP2 00002bbd: MLOAD 00002bbe: PUSH1 0x00 00002bc0: SWAP4 00002bc1: DUP5 00002bc2: SWAP4 00002bc3: AND 00002bc4: SWAP2 00002bc5: PUSH4 0x24008a62 00002bca: SWAP2 00002bcb: PUSH1 0x84 00002bcd: DUP1 00002bce: DUP4 00002bcf: ADD 00002bd0: SWAP3 00002bd1: PUSH1 0x20 00002bd3: SWAP3 00002bd4: SWAP2 00002bd5: SWAP1 00002bd6: DUP3 00002bd7: SWAP1 00002bd8: SUB 00002bd9: ADD 00002bda: DUP2 00002bdb: DUP8 00002bdc: DUP8 00002bdd: DUP1 00002bde: EXTCODESIZE 00002bdf: ISZERO 00002be0: DUP1 00002be1: ISZERO 00002be2: PUSH2 0x2bea 00002be5: JUMPI 00002be6: PUSH1 0x00 00002be8: DUP1 00002be9: REVERT 00002bea: JUMPDEST 00002beb: POP 00002bec: GAS 00002bed: CALL 00002bee: ISZERO 00002bef: DUP1 00002bf0: ISZERO 00002bf1: PUSH2 0x2bfe 00002bf4: JUMPI 00002bf5: RETURNDATASIZE 00002bf6: PUSH1 0x00 00002bf8: DUP1 00002bf9: RETURNDATACOPY 00002bfa: RETURNDATASIZE 00002bfb: PUSH1 0x00 00002bfd: REVERT 00002bfe: JUMPDEST 00002bff: POP 00002c00: POP 00002c01: POP 00002c02: POP 00002c03: PUSH1 0x40 00002c05: MLOAD 00002c06: RETURNDATASIZE 00002c07: PUSH1 0x20 00002c09: DUP2 00002c0a: LT 00002c0b: ISZERO 00002c0c: PUSH2 0x2c14 00002c0f: JUMPI 00002c10: PUSH1 0x00 00002c12: DUP1 00002c13: REVERT 00002c14: JUMPDEST 00002c15: POP 00002c16: MLOAD 00002c17: SWAP1 00002c18: POP 00002c19: DUP1 00002c1a: ISZERO 00002c1b: PUSH2 0x2c33 00002c1e: JUMPI 00002c1f: PUSH2 0x2c2b 00002c22: PUSH1 0x03 00002c24: PUSH1 0x38 00002c26: DUP4 00002c27: PUSH2 0x2593 00002c2a: JUMP 00002c2b: JUMPDEST 00002c2c: SWAP2 00002c2d: POP 00002c2e: POP 00002c2f: PUSH2 0x0a35 00002c32: JUMP 00002c33: JUMPDEST 00002c34: PUSH2 0x2c3b 00002c37: PUSH2 0x25f9 00002c3a: JUMP 00002c3b: JUMPDEST 00002c3c: PUSH1 0x0a 00002c3e: SLOAD 00002c3f: EQ 00002c40: PUSH2 0x2c4f 00002c43: JUMPI 00002c44: PUSH2 0x2c2b 00002c47: PUSH1 0x0a 00002c49: PUSH1 0x39 00002c4b: PUSH2 0x227d 00002c4e: JUMP 00002c4f: JUMPDEST 00002c50: PUSH2 0x2c57 00002c53: PUSH2 0x4728 00002c56: JUMP 00002c57: JUMPDEST 00002c58: PUSH1 0x01 00002c5a: PUSH1 0x01 00002c5c: PUSH1 0xa0 00002c5e: SHL 00002c5f: SUB 00002c60: DUP6 00002c61: AND 00002c62: PUSH1 0x00 00002c64: SWAP1 00002c65: DUP2 00002c66: MSTORE 00002c67: PUSH1 0x11 00002c69: PUSH1 0x20 00002c6b: MSTORE 00002c6c: PUSH1 0x40 00002c6e: SWAP1 00002c6f: KECCAK256 00002c70: PUSH1 0x01 00002c72: ADD 00002c73: SLOAD 00002c74: PUSH1 0x60 00002c76: DUP3 00002c77: ADD 00002c78: MSTORE 00002c79: PUSH2 0x2c81 00002c7c: DUP6 00002c7d: PUSH2 0x24a4 00002c80: JUMP 00002c81: JUMPDEST 00002c82: PUSH1 0x80 00002c84: DUP4 00002c85: ADD 00002c86: DUP2 00002c87: SWAP1 00002c88: MSTORE 00002c89: PUSH1 0x20 00002c8b: DUP4 00002c8c: ADD 00002c8d: DUP3 00002c8e: PUSH1 0x03 00002c90: DUP2 00002c91: GT 00002c92: ISZERO 00002c93: PUSH2 0x2c98 00002c96: JUMPI 00002c97: INVALID 00002c98: JUMPDEST 00002c99: PUSH1 0x03 00002c9b: DUP2 00002c9c: GT 00002c9d: ISZERO 00002c9e: PUSH2 0x2ca3 00002ca1: JUMPI 00002ca2: INVALID 00002ca3: JUMPDEST 00002ca4: SWAP1 00002ca5: MSTORE 00002ca6: POP 00002ca7: PUSH1 0x00 00002ca9: SWAP1 00002caa: POP 00002cab: DUP2 00002cac: PUSH1 0x20 00002cae: ADD 00002caf: MLOAD 00002cb0: PUSH1 0x03 00002cb2: DUP2 00002cb3: GT 00002cb4: ISZERO 00002cb5: PUSH2 0x2cba 00002cb8: JUMPI 00002cb9: INVALID 00002cba: JUMPDEST 00002cbb: EQ 00002cbc: PUSH2 0x2cdf 00002cbf: JUMPI 00002cc0: PUSH2 0x2cd6 00002cc3: PUSH1 0x09 00002cc5: PUSH1 0x37 00002cc7: DUP4 00002cc8: PUSH1 0x20 00002cca: ADD 00002ccb: MLOAD 00002ccc: PUSH1 0x03 00002cce: DUP2 00002ccf: GT 00002cd0: ISZERO 00002cd1: PUSH2 0x1078 00002cd4: JUMPI 00002cd5: INVALID 00002cd6: JUMPDEST 00002cd7: SWAP3 00002cd8: POP 00002cd9: POP 00002cda: POP 00002cdb: PUSH2 0x0a35 00002cde: JUMP 00002cdf: JUMPDEST 00002ce0: PUSH1 0x00 00002ce2: NOT 00002ce3: DUP5 00002ce4: EQ 00002ce5: ISZERO 00002ce6: PUSH2 0x2cf8 00002ce9: JUMPI 00002cea: PUSH1 0x80 00002cec: DUP2 00002ced: ADD 00002cee: MLOAD 00002cef: PUSH1 0x40 00002cf1: DUP3 00002cf2: ADD 00002cf3: MSTORE 00002cf4: PUSH2 0x2d00 00002cf7: JUMP 00002cf8: JUMPDEST 00002cf9: PUSH1 0x40 00002cfb: DUP2 00002cfc: ADD 00002cfd: DUP5 00002cfe: SWAP1 00002cff: MSTORE 00002d00: JUMPDEST 00002d01: PUSH2 0x2d0e 00002d04: DUP7 00002d05: DUP3 00002d06: PUSH1 0x40 00002d08: ADD 00002d09: MLOAD 00002d0a: PUSH2 0x44b3 00002d0d: JUMP 00002d0e: JUMPDEST 00002d0f: DUP2 00002d10: SWAP1 00002d11: PUSH1 0x10 00002d13: DUP2 00002d14: GT 00002d15: ISZERO 00002d16: PUSH2 0x2d1b 00002d19: JUMPI 00002d1a: INVALID 00002d1b: JUMPDEST 00002d1c: SWAP1 00002d1d: DUP2 00002d1e: PUSH1 0x10 00002d20: DUP2 00002d21: GT 00002d22: ISZERO 00002d23: PUSH2 0x2d28 00002d26: JUMPI 00002d27: INVALID 00002d28: JUMPDEST 00002d29: SWAP1 00002d2a: MSTORE 00002d2b: POP 00002d2c: PUSH1 0x00 00002d2e: DUP2 00002d2f: MLOAD 00002d30: PUSH1 0x10 00002d32: DUP2 00002d33: GT 00002d34: ISZERO 00002d35: PUSH2 0x2d3a 00002d38: JUMPI 00002d39: INVALID 00002d3a: JUMPDEST 00002d3b: EQ 00002d3c: PUSH2 0x2d4c 00002d3f: JUMPI 00002d40: DUP1 00002d41: MLOAD 00002d42: PUSH2 0x2cd6 00002d45: SWAP1 00002d46: PUSH1 0x3c 00002d48: PUSH2 0x227d 00002d4b: JUMP 00002d4c: JUMPDEST 00002d4d: PUSH2 0x2d5e 00002d50: DUP2 00002d51: PUSH1 0x80 00002d53: ADD 00002d54: MLOAD 00002d55: DUP3 00002d56: PUSH1 0x40 00002d58: ADD 00002d59: MLOAD 00002d5a: PUSH2 0x25fd 00002d5d: JUMP 00002d5e: JUMPDEST 00002d5f: PUSH1 0xa0 00002d61: DUP4 00002d62: ADD 00002d63: DUP2 00002d64: SWAP1 00002d65: MSTORE 00002d66: PUSH1 0x20 00002d68: DUP4 00002d69: ADD 00002d6a: DUP3 00002d6b: PUSH1 0x03 00002d6d: DUP2 00002d6e: GT 00002d6f: ISZERO 00002d70: PUSH2 0x2d75 00002d73: JUMPI 00002d74: INVALID 00002d75: JUMPDEST 00002d76: PUSH1 0x03 00002d78: DUP2 00002d79: GT 00002d7a: ISZERO 00002d7b: PUSH2 0x2d80 00002d7e: JUMPI 00002d7f: INVALID 00002d80: JUMPDEST 00002d81: SWAP1 00002d82: MSTORE 00002d83: POP 00002d84: PUSH1 0x00 00002d86: SWAP1 00002d87: POP 00002d88: DUP2 00002d89: PUSH1 0x20 00002d8b: ADD 00002d8c: MLOAD 00002d8d: PUSH1 0x03 00002d8f: DUP2 00002d90: GT 00002d91: ISZERO 00002d92: PUSH2 0x2d97 00002d95: JUMPI 00002d96: INVALID 00002d97: JUMPDEST 00002d98: EQ 00002d99: PUSH2 0x2db3 00002d9c: JUMPI 00002d9d: PUSH2 0x2cd6 00002da0: PUSH1 0x09 00002da2: PUSH1 0x3a 00002da4: DUP4 00002da5: PUSH1 0x20 00002da7: ADD 00002da8: MLOAD 00002da9: PUSH1 0x03 00002dab: DUP2 00002dac: GT 00002dad: ISZERO 00002dae: PUSH2 0x1078 00002db1: JUMPI 00002db2: INVALID 00002db3: JUMPDEST 00002db4: PUSH2 0x2dc3 00002db7: PUSH1 0x0c 00002db9: SLOAD 00002dba: DUP3 00002dbb: PUSH1 0x40 00002dbd: ADD 00002dbe: MLOAD 00002dbf: PUSH2 0x25fd 00002dc2: JUMP 00002dc3: JUMPDEST 00002dc4: PUSH1 0xc0 00002dc6: DUP4 00002dc7: ADD 00002dc8: DUP2 00002dc9: SWAP1 00002dca: MSTORE 00002dcb: PUSH1 0x20 00002dcd: DUP4 00002dce: ADD 00002dcf: DUP3 00002dd0: PUSH1 0x03 00002dd2: DUP2 00002dd3: GT 00002dd4: ISZERO 00002dd5: PUSH2 0x2dda 00002dd8: JUMPI 00002dd9: INVALID 00002dda: JUMPDEST 00002ddb: PUSH1 0x03 00002ddd: DUP2 00002dde: GT 00002ddf: ISZERO 00002de0: PUSH2 0x2de5 00002de3: JUMPI 00002de4: INVALID 00002de5: JUMPDEST 00002de6: SWAP1 00002de7: MSTORE 00002de8: POP 00002de9: PUSH1 0x00 00002deb: SWAP1 00002dec: POP 00002ded: DUP2 00002dee: PUSH1 0x20 00002df0: ADD 00002df1: MLOAD 00002df2: PUSH1 0x03 00002df4: DUP2 00002df5: GT 00002df6: ISZERO 00002df7: PUSH2 0x2dfc 00002dfa: JUMPI 00002dfb: INVALID 00002dfc: JUMPDEST 00002dfd: EQ 00002dfe: PUSH2 0x2e18 00002e01: JUMPI 00002e02: PUSH2 0x2cd6 00002e05: PUSH1 0x09 00002e07: PUSH1 0x3b 00002e09: DUP4 00002e0a: PUSH1 0x20 00002e0c: ADD 00002e0d: MLOAD 00002e0e: PUSH1 0x03 00002e10: DUP2 00002e11: GT 00002e12: ISZERO 00002e13: PUSH2 0x1078 00002e16: JUMPI 00002e17: INVALID 00002e18: JUMPDEST 00002e19: PUSH2 0x2e26 00002e1c: DUP7 00002e1d: DUP3 00002e1e: PUSH1 0x40 00002e20: ADD 00002e21: MLOAD 00002e22: PUSH2 0x45ea 00002e25: JUMP 00002e26: JUMPDEST 00002e27: DUP2 00002e28: SWAP1 00002e29: PUSH1 0x10 00002e2b: DUP2 00002e2c: GT 00002e2d: ISZERO 00002e2e: PUSH2 0x2e33 00002e31: JUMPI 00002e32: INVALID 00002e33: JUMPDEST 00002e34: SWAP1 00002e35: DUP2 00002e36: PUSH1 0x10 00002e38: DUP2 00002e39: GT 00002e3a: ISZERO 00002e3b: PUSH2 0x2e40 00002e3e: JUMPI 00002e3f: INVALID 00002e40: JUMPDEST 00002e41: SWAP1 00002e42: MSTORE 00002e43: POP 00002e44: PUSH1 0x00 00002e46: DUP2 00002e47: MLOAD 00002e48: PUSH1 0x10 00002e4a: DUP2 00002e4b: GT 00002e4c: ISZERO 00002e4d: PUSH2 0x2e52 00002e50: JUMPI 00002e51: INVALID 00002e52: JUMPDEST 00002e53: EQ 00002e54: PUSH2 0x2ea7 00002e57: JUMPI 00002e58: PUSH1 0x40 00002e5a: DUP1 00002e5b: MLOAD 00002e5c: PUSH1 0x01 00002e5e: PUSH1 0xe5 00002e60: SHL 00002e61: PUSH3 0x461bcd 00002e65: MUL 00002e66: DUP2 00002e67: MSTORE 00002e68: PUSH1 0x20 00002e6a: PUSH1 0x04 00002e6c: DUP3 00002e6d: ADD 00002e6e: MSTORE 00002e6f: PUSH1 0x1f 00002e71: PUSH1 0x24 00002e73: DUP3 00002e74: ADD 00002e75: MSTORE 00002e76: PUSH32 0x726570617920626f72726f77207472616e7366657220696e206661696c656400 00002e97: PUSH1 0x44 00002e99: DUP3 00002e9a: ADD 00002e9b: MSTORE 00002e9c: SWAP1 00002e9d: MLOAD 00002e9e: SWAP1 00002e9f: DUP2 00002ea0: SWAP1 00002ea1: SUB 00002ea2: PUSH1 0x64 00002ea4: ADD 00002ea5: SWAP1 00002ea6: REVERT 00002ea7: JUMPDEST 00002ea8: PUSH1 0xa0 00002eaa: DUP1 00002eab: DUP3 00002eac: ADD 00002ead: DUP1 00002eae: MLOAD 00002eaf: PUSH1 0x01 00002eb1: PUSH1 0x01 00002eb3: PUSH1 0xa0 00002eb5: SHL 00002eb6: SUB 00002eb7: DUP1 00002eb8: DUP10 00002eb9: AND 00002eba: PUSH1 0x00 00002ebc: DUP2 00002ebd: DUP2 00002ebe: MSTORE 00002ebf: PUSH1 0x11 00002ec1: PUSH1 0x20 00002ec3: SWAP1 00002ec4: DUP2 00002ec5: MSTORE 00002ec6: PUSH1 0x40 00002ec8: SWAP2 00002ec9: DUP3 00002eca: SWAP1 00002ecb: KECCAK256 00002ecc: SWAP5 00002ecd: DUP6 00002ece: SSTORE 00002ecf: PUSH1 0x0b 00002ed1: SLOAD 00002ed2: PUSH1 0x01 00002ed4: SWAP1 00002ed5: SWAP6 00002ed6: ADD 00002ed7: SWAP5 00002ed8: SWAP1 00002ed9: SWAP5 00002eda: SSTORE 00002edb: PUSH1 0xc0 00002edd: DUP8 00002ede: ADD 00002edf: MLOAD 00002ee0: PUSH1 0x0c 00002ee2: DUP2 00002ee3: SWAP1 00002ee4: SSTORE 00002ee5: DUP2 00002ee6: DUP9 00002ee7: ADD 00002ee8: MLOAD 00002ee9: SWAP6 00002eea: MLOAD 00002eeb: DUP3 00002eec: MLOAD 00002eed: SWAP5 00002eee: DUP15 00002eef: AND 00002ef0: DUP6 00002ef1: MSTORE 00002ef2: SWAP5 00002ef3: DUP5 00002ef4: ADD 00002ef5: SWAP3 00002ef6: SWAP1 00002ef7: SWAP3 00002ef8: MSTORE 00002ef9: DUP3 00002efa: DUP2 00002efb: ADD 00002efc: SWAP5 00002efd: SWAP1 00002efe: SWAP5 00002eff: MSTORE 00002f00: PUSH1 0x60 00002f02: DUP3 00002f03: ADD 00002f04: SWAP3 00002f05: SWAP1 00002f06: SWAP3 00002f07: MSTORE 00002f08: PUSH1 0x80 00002f0a: DUP2 00002f0b: ADD 00002f0c: SWAP2 00002f0d: SWAP1 00002f0e: SWAP2 00002f0f: MSTORE 00002f10: SWAP1 00002f11: MLOAD 00002f12: PUSH32 0x1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a1 00002f33: SWAP3 00002f34: SWAP2 00002f35: DUP2 00002f36: SWAP1 00002f37: SUB 00002f38: SWAP1 00002f39: SWAP2 00002f3a: ADD 00002f3b: SWAP1 00002f3c: LOG1 00002f3d: PUSH1 0x06 00002f3f: SLOAD 00002f40: PUSH1 0x40 00002f42: DUP1 00002f43: DUP4 00002f44: ADD 00002f45: MLOAD 00002f46: PUSH1 0x60 00002f48: DUP5 00002f49: ADD 00002f4a: MLOAD 00002f4b: DUP3 00002f4c: MLOAD 00002f4d: PUSH1 0x01 00002f4f: PUSH1 0xe0 00002f51: SHL 00002f52: PUSH4 0x1ededc91 00002f57: MUL 00002f58: DUP2 00002f59: MSTORE 00002f5a: ADDRESS 00002f5b: PUSH1 0x04 00002f5d: DUP3 00002f5e: ADD 00002f5f: MSTORE 00002f60: PUSH1 0x01 00002f62: PUSH1 0x01 00002f64: PUSH1 0xa0 00002f66: SHL 00002f67: SUB 00002f68: DUP12 00002f69: DUP2 00002f6a: AND 00002f6b: PUSH1 0x24 00002f6d: DUP4 00002f6e: ADD 00002f6f: MSTORE 00002f70: DUP11 00002f71: DUP2 00002f72: AND 00002f73: PUSH1 0x44 00002f75: DUP4 00002f76: ADD 00002f77: MSTORE 00002f78: PUSH1 0x64 00002f7a: DUP3 00002f7b: ADD 00002f7c: SWAP4 00002f7d: SWAP1 00002f7e: SWAP4 00002f7f: MSTORE 00002f80: PUSH1 0x84 00002f82: DUP2 00002f83: ADD 00002f84: SWAP2 00002f85: SWAP1 00002f86: SWAP2 00002f87: MSTORE 00002f88: SWAP2 00002f89: MLOAD 00002f8a: SWAP3 00002f8b: AND 00002f8c: SWAP2 00002f8d: PUSH4 0x1ededc91 00002f92: SWAP2 00002f93: PUSH1 0xa4 00002f95: DUP1 00002f96: DUP3 00002f97: ADD 00002f98: SWAP3 00002f99: PUSH1 0x00 00002f9b: SWAP3 00002f9c: SWAP1 00002f9d: SWAP2 00002f9e: SWAP1 00002f9f: DUP3 00002fa0: SWAP1 00002fa1: SUB 00002fa2: ADD 00002fa3: DUP2 00002fa4: DUP4 00002fa5: DUP8 00002fa6: DUP1 00002fa7: EXTCODESIZE 00002fa8: ISZERO 00002fa9: DUP1 00002faa: ISZERO 00002fab: PUSH2 0x2fb3 00002fae: JUMPI 00002faf: PUSH1 0x00 00002fb1: DUP1 00002fb2: REVERT 00002fb3: JUMPDEST 00002fb4: POP 00002fb5: GAS 00002fb6: CALL 00002fb7: ISZERO 00002fb8: DUP1 00002fb9: ISZERO 00002fba: PUSH2 0x2fc7 00002fbd: JUMPI 00002fbe: RETURNDATASIZE 00002fbf: PUSH1 0x00 00002fc1: DUP1 00002fc2: RETURNDATACOPY 00002fc3: RETURNDATASIZE 00002fc4: PUSH1 0x00 00002fc6: REVERT 00002fc7: JUMPDEST 00002fc8: POP 00002fc9: PUSH1 0x00 00002fcb: SWAP3 00002fcc: POP 00002fcd: PUSH2 0x2fd4 00002fd0: SWAP2 00002fd1: POP 00002fd2: POP 00002fd3: JUMP 00002fd4: JUMPDEST 00002fd5: SWAP7 00002fd6: SWAP6 00002fd7: POP 00002fd8: POP 00002fd9: POP 00002fda: POP 00002fdb: POP 00002fdc: POP 00002fdd: JUMP 00002fde: JUMPDEST 00002fdf: PUSH1 0x00 00002fe1: DUP1 00002fe2: PUSH1 0x00 00002fe4: DUP1 00002fe5: PUSH2 0x2fee 00002fe8: DUP8 00002fe9: DUP8 00002fea: PUSH2 0x2688 00002fed: JUMP 00002fee: JUMPDEST 00002fef: SWAP1 00002ff0: SWAP3 00002ff1: POP 00002ff2: SWAP1 00002ff3: POP 00002ff4: PUSH1 0x00 00002ff6: DUP3 00002ff7: PUSH1 0x03 00002ff9: DUP2 00002ffa: GT 00002ffb: ISZERO 00002ffc: PUSH2 0x3001 00002fff: JUMPI 00003000: INVALID 00003001: JUMPDEST 00003002: EQ 00003003: PUSH2 0x3012 00003006: JUMPI 00003007: POP 00003008: SWAP2 00003009: POP 0000300a: PUSH1 0x00 0000300c: SWAP1 0000300d: POP 0000300e: PUSH2 0x2702 00003011: JUMP 00003012: JUMPDEST 00003013: PUSH2 0x26fb 00003016: DUP2 00003017: DUP7 00003018: PUSH2 0x25fd 0000301b: JUMP 0000301c: JUMPDEST 0000301d: PUSH1 0x00 0000301f: PUSH2 0x3026 00003022: PUSH2 0x46bb 00003025: JUMP 00003026: JUMPDEST 00003027: PUSH1 0x00 00003029: DUP1 0000302a: PUSH2 0x303b 0000302d: DUP7 0000302e: PUSH8 0x0de0b6b3a7640000 00003037: PUSH2 0x36af 0000303a: JUMP 0000303b: JUMPDEST 0000303c: SWAP1 0000303d: SWAP3 0000303e: POP 0000303f: SWAP1 00003040: POP 00003041: PUSH1 0x00 00003043: DUP3 00003044: PUSH1 0x03 00003046: DUP2 00003047: GT 00003048: ISZERO 00003049: PUSH2 0x304e 0000304c: JUMPI 0000304d: INVALID 0000304e: JUMPDEST 0000304f: EQ 00003050: PUSH2 0x306d 00003053: JUMPI 00003054: POP 00003055: PUSH1 0x40 00003057: DUP1 00003058: MLOAD 00003059: PUSH1 0x20 0000305b: DUP2 0000305c: ADD 0000305d: SWAP1 0000305e: SWAP2 0000305f: MSTORE 00003060: PUSH1 0x00 00003062: DUP2 00003063: MSTORE 00003064: SWAP1 00003065: SWAP3 00003066: POP 00003067: SWAP1 00003068: POP 00003069: PUSH2 0x21f3 0000306c: JUMP 0000306d: JUMPDEST 0000306e: PUSH1 0x00 00003070: DUP1 00003071: PUSH2 0x307a 00003074: DUP4 00003075: DUP9 00003076: PUSH2 0x36ee 00003079: JUMP 0000307a: JUMPDEST 0000307b: SWAP1 0000307c: SWAP3 0000307d: POP 0000307e: SWAP1 0000307f: POP 00003080: PUSH1 0x00 00003082: DUP3 00003083: PUSH1 0x03 00003085: DUP2 00003086: GT 00003087: ISZERO 00003088: PUSH2 0x308d 0000308b: JUMPI 0000308c: INVALID 0000308d: JUMPDEST 0000308e: EQ 0000308f: PUSH2 0x30af 00003092: JUMPI 00003093: POP 00003094: PUSH1 0x40 00003096: DUP1 00003097: MLOAD 00003098: PUSH1 0x20 0000309a: DUP2 0000309b: ADD 0000309c: SWAP1 0000309d: SWAP2 0000309e: MSTORE 0000309f: PUSH1 0x00 000030a1: DUP2 000030a2: MSTORE 000030a3: SWAP1 000030a4: SWAP5 000030a5: POP 000030a6: SWAP3 000030a7: POP 000030a8: PUSH2 0x21f3 000030ab: SWAP2 000030ac: POP 000030ad: POP 000030ae: JUMP 000030af: JUMPDEST 000030b0: PUSH1 0x40 000030b2: DUP1 000030b3: MLOAD 000030b4: PUSH1 0x20 000030b6: DUP2 000030b7: ADD 000030b8: SWAP1 000030b9: SWAP2 000030ba: MSTORE 000030bb: SWAP1 000030bc: DUP2 000030bd: MSTORE 000030be: PUSH1 0x00 000030c0: SWAP9 000030c1: SWAP1 000030c2: SWAP8 000030c3: POP 000030c4: SWAP6 000030c5: POP 000030c6: POP 000030c7: POP 000030c8: POP 000030c9: POP 000030ca: POP 000030cb: JUMP 000030cc: JUMPDEST 000030cd: MLOAD 000030ce: PUSH8 0x0de0b6b3a7640000 000030d7: SWAP1 000030d8: DIV 000030d9: SWAP1 000030da: JUMP 000030db: JUMPDEST 000030dc: PUSH1 0x12 000030de: SLOAD 000030df: PUSH1 0x40 000030e1: DUP1 000030e2: MLOAD 000030e3: PUSH1 0x01 000030e5: PUSH1 0xe0 000030e7: SHL 000030e8: PUSH4 0xa9059cbb 000030ed: MUL 000030ee: DUP2 000030ef: MSTORE 000030f0: PUSH1 0x01 000030f2: PUSH1 0x01 000030f4: PUSH1 0xa0 000030f6: SHL 000030f7: SUB 000030f8: DUP6 000030f9: DUP2 000030fa: AND 000030fb: PUSH1 0x04 000030fd: DUP4 000030fe: ADD 000030ff: MSTORE 00003100: PUSH1 0x24 00003102: DUP3 00003103: ADD 00003104: DUP6 00003105: SWAP1 00003106: MSTORE 00003107: SWAP2 00003108: MLOAD 00003109: PUSH1 0x00 0000310b: SWAP4 0000310c: SWAP3 0000310d: SWAP1 0000310e: SWAP3 0000310f: AND 00003110: SWAP2 00003111: DUP4 00003112: SWAP2 00003113: DUP4 00003114: SWAP2 00003115: PUSH4 0xa9059cbb 0000311a: SWAP2 0000311b: PUSH1 0x44 0000311d: DUP1 0000311e: DUP3 0000311f: ADD 00003120: SWAP3 00003121: DUP7 00003122: SWAP3 00003123: SWAP1 00003124: SWAP2 00003125: SWAP1 00003126: DUP3 00003127: SWAP1 00003128: SUB 00003129: ADD 0000312a: DUP2 0000312b: DUP4 0000312c: DUP8 0000312d: DUP1 0000312e: EXTCODESIZE 0000312f: ISZERO 00003130: DUP1 00003131: ISZERO 00003132: PUSH2 0x313a 00003135: JUMPI 00003136: PUSH1 0x00 00003138: DUP1 00003139: REVERT 0000313a: JUMPDEST 0000313b: POP 0000313c: GAS 0000313d: CALL 0000313e: ISZERO 0000313f: DUP1 00003140: ISZERO 00003141: PUSH2 0x314e 00003144: JUMPI 00003145: RETURNDATASIZE 00003146: PUSH1 0x00 00003148: DUP1 00003149: RETURNDATACOPY 0000314a: RETURNDATASIZE 0000314b: PUSH1 0x00 0000314d: REVERT 0000314e: JUMPDEST 0000314f: POP 00003150: POP 00003151: POP 00003152: POP 00003153: RETURNDATASIZE 00003154: PUSH1 0x00 00003156: DUP2 00003157: EQ 00003158: PUSH2 0x3168 0000315b: JUMPI 0000315c: PUSH1 0x20 0000315e: DUP2 0000315f: EQ 00003160: PUSH2 0x3172 00003163: JUMPI 00003164: PUSH1 0x00 00003166: DUP1 00003167: REVERT 00003168: JUMPDEST 00003169: PUSH1 0x00 0000316b: NOT 0000316c: SWAP2 0000316d: POP 0000316e: PUSH2 0x317e 00003171: JUMP 00003172: JUMPDEST 00003173: PUSH1 0x20 00003175: PUSH1 0x00 00003177: DUP1 00003178: RETURNDATACOPY 00003179: PUSH1 0x00 0000317b: MLOAD 0000317c: SWAP2 0000317d: POP 0000317e: JUMPDEST 0000317f: POP 00003180: DUP1 00003181: PUSH2 0x318f 00003184: JUMPI 00003185: PUSH1 0x10 00003187: SWAP3 00003188: POP 00003189: POP 0000318a: POP 0000318b: PUSH2 0x086f 0000318e: JUMP 0000318f: JUMPDEST 00003190: POP 00003191: PUSH1 0x00 00003193: SWAP5 00003194: SWAP4 00003195: POP 00003196: POP 00003197: POP 00003198: POP 00003199: JUMP 0000319a: JUMPDEST 0000319b: PUSH1 0x00 0000319d: DUP3 0000319e: ISZERO 0000319f: DUP1 000031a0: PUSH2 0x31a7 000031a3: JUMPI 000031a4: POP 000031a5: DUP2 000031a6: ISZERO 000031a7: JUMPDEST 000031a8: PUSH2 0x31e5 000031ab: JUMPI 000031ac: PUSH1 0x40 000031ae: MLOAD 000031af: PUSH1 0x01 000031b1: PUSH1 0xe5 000031b3: SHL 000031b4: PUSH3 0x461bcd 000031b8: MUL 000031b9: DUP2 000031ba: MSTORE 000031bb: PUSH1 0x04 000031bd: ADD 000031be: DUP1 000031bf: DUP1 000031c0: PUSH1 0x20 000031c2: ADD 000031c3: DUP3 000031c4: DUP2 000031c5: SUB 000031c6: DUP3 000031c7: MSTORE 000031c8: PUSH1 0x34 000031ca: DUP2 000031cb: MSTORE 000031cc: PUSH1 0x20 000031ce: ADD 000031cf: DUP1 000031d0: PUSH2 0x4997 000031d3: PUSH1 0x34 000031d5: SWAP2 000031d6: CODECOPY 000031d7: PUSH1 0x40 000031d9: ADD 000031da: SWAP2 000031db: POP 000031dc: POP 000031dd: PUSH1 0x40 000031df: MLOAD 000031e0: DUP1 000031e1: SWAP2 000031e2: SUB 000031e3: SWAP1 000031e4: REVERT 000031e5: JUMPDEST 000031e6: PUSH2 0x31ed 000031e9: PUSH2 0x4728 000031ec: JUMP 000031ed: JUMPDEST 000031ee: PUSH2 0x31f5 000031f1: PUSH2 0x1d54 000031f4: JUMP 000031f5: JUMPDEST 000031f6: PUSH1 0x40 000031f8: DUP4 000031f9: ADD 000031fa: DUP2 000031fb: SWAP1 000031fc: MSTORE 000031fd: PUSH1 0x20 000031ff: DUP4 00003200: ADD 00003201: DUP3 00003202: PUSH1 0x03 00003204: DUP2 00003205: GT 00003206: ISZERO 00003207: PUSH2 0x320c 0000320a: JUMPI 0000320b: INVALID 0000320c: JUMPDEST 0000320d: PUSH1 0x03 0000320f: DUP2 00003210: GT 00003211: ISZERO 00003212: PUSH2 0x3217 00003215: JUMPI 00003216: INVALID 00003217: JUMPDEST 00003218: SWAP1 00003219: MSTORE 0000321a: POP 0000321b: PUSH1 0x00 0000321d: SWAP1 0000321e: POP 0000321f: DUP2 00003220: PUSH1 0x20 00003222: ADD 00003223: MLOAD 00003224: PUSH1 0x03 00003226: DUP2 00003227: GT 00003228: ISZERO 00003229: PUSH2 0x322e 0000322c: JUMPI 0000322d: INVALID 0000322e: JUMPDEST 0000322f: EQ 00003230: PUSH2 0x324a 00003233: JUMPI 00003234: PUSH2 0x2c2b 00003237: PUSH1 0x09 00003239: PUSH1 0x2b 0000323b: DUP4 0000323c: PUSH1 0x20 0000323e: ADD 0000323f: MLOAD 00003240: PUSH1 0x03 00003242: DUP2 00003243: GT 00003244: ISZERO 00003245: PUSH2 0x1078 00003248: JUMPI 00003249: INVALID 0000324a: JUMPDEST 0000324b: DUP4 0000324c: ISZERO 0000324d: PUSH2 0x32cb 00003250: JUMPI 00003251: PUSH1 0x60 00003253: DUP2 00003254: ADD 00003255: DUP5 00003256: SWAP1 00003257: MSTORE 00003258: PUSH1 0x40 0000325a: DUP1 0000325b: MLOAD 0000325c: PUSH1 0x20 0000325e: DUP2 0000325f: ADD 00003260: DUP3 00003261: MSTORE 00003262: SWAP1 00003263: DUP3 00003264: ADD 00003265: MLOAD 00003266: DUP2 00003267: MSTORE 00003268: PUSH2 0x3271 0000326b: SWAP1 0000326c: DUP6 0000326d: PUSH2 0x21a6 00003270: JUMP 00003271: JUMPDEST 00003272: PUSH1 0x80 00003274: DUP4 00003275: ADD 00003276: DUP2 00003277: SWAP1 00003278: MSTORE 00003279: PUSH1 0x20 0000327b: DUP4 0000327c: ADD 0000327d: DUP3 0000327e: PUSH1 0x03 00003280: DUP2 00003281: GT 00003282: ISZERO 00003283: PUSH2 0x3288 00003286: JUMPI 00003287: INVALID 00003288: JUMPDEST 00003289: PUSH1 0x03 0000328b: DUP2 0000328c: GT 0000328d: ISZERO 0000328e: PUSH2 0x3293 00003291: JUMPI 00003292: INVALID 00003293: JUMPDEST 00003294: SWAP1 00003295: MSTORE 00003296: POP 00003297: PUSH1 0x00 00003299: SWAP1 0000329a: POP 0000329b: DUP2 0000329c: PUSH1 0x20 0000329e: ADD 0000329f: MLOAD 000032a0: PUSH1 0x03 000032a2: DUP2 000032a3: GT 000032a4: ISZERO 000032a5: PUSH2 0x32aa 000032a8: JUMPI 000032a9: INVALID 000032aa: JUMPDEST 000032ab: EQ 000032ac: PUSH2 0x32c6 000032af: JUMPI 000032b0: PUSH2 0x2c2b 000032b3: PUSH1 0x09 000032b5: PUSH1 0x29 000032b7: DUP4 000032b8: PUSH1 0x20 000032ba: ADD 000032bb: MLOAD 000032bc: PUSH1 0x03 000032be: DUP2 000032bf: GT 000032c0: ISZERO 000032c1: PUSH2 0x1078 000032c4: JUMPI 000032c5: INVALID 000032c6: JUMPDEST 000032c7: PUSH2 0x3344 000032ca: JUMP 000032cb: JUMPDEST 000032cc: PUSH2 0x32e7 000032cf: DUP4 000032d0: PUSH1 0x40 000032d2: MLOAD 000032d3: DUP1 000032d4: PUSH1 0x20 000032d6: ADD 000032d7: PUSH1 0x40 000032d9: MSTORE 000032da: DUP1 000032db: DUP5 000032dc: PUSH1 0x40 000032de: ADD 000032df: MLOAD 000032e0: DUP2 000032e1: MSTORE 000032e2: POP 000032e3: PUSH2 0x46a4 000032e6: JUMP 000032e7: JUMPDEST 000032e8: PUSH1 0x60 000032ea: DUP4 000032eb: ADD 000032ec: DUP2 000032ed: SWAP1 000032ee: MSTORE 000032ef: PUSH1 0x20 000032f1: DUP4 000032f2: ADD 000032f3: DUP3 000032f4: PUSH1 0x03 000032f6: DUP2 000032f7: GT 000032f8: ISZERO 000032f9: PUSH2 0x32fe 000032fc: JUMPI 000032fd: INVALID 000032fe: JUMPDEST 000032ff: PUSH1 0x03 00003301: DUP2 00003302: GT 00003303: ISZERO 00003304: PUSH2 0x3309 00003307: JUMPI 00003308: INVALID 00003309: JUMPDEST 0000330a: SWAP1 0000330b: MSTORE 0000330c: POP 0000330d: PUSH1 0x00 0000330f: SWAP1 00003310: POP 00003311: DUP2 00003312: PUSH1 0x20 00003314: ADD 00003315: MLOAD 00003316: PUSH1 0x03 00003318: DUP2 00003319: GT 0000331a: ISZERO 0000331b: PUSH2 0x3320 0000331e: JUMPI 0000331f: INVALID 00003320: JUMPDEST 00003321: EQ 00003322: PUSH2 0x333c 00003325: JUMPI 00003326: PUSH2 0x2c2b 00003329: PUSH1 0x09 0000332b: PUSH1 0x2a 0000332d: DUP4 0000332e: PUSH1 0x20 00003330: ADD 00003331: MLOAD 00003332: PUSH1 0x03 00003334: DUP2 00003335: GT 00003336: ISZERO 00003337: PUSH2 0x1078 0000333a: JUMPI 0000333b: INVALID 0000333c: JUMPDEST 0000333d: PUSH1 0x80 0000333f: DUP2 00003340: ADD 00003341: DUP4 00003342: SWAP1 00003343: MSTORE 00003344: JUMPDEST 00003345: PUSH1 0x06 00003347: SLOAD 00003348: PUSH1 0x60 0000334a: DUP3 0000334b: ADD 0000334c: MLOAD 0000334d: PUSH1 0x40 0000334f: DUP1 00003350: MLOAD 00003351: PUSH1 0x01 00003353: PUSH1 0xe0 00003355: SHL 00003356: PUSH4 0xeabe7d91 0000335b: MUL 0000335c: DUP2 0000335d: MSTORE 0000335e: ADDRESS 0000335f: PUSH1 0x04 00003361: DUP3 00003362: ADD 00003363: MSTORE 00003364: PUSH1 0x01 00003366: PUSH1 0x01 00003368: PUSH1 0xa0 0000336a: SHL 0000336b: SUB 0000336c: DUP10 0000336d: DUP2 0000336e: AND 0000336f: PUSH1 0x24 00003371: DUP4 00003372: ADD 00003373: MSTORE 00003374: PUSH1 0x44 00003376: DUP3 00003377: ADD 00003378: SWAP4 00003379: SWAP1 0000337a: SWAP4 0000337b: MSTORE 0000337c: SWAP1 0000337d: MLOAD 0000337e: PUSH1 0x00 00003380: SWAP4 00003381: SWAP3 00003382: SWAP1 00003383: SWAP3 00003384: AND 00003385: SWAP2 00003386: PUSH4 0xeabe7d91 0000338b: SWAP2 0000338c: PUSH1 0x64 0000338e: DUP1 0000338f: DUP3 00003390: ADD 00003391: SWAP3 00003392: PUSH1 0x20 00003394: SWAP3 00003395: SWAP1 00003396: SWAP2 00003397: SWAP1 00003398: DUP3 00003399: SWAP1 0000339a: SUB 0000339b: ADD 0000339c: DUP2 0000339d: DUP8 0000339e: DUP8 0000339f: DUP1 000033a0: EXTCODESIZE 000033a1: ISZERO 000033a2: DUP1 000033a3: ISZERO 000033a4: PUSH2 0x33ac 000033a7: JUMPI 000033a8: PUSH1 0x00 000033aa: DUP1 000033ab: REVERT 000033ac: JUMPDEST 000033ad: POP 000033ae: GAS 000033af: CALL 000033b0: ISZERO 000033b1: DUP1 000033b2: ISZERO 000033b3: PUSH2 0x33c0 000033b6: JUMPI 000033b7: RETURNDATASIZE 000033b8: PUSH1 0x00 000033ba: DUP1 000033bb: RETURNDATACOPY 000033bc: RETURNDATASIZE 000033bd: PUSH1 0x00 000033bf: REVERT 000033c0: JUMPDEST 000033c1: POP 000033c2: POP 000033c3: POP 000033c4: POP 000033c5: PUSH1 0x40 000033c7: MLOAD 000033c8: RETURNDATASIZE 000033c9: PUSH1 0x20 000033cb: DUP2 000033cc: LT 000033cd: ISZERO 000033ce: PUSH2 0x33d6 000033d1: JUMPI 000033d2: PUSH1 0x00 000033d4: DUP1 000033d5: REVERT 000033d6: JUMPDEST 000033d7: POP 000033d8: MLOAD 000033d9: SWAP1 000033da: POP 000033db: DUP1 000033dc: ISZERO 000033dd: PUSH2 0x33ed 000033e0: JUMPI 000033e1: PUSH2 0x2cd6 000033e4: PUSH1 0x03 000033e6: PUSH1 0x28 000033e8: DUP4 000033e9: PUSH2 0x2593 000033ec: JUMP 000033ed: JUMPDEST 000033ee: PUSH2 0x33f5 000033f1: PUSH2 0x25f9 000033f4: JUMP 000033f5: JUMPDEST 000033f6: PUSH1 0x0a 000033f8: SLOAD 000033f9: EQ 000033fa: PUSH2 0x3409 000033fd: JUMPI 000033fe: PUSH2 0x2cd6 00003401: PUSH1 0x0a 00003403: PUSH1 0x2c 00003405: PUSH2 0x227d 00003408: JUMP 00003409: JUMPDEST 0000340a: PUSH2 0x3419 0000340d: PUSH1 0x0e 0000340f: SLOAD 00003410: DUP4 00003411: PUSH1 0x60 00003413: ADD 00003414: MLOAD 00003415: PUSH2 0x25fd 00003418: JUMP 00003419: JUMPDEST 0000341a: PUSH1 0xa0 0000341c: DUP5 0000341d: ADD 0000341e: DUP2 0000341f: SWAP1 00003420: MSTORE 00003421: PUSH1 0x20 00003423: DUP5 00003424: ADD 00003425: DUP3 00003426: PUSH1 0x03 00003428: DUP2 00003429: GT 0000342a: ISZERO 0000342b: PUSH2 0x3430 0000342e: JUMPI 0000342f: INVALID 00003430: JUMPDEST 00003431: PUSH1 0x03 00003433: DUP2 00003434: GT 00003435: ISZERO 00003436: PUSH2 0x343b 00003439: JUMPI 0000343a: INVALID 0000343b: JUMPDEST 0000343c: SWAP1 0000343d: MSTORE 0000343e: POP 0000343f: PUSH1 0x00 00003441: SWAP1 00003442: POP 00003443: DUP3 00003444: PUSH1 0x20 00003446: ADD 00003447: MLOAD 00003448: PUSH1 0x03 0000344a: DUP2 0000344b: GT 0000344c: ISZERO 0000344d: PUSH2 0x3452 00003450: JUMPI 00003451: INVALID 00003452: JUMPDEST 00003453: EQ 00003454: PUSH2 0x346e 00003457: JUMPI 00003458: PUSH2 0x2cd6 0000345b: PUSH1 0x09 0000345d: PUSH1 0x2e 0000345f: DUP5 00003460: PUSH1 0x20 00003462: ADD 00003463: MLOAD 00003464: PUSH1 0x03 00003466: DUP2 00003467: GT 00003468: ISZERO 00003469: PUSH2 0x1078 0000346c: JUMPI 0000346d: INVALID 0000346e: JUMPDEST 0000346f: PUSH1 0x01 00003471: PUSH1 0x01 00003473: PUSH1 0xa0 00003475: SHL 00003476: SUB 00003477: DUP7 00003478: AND 00003479: PUSH1 0x00 0000347b: SWAP1 0000347c: DUP2 0000347d: MSTORE 0000347e: PUSH1 0x0f 00003480: PUSH1 0x20 00003482: MSTORE 00003483: PUSH1 0x40 00003485: SWAP1 00003486: KECCAK256 00003487: SLOAD 00003488: PUSH1 0x60 0000348a: DUP4 0000348b: ADD 0000348c: MLOAD 0000348d: PUSH2 0x3496 00003490: SWAP2 00003491: SWAP1 00003492: PUSH2 0x25fd 00003495: JUMP 00003496: JUMPDEST 00003497: PUSH1 0xc0 00003499: DUP5 0000349a: ADD 0000349b: DUP2 0000349c: SWAP1 0000349d: MSTORE 0000349e: PUSH1 0x20 000034a0: DUP5 000034a1: ADD 000034a2: DUP3 000034a3: PUSH1 0x03 000034a5: DUP2 000034a6: GT 000034a7: ISZERO 000034a8: PUSH2 0x34ad 000034ab: JUMPI 000034ac: INVALID 000034ad: JUMPDEST 000034ae: PUSH1 0x03 000034b0: DUP2 000034b1: GT 000034b2: ISZERO 000034b3: PUSH2 0x34b8 000034b6: JUMPI 000034b7: INVALID 000034b8: JUMPDEST 000034b9: SWAP1 000034ba: MSTORE 000034bb: POP 000034bc: PUSH1 0x00 000034be: SWAP1 000034bf: POP 000034c0: DUP3 000034c1: PUSH1 0x20 000034c3: ADD 000034c4: MLOAD 000034c5: PUSH1 0x03 000034c7: DUP2 000034c8: GT 000034c9: ISZERO 000034ca: PUSH2 0x34cf 000034cd: JUMPI 000034ce: INVALID 000034cf: JUMPDEST 000034d0: EQ 000034d1: PUSH2 0x34eb 000034d4: JUMPI 000034d5: PUSH2 0x2cd6 000034d8: PUSH1 0x09 000034da: PUSH1 0x2d 000034dc: DUP5 000034dd: PUSH1 0x20 000034df: ADD 000034e0: MLOAD 000034e1: PUSH1 0x03 000034e3: DUP2 000034e4: GT 000034e5: ISZERO 000034e6: PUSH2 0x1078 000034e9: JUMPI 000034ea: INVALID 000034eb: JUMPDEST 000034ec: DUP2 000034ed: PUSH1 0x80 000034ef: ADD 000034f0: MLOAD 000034f1: PUSH2 0x34f8 000034f4: PUSH2 0x21fa 000034f7: JUMP 000034f8: JUMPDEST 000034f9: LT 000034fa: ISZERO 000034fb: PUSH2 0x350a 000034fe: JUMPI 000034ff: PUSH2 0x2cd6 00003502: PUSH1 0x0e 00003504: PUSH1 0x2f 00003506: PUSH2 0x227d 00003509: JUMP 0000350a: JUMPDEST 0000350b: PUSH2 0x3518 0000350e: DUP7 0000350f: DUP4 00003510: PUSH1 0x80 00003512: ADD 00003513: MLOAD 00003514: PUSH2 0x30db 00003517: JUMP 00003518: JUMPDEST 00003519: DUP3 0000351a: SWAP1 0000351b: PUSH1 0x10 0000351d: DUP2 0000351e: GT 0000351f: ISZERO 00003520: PUSH2 0x3525 00003523: JUMPI 00003524: INVALID 00003525: JUMPDEST 00003526: SWAP1 00003527: DUP2 00003528: PUSH1 0x10 0000352a: DUP2 0000352b: GT 0000352c: ISZERO 0000352d: PUSH2 0x3532 00003530: JUMPI 00003531: INVALID 00003532: JUMPDEST 00003533: SWAP1 00003534: MSTORE 00003535: POP 00003536: PUSH1 0x00 00003538: DUP3 00003539: MLOAD 0000353a: PUSH1 0x10 0000353c: DUP2 0000353d: GT 0000353e: ISZERO 0000353f: PUSH2 0x3544 00003542: JUMPI 00003543: INVALID 00003544: JUMPDEST 00003545: EQ 00003546: PUSH2 0x3599 00003549: JUMPI 0000354a: PUSH1 0x40 0000354c: DUP1 0000354d: MLOAD 0000354e: PUSH1 0x01 00003550: PUSH1 0xe5 00003552: SHL 00003553: PUSH3 0x461bcd 00003557: MUL 00003558: DUP2 00003559: MSTORE 0000355a: PUSH1 0x20 0000355c: PUSH1 0x04 0000355e: DUP3 0000355f: ADD 00003560: MSTORE 00003561: PUSH1 0x1a 00003563: PUSH1 0x24 00003565: DUP3 00003566: ADD 00003567: MSTORE 00003568: PUSH32 0x72656465656d207472616e73666572206f7574206661696c6564000000000000 00003589: PUSH1 0x44 0000358b: DUP3 0000358c: ADD 0000358d: MSTORE 0000358e: SWAP1 0000358f: MLOAD 00003590: SWAP1 00003591: DUP2 00003592: SWAP1 00003593: SUB 00003594: PUSH1 0x64 00003596: ADD 00003597: SWAP1 00003598: REVERT 00003599: JUMPDEST 0000359a: PUSH1 0xa0 0000359c: DUP3 0000359d: ADD 0000359e: MLOAD 0000359f: PUSH1 0x0e 000035a1: SSTORE 000035a2: PUSH1 0xc0 000035a4: DUP3 000035a5: ADD 000035a6: MLOAD 000035a7: PUSH1 0x01 000035a9: PUSH1 0x01 000035ab: PUSH1 0xa0 000035ad: SHL 000035ae: SUB 000035af: DUP8 000035b0: AND 000035b1: PUSH1 0x00 000035b3: DUP2 000035b4: DUP2 000035b5: MSTORE 000035b6: PUSH1 0x0f 000035b8: PUSH1 0x20 000035ba: SWAP1 000035bb: DUP2 000035bc: MSTORE 000035bd: PUSH1 0x40 000035bf: SWAP2 000035c0: DUP3 000035c1: SWAP1 000035c2: KECCAK256 000035c3: SWAP4 000035c4: SWAP1 000035c5: SWAP4 000035c6: SSTORE 000035c7: PUSH1 0x60 000035c9: DUP6 000035ca: ADD 000035cb: MLOAD 000035cc: DUP2 000035cd: MLOAD 000035ce: SWAP1 000035cf: DUP2 000035d0: MSTORE 000035d1: SWAP1 000035d2: MLOAD 000035d3: ADDRESS 000035d4: SWAP4 000035d5: PUSH1 0x00 000035d7: DUP1 000035d8: MLOAD 000035d9: PUSH1 0x20 000035db: PUSH2 0x4906 000035de: DUP4 000035df: CODECOPY 000035e0: DUP2 000035e1: MLOAD 000035e2: SWAP2 000035e3: MSTORE 000035e4: SWAP3 000035e5: DUP3 000035e6: SWAP1 000035e7: SUB 000035e8: ADD 000035e9: SWAP1 000035ea: LOG3 000035eb: PUSH1 0x80 000035ed: DUP3 000035ee: ADD 000035ef: MLOAD 000035f0: PUSH1 0x60 000035f2: DUP1 000035f3: DUP5 000035f4: ADD 000035f5: MLOAD 000035f6: PUSH1 0x40 000035f8: DUP1 000035f9: MLOAD 000035fa: PUSH1 0x01 000035fc: PUSH1 0x01 000035fe: PUSH1 0xa0 00003600: SHL 00003601: SUB 00003602: DUP12 00003603: AND 00003604: DUP2 00003605: MSTORE 00003606: PUSH1 0x20 00003608: DUP2 00003609: ADD 0000360a: SWAP5 0000360b: SWAP1 0000360c: SWAP5 0000360d: MSTORE 0000360e: DUP4 0000360f: DUP2 00003610: ADD 00003611: SWAP2 00003612: SWAP1 00003613: SWAP2 00003614: MSTORE 00003615: MLOAD 00003616: PUSH32 0xe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929 00003637: SWAP3 00003638: DUP2 00003639: SWAP1 0000363a: SUB 0000363b: SWAP1 0000363c: SWAP2 0000363d: ADD 0000363e: SWAP1 0000363f: LOG1 00003640: PUSH1 0x06 00003642: SLOAD 00003643: PUSH1 0x80 00003645: DUP4 00003646: ADD 00003647: MLOAD 00003648: PUSH1 0x60 0000364a: DUP5 0000364b: ADD 0000364c: MLOAD 0000364d: PUSH1 0x40 0000364f: DUP1 00003650: MLOAD 00003651: PUSH1 0x01 00003653: PUSH1 0xe0 00003655: SHL 00003656: PUSH4 0x51dff989 0000365b: MUL 0000365c: DUP2 0000365d: MSTORE 0000365e: ADDRESS 0000365f: PUSH1 0x04 00003661: DUP3 00003662: ADD 00003663: MSTORE 00003664: PUSH1 0x01 00003666: PUSH1 0x01 00003668: PUSH1 0xa0 0000366a: SHL 0000366b: SUB 0000366c: DUP12 0000366d: DUP2 0000366e: AND 0000366f: PUSH1 0x24 00003671: DUP4 00003672: ADD 00003673: MSTORE 00003674: PUSH1 0x44 00003676: DUP3 00003677: ADD 00003678: SWAP5 00003679: SWAP1 0000367a: SWAP5 0000367b: MSTORE 0000367c: PUSH1 0x64 0000367e: DUP2 0000367f: ADD 00003680: SWAP3 00003681: SWAP1 00003682: SWAP3 00003683: MSTORE 00003684: MLOAD 00003685: SWAP2 00003686: SWAP1 00003687: SWAP3 00003688: AND 00003689: SWAP2 0000368a: PUSH4 0x51dff989 0000368f: SWAP2 00003690: PUSH1 0x84 00003692: DUP1 00003693: DUP4 00003694: ADD 00003695: SWAP3 00003696: PUSH1 0x00 00003698: SWAP3 00003699: SWAP2 0000369a: SWAP1 0000369b: DUP3 0000369c: SWAP1 0000369d: SUB 0000369e: ADD 0000369f: DUP2 000036a0: DUP4 000036a1: DUP8 000036a2: DUP1 000036a3: EXTCODESIZE 000036a4: ISZERO 000036a5: DUP1 000036a6: ISZERO 000036a7: PUSH2 0x2fb3 000036aa: JUMPI 000036ab: PUSH1 0x00 000036ad: DUP1 000036ae: REVERT 000036af: JUMPDEST 000036b0: PUSH1 0x00 000036b2: DUP1 000036b3: DUP4 000036b4: PUSH2 0x36c2 000036b7: JUMPI 000036b8: POP 000036b9: PUSH1 0x00 000036bb: SWAP1 000036bc: POP 000036bd: DUP1 000036be: PUSH2 0x21f3 000036c1: JUMP 000036c2: JUMPDEST 000036c3: DUP4 000036c4: DUP4 000036c5: MUL 000036c6: DUP4 000036c7: DUP6 000036c8: DUP3 000036c9: DUP2 000036ca: PUSH2 0x36cf 000036cd: JUMPI 000036ce: INVALID 000036cf: JUMPDEST 000036d0: DIV 000036d1: EQ 000036d2: PUSH2 0x36e3 000036d5: JUMPI 000036d6: POP 000036d7: PUSH1 0x02 000036d9: SWAP2 000036da: POP 000036db: PUSH1 0x00 000036dd: SWAP1 000036de: POP 000036df: PUSH2 0x21f3 000036e2: JUMP 000036e3: JUMPDEST 000036e4: PUSH1 0x00 000036e6: SWAP3 000036e7: POP 000036e8: SWAP1 000036e9: POP 000036ea: PUSH2 0x21f3 000036ed: JUMP 000036ee: JUMPDEST 000036ef: PUSH1 0x00 000036f1: DUP1 000036f2: DUP3 000036f3: PUSH2 0x3702 000036f6: JUMPI 000036f7: POP 000036f8: PUSH1 0x01 000036fa: SWAP1 000036fb: POP 000036fc: PUSH1 0x00 000036fe: PUSH2 0x21f3 00003701: JUMP 00003702: JUMPDEST 00003703: PUSH1 0x00 00003705: DUP4 00003706: DUP6 00003707: DUP2 00003708: PUSH2 0x370d 0000370b: JUMPI 0000370c: INVALID 0000370d: JUMPDEST 0000370e: DIV 0000370f: SWAP2 00003710: POP 00003711: SWAP2 00003712: POP 00003713: SWAP3 00003714: POP 00003715: SWAP3 00003716: SWAP1 00003717: POP 00003718: JUMP 00003719: JUMPDEST 0000371a: PUSH1 0x06 0000371c: SLOAD 0000371d: PUSH1 0x40 0000371f: DUP1 00003720: MLOAD 00003721: PUSH1 0x01 00003723: PUSH1 0xe0 00003725: SHL 00003726: PUSH4 0x4ef4c3e1 0000372b: MUL 0000372c: DUP2 0000372d: MSTORE 0000372e: ADDRESS 0000372f: PUSH1 0x04 00003731: DUP3 00003732: ADD 00003733: MSTORE 00003734: PUSH1 0x01 00003736: PUSH1 0x01 00003738: PUSH1 0xa0 0000373a: SHL 0000373b: SUB 0000373c: DUP6 0000373d: DUP2 0000373e: AND 0000373f: PUSH1 0x24 00003741: DUP4 00003742: ADD 00003743: MSTORE 00003744: PUSH1 0x44 00003746: DUP3 00003747: ADD 00003748: DUP6 00003749: SWAP1 0000374a: MSTORE 0000374b: SWAP2 0000374c: MLOAD 0000374d: PUSH1 0x00 0000374f: SWAP4 00003750: DUP5 00003751: SWAP4 00003752: AND 00003753: SWAP2 00003754: PUSH4 0x4ef4c3e1 00003759: SWAP2 0000375a: PUSH1 0x64 0000375c: DUP1 0000375d: DUP4 0000375e: ADD 0000375f: SWAP3 00003760: PUSH1 0x20 00003762: SWAP3 00003763: SWAP2 00003764: SWAP1 00003765: DUP3 00003766: SWAP1 00003767: SUB 00003768: ADD 00003769: DUP2 0000376a: DUP8 0000376b: DUP8 0000376c: DUP1 0000376d: EXTCODESIZE 0000376e: ISZERO 0000376f: DUP1 00003770: ISZERO 00003771: PUSH2 0x3779 00003774: JUMPI 00003775: PUSH1 0x00 00003777: DUP1 00003778: REVERT 00003779: JUMPDEST 0000377a: POP 0000377b: GAS 0000377c: CALL 0000377d: ISZERO 0000377e: DUP1 0000377f: ISZERO 00003780: PUSH2 0x378d 00003783: JUMPI 00003784: RETURNDATASIZE 00003785: PUSH1 0x00 00003787: DUP1 00003788: RETURNDATACOPY 00003789: RETURNDATASIZE 0000378a: PUSH1 0x00 0000378c: REVERT 0000378d: JUMPDEST 0000378e: POP 0000378f: POP 00003790: POP 00003791: POP 00003792: PUSH1 0x40 00003794: MLOAD 00003795: RETURNDATASIZE 00003796: PUSH1 0x20 00003798: DUP2 00003799: LT 0000379a: ISZERO 0000379b: PUSH2 0x37a3 0000379e: JUMPI 0000379f: PUSH1 0x00 000037a1: DUP1 000037a2: REVERT 000037a3: JUMPDEST 000037a4: POP 000037a5: MLOAD 000037a6: SWAP1 000037a7: POP 000037a8: DUP1 000037a9: ISZERO 000037aa: PUSH2 0x37c2 000037ad: JUMPI 000037ae: PUSH2 0x37ba 000037b1: PUSH1 0x03 000037b3: PUSH1 0x1f 000037b5: DUP4 000037b6: PUSH2 0x2593 000037b9: JUMP 000037ba: JUMPDEST 000037bb: SWAP2 000037bc: POP 000037bd: POP 000037be: PUSH2 0x086f 000037c1: JUMP 000037c2: JUMPDEST 000037c3: PUSH2 0x37ca 000037c6: PUSH2 0x25f9 000037c9: JUMP 000037ca: JUMPDEST 000037cb: PUSH1 0x0a 000037cd: SLOAD 000037ce: EQ 000037cf: PUSH2 0x37de 000037d2: JUMPI 000037d3: PUSH2 0x37ba 000037d6: PUSH1 0x0a 000037d8: PUSH1 0x22 000037da: PUSH2 0x227d 000037dd: JUMP 000037de: JUMPDEST 000037df: PUSH2 0x37e6 000037e2: PUSH2 0x4766 000037e5: JUMP 000037e6: JUMPDEST 000037e7: PUSH2 0x37f0 000037ea: DUP6 000037eb: DUP6 000037ec: PUSH2 0x44b3 000037ef: JUMP 000037f0: JUMPDEST 000037f1: DUP2 000037f2: SWAP1 000037f3: PUSH1 0x10 000037f5: DUP2 000037f6: GT 000037f7: ISZERO 000037f8: PUSH2 0x37fd 000037fb: JUMPI 000037fc: INVALID 000037fd: JUMPDEST 000037fe: SWAP1 000037ff: DUP2 00003800: PUSH1 0x10 00003802: DUP2 00003803: GT 00003804: ISZERO 00003805: PUSH2 0x380a 00003808: JUMPI 00003809: INVALID 0000380a: JUMPDEST 0000380b: SWAP1 0000380c: MSTORE 0000380d: POP 0000380e: PUSH1 0x00 00003810: DUP2 00003811: MLOAD 00003812: PUSH1 0x10 00003814: DUP2 00003815: GT 00003816: ISZERO 00003817: PUSH2 0x381c 0000381a: JUMPI 0000381b: INVALID 0000381c: JUMPDEST 0000381d: EQ 0000381e: PUSH2 0x3837 00003821: JUMPI 00003822: DUP1 00003823: MLOAD 00003824: PUSH2 0x382e 00003827: SWAP1 00003828: PUSH1 0x26 0000382a: PUSH2 0x227d 0000382d: JUMP 0000382e: JUMPDEST 0000382f: SWAP3 00003830: POP 00003831: POP 00003832: POP 00003833: PUSH2 0x086f 00003836: JUMP 00003837: JUMPDEST 00003838: PUSH2 0x383f 0000383b: PUSH2 0x1d54 0000383e: JUMP 0000383f: JUMPDEST 00003840: PUSH1 0x40 00003842: DUP4 00003843: ADD 00003844: DUP2 00003845: SWAP1 00003846: MSTORE 00003847: PUSH1 0x20 00003849: DUP4 0000384a: ADD 0000384b: DUP3 0000384c: PUSH1 0x03 0000384e: DUP2 0000384f: GT 00003850: ISZERO 00003851: PUSH2 0x3856 00003854: JUMPI 00003855: INVALID 00003856: JUMPDEST 00003857: PUSH1 0x03 00003859: DUP2 0000385a: GT 0000385b: ISZERO 0000385c: PUSH2 0x3861 0000385f: JUMPI 00003860: INVALID 00003861: JUMPDEST 00003862: SWAP1 00003863: MSTORE 00003864: POP 00003865: PUSH1 0x00 00003867: SWAP1 00003868: POP 00003869: DUP2 0000386a: PUSH1 0x20 0000386c: ADD 0000386d: MLOAD 0000386e: PUSH1 0x03 00003870: DUP2 00003871: GT 00003872: ISZERO 00003873: PUSH2 0x3878 00003876: JUMPI 00003877: INVALID 00003878: JUMPDEST 00003879: EQ 0000387a: PUSH2 0x3894 0000387d: JUMPI 0000387e: PUSH2 0x382e 00003881: PUSH1 0x09 00003883: PUSH1 0x21 00003885: DUP4 00003886: PUSH1 0x20 00003888: ADD 00003889: MLOAD 0000388a: PUSH1 0x03 0000388c: DUP2 0000388d: GT 0000388e: ISZERO 0000388f: PUSH2 0x1078 00003892: JUMPI 00003893: INVALID 00003894: JUMPDEST 00003895: PUSH2 0x38b0 00003898: DUP5 00003899: PUSH1 0x40 0000389b: MLOAD 0000389c: DUP1 0000389d: PUSH1 0x20 0000389f: ADD 000038a0: PUSH1 0x40 000038a2: MSTORE 000038a3: DUP1 000038a4: DUP5 000038a5: PUSH1 0x40 000038a7: ADD 000038a8: MLOAD 000038a9: DUP2 000038aa: MSTORE 000038ab: POP 000038ac: PUSH2 0x46a4 000038af: JUMP 000038b0: JUMPDEST 000038b1: PUSH1 0x60 000038b3: DUP4 000038b4: ADD 000038b5: DUP2 000038b6: SWAP1 000038b7: MSTORE 000038b8: PUSH1 0x20 000038ba: DUP4 000038bb: ADD 000038bc: DUP3 000038bd: PUSH1 0x03 000038bf: DUP2 000038c0: GT 000038c1: ISZERO 000038c2: PUSH2 0x38c7 000038c5: JUMPI 000038c6: INVALID 000038c7: JUMPDEST 000038c8: PUSH1 0x03 000038ca: DUP2 000038cb: GT 000038cc: ISZERO 000038cd: PUSH2 0x38d2 000038d0: JUMPI 000038d1: INVALID 000038d2: JUMPDEST 000038d3: SWAP1 000038d4: MSTORE 000038d5: POP 000038d6: PUSH1 0x00 000038d8: SWAP1 000038d9: POP 000038da: DUP2 000038db: PUSH1 0x20 000038dd: ADD 000038de: MLOAD 000038df: PUSH1 0x03 000038e1: DUP2 000038e2: GT 000038e3: ISZERO 000038e4: PUSH2 0x38e9 000038e7: JUMPI 000038e8: INVALID 000038e9: JUMPDEST 000038ea: EQ 000038eb: PUSH2 0x3905 000038ee: JUMPI 000038ef: PUSH2 0x382e 000038f2: PUSH1 0x09 000038f4: PUSH1 0x20 000038f6: DUP4 000038f7: PUSH1 0x20 000038f9: ADD 000038fa: MLOAD 000038fb: PUSH1 0x03 000038fd: DUP2 000038fe: GT 000038ff: ISZERO 00003900: PUSH2 0x1078 00003903: JUMPI 00003904: INVALID 00003905: JUMPDEST 00003906: PUSH2 0x3915 00003909: PUSH1 0x0e 0000390b: SLOAD 0000390c: DUP3 0000390d: PUSH1 0x60 0000390f: ADD 00003910: MLOAD 00003911: PUSH2 0x2688 00003914: JUMP 00003915: JUMPDEST 00003916: PUSH1 0x80 00003918: DUP4 00003919: ADD 0000391a: DUP2 0000391b: SWAP1 0000391c: MSTORE 0000391d: PUSH1 0x20 0000391f: DUP4 00003920: ADD 00003921: DUP3 00003922: PUSH1 0x03 00003924: DUP2 00003925: GT 00003926: ISZERO 00003927: PUSH2 0x392c 0000392a: JUMPI 0000392b: INVALID 0000392c: JUMPDEST 0000392d: PUSH1 0x03 0000392f: DUP2 00003930: GT 00003931: ISZERO 00003932: PUSH2 0x3937 00003935: JUMPI 00003936: INVALID 00003937: JUMPDEST 00003938: SWAP1 00003939: MSTORE 0000393a: POP 0000393b: PUSH1 0x00 0000393d: SWAP1 0000393e: POP 0000393f: DUP2 00003940: PUSH1 0x20 00003942: ADD 00003943: MLOAD 00003944: PUSH1 0x03 00003946: DUP2 00003947: GT 00003948: ISZERO 00003949: PUSH2 0x394e 0000394c: JUMPI 0000394d: INVALID 0000394e: JUMPDEST 0000394f: EQ 00003950: PUSH2 0x396a 00003953: JUMPI 00003954: PUSH2 0x382e 00003957: PUSH1 0x09 00003959: PUSH1 0x24 0000395b: DUP4 0000395c: PUSH1 0x20 0000395e: ADD 0000395f: MLOAD 00003960: PUSH1 0x03 00003962: DUP2 00003963: GT 00003964: ISZERO 00003965: PUSH2 0x1078 00003968: JUMPI 00003969: INVALID 0000396a: JUMPDEST 0000396b: PUSH1 0x01 0000396d: PUSH1 0x01 0000396f: PUSH1 0xa0 00003971: SHL 00003972: SUB 00003973: DUP6 00003974: AND 00003975: PUSH1 0x00 00003977: SWAP1 00003978: DUP2 00003979: MSTORE 0000397a: PUSH1 0x0f 0000397c: PUSH1 0x20 0000397e: MSTORE 0000397f: PUSH1 0x40 00003981: SWAP1 00003982: KECCAK256 00003983: SLOAD 00003984: PUSH1 0x60 00003986: DUP3 00003987: ADD 00003988: MLOAD 00003989: PUSH2 0x3992 0000398c: SWAP2 0000398d: SWAP1 0000398e: PUSH2 0x2688 00003991: JUMP 00003992: JUMPDEST 00003993: PUSH1 0xa0 00003995: DUP4 00003996: ADD 00003997: DUP2 00003998: SWAP1 00003999: MSTORE 0000399a: PUSH1 0x20 0000399c: DUP4 0000399d: ADD 0000399e: DUP3 0000399f: PUSH1 0x03 000039a1: DUP2 000039a2: GT 000039a3: ISZERO 000039a4: PUSH2 0x39a9 000039a7: JUMPI 000039a8: INVALID 000039a9: JUMPDEST 000039aa: PUSH1 0x03 000039ac: DUP2 000039ad: GT 000039ae: ISZERO 000039af: PUSH2 0x39b4 000039b2: JUMPI 000039b3: INVALID 000039b4: JUMPDEST 000039b5: SWAP1 000039b6: MSTORE 000039b7: POP 000039b8: PUSH1 0x00 000039ba: SWAP1 000039bb: POP 000039bc: DUP2 000039bd: PUSH1 0x20 000039bf: ADD 000039c0: MLOAD 000039c1: PUSH1 0x03 000039c3: DUP2 000039c4: GT 000039c5: ISZERO 000039c6: PUSH2 0x39cb 000039c9: JUMPI 000039ca: INVALID 000039cb: JUMPDEST 000039cc: EQ 000039cd: PUSH2 0x39e7 000039d0: JUMPI 000039d1: PUSH2 0x382e 000039d4: PUSH1 0x09 000039d6: PUSH1 0x23 000039d8: DUP4 000039d9: PUSH1 0x20 000039db: ADD 000039dc: MLOAD 000039dd: PUSH1 0x03 000039df: DUP2 000039e0: GT 000039e1: ISZERO 000039e2: PUSH2 0x1078 000039e5: JUMPI 000039e6: INVALID 000039e7: JUMPDEST 000039e8: PUSH2 0x39f1 000039eb: DUP6 000039ec: DUP6 000039ed: PUSH2 0x45ea 000039f0: JUMP 000039f1: JUMPDEST 000039f2: DUP2 000039f3: SWAP1 000039f4: PUSH1 0x10 000039f6: DUP2 000039f7: GT 000039f8: ISZERO 000039f9: PUSH2 0x39fe 000039fc: JUMPI 000039fd: INVALID 000039fe: JUMPDEST 000039ff: SWAP1 00003a00: DUP2 00003a01: PUSH1 0x10 00003a03: DUP2 00003a04: GT 00003a05: ISZERO 00003a06: PUSH2 0x3a0b 00003a09: JUMPI 00003a0a: INVALID 00003a0b: JUMPDEST 00003a0c: SWAP1 00003a0d: MSTORE 00003a0e: POP 00003a0f: PUSH1 0x00 00003a11: DUP2 00003a12: MLOAD 00003a13: PUSH1 0x10 00003a15: DUP2 00003a16: GT 00003a17: ISZERO 00003a18: PUSH2 0x3a1d 00003a1b: JUMPI 00003a1c: INVALID 00003a1d: JUMPDEST 00003a1e: EQ 00003a1f: PUSH2 0x3a2f 00003a22: JUMPI 00003a23: DUP1 00003a24: MLOAD 00003a25: PUSH2 0x382e 00003a28: SWAP1 00003a29: PUSH1 0x25 00003a2b: PUSH2 0x227d 00003a2e: JUMP 00003a2f: JUMPDEST 00003a30: PUSH1 0x80 00003a32: DUP2 00003a33: ADD 00003a34: MLOAD 00003a35: PUSH1 0x0e 00003a37: SSTORE 00003a38: PUSH1 0xa0 00003a3a: DUP2 00003a3b: ADD 00003a3c: MLOAD 00003a3d: PUSH1 0x01 00003a3f: PUSH1 0x01 00003a41: PUSH1 0xa0 00003a43: SHL 00003a44: SUB 00003a45: DUP7 00003a46: AND 00003a47: PUSH1 0x00 00003a49: DUP2 00003a4a: DUP2 00003a4b: MSTORE 00003a4c: PUSH1 0x0f 00003a4e: PUSH1 0x20 00003a50: SWAP1 00003a51: DUP2 00003a52: MSTORE 00003a53: PUSH1 0x40 00003a55: SWAP2 00003a56: DUP3 00003a57: SWAP1 00003a58: KECCAK256 00003a59: SWAP4 00003a5a: SWAP1 00003a5b: SWAP4 00003a5c: SSTORE 00003a5d: PUSH1 0x60 00003a5f: DUP1 00003a60: DUP6 00003a61: ADD 00003a62: MLOAD 00003a63: DUP3 00003a64: MLOAD 00003a65: SWAP4 00003a66: DUP5 00003a67: MSTORE 00003a68: SWAP4 00003a69: DUP4 00003a6a: ADD 00003a6b: DUP9 00003a6c: SWAP1 00003a6d: MSTORE 00003a6e: DUP3 00003a6f: DUP3 00003a70: ADD 00003a71: SWAP4 00003a72: SWAP1 00003a73: SWAP4 00003a74: MSTORE 00003a75: MLOAD 00003a76: PUSH32 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f 00003a97: SWAP3 00003a98: SWAP2 00003a99: DUP2 00003a9a: SWAP1 00003a9b: SUB 00003a9c: SWAP1 00003a9d: SWAP2 00003a9e: ADD 00003a9f: SWAP1 00003aa0: LOG1 00003aa1: PUSH1 0x60 00003aa3: DUP2 00003aa4: ADD 00003aa5: MLOAD 00003aa6: PUSH1 0x40 00003aa8: DUP1 00003aa9: MLOAD 00003aaa: SWAP2 00003aab: DUP3 00003aac: MSTORE 00003aad: MLOAD 00003aae: PUSH1 0x01 00003ab0: PUSH1 0x01 00003ab2: PUSH1 0xa0 00003ab4: SHL 00003ab5: SUB 00003ab6: DUP8 00003ab7: AND 00003ab8: SWAP2 00003ab9: ADDRESS 00003aba: SWAP2 00003abb: PUSH1 0x00 00003abd: DUP1 00003abe: MLOAD 00003abf: PUSH1 0x20 00003ac1: PUSH2 0x4906 00003ac4: DUP4 00003ac5: CODECOPY 00003ac6: DUP2 00003ac7: MLOAD 00003ac8: SWAP2 00003ac9: MSTORE 00003aca: SWAP2 00003acb: DUP2 00003acc: SWAP1 00003acd: SUB 00003ace: PUSH1 0x20 00003ad0: ADD 00003ad1: SWAP1 00003ad2: LOG3 00003ad3: PUSH1 0x06 00003ad5: SLOAD 00003ad6: PUSH1 0x60 00003ad8: DUP3 00003ad9: ADD 00003ada: MLOAD 00003adb: PUSH1 0x40 00003add: DUP1 00003ade: MLOAD 00003adf: PUSH1 0x01 00003ae1: PUSH1 0xe0 00003ae3: SHL 00003ae4: PUSH4 0x41c728b9 00003ae9: MUL 00003aea: DUP2 00003aeb: MSTORE 00003aec: ADDRESS 00003aed: PUSH1 0x04 00003aef: DUP3 00003af0: ADD 00003af1: MSTORE 00003af2: PUSH1 0x01 00003af4: PUSH1 0x01 00003af6: PUSH1 0xa0 00003af8: SHL 00003af9: SUB 00003afa: DUP10 00003afb: DUP2 00003afc: AND 00003afd: PUSH1 0x24 00003aff: DUP4 00003b00: ADD 00003b01: MSTORE 00003b02: PUSH1 0x44 00003b04: DUP3 00003b05: ADD 00003b06: DUP10 00003b07: SWAP1 00003b08: MSTORE 00003b09: PUSH1 0x64 00003b0b: DUP3 00003b0c: ADD 00003b0d: SWAP4 00003b0e: SWAP1 00003b0f: SWAP4 00003b10: MSTORE 00003b11: SWAP1 00003b12: MLOAD 00003b13: SWAP2 00003b14: SWAP1 00003b15: SWAP3 00003b16: AND 00003b17: SWAP2 00003b18: PUSH4 0x41c728b9 00003b1d: SWAP2 00003b1e: PUSH1 0x84 00003b20: DUP1 00003b21: DUP4 00003b22: ADD 00003b23: SWAP3 00003b24: PUSH1 0x00 00003b26: SWAP3 00003b27: SWAP2 00003b28: SWAP1 00003b29: DUP3 00003b2a: SWAP1 00003b2b: SUB 00003b2c: ADD 00003b2d: DUP2 00003b2e: DUP4 00003b2f: DUP8 00003b30: DUP1 00003b31: EXTCODESIZE 00003b32: ISZERO 00003b33: DUP1 00003b34: ISZERO 00003b35: PUSH2 0x3b3d 00003b38: JUMPI 00003b39: PUSH1 0x00 00003b3b: DUP1 00003b3c: REVERT 00003b3d: JUMPDEST 00003b3e: POP 00003b3f: GAS 00003b40: CALL 00003b41: ISZERO 00003b42: DUP1 00003b43: ISZERO 00003b44: PUSH2 0x3b51 00003b47: JUMPI 00003b48: RETURNDATASIZE 00003b49: PUSH1 0x00 00003b4b: DUP1 00003b4c: RETURNDATACOPY 00003b4d: RETURNDATASIZE 00003b4e: PUSH1 0x00 00003b50: REVERT 00003b51: JUMPDEST 00003b52: POP 00003b53: PUSH1 0x00 00003b55: SWAP3 00003b56: POP 00003b57: PUSH2 0x3b5e 00003b5a: SWAP2 00003b5b: POP 00003b5c: POP 00003b5d: JUMP 00003b5e: JUMPDEST 00003b5f: SWAP6 00003b60: SWAP5 00003b61: POP 00003b62: POP 00003b63: POP 00003b64: POP 00003b65: POP 00003b66: JUMP 00003b67: JUMPDEST 00003b68: PUSH1 0x00 00003b6a: PUSH2 0x3b71 00003b6d: PUSH2 0x46bb 00003b70: JUMP 00003b71: JUMPDEST 00003b72: PUSH1 0x00 00003b74: DUP1 00003b75: PUSH2 0x3b86 00003b78: DUP7 00003b79: PUSH1 0x00 00003b7b: ADD 00003b7c: MLOAD 00003b7d: DUP7 00003b7e: PUSH1 0x00 00003b80: ADD 00003b81: MLOAD 00003b82: PUSH2 0x36af 00003b85: JUMP 00003b86: JUMPDEST 00003b87: SWAP1 00003b88: SWAP3 00003b89: POP 00003b8a: SWAP1 00003b8b: POP 00003b8c: PUSH1 0x00 00003b8e: DUP3 00003b8f: PUSH1 0x03 00003b91: DUP2 00003b92: GT 00003b93: ISZERO 00003b94: PUSH2 0x3b99 00003b97: JUMPI 00003b98: INVALID 00003b99: JUMPDEST 00003b9a: EQ 00003b9b: PUSH2 0x3bb8 00003b9e: JUMPI 00003b9f: POP 00003ba0: PUSH1 0x40 00003ba2: DUP1 00003ba3: MLOAD 00003ba4: PUSH1 0x20 00003ba6: DUP2 00003ba7: ADD 00003ba8: SWAP1 00003ba9: SWAP2 00003baa: MSTORE 00003bab: PUSH1 0x00 00003bad: DUP2 00003bae: MSTORE 00003baf: SWAP1 00003bb0: SWAP3 00003bb1: POP 00003bb2: SWAP1 00003bb3: POP 00003bb4: PUSH2 0x21f3 00003bb7: JUMP 00003bb8: JUMPDEST 00003bb9: PUSH1 0x00 00003bbb: DUP1 00003bbc: PUSH2 0x3bcd 00003bbf: PUSH8 0x06f05b59d3b20000 00003bc8: DUP5 00003bc9: PUSH2 0x2688 00003bcc: JUMP 00003bcd: JUMPDEST 00003bce: SWAP1 00003bcf: SWAP3 00003bd0: POP 00003bd1: SWAP1 00003bd2: POP 00003bd3: PUSH1 0x00 00003bd5: DUP3 00003bd6: PUSH1 0x03 00003bd8: DUP2 00003bd9: GT 00003bda: ISZERO 00003bdb: PUSH2 0x3be0 00003bde: JUMPI 00003bdf: INVALID 00003be0: JUMPDEST 00003be1: EQ 00003be2: PUSH2 0x3c02 00003be5: JUMPI 00003be6: POP 00003be7: PUSH1 0x40 00003be9: DUP1 00003bea: MLOAD 00003beb: PUSH1 0x20 00003bed: DUP2 00003bee: ADD 00003bef: SWAP1 00003bf0: SWAP2 00003bf1: MSTORE 00003bf2: PUSH1 0x00 00003bf4: DUP2 00003bf5: MSTORE 00003bf6: SWAP1 00003bf7: SWAP5 00003bf8: POP 00003bf9: SWAP3 00003bfa: POP 00003bfb: PUSH2 0x21f3 00003bfe: SWAP2 00003bff: POP 00003c00: POP 00003c01: JUMP 00003c02: JUMPDEST 00003c03: PUSH1 0x00 00003c05: DUP1 00003c06: PUSH2 0x3c17 00003c09: DUP4 00003c0a: PUSH8 0x0de0b6b3a7640000 00003c13: PUSH2 0x36ee 00003c16: JUMP 00003c17: JUMPDEST 00003c18: SWAP1 00003c19: SWAP3 00003c1a: POP 00003c1b: SWAP1 00003c1c: POP 00003c1d: PUSH1 0x00 00003c1f: DUP3 00003c20: PUSH1 0x03 00003c22: DUP2 00003c23: GT 00003c24: ISZERO 00003c25: PUSH2 0x3c2a 00003c28: JUMPI 00003c29: INVALID 00003c2a: JUMPDEST 00003c2b: EQ 00003c2c: PUSH2 0x3c31 00003c2f: JUMPI 00003c30: INVALID 00003c31: JUMPDEST 00003c32: PUSH1 0x40 00003c34: DUP1 00003c35: MLOAD 00003c36: PUSH1 0x20 00003c38: DUP2 00003c39: ADD 00003c3a: SWAP1 00003c3b: SWAP2 00003c3c: MSTORE 00003c3d: SWAP1 00003c3e: DUP2 00003c3f: MSTORE 00003c40: PUSH1 0x00 00003c42: SWAP11 00003c43: SWAP1 00003c44: SWAP10 00003c45: POP 00003c46: SWAP8 00003c47: POP 00003c48: POP 00003c49: POP 00003c4a: POP 00003c4b: POP 00003c4c: POP 00003c4d: POP 00003c4e: POP 00003c4f: JUMP 00003c50: JUMPDEST 00003c51: PUSH1 0x06 00003c53: SLOAD 00003c54: PUSH1 0x40 00003c56: DUP1 00003c57: MLOAD 00003c58: PUSH1 0x01 00003c5a: PUSH1 0xe2 00003c5c: SHL 00003c5d: PUSH4 0x368f5153 00003c62: MUL 00003c63: DUP2 00003c64: MSTORE 00003c65: ADDRESS 00003c66: PUSH1 0x04 00003c68: DUP3 00003c69: ADD 00003c6a: MSTORE 00003c6b: PUSH1 0x01 00003c6d: PUSH1 0x01 00003c6f: PUSH1 0xa0 00003c71: SHL 00003c72: SUB 00003c73: DUP6 00003c74: DUP2 00003c75: AND 00003c76: PUSH1 0x24 00003c78: DUP4 00003c79: ADD 00003c7a: MSTORE 00003c7b: PUSH1 0x44 00003c7d: DUP3 00003c7e: ADD 00003c7f: DUP6 00003c80: SWAP1 00003c81: MSTORE 00003c82: SWAP2 00003c83: MLOAD 00003c84: PUSH1 0x00 00003c86: SWAP4 00003c87: DUP5 00003c88: SWAP4 00003c89: AND 00003c8a: SWAP2 00003c8b: PUSH4 0xda3d454c 00003c90: SWAP2 00003c91: PUSH1 0x64 00003c93: DUP1 00003c94: DUP4 00003c95: ADD 00003c96: SWAP3 00003c97: PUSH1 0x20 00003c99: SWAP3 00003c9a: SWAP2 00003c9b: SWAP1 00003c9c: DUP3 00003c9d: SWAP1 00003c9e: SUB 00003c9f: ADD 00003ca0: DUP2 00003ca1: DUP8 00003ca2: DUP8 00003ca3: DUP1 00003ca4: EXTCODESIZE 00003ca5: ISZERO 00003ca6: DUP1 00003ca7: ISZERO 00003ca8: PUSH2 0x3cb0 00003cab: JUMPI 00003cac: PUSH1 0x00 00003cae: DUP1 00003caf: REVERT 00003cb0: JUMPDEST 00003cb1: POP 00003cb2: GAS 00003cb3: CALL 00003cb4: ISZERO 00003cb5: DUP1 00003cb6: ISZERO 00003cb7: PUSH2 0x3cc4 00003cba: JUMPI 00003cbb: RETURNDATASIZE 00003cbc: PUSH1 0x00 00003cbe: DUP1 00003cbf: RETURNDATACOPY 00003cc0: RETURNDATASIZE 00003cc1: PUSH1 0x00 00003cc3: REVERT 00003cc4: JUMPDEST 00003cc5: POP 00003cc6: POP 00003cc7: POP 00003cc8: POP 00003cc9: PUSH1 0x40 00003ccb: MLOAD 00003ccc: RETURNDATASIZE 00003ccd: PUSH1 0x20 00003ccf: DUP2 00003cd0: LT 00003cd1: ISZERO 00003cd2: PUSH2 0x3cda 00003cd5: JUMPI 00003cd6: PUSH1 0x00 00003cd8: DUP1 00003cd9: REVERT 00003cda: JUMPDEST 00003cdb: POP 00003cdc: MLOAD 00003cdd: SWAP1 00003cde: POP 00003cdf: DUP1 00003ce0: ISZERO 00003ce1: PUSH2 0x3cf1 00003ce4: JUMPI 00003ce5: PUSH2 0x37ba 00003ce8: PUSH1 0x03 00003cea: PUSH1 0x0e 00003cec: DUP4 00003ced: PUSH2 0x2593 00003cf0: JUMP 00003cf1: JUMPDEST 00003cf2: PUSH2 0x3cf9 00003cf5: PUSH2 0x25f9 00003cf8: JUMP 00003cf9: JUMPDEST 00003cfa: PUSH1 0x0a 00003cfc: SLOAD 00003cfd: EQ 00003cfe: PUSH2 0x3d0c 00003d01: JUMPI 00003d02: PUSH2 0x37ba 00003d05: PUSH1 0x0a 00003d07: DUP1 00003d08: PUSH2 0x227d 00003d0b: JUMP 00003d0c: JUMPDEST 00003d0d: DUP3 00003d0e: PUSH2 0x3d15 00003d11: PUSH2 0x21fa 00003d14: JUMP 00003d15: JUMPDEST 00003d16: LT 00003d17: ISZERO 00003d18: PUSH2 0x3d27 00003d1b: JUMPI 00003d1c: PUSH2 0x37ba 00003d1f: PUSH1 0x0e 00003d21: PUSH1 0x09 00003d23: PUSH2 0x227d 00003d26: JUMP 00003d27: JUMPDEST 00003d28: PUSH2 0x3d2f 00003d2b: PUSH2 0x4780 00003d2e: JUMP 00003d2f: JUMPDEST 00003d30: PUSH2 0x3d38 00003d33: DUP6 00003d34: PUSH2 0x24a4 00003d37: JUMP 00003d38: JUMPDEST 00003d39: PUSH1 0x40 00003d3b: DUP4 00003d3c: ADD 00003d3d: DUP2 00003d3e: SWAP1 00003d3f: MSTORE 00003d40: PUSH1 0x20 00003d42: DUP4 00003d43: ADD 00003d44: DUP3 00003d45: PUSH1 0x03 00003d47: DUP2 00003d48: GT 00003d49: ISZERO 00003d4a: PUSH2 0x3d4f 00003d4d: JUMPI 00003d4e: INVALID 00003d4f: JUMPDEST 00003d50: PUSH1 0x03 00003d52: DUP2 00003d53: GT 00003d54: ISZERO 00003d55: PUSH2 0x3d5a 00003d58: JUMPI 00003d59: INVALID 00003d5a: JUMPDEST 00003d5b: SWAP1 00003d5c: MSTORE 00003d5d: POP 00003d5e: PUSH1 0x00 00003d60: SWAP1 00003d61: POP 00003d62: DUP2 00003d63: PUSH1 0x20 00003d65: ADD 00003d66: MLOAD 00003d67: PUSH1 0x03 00003d69: DUP2 00003d6a: GT 00003d6b: ISZERO 00003d6c: PUSH2 0x3d71 00003d6f: JUMPI 00003d70: INVALID 00003d71: JUMPDEST 00003d72: EQ 00003d73: PUSH2 0x3d8d 00003d76: JUMPI 00003d77: PUSH2 0x382e 00003d7a: PUSH1 0x09 00003d7c: PUSH1 0x07 00003d7e: DUP4 00003d7f: PUSH1 0x20 00003d81: ADD 00003d82: MLOAD 00003d83: PUSH1 0x03 00003d85: DUP2 00003d86: GT 00003d87: ISZERO 00003d88: PUSH2 0x1078 00003d8b: JUMPI 00003d8c: INVALID 00003d8d: JUMPDEST 00003d8e: PUSH2 0x3d9b 00003d91: DUP2 00003d92: PUSH1 0x40 00003d94: ADD 00003d95: MLOAD 00003d96: DUP6 00003d97: PUSH2 0x2688 00003d9a: JUMP 00003d9b: JUMPDEST 00003d9c: PUSH1 0x60 00003d9e: DUP4 00003d9f: ADD 00003da0: DUP2 00003da1: SWAP1 00003da2: MSTORE 00003da3: PUSH1 0x20 00003da5: DUP4 00003da6: ADD 00003da7: DUP3 00003da8: PUSH1 0x03 00003daa: DUP2 00003dab: GT 00003dac: ISZERO 00003dad: PUSH2 0x3db2 00003db0: JUMPI 00003db1: INVALID 00003db2: JUMPDEST 00003db3: PUSH1 0x03 00003db5: DUP2 00003db6: GT 00003db7: ISZERO 00003db8: PUSH2 0x3dbd 00003dbb: JUMPI 00003dbc: INVALID 00003dbd: JUMPDEST 00003dbe: SWAP1 00003dbf: MSTORE 00003dc0: POP 00003dc1: PUSH1 0x00 00003dc3: SWAP1 00003dc4: POP 00003dc5: DUP2 00003dc6: PUSH1 0x20 00003dc8: ADD 00003dc9: MLOAD 00003dca: PUSH1 0x03 00003dcc: DUP2 00003dcd: GT 00003dce: ISZERO 00003dcf: PUSH2 0x3dd4 00003dd2: JUMPI 00003dd3: INVALID 00003dd4: JUMPDEST 00003dd5: EQ 00003dd6: PUSH2 0x3df0 00003dd9: JUMPI 00003dda: PUSH2 0x382e 00003ddd: PUSH1 0x09 00003ddf: PUSH1 0x0c 00003de1: DUP4 00003de2: PUSH1 0x20 00003de4: ADD 00003de5: MLOAD 00003de6: PUSH1 0x03 00003de8: DUP2 00003de9: GT 00003dea: ISZERO 00003deb: PUSH2 0x1078 00003dee: JUMPI 00003def: INVALID 00003df0: JUMPDEST 00003df1: PUSH2 0x3dfc 00003df4: PUSH1 0x0c 00003df6: SLOAD 00003df7: DUP6 00003df8: PUSH2 0x2688 00003dfb: JUMP 00003dfc: JUMPDEST 00003dfd: PUSH1 0x80 00003dff: DUP4 00003e00: ADD 00003e01: DUP2 00003e02: SWAP1 00003e03: MSTORE 00003e04: PUSH1 0x20 00003e06: DUP4 00003e07: ADD 00003e08: DUP3 00003e09: PUSH1 0x03 00003e0b: DUP2 00003e0c: GT 00003e0d: ISZERO 00003e0e: PUSH2 0x3e13 00003e11: JUMPI 00003e12: INVALID 00003e13: JUMPDEST 00003e14: PUSH1 0x03 00003e16: DUP2 00003e17: GT 00003e18: ISZERO 00003e19: PUSH2 0x3e1e 00003e1c: JUMPI 00003e1d: INVALID 00003e1e: JUMPDEST 00003e1f: SWAP1 00003e20: MSTORE 00003e21: POP 00003e22: PUSH1 0x00 00003e24: SWAP1 00003e25: POP 00003e26: DUP2 00003e27: PUSH1 0x20 00003e29: ADD 00003e2a: MLOAD 00003e2b: PUSH1 0x03 00003e2d: DUP2 00003e2e: GT 00003e2f: ISZERO 00003e30: PUSH2 0x3e35 00003e33: JUMPI 00003e34: INVALID 00003e35: JUMPDEST 00003e36: EQ 00003e37: PUSH2 0x3e51 00003e3a: JUMPI 00003e3b: PUSH2 0x382e 00003e3e: PUSH1 0x09 00003e40: PUSH1 0x0b 00003e42: DUP4 00003e43: PUSH1 0x20 00003e45: ADD 00003e46: MLOAD 00003e47: PUSH1 0x03 00003e49: DUP2 00003e4a: GT 00003e4b: ISZERO 00003e4c: PUSH2 0x1078 00003e4f: JUMPI 00003e50: INVALID 00003e51: JUMPDEST 00003e52: PUSH2 0x3e5b 00003e55: DUP6 00003e56: DUP6 00003e57: PUSH2 0x30db 00003e5a: JUMP 00003e5b: JUMPDEST 00003e5c: DUP2 00003e5d: SWAP1 00003e5e: PUSH1 0x10 00003e60: DUP2 00003e61: GT 00003e62: ISZERO 00003e63: PUSH2 0x3e68 00003e66: JUMPI 00003e67: INVALID 00003e68: JUMPDEST 00003e69: SWAP1 00003e6a: DUP2 00003e6b: PUSH1 0x10 00003e6d: DUP2 00003e6e: GT 00003e6f: ISZERO 00003e70: PUSH2 0x3e75 00003e73: JUMPI 00003e74: INVALID 00003e75: JUMPDEST 00003e76: SWAP1 00003e77: MSTORE 00003e78: POP 00003e79: PUSH1 0x00 00003e7b: DUP2 00003e7c: MLOAD 00003e7d: PUSH1 0x10 00003e7f: DUP2 00003e80: GT 00003e81: ISZERO 00003e82: PUSH2 0x3e87 00003e85: JUMPI 00003e86: INVALID 00003e87: JUMPDEST 00003e88: EQ 00003e89: PUSH2 0x3edc 00003e8c: JUMPI 00003e8d: PUSH1 0x40 00003e8f: DUP1 00003e90: MLOAD 00003e91: PUSH1 0x01 00003e93: PUSH1 0xe5 00003e95: SHL 00003e96: PUSH3 0x461bcd 00003e9a: MUL 00003e9b: DUP2 00003e9c: MSTORE 00003e9d: PUSH1 0x20 00003e9f: PUSH1 0x04 00003ea1: DUP3 00003ea2: ADD 00003ea3: MSTORE 00003ea4: PUSH1 0x1a 00003ea6: PUSH1 0x24 00003ea8: DUP3 00003ea9: ADD 00003eaa: MSTORE 00003eab: PUSH32 0x626f72726f77207472616e73666572206f7574206661696c6564000000000000 00003ecc: PUSH1 0x44 00003ece: DUP3 00003ecf: ADD 00003ed0: MSTORE 00003ed1: SWAP1 00003ed2: MLOAD 00003ed3: SWAP1 00003ed4: DUP2 00003ed5: SWAP1 00003ed6: SUB 00003ed7: PUSH1 0x64 00003ed9: ADD 00003eda: SWAP1 00003edb: REVERT 00003edc: JUMPDEST 00003edd: PUSH1 0x60 00003edf: DUP1 00003ee0: DUP3 00003ee1: ADD 00003ee2: DUP1 00003ee3: MLOAD 00003ee4: PUSH1 0x01 00003ee6: PUSH1 0x01 00003ee8: PUSH1 0xa0 00003eea: SHL 00003eeb: SUB 00003eec: DUP9 00003eed: AND 00003eee: PUSH1 0x00 00003ef0: DUP2 00003ef1: DUP2 00003ef2: MSTORE 00003ef3: PUSH1 0x11 00003ef5: PUSH1 0x20 00003ef7: SWAP1 00003ef8: DUP2 00003ef9: MSTORE 00003efa: PUSH1 0x40 00003efc: SWAP2 00003efd: DUP3 00003efe: SWAP1 00003eff: KECCAK256 00003f00: SWAP4 00003f01: DUP5 00003f02: SSTORE 00003f03: PUSH1 0x0b 00003f05: SLOAD 00003f06: PUSH1 0x01 00003f08: SWAP1 00003f09: SWAP5 00003f0a: ADD 00003f0b: SWAP4 00003f0c: SWAP1 00003f0d: SWAP4 00003f0e: SSTORE 00003f0f: PUSH1 0x80 00003f11: DUP1 00003f12: DUP8 00003f13: ADD 00003f14: MLOAD 00003f15: PUSH1 0x0c 00003f17: DUP2 00003f18: SWAP1 00003f19: SSTORE 00003f1a: SWAP5 00003f1b: MLOAD 00003f1c: DUP3 00003f1d: MLOAD 00003f1e: SWAP4 00003f1f: DUP5 00003f20: MSTORE 00003f21: SWAP4 00003f22: DUP4 00003f23: ADD 00003f24: DUP11 00003f25: SWAP1 00003f26: MSTORE 00003f27: DUP3 00003f28: DUP3 00003f29: ADD 00003f2a: SWAP4 00003f2b: SWAP1 00003f2c: SWAP4 00003f2d: MSTORE 00003f2e: SWAP4 00003f2f: DUP2 00003f30: ADD 00003f31: SWAP3 00003f32: SWAP1 00003f33: SWAP3 00003f34: MSTORE 00003f35: SWAP2 00003f36: MLOAD 00003f37: PUSH32 0x13ed6866d4e1ee6da46f845c46d7e54120883d75c5ea9a2dacc1c4ca8984ab80 00003f58: SWAP3 00003f59: SWAP2 00003f5a: DUP2 00003f5b: SWAP1 00003f5c: SUB 00003f5d: SWAP1 00003f5e: SWAP2 00003f5f: ADD 00003f60: SWAP1 00003f61: LOG1 00003f62: PUSH1 0x06 00003f64: SLOAD 00003f65: PUSH1 0x40 00003f67: DUP1 00003f68: MLOAD 00003f69: PUSH1 0x01 00003f6b: PUSH1 0xe0 00003f6d: SHL 00003f6e: PUSH4 0x5c778605 00003f73: MUL 00003f74: DUP2 00003f75: MSTORE 00003f76: ADDRESS 00003f77: PUSH1 0x04 00003f79: DUP3 00003f7a: ADD 00003f7b: MSTORE 00003f7c: PUSH1 0x01 00003f7e: PUSH1 0x01 00003f80: PUSH1 0xa0 00003f82: SHL 00003f83: SUB 00003f84: DUP9 00003f85: DUP2 00003f86: AND 00003f87: PUSH1 0x24 00003f89: DUP4 00003f8a: ADD 00003f8b: MSTORE 00003f8c: PUSH1 0x44 00003f8e: DUP3 00003f8f: ADD 00003f90: DUP9 00003f91: SWAP1 00003f92: MSTORE 00003f93: SWAP2 00003f94: MLOAD 00003f95: SWAP2 00003f96: SWAP1 00003f97: SWAP3 00003f98: AND 00003f99: SWAP2 00003f9a: PUSH4 0x5c778605 00003f9f: SWAP2 00003fa0: PUSH1 0x64 00003fa2: DUP1 00003fa3: DUP4 00003fa4: ADD 00003fa5: SWAP3 00003fa6: PUSH1 0x00 00003fa8: SWAP3 00003fa9: SWAP2 00003faa: SWAP1 00003fab: DUP3 00003fac: SWAP1 00003fad: SUB 00003fae: ADD 00003faf: DUP2 00003fb0: DUP4 00003fb1: DUP8 00003fb2: DUP1 00003fb3: EXTCODESIZE 00003fb4: ISZERO 00003fb5: DUP1 00003fb6: ISZERO 00003fb7: PUSH2 0x3b3d 00003fba: JUMPI 00003fbb: PUSH1 0x00 00003fbd: DUP1 00003fbe: REVERT 00003fbf: JUMPDEST 00003fc0: PUSH1 0x06 00003fc2: SLOAD 00003fc3: PUSH1 0x40 00003fc5: DUP1 00003fc6: MLOAD 00003fc7: PUSH1 0x01 00003fc9: PUSH1 0xe1 00003fcb: SHL 00003fcc: PUSH4 0x2fe3f38f 00003fd1: MUL 00003fd2: DUP2 00003fd3: MSTORE 00003fd4: ADDRESS 00003fd5: PUSH1 0x04 00003fd7: DUP3 00003fd8: ADD 00003fd9: MSTORE 00003fda: PUSH1 0x01 00003fdc: PUSH1 0x01 00003fde: PUSH1 0xa0 00003fe0: SHL 00003fe1: SUB 00003fe2: DUP5 00003fe3: DUP2 00003fe4: AND 00003fe5: PUSH1 0x24 00003fe7: DUP4 00003fe8: ADD 00003fe9: MSTORE 00003fea: DUP8 00003feb: DUP2 00003fec: AND 00003fed: PUSH1 0x44 00003fef: DUP4 00003ff0: ADD 00003ff1: MSTORE 00003ff2: DUP7 00003ff3: DUP2 00003ff4: AND 00003ff5: PUSH1 0x64 00003ff7: DUP4 00003ff8: ADD 00003ff9: MSTORE 00003ffa: PUSH1 0x84 00003ffc: DUP3 00003ffd: ADD 00003ffe: DUP7 00003fff: SWAP1 00004000: MSTORE 00004001: SWAP2 00004002: MLOAD 00004003: PUSH1 0x00 00004005: SWAP4 00004006: DUP5 00004007: SWAP4 00004008: AND 00004009: SWAP2 0000400a: PUSH4 0x5fc7e71e 0000400f: SWAP2 00004010: PUSH1 0xa4 00004012: DUP1 00004013: DUP4 00004014: ADD 00004015: SWAP3 00004016: PUSH1 0x20 00004018: SWAP3 00004019: SWAP2 0000401a: SWAP1 0000401b: DUP3 0000401c: SWAP1 0000401d: SUB 0000401e: ADD 0000401f: DUP2 00004020: DUP8 00004021: DUP8 00004022: DUP1 00004023: EXTCODESIZE 00004024: ISZERO 00004025: DUP1 00004026: ISZERO 00004027: PUSH2 0x402f 0000402a: JUMPI 0000402b: PUSH1 0x00 0000402d: DUP1 0000402e: REVERT 0000402f: JUMPDEST 00004030: POP 00004031: GAS 00004032: CALL 00004033: ISZERO 00004034: DUP1 00004035: ISZERO 00004036: PUSH2 0x4043 00004039: JUMPI 0000403a: RETURNDATASIZE 0000403b: PUSH1 0x00 0000403d: DUP1 0000403e: RETURNDATACOPY 0000403f: RETURNDATASIZE 00004040: PUSH1 0x00 00004042: REVERT 00004043: JUMPDEST 00004044: POP 00004045: POP 00004046: POP 00004047: POP 00004048: PUSH1 0x40 0000404a: MLOAD 0000404b: RETURNDATASIZE 0000404c: PUSH1 0x20 0000404e: DUP2 0000404f: LT 00004050: ISZERO 00004051: PUSH2 0x4059 00004054: JUMPI 00004055: PUSH1 0x00 00004057: DUP1 00004058: REVERT 00004059: JUMPDEST 0000405a: POP 0000405b: MLOAD 0000405c: SWAP1 0000405d: POP 0000405e: DUP1 0000405f: ISZERO 00004060: PUSH2 0x4070 00004063: JUMPI 00004064: PUSH2 0x1eab 00004067: PUSH1 0x03 00004069: PUSH1 0x12 0000406b: DUP4 0000406c: PUSH2 0x2593 0000406f: JUMP 00004070: JUMPDEST 00004071: PUSH2 0x4078 00004074: PUSH2 0x25f9 00004077: JUMP 00004078: JUMPDEST 00004079: PUSH1 0x0a 0000407b: SLOAD 0000407c: EQ 0000407d: PUSH2 0x408c 00004080: JUMPI 00004081: PUSH2 0x1eab 00004084: PUSH1 0x0a 00004086: PUSH1 0x16 00004088: PUSH2 0x227d 0000408b: JUMP 0000408c: JUMPDEST 0000408d: PUSH2 0x4094 00004090: PUSH2 0x25f9 00004093: JUMP 00004094: JUMPDEST 00004095: DUP4 00004096: PUSH1 0x01 00004098: PUSH1 0x01 0000409a: PUSH1 0xa0 0000409c: SHL 0000409d: SUB 0000409e: AND 0000409f: PUSH4 0x6c540baf 000040a4: PUSH1 0x40 000040a6: MLOAD 000040a7: DUP2 000040a8: PUSH4 0xffffffff 000040ad: AND 000040ae: PUSH1 0xe0 000040b0: SHL 000040b1: DUP2 000040b2: MSTORE 000040b3: PUSH1 0x04 000040b5: ADD 000040b6: PUSH1 0x20 000040b8: PUSH1 0x40 000040ba: MLOAD 000040bb: DUP1 000040bc: DUP4 000040bd: SUB 000040be: DUP2 000040bf: DUP7 000040c0: DUP1 000040c1: EXTCODESIZE 000040c2: ISZERO 000040c3: DUP1 000040c4: ISZERO 000040c5: PUSH2 0x40cd 000040c8: JUMPI 000040c9: PUSH1 0x00 000040cb: DUP1 000040cc: REVERT 000040cd: JUMPDEST 000040ce: POP 000040cf: GAS 000040d0: STATICCALL 000040d1: ISZERO 000040d2: DUP1 000040d3: ISZERO 000040d4: PUSH2 0x40e1 000040d7: JUMPI 000040d8: RETURNDATASIZE 000040d9: PUSH1 0x00 000040db: DUP1 000040dc: RETURNDATACOPY 000040dd: RETURNDATASIZE 000040de: PUSH1 0x00 000040e0: REVERT 000040e1: JUMPDEST 000040e2: POP 000040e3: POP 000040e4: POP 000040e5: POP 000040e6: PUSH1 0x40 000040e8: MLOAD 000040e9: RETURNDATASIZE 000040ea: PUSH1 0x20 000040ec: DUP2 000040ed: LT 000040ee: ISZERO 000040ef: PUSH2 0x40f7 000040f2: JUMPI 000040f3: PUSH1 0x00 000040f5: DUP1 000040f6: REVERT 000040f7: JUMPDEST 000040f8: POP 000040f9: MLOAD 000040fa: EQ 000040fb: PUSH2 0x410a 000040fe: JUMPI 000040ff: PUSH2 0x1eab 00004102: PUSH1 0x0a 00004104: PUSH1 0x11 00004106: PUSH2 0x227d 00004109: JUMP 0000410a: JUMPDEST 0000410b: DUP6 0000410c: PUSH1 0x01 0000410e: PUSH1 0x01 00004110: PUSH1 0xa0 00004112: SHL 00004113: SUB 00004114: AND 00004115: DUP6 00004116: PUSH1 0x01 00004118: PUSH1 0x01 0000411a: PUSH1 0xa0 0000411c: SHL 0000411d: SUB 0000411e: AND 0000411f: EQ 00004120: ISZERO 00004121: PUSH2 0x4130 00004124: JUMPI 00004125: PUSH2 0x1eab 00004128: PUSH1 0x06 0000412a: PUSH1 0x17 0000412c: PUSH2 0x227d 0000412f: JUMP 00004130: JUMPDEST 00004131: DUP4 00004132: PUSH2 0x4141 00004135: JUMPI 00004136: PUSH2 0x1eab 00004139: PUSH1 0x07 0000413b: PUSH1 0x15 0000413d: PUSH2 0x227d 00004140: JUMP 00004141: JUMPDEST 00004142: PUSH1 0x00 00004144: NOT 00004145: DUP5 00004146: EQ 00004147: ISZERO 00004148: PUSH2 0x4157 0000414b: JUMPI 0000414c: PUSH2 0x1eab 0000414f: PUSH1 0x07 00004151: PUSH1 0x14 00004153: PUSH2 0x227d 00004156: JUMP 00004157: JUMPDEST 00004158: PUSH1 0x06 0000415a: SLOAD 0000415b: PUSH1 0x40 0000415d: DUP1 0000415e: MLOAD 0000415f: PUSH1 0x01 00004161: PUSH1 0xe0 00004163: SHL 00004164: PUSH4 0xc488847b 00004169: MUL 0000416a: DUP2 0000416b: MSTORE 0000416c: ADDRESS 0000416d: PUSH1 0x04 0000416f: DUP3 00004170: ADD 00004171: MSTORE 00004172: PUSH1 0x01 00004174: PUSH1 0x01 00004176: PUSH1 0xa0 00004178: SHL 00004179: SUB 0000417a: DUP7 0000417b: DUP2 0000417c: AND 0000417d: PUSH1 0x24 0000417f: DUP4 00004180: ADD 00004181: MSTORE 00004182: PUSH1 0x44 00004184: DUP3 00004185: ADD 00004186: DUP9 00004187: SWAP1 00004188: MSTORE 00004189: DUP3 0000418a: MLOAD 0000418b: PUSH1 0x00 0000418d: SWAP5 0000418e: DUP6 0000418f: SWAP5 00004190: SWAP3 00004191: AND 00004192: SWAP3 00004193: PUSH4 0xc488847b 00004198: SWAP3 00004199: PUSH1 0x64 0000419b: DUP1 0000419c: DUP4 0000419d: ADD 0000419e: SWAP4 0000419f: SWAP2 000041a0: SWAP3 000041a1: DUP3 000041a2: SWAP1 000041a3: SUB 000041a4: ADD 000041a5: DUP2 000041a6: DUP7 000041a7: DUP1 000041a8: EXTCODESIZE 000041a9: ISZERO 000041aa: DUP1 000041ab: ISZERO 000041ac: PUSH2 0x41b4 000041af: JUMPI 000041b0: PUSH1 0x00 000041b2: DUP1 000041b3: REVERT 000041b4: JUMPDEST 000041b5: POP 000041b6: GAS 000041b7: STATICCALL 000041b8: ISZERO 000041b9: DUP1 000041ba: ISZERO 000041bb: PUSH2 0x41c8 000041be: JUMPI 000041bf: RETURNDATASIZE 000041c0: PUSH1 0x00 000041c2: DUP1 000041c3: RETURNDATACOPY 000041c4: RETURNDATASIZE 000041c5: PUSH1 0x00 000041c7: REVERT 000041c8: JUMPDEST 000041c9: POP 000041ca: POP 000041cb: POP 000041cc: POP 000041cd: PUSH1 0x40 000041cf: MLOAD 000041d0: RETURNDATASIZE 000041d1: PUSH1 0x40 000041d3: DUP2 000041d4: LT 000041d5: ISZERO 000041d6: PUSH2 0x41de 000041d9: JUMPI 000041da: PUSH1 0x00 000041dc: DUP1 000041dd: REVERT 000041de: JUMPDEST 000041df: POP 000041e0: DUP1 000041e1: MLOAD 000041e2: PUSH1 0x20 000041e4: SWAP1 000041e5: SWAP2 000041e6: ADD 000041e7: MLOAD 000041e8: SWAP1 000041e9: SWAP3 000041ea: POP 000041eb: SWAP1 000041ec: POP 000041ed: DUP2 000041ee: ISZERO 000041ef: PUSH2 0x4209 000041f2: JUMPI 000041f3: PUSH2 0x41ff 000041f6: PUSH1 0x04 000041f8: PUSH1 0x13 000041fa: DUP5 000041fb: PUSH2 0x2593 000041fe: JUMP 000041ff: JUMPDEST 00004200: SWAP4 00004201: POP 00004202: POP 00004203: POP 00004204: POP 00004205: PUSH2 0x0ab7 00004208: JUMP 00004209: JUMPDEST 0000420a: DUP5 0000420b: PUSH1 0x01 0000420d: PUSH1 0x01 0000420f: PUSH1 0xa0 00004211: SHL 00004212: SUB 00004213: AND 00004214: PUSH4 0x70a08231 00004219: DUP9 0000421a: PUSH1 0x40 0000421c: MLOAD 0000421d: DUP3 0000421e: PUSH4 0xffffffff 00004223: AND 00004224: PUSH1 0xe0 00004226: SHL 00004227: DUP2 00004228: MSTORE 00004229: PUSH1 0x04 0000422b: ADD 0000422c: DUP1 0000422d: DUP3 0000422e: PUSH1 0x01 00004230: PUSH1 0x01 00004232: PUSH1 0xa0 00004234: SHL 00004235: SUB 00004236: AND 00004237: PUSH1 0x01 00004239: PUSH1 0x01 0000423b: PUSH1 0xa0 0000423d: SHL 0000423e: SUB 0000423f: AND 00004240: DUP2 00004241: MSTORE 00004242: PUSH1 0x20 00004244: ADD 00004245: SWAP2 00004246: POP 00004247: POP 00004248: PUSH1 0x20 0000424a: PUSH1 0x40 0000424c: MLOAD 0000424d: DUP1 0000424e: DUP4 0000424f: SUB 00004250: DUP2 00004251: DUP7 00004252: DUP1 00004253: EXTCODESIZE 00004254: ISZERO 00004255: DUP1 00004256: ISZERO 00004257: PUSH2 0x425f 0000425a: JUMPI 0000425b: PUSH1 0x00 0000425d: DUP1 0000425e: REVERT 0000425f: JUMPDEST 00004260: POP 00004261: GAS 00004262: STATICCALL 00004263: ISZERO 00004264: DUP1 00004265: ISZERO 00004266: PUSH2 0x4273 00004269: JUMPI 0000426a: RETURNDATASIZE 0000426b: PUSH1 0x00 0000426d: DUP1 0000426e: RETURNDATACOPY 0000426f: RETURNDATASIZE 00004270: PUSH1 0x00 00004272: REVERT 00004273: JUMPDEST 00004274: POP 00004275: POP 00004276: POP 00004277: POP 00004278: PUSH1 0x40 0000427a: MLOAD 0000427b: RETURNDATASIZE 0000427c: PUSH1 0x20 0000427e: DUP2 0000427f: LT 00004280: ISZERO 00004281: PUSH2 0x4289 00004284: JUMPI 00004285: PUSH1 0x00 00004287: DUP1 00004288: REVERT 00004289: JUMPDEST 0000428a: POP 0000428b: MLOAD 0000428c: DUP2 0000428d: GT 0000428e: ISZERO 0000428f: PUSH2 0x429e 00004292: JUMPI 00004293: PUSH2 0x41ff 00004296: PUSH1 0x0d 00004298: PUSH1 0x1d 0000429a: PUSH2 0x227d 0000429d: JUMP 0000429e: JUMPDEST 0000429f: PUSH1 0x00 000042a1: PUSH2 0x42ab 000042a4: DUP10 000042a5: DUP10 000042a6: DUP10 000042a7: PUSH2 0x2b82 000042aa: JUMP 000042ab: JUMPDEST 000042ac: SWAP1 000042ad: POP 000042ae: DUP1 000042af: ISZERO 000042b0: PUSH2 0x42d4 000042b3: JUMPI 000042b4: PUSH2 0x42c9 000042b7: DUP2 000042b8: PUSH1 0x10 000042ba: DUP2 000042bb: GT 000042bc: ISZERO 000042bd: PUSH2 0x42c2 000042c0: JUMPI 000042c1: INVALID 000042c2: JUMPDEST 000042c3: PUSH1 0x18 000042c5: PUSH2 0x227d 000042c8: JUMP 000042c9: JUMPDEST 000042ca: SWAP5 000042cb: POP 000042cc: POP 000042cd: POP 000042ce: POP 000042cf: POP 000042d0: PUSH2 0x0ab7 000042d3: JUMP 000042d4: JUMPDEST 000042d5: PUSH1 0x40 000042d7: DUP1 000042d8: MLOAD 000042d9: PUSH1 0x01 000042db: PUSH1 0xe0 000042dd: SHL 000042de: PUSH4 0xb2a02ff1 000042e3: MUL 000042e4: DUP2 000042e5: MSTORE 000042e6: PUSH1 0x01 000042e8: PUSH1 0x01 000042ea: PUSH1 0xa0 000042ec: SHL 000042ed: SUB 000042ee: DUP12 000042ef: DUP2 000042f0: AND 000042f1: PUSH1 0x04 000042f3: DUP4 000042f4: ADD 000042f5: MSTORE 000042f6: DUP11 000042f7: DUP2 000042f8: AND 000042f9: PUSH1 0x24 000042fb: DUP4 000042fc: ADD 000042fd: MSTORE 000042fe: PUSH1 0x44 00004300: DUP3 00004301: ADD 00004302: DUP6 00004303: SWAP1 00004304: MSTORE 00004305: SWAP2 00004306: MLOAD 00004307: PUSH1 0x00 00004309: SWAP3 0000430a: DUP10 0000430b: AND 0000430c: SWAP2 0000430d: PUSH4 0xb2a02ff1 00004312: SWAP2 00004313: PUSH1 0x64 00004315: DUP1 00004316: DUP4 00004317: ADD 00004318: SWAP3 00004319: PUSH1 0x20 0000431b: SWAP3 0000431c: SWAP2 0000431d: SWAP1 0000431e: DUP3 0000431f: SWAP1 00004320: SUB 00004321: ADD 00004322: DUP2 00004323: DUP8 00004324: DUP8 00004325: DUP1 00004326: EXTCODESIZE 00004327: ISZERO 00004328: DUP1 00004329: ISZERO 0000432a: PUSH2 0x4332 0000432d: JUMPI 0000432e: PUSH1 0x00 00004330: DUP1 00004331: REVERT 00004332: JUMPDEST 00004333: POP 00004334: GAS 00004335: CALL 00004336: ISZERO 00004337: DUP1 00004338: ISZERO 00004339: PUSH2 0x4346 0000433c: JUMPI 0000433d: RETURNDATASIZE 0000433e: PUSH1 0x00 00004340: DUP1 00004341: RETURNDATACOPY 00004342: RETURNDATASIZE 00004343: PUSH1 0x00 00004345: REVERT 00004346: JUMPDEST 00004347: POP 00004348: POP 00004349: POP 0000434a: POP 0000434b: PUSH1 0x40 0000434d: MLOAD 0000434e: RETURNDATASIZE 0000434f: PUSH1 0x20 00004351: DUP2 00004352: LT 00004353: ISZERO 00004354: PUSH2 0x435c 00004357: JUMPI 00004358: PUSH1 0x00 0000435a: DUP1 0000435b: REVERT 0000435c: JUMPDEST 0000435d: POP 0000435e: MLOAD 0000435f: SWAP1 00004360: POP 00004361: DUP1 00004362: ISZERO 00004363: PUSH2 0x43b6 00004366: JUMPI 00004367: PUSH1 0x40 00004369: DUP1 0000436a: MLOAD 0000436b: PUSH1 0x01 0000436d: PUSH1 0xe5 0000436f: SHL 00004370: PUSH3 0x461bcd 00004374: MUL 00004375: DUP2 00004376: MSTORE 00004377: PUSH1 0x20 00004379: PUSH1 0x04 0000437b: DUP3 0000437c: ADD 0000437d: MSTORE 0000437e: PUSH1 0x14 00004380: PUSH1 0x24 00004382: DUP3 00004383: ADD 00004384: MSTORE 00004385: PUSH32 0x746f6b656e207365697a757265206661696c6564000000000000000000000000 000043a6: PUSH1 0x44 000043a8: DUP3 000043a9: ADD 000043aa: MSTORE 000043ab: SWAP1 000043ac: MLOAD 000043ad: SWAP1 000043ae: DUP2 000043af: SWAP1 000043b0: SUB 000043b1: PUSH1 0x64 000043b3: ADD 000043b4: SWAP1 000043b5: REVERT 000043b6: JUMPDEST 000043b7: PUSH1 0x40 000043b9: DUP1 000043ba: MLOAD 000043bb: PUSH1 0x01 000043bd: PUSH1 0x01 000043bf: PUSH1 0xa0 000043c1: SHL 000043c2: SUB 000043c3: DUP1 000043c4: DUP14 000043c5: AND 000043c6: DUP3 000043c7: MSTORE 000043c8: DUP1 000043c9: DUP13 000043ca: AND 000043cb: PUSH1 0x20 000043cd: DUP4 000043ce: ADD 000043cf: MSTORE 000043d0: DUP2 000043d1: DUP4 000043d2: ADD 000043d3: DUP12 000043d4: SWAP1 000043d5: MSTORE 000043d6: DUP10 000043d7: AND 000043d8: PUSH1 0x60 000043da: DUP3 000043db: ADD 000043dc: MSTORE 000043dd: PUSH1 0x80 000043df: DUP2 000043e0: ADD 000043e1: DUP6 000043e2: SWAP1 000043e3: MSTORE 000043e4: SWAP1 000043e5: MLOAD 000043e6: PUSH32 0x298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb52 00004407: SWAP2 00004408: DUP2 00004409: SWAP1 0000440a: SUB 0000440b: PUSH1 0xa0 0000440d: ADD 0000440e: SWAP1 0000440f: LOG1 00004410: PUSH1 0x06 00004412: SLOAD 00004413: PUSH1 0x40 00004415: DUP1 00004416: MLOAD 00004417: PUSH1 0x01 00004419: PUSH1 0xe0 0000441b: SHL 0000441c: PUSH4 0x47ef3b3b 00004421: MUL 00004422: DUP2 00004423: MSTORE 00004424: ADDRESS 00004425: PUSH1 0x04 00004427: DUP3 00004428: ADD 00004429: MSTORE 0000442a: PUSH1 0x01 0000442c: PUSH1 0x01 0000442e: PUSH1 0xa0 00004430: SHL 00004431: SUB 00004432: DUP11 00004433: DUP2 00004434: AND 00004435: PUSH1 0x24 00004437: DUP4 00004438: ADD 00004439: MSTORE 0000443a: DUP14 0000443b: DUP2 0000443c: AND 0000443d: PUSH1 0x44 0000443f: DUP4 00004440: ADD 00004441: MSTORE 00004442: DUP13 00004443: DUP2 00004444: AND 00004445: PUSH1 0x64 00004447: DUP4 00004448: ADD 00004449: MSTORE 0000444a: PUSH1 0x84 0000444c: DUP3 0000444d: ADD 0000444e: DUP13 0000444f: SWAP1 00004450: MSTORE 00004451: PUSH1 0xa4 00004453: DUP3 00004454: ADD 00004455: DUP8 00004456: SWAP1 00004457: MSTORE 00004458: SWAP2 00004459: MLOAD 0000445a: SWAP2 0000445b: SWAP1 0000445c: SWAP3 0000445d: AND 0000445e: SWAP2 0000445f: PUSH4 0x47ef3b3b 00004464: SWAP2 00004465: PUSH1 0xc4 00004467: DUP1 00004468: DUP4 00004469: ADD 0000446a: SWAP3 0000446b: PUSH1 0x00 0000446d: SWAP3 0000446e: SWAP2 0000446f: SWAP1 00004470: DUP3 00004471: SWAP1 00004472: SUB 00004473: ADD 00004474: DUP2 00004475: DUP4 00004476: DUP8 00004477: DUP1 00004478: EXTCODESIZE 00004479: ISZERO 0000447a: DUP1 0000447b: ISZERO 0000447c: PUSH2 0x4484 0000447f: JUMPI 00004480: PUSH1 0x00 00004482: DUP1 00004483: REVERT 00004484: JUMPDEST 00004485: POP 00004486: GAS 00004487: CALL 00004488: ISZERO 00004489: DUP1 0000448a: ISZERO 0000448b: PUSH2 0x4498 0000448e: JUMPI 0000448f: RETURNDATASIZE 00004490: PUSH1 0x00 00004492: DUP1 00004493: RETURNDATACOPY 00004494: RETURNDATASIZE 00004495: PUSH1 0x00 00004497: REVERT 00004498: JUMPDEST 00004499: POP 0000449a: PUSH1 0x00 0000449c: SWAP3 0000449d: POP 0000449e: PUSH2 0x44a5 000044a1: SWAP2 000044a2: POP 000044a3: POP 000044a4: JUMP 000044a5: JUMPDEST 000044a6: SWAP11 000044a7: SWAP10 000044a8: POP 000044a9: POP 000044aa: POP 000044ab: POP 000044ac: POP 000044ad: POP 000044ae: POP 000044af: POP 000044b0: POP 000044b1: POP 000044b2: JUMP 000044b3: JUMPDEST 000044b4: PUSH1 0x12 000044b6: SLOAD 000044b7: PUSH1 0x40 000044b9: DUP1 000044ba: MLOAD 000044bb: PUSH1 0x01 000044bd: PUSH1 0xe1 000044bf: SHL 000044c0: PUSH4 0x6eb1769f 000044c5: MUL 000044c6: DUP2 000044c7: MSTORE 000044c8: PUSH1 0x01 000044ca: PUSH1 0x01 000044cc: PUSH1 0xa0 000044ce: SHL 000044cf: SUB 000044d0: DUP6 000044d1: DUP2 000044d2: AND 000044d3: PUSH1 0x04 000044d5: DUP4 000044d6: ADD 000044d7: MSTORE 000044d8: ADDRESS 000044d9: PUSH1 0x24 000044db: DUP4 000044dc: ADD 000044dd: MSTORE 000044de: SWAP2 000044df: MLOAD 000044e0: PUSH1 0x00 000044e2: SWAP4 000044e3: SWAP3 000044e4: SWAP1 000044e5: SWAP3 000044e6: AND 000044e7: SWAP2 000044e8: DUP5 000044e9: SWAP2 000044ea: DUP4 000044eb: SWAP2 000044ec: PUSH4 0xdd62ed3e 000044f1: SWAP2 000044f2: PUSH1 0x44 000044f4: DUP1 000044f5: DUP3 000044f6: ADD 000044f7: SWAP3 000044f8: PUSH1 0x20 000044fa: SWAP3 000044fb: SWAP1 000044fc: SWAP2 000044fd: SWAP1 000044fe: DUP3 000044ff: SWAP1 00004500: SUB 00004501: ADD 00004502: DUP2 00004503: DUP7 00004504: DUP1 00004505: EXTCODESIZE 00004506: ISZERO 00004507: DUP1 00004508: ISZERO 00004509: PUSH2 0x4511 0000450c: JUMPI 0000450d: PUSH1 0x00 0000450f: DUP1 00004510: REVERT 00004511: JUMPDEST 00004512: POP 00004513: GAS 00004514: STATICCALL 00004515: ISZERO 00004516: DUP1 00004517: ISZERO 00004518: PUSH2 0x4525 0000451b: JUMPI 0000451c: RETURNDATASIZE 0000451d: PUSH1 0x00 0000451f: DUP1 00004520: RETURNDATACOPY 00004521: RETURNDATASIZE 00004522: PUSH1 0x00 00004524: REVERT 00004525: JUMPDEST 00004526: POP 00004527: POP 00004528: POP 00004529: POP 0000452a: PUSH1 0x40 0000452c: MLOAD 0000452d: RETURNDATASIZE 0000452e: PUSH1 0x20 00004530: DUP2 00004531: LT 00004532: ISZERO 00004533: PUSH2 0x453b 00004536: JUMPI 00004537: PUSH1 0x00 00004539: DUP1 0000453a: REVERT 0000453b: JUMPDEST 0000453c: POP 0000453d: MLOAD 0000453e: LT 0000453f: ISZERO 00004540: PUSH2 0x454d 00004543: JUMPI 00004544: PUSH1 0x0c 00004546: SWAP2 00004547: POP 00004548: POP 00004549: PUSH2 0x086f 0000454c: JUMP 0000454d: JUMPDEST 0000454e: DUP3 0000454f: DUP2 00004550: PUSH1 0x01 00004552: PUSH1 0x01 00004554: PUSH1 0xa0 00004556: SHL 00004557: SUB 00004558: AND 00004559: PUSH4 0x70a08231 0000455e: DUP7 0000455f: PUSH1 0x40 00004561: MLOAD 00004562: DUP3 00004563: PUSH4 0xffffffff 00004568: AND 00004569: PUSH1 0xe0 0000456b: SHL 0000456c: DUP2 0000456d: MSTORE 0000456e: PUSH1 0x04 00004570: ADD 00004571: DUP1 00004572: DUP3 00004573: PUSH1 0x01 00004575: PUSH1 0x01 00004577: PUSH1 0xa0 00004579: SHL 0000457a: SUB 0000457b: AND 0000457c: PUSH1 0x01 0000457e: PUSH1 0x01 00004580: PUSH1 0xa0 00004582: SHL 00004583: SUB 00004584: AND 00004585: DUP2 00004586: MSTORE 00004587: PUSH1 0x20 00004589: ADD 0000458a: SWAP2 0000458b: POP 0000458c: POP 0000458d: PUSH1 0x20 0000458f: PUSH1 0x40 00004591: MLOAD 00004592: DUP1 00004593: DUP4 00004594: SUB 00004595: DUP2 00004596: DUP7 00004597: DUP1 00004598: EXTCODESIZE 00004599: ISZERO 0000459a: DUP1 0000459b: ISZERO 0000459c: PUSH2 0x45a4 0000459f: JUMPI 000045a0: PUSH1 0x00 000045a2: DUP1 000045a3: REVERT 000045a4: JUMPDEST 000045a5: POP 000045a6: GAS 000045a7: STATICCALL 000045a8: ISZERO 000045a9: DUP1 000045aa: ISZERO 000045ab: PUSH2 0x45b8 000045ae: JUMPI 000045af: RETURNDATASIZE 000045b0: PUSH1 0x00 000045b2: DUP1 000045b3: RETURNDATACOPY 000045b4: RETURNDATASIZE 000045b5: PUSH1 0x00 000045b7: REVERT 000045b8: JUMPDEST 000045b9: POP 000045ba: POP 000045bb: POP 000045bc: POP 000045bd: PUSH1 0x40 000045bf: MLOAD 000045c0: RETURNDATASIZE 000045c1: PUSH1 0x20 000045c3: DUP2 000045c4: LT 000045c5: ISZERO 000045c6: PUSH2 0x45ce 000045c9: JUMPI 000045ca: PUSH1 0x00 000045cc: DUP1 000045cd: REVERT 000045ce: JUMPDEST 000045cf: POP 000045d0: MLOAD 000045d1: LT 000045d2: ISZERO 000045d3: PUSH2 0x45e0 000045d6: JUMPI 000045d7: PUSH1 0x0d 000045d9: SWAP2 000045da: POP 000045db: POP 000045dc: PUSH2 0x086f 000045df: JUMP 000045e0: JUMPDEST 000045e1: POP 000045e2: PUSH1 0x00 000045e4: SWAP4 000045e5: SWAP3 000045e6: POP 000045e7: POP 000045e8: POP 000045e9: JUMP 000045ea: JUMPDEST 000045eb: PUSH1 0x12 000045ed: SLOAD 000045ee: PUSH1 0x40 000045f0: DUP1 000045f1: MLOAD 000045f2: PUSH1 0x01 000045f4: PUSH1 0xe0 000045f6: SHL 000045f7: PUSH4 0x23b872dd 000045fc: MUL 000045fd: DUP2 000045fe: MSTORE 000045ff: PUSH1 0x01 00004601: PUSH1 0x01 00004603: PUSH1 0xa0 00004605: SHL 00004606: SUB 00004607: DUP6 00004608: DUP2 00004609: AND 0000460a: PUSH1 0x04 0000460c: DUP4 0000460d: ADD 0000460e: MSTORE 0000460f: ADDRESS 00004610: PUSH1 0x24 00004612: DUP4 00004613: ADD 00004614: MSTORE 00004615: PUSH1 0x44 00004617: DUP3 00004618: ADD 00004619: DUP6 0000461a: SWAP1 0000461b: MSTORE 0000461c: SWAP2 0000461d: MLOAD 0000461e: PUSH1 0x00 00004620: SWAP4 00004621: SWAP3 00004622: SWAP1 00004623: SWAP3 00004624: AND 00004625: SWAP2 00004626: DUP4 00004627: SWAP2 00004628: DUP4 00004629: SWAP2 0000462a: PUSH4 0x23b872dd 0000462f: SWAP2 00004630: PUSH1 0x64 00004632: DUP1 00004633: DUP3 00004634: ADD 00004635: SWAP3 00004636: DUP7 00004637: SWAP3 00004638: SWAP1 00004639: SWAP2 0000463a: SWAP1 0000463b: DUP3 0000463c: SWAP1 0000463d: SUB 0000463e: ADD 0000463f: DUP2 00004640: DUP4 00004641: DUP8 00004642: DUP1 00004643: EXTCODESIZE 00004644: ISZERO 00004645: DUP1 00004646: ISZERO 00004647: PUSH2 0x464f 0000464a: JUMPI 0000464b: PUSH1 0x00 0000464d: DUP1 0000464e: REVERT 0000464f: JUMPDEST 00004650: POP 00004651: GAS 00004652: CALL 00004653: ISZERO 00004654: DUP1 00004655: ISZERO 00004656: PUSH2 0x4663 00004659: JUMPI 0000465a: RETURNDATASIZE 0000465b: PUSH1 0x00 0000465d: DUP1 0000465e: RETURNDATACOPY 0000465f: RETURNDATASIZE 00004660: PUSH1 0x00 00004662: REVERT 00004663: JUMPDEST 00004664: POP 00004665: POP 00004666: POP 00004667: POP 00004668: RETURNDATASIZE 00004669: PUSH1 0x00 0000466b: DUP2 0000466c: EQ 0000466d: PUSH2 0x467d 00004670: JUMPI 00004671: PUSH1 0x20 00004673: DUP2 00004674: EQ 00004675: PUSH2 0x4687 00004678: JUMPI 00004679: PUSH1 0x00 0000467b: DUP1 0000467c: REVERT 0000467d: JUMPDEST 0000467e: PUSH1 0x00 00004680: NOT 00004681: SWAP2 00004682: POP 00004683: PUSH2 0x4693 00004686: JUMP 00004687: JUMPDEST 00004688: PUSH1 0x20 0000468a: PUSH1 0x00 0000468c: DUP1 0000468d: RETURNDATACOPY 0000468e: PUSH1 0x00 00004690: MLOAD 00004691: SWAP2 00004692: POP 00004693: JUMPDEST 00004694: POP 00004695: DUP1 00004696: PUSH2 0x318f 00004699: JUMPI 0000469a: PUSH1 0x0f 0000469c: SWAP3 0000469d: POP 0000469e: POP 0000469f: POP 000046a0: PUSH2 0x086f 000046a3: JUMP 000046a4: JUMPDEST 000046a5: PUSH1 0x00 000046a7: DUP1 000046a8: PUSH1 0x00 000046aa: PUSH2 0x46b1 000046ad: PUSH2 0x46bb 000046b0: JUMP 000046b1: JUMPDEST 000046b2: PUSH2 0x21bd 000046b5: DUP7 000046b6: DUP7 000046b7: PUSH2 0x270a 000046ba: JUMP 000046bb: JUMPDEST 000046bc: PUSH1 0x40 000046be: MLOAD 000046bf: DUP1 000046c0: PUSH1 0x20 000046c2: ADD 000046c3: PUSH1 0x40 000046c5: MSTORE 000046c6: DUP1 000046c7: PUSH1 0x00 000046c9: DUP2 000046ca: MSTORE 000046cb: POP 000046cc: SWAP1 000046cd: JUMP 000046ce: JUMPDEST 000046cf: PUSH1 0x40 000046d1: DUP1 000046d2: MLOAD 000046d3: PUSH2 0x0140 000046d6: DUP2 000046d7: ADD 000046d8: SWAP1 000046d9: SWAP2 000046da: MSTORE 000046db: DUP1 000046dc: PUSH1 0x00 000046de: DUP2 000046df: MSTORE 000046e0: PUSH1 0x20 000046e2: ADD 000046e3: PUSH1 0x00 000046e5: DUP2 000046e6: MSTORE 000046e7: PUSH1 0x20 000046e9: ADD 000046ea: PUSH1 0x00 000046ec: DUP2 000046ed: MSTORE 000046ee: PUSH1 0x20 000046f0: ADD 000046f1: PUSH1 0x00 000046f3: DUP2 000046f4: MSTORE 000046f5: PUSH1 0x20 000046f7: ADD 000046f8: PUSH1 0x00 000046fa: DUP2 000046fb: MSTORE 000046fc: PUSH1 0x20 000046fe: ADD 000046ff: PUSH2 0x4706 00004702: PUSH2 0x46bb 00004705: JUMP 00004706: JUMPDEST 00004707: DUP2 00004708: MSTORE 00004709: PUSH1 0x20 0000470b: ADD 0000470c: PUSH1 0x00 0000470e: DUP2 0000470f: MSTORE 00004710: PUSH1 0x20 00004712: ADD 00004713: PUSH1 0x00 00004715: DUP2 00004716: MSTORE 00004717: PUSH1 0x20 00004719: ADD 0000471a: PUSH1 0x00 0000471c: DUP2 0000471d: MSTORE 0000471e: PUSH1 0x20 00004720: ADD 00004721: PUSH1 0x00 00004723: DUP2 00004724: MSTORE 00004725: POP 00004726: SWAP1 00004727: JUMP 00004728: JUMPDEST 00004729: PUSH1 0x40 0000472b: DUP1 0000472c: MLOAD 0000472d: PUSH1 0xe0 0000472f: DUP2 00004730: ADD 00004731: SWAP1 00004732: SWAP2 00004733: MSTORE 00004734: DUP1 00004735: PUSH1 0x00 00004737: DUP2 00004738: MSTORE 00004739: PUSH1 0x20 0000473b: ADD 0000473c: PUSH1 0x00 0000473e: DUP2 0000473f: MSTORE 00004740: PUSH1 0x20 00004742: ADD 00004743: PUSH1 0x00 00004745: DUP2 00004746: MSTORE 00004747: PUSH1 0x20 00004749: ADD 0000474a: PUSH1 0x00 0000474c: DUP2 0000474d: MSTORE 0000474e: PUSH1 0x20 00004750: ADD 00004751: PUSH1 0x00 00004753: DUP2 00004754: MSTORE 00004755: PUSH1 0x20 00004757: ADD 00004758: PUSH1 0x00 0000475a: DUP2 0000475b: MSTORE 0000475c: PUSH1 0x20 0000475e: ADD 0000475f: PUSH1 0x00 00004761: DUP2 00004762: MSTORE 00004763: POP 00004764: SWAP1 00004765: JUMP 00004766: JUMPDEST 00004767: PUSH1 0x40 00004769: DUP1 0000476a: MLOAD 0000476b: PUSH1 0xc0 0000476d: DUP2 0000476e: ADD 0000476f: SWAP1 00004770: SWAP2 00004771: MSTORE 00004772: DUP1 00004773: PUSH1 0x00 00004775: DUP2 00004776: MSTORE 00004777: PUSH1 0x20 00004779: ADD 0000477a: PUSH1 0x00 0000477c: PUSH2 0x4706 0000477f: JUMP 00004780: JUMPDEST 00004781: PUSH1 0x40 00004783: DUP1 00004784: MLOAD 00004785: PUSH1 0xa0 00004787: DUP2 00004788: ADD 00004789: SWAP1 0000478a: SWAP2 0000478b: MSTORE 0000478c: DUP1 0000478d: PUSH1 0x00 0000478f: DUP2 00004790: MSTORE 00004791: PUSH1 0x20 00004793: ADD 00004794: PUSH1 0x00 00004796: DUP2 00004797: MSTORE 00004798: PUSH1 0x20 0000479a: ADD 0000479b: PUSH1 0x00 0000479d: DUP2 0000479e: MSTORE 0000479f: PUSH1 0x20 000047a1: ADD 000047a2: PUSH1 0x00 000047a4: DUP2 000047a5: MSTORE 000047a6: PUSH1 0x20 000047a8: ADD 000047a9: PUSH1 0x00 000047ab: DUP2 000047ac: MSTORE 000047ad: POP 000047ae: SWAP1 000047af: JUMP 000047b0: INVALID 000047b1: PUSH20 0x7570706c7952617465506572426c6f636b3a2063 000047c6: PUSH2 0x6c63 000047c9: PUSH22 0x6c6174696e6720626f72726f7773506572206661696c 000047e0: PUSH6 0x647265647563 000047e7: PUSH6 0x207265736572 000047ee: PUSH23 0x6573207472616e73666572206f7574206661696c656473 00004806: PUSH22 0x70706c7952617465506572426c6f636b3a2063616c63 0000481d: PUSH22 0x6c6174696e6720737570706c7952617465206661696c 00004834: PUSH6 0x64626f72726f 0000483b: PUSH24 0x42616c616e636553746f7265643a20626f72726f7742616c 00004854: PUSH2 0x6e63 00004857: PUSH6 0x53746f726564 0000485e: BLOBHASH 0000485f: PUSH15 0x7465726e616c206661696c65647375 0000486f: PUSH17 0x706c7952617465506572426c6f636b3a20 00004881: PUSH4 0x616c6375 00004886: PUSH13 0x6174696e6720756e6465726c79 00004894: PUSH10 0x6e67206661696c656462 0000489f: PUSH16 0x72726f7752617465506572426c6f636b 000048b0: GASPRICE 000048b1: KECCAK256 000048b2: PUSH10 0x6e746572657374526174 000048bd: PUSH6 0x4d6f64656c2e 000048c4: PUSH3 0x6f7272 000048c8: PUSH16 0x7752617465206661696c656473757070 000048d9: PUSH13 0x7952617465506572426c6f636b 000048e7: GASPRICE 000048e8: KECCAK256 000048e9: PUSH4 0x616c6375 000048ee: PUSH13 0x6174696e6720626f72726f7752 000048fc: PUSH2 0x7465 000048ff: KECCAK256 00004900: PUSH7 0x61696c6564ddf2 00004908: MSTORE 00004909: UNKNOWN(0xAD) 0000490a: SHL 0000490b: UNKNOWN(0xE2) 0000490c: UNKNOWN(0xC8) 0000490d: SWAP12 0000490e: PUSH10 0xc2b068fc378daa952ba7 00004919: CALL 0000491a: PUSH4 0xc4a11628 0000491f: CREATE2 00004920: GAS 00004921: UNKNOWN(0x4D) 00004922: CREATE2 00004923: UNKNOWN(0x23) 00004924: UNKNOWN(0xB3) 00004925: UNKNOWN(0xEF) 00004926: PUSH20 0x7570706c7952617465506572426c6f636b3a2063 0000493b: PUSH2 0x6c63 0000493e: PUSH22 0x6c6174696e67206f6e654d696e757352657365727665 00004955: CHAINID 00004956: PUSH2 0x6374 00004959: PUSH16 0x72206661696c656465786368616e6765 0000496a: MSTORE 0000496b: PUSH2 0x7465 0000496e: MSTORE8 0000496f: PUSH21 0x6f7265643a2065786368616e67655261746553746f 00004985: PUSH19 0x6564496e7465726e616c206661696c65646f6e 00004999: PUSH6 0x206f66207265 000049a0: PUSH5 0x65656d546f 000049a6: PUSH12 0x656e73496e206f7220726564 000049b3: PUSH6 0x656d416d6f75 000049ba: PUSH15 0x74496e206d757374206265207a6572 000049ca: PUSH16 0x72656475636520726573657276657320 000049db: PUSH22 0x6e657870656374656420756e646572666c6f77a16562 000049f2: PUSH27 0x7a723058209cbf3e7c28c685451fd0b1d99bcd020625f92225b6db 00004a0e: UNKNOWN(0xEB) 00004a0f: MSTORE 00004a10: UNKNOWN(0xB2) 00004a11: UNKNOWN(0xEC) 00004a12: GASPRICE 00004a13: UNKNOWN(0x0E) 00004a14: PUSH6
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x39ff986ae9919e38e09ab5b74f434bfa699224101c057aede66483f59ffa1787
call_targets:
0x0f69f08f872f366ad8edde03dae8812619a17536
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x39ff986ae9919e38e09ab5b74f434bfa699224101c057aede66483f59ffa1787",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x0f69f08f872f366ad8edde03dae8812619a17536"
],
"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": "0xf3fdb15a",
"selector": "0xf3fdb15a",
"calldata_variants": [
"0xf3fdb15a",
"0xf3fdb15a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5e3c462",
"selector": "0xf5e3c462",
"calldata_variants": [
"0xf5e3c462",
"0xf5e3c4620000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf851a440",
"selector": "0xf851a440",
"calldata_variants": [
"0xf851a440",
"0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8f9da28",
"selector": "0xf8f9da28",
"calldata_variants": [
"0xf8f9da28",
"0xf8f9da280000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfca7820b",
"selector": "0xfca7820b",
"calldata_variants": [
"0xfca7820b",
"0xfca7820b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfe9c44ae",
"selector": "0xfe9c44ae",
"calldata_variants": [
"0xfe9c44ae",
"0xfe9c44ae0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc37f68e2",
"selector": "0xc37f68e2",
"calldata_variants": [
"0xc37f68e2",
"0xc37f68e20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc5ebeaec",
"selector": "0xc5ebeaec",
"calldata_variants": [
"0xc5ebeaec",
"0xc5ebeaec0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5709,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6177,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7789,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 17,
"guards_detected": [],
"untrusted_call_count": 16
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x39ff986ae9919e38e09ab5b74f434bfa699224101c057aede66483f59ffa1787
call_targets:
0x0f69f08f872f366ad8edde03dae8812619a17536
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x39ff986ae9919e38e09ab5b74f434bfa699224101c057aede66483f59ffa1787",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x0f69f08f872f366ad8edde03dae8812619a17536"
],
"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": "0xf3fdb15a",
"selector": "0xf3fdb15a",
"calldata_variants": [
"0xf3fdb15a",
"0xf3fdb15a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5e3c462",
"selector": "0xf5e3c462",
"calldata_variants": [
"0xf5e3c462",
"0xf5e3c4620000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf851a440",
"selector": "0xf851a440",
"calldata_variants": [
"0xf851a440",
"0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8f9da28",
"selector": "0xf8f9da28",
"calldata_variants": [
"0xf8f9da28",
"0xf8f9da280000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfca7820b",
"selector": "0xfca7820b",
"calldata_variants": [
"0xfca7820b",
"0xfca7820b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfe9c44ae",
"selector": "0xfe9c44ae",
"calldata_variants": [
"0xfe9c44ae",
"0xfe9c44ae0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc37f68e2",
"selector": "0xc37f68e2",
"calldata_variants": [
"0xc37f68e2",
"0xc37f68e20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc5ebeaec",
"selector": "0xc5ebeaec",
"calldata_variants": [
"0xc5ebeaec",
"0xc5ebeaec0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5709,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6177,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7789,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 17,
"guards_detected": []
}
|
| medium | other | codex | Transfer-in accounting assumes full amounts received (fee-on-transfer tokens break invariants) | 75 | no | — |
viewevidence_json{
"evidence": "`mintFresh` and `repayBorrowFresh` compute mint/repay amounts from user input and then call `doTransferIn`, which only checks the return value and not the actual received amount; no balance-delta accounting is performed.",
"locations": [
"contracts/Contract.sol:1501",
"contracts/Contract.sol:1561",
"contracts/Contract.sol:1871",
"contracts/Contract.sol:1933",
"contracts/Contract.sol:2531"
],
"recommendation": "Use balance-delta accounting for transfer-ins (track token balance before/after and use the actual received amount for minting and debt reduction). Alternatively, explicitly block fee-on-transfer/deflationary tokens via whitelisting and enforce standard ERC20 behavior.",
"exploit_scenario": "If the underlying token charges a transfer fee or is deflationary, `doTransferIn` can succeed even when the contract receives fewer tokens than `mintAmount`/`repayAmount`. A borrower can have their debt reduced by the nominal amount while the protocol receives less, creating a shortfall. If the fee is routed to an attacker-controlled address, they can effectively underpay while capturing the fee, leading to protocol losses and potential insolvency over time."
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x84dffced823a505203b2daf8ae344450f324437d3296eba93a51e297ecd1b11f
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x84dffced823a505203b2daf8ae344450f324437d3296eba93a51e297ecd1b11f",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xf3fdb15a",
"selector": "0xf3fdb15a",
"calldata_variants": [
"0xf3fdb15a",
"0xf3fdb15a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5e3c462",
"selector": "0xf5e3c462",
"calldata_variants": [
"0xf5e3c462",
"0xf5e3c4620000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf851a440",
"selector": "0xf851a440",
"calldata_variants": [
"0xf851a440",
"0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8f9da28",
"selector": "0xf8f9da28",
"calldata_variants": [
"0xf8f9da28",
"0xf8f9da280000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfca7820b",
"selector": "0xfca7820b",
"calldata_variants": [
"0xfca7820b",
"0xfca7820b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfe9c44ae",
"selector": "0xfe9c44ae",
"calldata_variants": [
"0xfe9c44ae",
"0xfe9c44ae0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc37f68e2",
"selector": "0xc37f68e2",
"calldata_variants": [
"0xc37f68e2",
"0xc37f68e20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc5ebeaec",
"selector": "0xc5ebeaec",
"calldata_variants": [
"0xc5ebeaec",
"0xc5ebeaec0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 2
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 0,
"create2_count": 2
}
|
| 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": 28
}
|
| 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": 29
}
|