019bab3b-ac96-72a6-859a-d5ad1b767509
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 |
|---|---|---|---|---|
| 38793 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 38794 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 38795 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 38796 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 38797 | capability.graph | complete | 1 / 3 | 3 months ago |
| 38798 | detector.run | complete | 1 / 3 | 3 months ago |
| 38799 | validation.fork | complete | 1 / 3 | 3 months ago |
| 39176 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 39177 | tool.slither | complete | 1 / 2 | 3 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-tpxeop_y) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-tpxeop_y) UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504) uses a weak PRNG: "blockTimestamp = uint32(block.timestamp % 2 ** 32) (contracts/Contract.sol#492-493)" Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#weak-PRNG UniswapV2Pair._safeTransfer(address,address,uint256) (contracts/Contract.sol#455-465) uses a dangerous strict equality: - require(bool,string)(success && (data.length == 0 || abi.decode(data,(bool))),UniswapV2: TRANSFER_FAILED) (contracts/Contract.sol#460-465) UniswapV2Pair.mint(address) (contracts/Contract.sol#538-568) uses a dangerous strict equality: - _totalSupply == 0 (contracts/Contract.sol#551) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities Reentrancy in UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598): External calls: - liquidity = _chargeWithdrawFee(liquidity) (contracts/Contract.sol#582-583) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) State variables written after the call(s): - feeOn = _mintFee(_reserve0,_reserve1) (contracts/Contract.sol#583) - balanceOf[to] = balanceOf[to].add(value) (contracts/Contract.sol#272-273) UniswapV2ERC20.balanceOf (contracts/Contract.sol#243-247) can be used in cross function reentrancies: - UniswapV2ERC20._burn(address,uint256) (contracts/Contract.sol#274-282) - UniswapV2ERC20._mint(address,uint256) (contracts/Contract.sol#271-274) - UniswapV2ERC20._transfer(address,address,uint256) (contracts/Contract.sol#287-293) - UniswapV2ERC20.balanceOf (contracts/Contract.sol#243-247) - UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598) - _burn(address(this),liquidity) (contracts/Contract.sol#590-591) - balanceOf[from] = balanceOf[from].sub(value) (contracts/Contract.sol#277-280) UniswapV2ERC20.balanceOf (contracts/Contract.sol#243-247) can be used in cross function reentrancies: - UniswapV2ERC20._burn(address,uint256) (contracts/Contract.sol#274-282) - UniswapV2ERC20._mint(address,uint256) (contracts/Contract.sol#271-274) - UniswapV2ERC20._transfer(address,address,uint256) (contracts/Contract.sol#287-293) - UniswapV2ERC20.balanceOf (contracts/Contract.sol#243-247) - UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598) Reentrancy in UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598): External calls: - liquidity = _chargeWithdrawFee(liquidity) (contracts/Contract.sol#582-583) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) - _safeTransfer(_token0,to,amount0) (contracts/Contract.sol#591-592) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) - _safeTransfer(_token1,to,amount1) (contracts/Contract.sol#592-595) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) State variables written after the call(s): - _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#596-597) - blockTimestampLast = blockTimestamp (contracts/Contract.sol#503) UniswapV2Pair.blockTimestampLast (contracts/Contract.sol#440-442) can be used in cross function reentrancies: - UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504) - UniswapV2Pair.getReserves() (contracts/Contract.sol#450-455) - kLast = uint256(reserve0).mul(reserve1) (contracts/Contract.sol#597) UniswapV2Pair.kLast (contracts/Contract.sol#445) can be used in cross function reentrancies: - UniswapV2Pair._mintFee(uint112,uint112) (contracts/Contract.sol#505-523) - UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598) - UniswapV2Pair.kLast (contracts/Contract.sol#445) - UniswapV2Pair.mint(address) (contracts/Contract.sol#538-568) - _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#596-597) - reserve0 = uint112(balance0) (contracts/Contract.sol#502) UniswapV2Pair.reserve0 (contracts/Contract.sol#434) can be used in cross function reentrancies: - UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504) - UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598) - UniswapV2Pair.getReserves() (contracts/Contract.sol#450-455) - UniswapV2Pair.mint(address) (contracts/Contract.sol#538-568) - UniswapV2Pair.skim(address) (contracts/Contract.sol#631-636) - UniswapV2Pair.sync() (contracts/Contract.sol#636-640) - _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#596-597) - reserve1 = uint112(balance1) (contracts/Contract.sol#502-503) UniswapV2Pair.reserve1 (contracts/Contract.sol#438) can be used in cross function reentrancies: - UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504) - UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598) - UniswapV2Pair.getReserves() (contracts/Contract.sol#450-455) - UniswapV2Pair.mint(address) (contracts/Contract.sol#538-568) - UniswapV2Pair.skim(address) (contracts/Contract.sol#631-636) - UniswapV2Pair.sync() (contracts/Contract.sol#636-640) Reentrancy in UniswapV2Pair.swap(uint256,uint256,address,bytes) (contracts/Contract.sol#599-631): External calls: - _safeTransfer(_token0,to,amount0Out) (contracts/Contract.sol#612) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) - _safeTransfer(_token1,to,amount1Out) (contracts/Contract.sol#613) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) - IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data) (contracts/Contract.sol#614-615) State variables written after the call(s): - _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#629-630) - blockTimestampLast = blockTimestamp (contracts/Contract.sol#503) UniswapV2Pair.blockTimestampLast (contracts/Contract.sol#440-442) can be used in cross function reentrancies: - UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504) - UniswapV2Pair.getReserves() (contracts/Contract.sol#450-455) - _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#629-630) - reserve0 = uint112(balance0) (contracts/Contract.sol#502) UniswapV2Pair.reserve0 (contracts/Contract.sol#434) can be used in cross function reentrancies: - UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504) - UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598) - UniswapV2Pair.getReserves() (contracts/Contract.sol#450-455) - UniswapV2Pair.mint(address) (contracts/Contract.sol#538-568) - UniswapV2Pair.skim(address) (contracts/Contract.sol#631-636) - UniswapV2Pair.sync() (contracts/Contract.sol#636-640) - _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#629-630) - reserve1 = uint112(balance1) (contracts/Contract.sol#502-503) UniswapV2Pair.reserve1 (contracts/Contract.sol#438) can be used in cross function reentrancies: - UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504) - UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598) - UniswapV2Pair.getReserves() (contracts/Contract.sol#450-455) - UniswapV2Pair.mint(address) (contracts/Contract.sol#538-568) - UniswapV2Pair.skim(address) (contracts/Contract.sol#631-636) - UniswapV2Pair.sync() (contracts/Contract.sol#636-640) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1 UniswapV2Pair.initialize(address,address)._token0 (contracts/Contract.sol#476-477) lacks a zero-check on : - token0 = _token0 (contracts/Contract.sol#479-480) UniswapV2Pair.initialize(address,address)._token1 (contracts/Contract.sol#477) lacks a zero-check on : - token1 = _token1 (contracts/Contract.sol#480-481) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation Reentrancy in UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598): External calls: - liquidity = _chargeWithdrawFee(liquidity) (contracts/Contract.sol#582-583) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) State variables written after the call(s): - feeOn = _mintFee(_reserve0,_reserve1) (contracts/Contract.sol#583) - kLast = 0 (contracts/Contract.sol#523) - feeOn = _mintFee(_reserve0,_reserve1) (contracts/Contract.sol#583) - totalSupply = totalSupply.add(value) (contracts/Contract.sol#271) - _burn(address(this),liquidity) (contracts/Contract.sol#590-591) - totalSupply = totalSupply.sub(value) (contracts/Contract.sol#280-281) Reentrancy in UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598): External calls: - liquidity = _chargeWithdrawFee(liquidity) (contracts/Contract.sol#582-583) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) - _safeTransfer(_token0,to,amount0) (contracts/Contract.sol#591-592) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) - _safeTransfer(_token1,to,amount1) (contracts/Contract.sol#592-595) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) State variables written after the call(s): - _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#596-597) - price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed (contracts/Contract.sol#499-500) - _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#596-597) - price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed (contracts/Contract.sol#500-501) Reentrancy in UniswapV2Pair.swap(uint256,uint256,address,bytes) (contracts/Contract.sol#599-631): External calls: - _safeTransfer(_token0,to,amount0Out) (contracts/Contract.sol#612) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) - _safeTransfer(_token1,to,amount1Out) (contracts/Contract.sol#613) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) - IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data) (contracts/Contract.sol#614-615) State variables written after the call(s): - _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#629-630) - price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed (contracts/Contract.sol#499-500) - _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#629-630) - price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed (contracts/Contract.sol#500-501) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2 Reentrancy in UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598): External calls: - liquidity = _chargeWithdrawFee(liquidity) (contracts/Contract.sol#582-583) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) Event emitted after the call(s): - Transfer(address(0),to,value) (contracts/Contract.sol#273-274) - feeOn = _mintFee(_reserve0,_reserve1) (contracts/Contract.sol#583) - Transfer(from,address(0),value) (contracts/Contract.sol#281-282) - _burn(address(this),liquidity) (contracts/Contract.sol#590-591) Reentrancy in UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598): External calls: - liquidity = _chargeWithdrawFee(liquidity) (contracts/Contract.sol#582-583) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) - _safeTransfer(_token0,to,amount0) (contracts/Contract.sol#591-592) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) - _safeTransfer(_token1,to,amount1) (contracts/Contract.sol#592-595) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) Event emitted after the call(s): - Burn(msg.sender,amount0,amount1,to) (contracts/Contract.sol#598) - Sync(reserve0,reserve1) (contracts/Contract.sol#503) - _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#596-597) Reentrancy in UniswapV2Pair.swap(uint256,uint256,address,bytes) (contracts/Contract.sol#599-631): External calls: - _safeTransfer(_token0,to,amount0Out) (contracts/Contract.sol#612) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) - _safeTransfer(_token1,to,amount1Out) (contracts/Contract.sol#613) - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) - IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data) (contracts/Contract.sol#614-615) Event emitted after the call(s): - Swap(msg.sender,amount0In,amount1In,amount0Out,amount1Out,to) (contracts/Contract.sol#630-631) - Sync(reserve0,reserve1) (contracts/Contract.sol#503) - _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#629-630) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3 UniswapV2ERC20.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (contracts/Contract.sol#311-327) uses timestamp for comparisons Dangerous comparisons: - require(bool,string)(deadline >= block.timestamp,UniswapV2: EXPIRED) (contracts/Contract.sol#314-315) UniswapV2Pair._safeTransfer(address,address,uint256) (contracts/Contract.sol#455-465) uses timestamp for comparisons Dangerous comparisons: - require(bool,string)(success && (data.length == 0 || abi.decode(data,(bool))),UniswapV2: TRANSFER_FAILED) (contracts/Contract.sol#460-465) UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504) uses timestamp for comparisons Dangerous comparisons: - timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0 (contracts/Contract.sol#494-496) UniswapV2Pair._mintFee(uint112,uint112) (contracts/Contract.sol#505-523) uses timestamp for comparisons Dangerous comparisons: - rootK > rootKLast (contracts/Contract.sol#515) - liquidity > 0 (contracts/Contract.sol#519) UniswapV2Pair.mint(address) (contracts/Contract.sol#538-568) uses timestamp for comparisons Dangerous comparisons: - _totalSupply == 0 (contracts/Contract.sol#551) - require(bool,string)(liquidity > 0 && liquidity != uint256(- 1),Bad desired liquidity) (contracts/Contract.sol#554-555) - require(bool,string)(liquidity > 0,UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED) (contracts/Contract.sol#563-564) UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598) uses timestamp for comparisons Dangerous comparisons: - require(bool,string)(amount0 > 0 && amount1 > 0,UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED) (contracts/Contract.sol#588-590) UniswapV2Pair.swap(uint256,uint256,address,bytes) (contracts/Contract.sol#599-631) uses timestamp for comparisons Dangerous comparisons: - require(bool,string)(amount0Out < _reserve0 && amount1Out < _reserve1,UniswapV2: INSUFFICIENT_LIQUIDITY) (contracts/Contract.sol#604-607) - require(bool,string)(amount0In > 0 || amount1In > 0,UniswapV2: INSUFFICIENT_INPUT_AMOUNT) (contracts/Contract.sol#623-624) - require(bool,string)(balance0Adjusted.mul(balance1Adjusted) >= uint256(_reserve0).mul(_reserve1).mul(1000 ** 2),UniswapV2: K) (contracts/Contract.sol#627-629) - balance0 > _reserve0 - amount0Out (contracts/Contract.sol#619-621) - balance1 > _reserve1 - amount1Out (contracts/Contract.sol#622-623) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp UniswapV2ERC20.constructor() (contracts/Contract.sol#258-271) uses assembly - INLINE ASM (contracts/Contract.sol#258-261) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage 3 different versions of Solidity are used: - Version constraint ^0.6.0 is used by: -^0.6.0 (contracts/Contract.sol#3-5) -^0.6.0 (contracts/Contract.sol#78-79) - Version constraint =0.6.12 is used by: -=0.6.12 (contracts/Contract.sol#233-235) -=0.6.12 (contracts/Contract.sol#327) -=0.6.12 (contracts/Contract.sol#348) -=0.6.12 (contracts/Contract.sol#407-408) - Version constraint >=0.5.0 is used by: ->=0.5.0 (contracts/Contract.sol#374-375) ->=0.5.0 (contracts/Contract.sol#402) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used Version constraint ^0.6.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - AbiReencodingHeadOverflowWithStaticArrayCleanup - DirtyBytesArrayToStorage - NestedCalldataArrayAbiReencodingSizeValidation - ABIDecodeTwoDimensionalArrayMemory - KeccakCaching - EmptyByteArrayCopy - DynamicArrayCleanup - MissingEscapingInFormatting - ArraySliceDynamicallyEncodedBaseType - ImplicitConstructorCallvalueCheck - TupleAssignmentMultiStackSlotComponents - MemoryArrayCreationOverflow - YulOptimizerRedundantAssignmentBreakContinue. It is used by: - ^0.6.0 (contracts/Contract.sol#3-5) - ^0.6.0 (contracts/Contract.sol#78-79) Version constraint =0.6.12 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - FullInlinerNonExpressionSplitArgumentEvaluationOrder - MissingSideEffectsOnSelectorAccess - AbiReencodingHeadOverflowWithStaticArrayCleanup - DirtyBytesArrayToStorage - DataLocationChangeInInternalOverride - NestedCalldataArrayAbiReencodingSizeValidation - SignedImmutables - ABIDecodeTwoDimensionalArrayMemory - KeccakCaching - EmptyByteArrayCopy - DynamicArrayCleanup. It is used by: - =0.6.12 (contracts/Contract.sol#233-235) - =0.6.12 (contracts/Contract.sol#327) - =0.6.12 (contracts/Contract.sol#348) - =0.6.12 (contracts/Contract.sol#407-408) Version constraint >=0.5.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - DirtyBytesArrayToStorage - ABIDecodeTwoDimensionalArrayMemory - KeccakCaching - EmptyByteArrayCopy - DynamicArrayCleanup - ImplicitConstructorCallvalueCheck - TupleAssignmentMultiStackSlotComponents - MemoryArrayCreationOverflow - privateCanBeOverridden - SignedArrayStorageCopy - ABIEncoderV2StorageArrayWithMultiSlotElement - DynamicConstructorArgumentsClippedABIV2 - UninitializedFunctionPointerInConstructor - IncorrectEventSignatureInLibraries - ABIEncoderV2PackedStorage. It is used by: - >=0.5.0 (contracts/Contract.sol#374-375) - >=0.5.0 (contracts/Contract.sol#402) solc-0.6.12 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible. Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity Low level call in UniswapV2Pair._safeTransfer(address,address,uint256) (contracts/Contract.sol#455-465): - (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls Variable UniswapV2ERC20.DOMAIN_SEPARATOR (contracts/Contract.sol#249-250) is not in mixedCase Parameter UniswapV2Pair.initialize(address,address)._token0 (contracts/Contract.sol#476-477) is not in mixedCase Parameter UniswapV2Pair.initialize(address,address)._token1 (contracts/Contract.sol#477) is not in mixedCase Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions UniswapV2ERC20.DOMAIN_SEPARATOR (contracts/Contract.sol#249-250) should be immutable UniswapV2Pair.factory (contracts/Contract.sol#429-433) should be immutable Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-immutable . analyzed (9 contracts with 100 detectors), 33 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.6.12",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.6.12",
"install_stderr": null,
"install_stdout": "Version '0.6.12' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-tpxeop_y --allow-paths /tmp/slither-tpxeop_y,/tmp/slither-tpxeop_y/lib,/tmp/slither-tpxeop_y/src",
"remappings": [],
"source_files": [
"contracts/Contract.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 33,
"workspace_hash": "716b96036df36e4760b0e04538a1de043c7a97ed87d299cb26cd3bd979992b28",
"duration_seconds": 1.1022024154663086,
"solc_version_requested": "0.6.12"
}
{"no_findings":true,"summary":"Reviewed UniswapV2-style pair and LP token logic in `contracts/Contract.sol`; no exploitable vulnerabilities found in the audited scope. Correctness depends on factory-controlled parameters (swapFee/withdrawFee/migrator) being set sensibly.","findings":[]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-0snsume0
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019babed-379a-76e1-8035-fcf92f1f28bd
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Determining how to read AUDIT_BUNDLE**
exec
/bin/bash -lc ls in /tmp/codex-0snsume0 succeeded in 5ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-0snsume0 succeeded in 5ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/Contract.sol
================================================================================
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
thinking
**Analyzing UniswapV2 fork for vulnerabilities**
thinking
**Confirming audit results and preparing report**
I’m reviewing the finer details and coding behaviors to confirm no exploitable vulnerabilities exist beyond admin misconfiguration risks. I’ll produce a JSON summary reflecting a thorough audit of the UniswapV2-style pair contract emphasizing that any risks stem mainly from factory-controlled parameters and not from inherent code bugs.
codex
{"no_findings":true,"summary":"Reviewed UniswapV2-style pair and LP token logic in `contracts/Contract.sol`; no exploitable vulnerabilities found in the audited scope. Correctness depends on factory-controlled parameters (swapFee/withdrawFee/migrator) being set sensibly.","findings":[]}
tokens used
19,436
{
"codex": {
"ran_at": "2026-01-11T07:22:20.019323+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "Reviewed UniswapV2-style pair and LP token logic in `contracts/Contract.sol`; no exploitable vulnerabilities found in the audited scope. Correctness depends on factory-controlled parameters (swapFee/withdrawFee/migrator) being set sensibly.",
"raw_final": {
"summary": "Reviewed UniswapV2-style pair and LP token logic in `contracts/Contract.sol`; no exploitable vulnerabilities found in the audited scope. Correctness depends on factory-controlled parameters (swapFee/withdrawFee/migrator) being set sensibly.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"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 0x01a9 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x6a627842 00000026: GT 00000027: PUSH2 0x00f9 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xba9a7a56 00000031: GT 00000032: PUSH2 0x0097 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xd21220a7 0000003c: GT 0000003d: PUSH2 0x0071 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xd21220a7 00000047: EQ 00000048: PUSH2 0x0534 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xd505accf 00000052: EQ 00000053: PUSH2 0x053c 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xdd62ed3e 0000005d: EQ 0000005e: PUSH2 0x058d 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0xfff6cae9 00000068: EQ 00000069: PUSH2 0x05bb 0000006c: JUMPI 0000006d: PUSH2 0x01a9 00000070: JUMP 00000071: JUMPDEST 00000072: DUP1 00000073: PUSH4 0xba9a7a56 00000078: EQ 00000079: PUSH2 0x04fe 0000007c: JUMPI 0000007d: DUP1 0000007e: PUSH4 0xbc25cf77 00000083: EQ 00000084: PUSH2 0x0506 00000087: JUMPI 00000088: DUP1 00000089: PUSH4 0xc45a0155 0000008e: EQ 0000008f: PUSH2 0x052c 00000092: JUMPI 00000093: PUSH2 0x01a9 00000096: JUMP 00000097: JUMPDEST 00000098: DUP1 00000099: PUSH4 0x7ecebe00 0000009e: GT 0000009f: PUSH2 0x00d3 000000a2: JUMPI 000000a3: DUP1 000000a4: PUSH4 0x7ecebe00 000000a9: EQ 000000aa: PUSH2 0x0465 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0x89afcb44 000000b4: EQ 000000b5: PUSH2 0x048b 000000b8: JUMPI 000000b9: DUP1 000000ba: PUSH4 0x95d89b41 000000bf: EQ 000000c0: PUSH2 0x04ca 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0xa9059cbb 000000ca: EQ 000000cb: PUSH2 0x04d2 000000ce: JUMPI 000000cf: PUSH2 0x01a9 000000d2: JUMP 000000d3: JUMPDEST 000000d4: DUP1 000000d5: PUSH4 0x6a627842 000000da: EQ 000000db: PUSH2 0x0411 000000de: JUMPI 000000df: DUP1 000000e0: PUSH4 0x70a08231 000000e5: EQ 000000e6: PUSH2 0x0437 000000e9: JUMPI 000000ea: DUP1 000000eb: PUSH4 0x7464fc3d 000000f0: EQ 000000f1: PUSH2 0x045d 000000f4: JUMPI 000000f5: PUSH2 0x01a9 000000f8: JUMP 000000f9: JUMPDEST 000000fa: DUP1 000000fb: PUSH4 0x23b872dd 00000100: GT 00000101: PUSH2 0x0166 00000104: JUMPI 00000105: DUP1 00000106: PUSH4 0x3644e515 0000010b: GT 0000010c: PUSH2 0x0140 0000010f: JUMPI 00000110: DUP1 00000111: PUSH4 0x3644e515 00000116: EQ 00000117: PUSH2 0x03cb 0000011a: JUMPI 0000011b: DUP1 0000011c: PUSH4 0x485cc955 00000121: EQ 00000122: PUSH2 0x03d3 00000125: JUMPI 00000126: DUP1 00000127: PUSH4 0x5909c0d5 0000012c: EQ 0000012d: PUSH2 0x0401 00000130: JUMPI 00000131: DUP1 00000132: PUSH4 0x5a3d5493 00000137: EQ 00000138: PUSH2 0x0409 0000013b: JUMPI 0000013c: PUSH2 0x01a9 0000013f: JUMP 00000140: JUMPDEST 00000141: DUP1 00000142: PUSH4 0x23b872dd 00000147: EQ 00000148: PUSH2 0x036f 0000014b: JUMPI 0000014c: DUP1 0000014d: PUSH4 0x30adf81f 00000152: EQ 00000153: PUSH2 0x03a5 00000156: JUMPI 00000157: DUP1 00000158: PUSH4 0x313ce567 0000015d: EQ 0000015e: PUSH2 0x03ad 00000161: JUMPI 00000162: PUSH2 0x01a9 00000165: JUMP 00000166: JUMPDEST 00000167: DUP1 00000168: PUSH4 0x022c0d9f 0000016d: EQ 0000016e: PUSH2 0x01ae 00000171: JUMPI 00000172: DUP1 00000173: PUSH4 0x06fdde03 00000178: EQ 00000179: PUSH2 0x023c 0000017c: JUMPI 0000017d: DUP1 0000017e: PUSH4 0x0902f1ac 00000183: EQ 00000184: PUSH2 0x02b9 00000187: JUMPI 00000188: DUP1 00000189: PUSH4 0x095ea7b3 0000018e: EQ 0000018f: PUSH2 0x02f1 00000192: JUMPI 00000193: DUP1 00000194: PUSH4 0x0dfe1681 00000199: EQ 0000019a: PUSH2 0x0331 0000019d: JUMPI 0000019e: DUP1 0000019f: PUSH4 0x18160ddd 000001a4: EQ 000001a5: PUSH2 0x0355 000001a8: JUMPI 000001a9: JUMPDEST 000001aa: PUSH1 0x00 000001ac: DUP1 000001ad: REVERT 000001ae: JUMPDEST 000001af: PUSH2 0x023a 000001b2: PUSH1 0x04 000001b4: DUP1 000001b5: CALLDATASIZE 000001b6: SUB 000001b7: PUSH1 0x80 000001b9: DUP2 000001ba: LT 000001bb: ISZERO 000001bc: PUSH2 0x01c4 000001bf: JUMPI 000001c0: PUSH1 0x00 000001c2: DUP1 000001c3: REVERT 000001c4: JUMPDEST 000001c5: DUP2 000001c6: CALLDATALOAD 000001c7: SWAP2 000001c8: PUSH1 0x20 000001ca: DUP2 000001cb: ADD 000001cc: CALLDATALOAD 000001cd: SWAP2 000001ce: PUSH1 0x01 000001d0: PUSH1 0x01 000001d2: PUSH1 0xa0 000001d4: SHL 000001d5: SUB 000001d6: PUSH1 0x40 000001d8: DUP4 000001d9: ADD 000001da: CALLDATALOAD 000001db: AND 000001dc: SWAP2 000001dd: SWAP1 000001de: DUP2 000001df: ADD 000001e0: SWAP1 000001e1: PUSH1 0x80 000001e3: DUP2 000001e4: ADD 000001e5: PUSH1 0x60 000001e7: DUP3 000001e8: ADD 000001e9: CALLDATALOAD 000001ea: PUSH5 0x0100000000 000001f0: DUP2 000001f1: GT 000001f2: ISZERO 000001f3: PUSH2 0x01fb 000001f6: JUMPI 000001f7: PUSH1 0x00 000001f9: DUP1 000001fa: REVERT 000001fb: JUMPDEST 000001fc: DUP3 000001fd: ADD 000001fe: DUP4 000001ff: PUSH1 0x20 00000201: DUP3 00000202: ADD 00000203: GT 00000204: ISZERO 00000205: PUSH2 0x020d 00000208: JUMPI 00000209: PUSH1 0x00 0000020b: DUP1 0000020c: REVERT 0000020d: JUMPDEST 0000020e: DUP1 0000020f: CALLDATALOAD 00000210: SWAP1 00000211: PUSH1 0x20 00000213: ADD 00000214: SWAP2 00000215: DUP5 00000216: PUSH1 0x01 00000218: DUP4 00000219: MUL 0000021a: DUP5 0000021b: ADD 0000021c: GT 0000021d: PUSH5 0x0100000000 00000223: DUP4 00000224: GT 00000225: OR 00000226: ISZERO 00000227: PUSH2 0x022f 0000022a: JUMPI 0000022b: PUSH1 0x00 0000022d: DUP1 0000022e: REVERT 0000022f: JUMPDEST 00000230: POP 00000231: SWAP1 00000232: SWAP3 00000233: POP 00000234: SWAP1 00000235: POP 00000236: PUSH2 0x05c3 00000239: JUMP 0000023a: JUMPDEST 0000023b: STOP 0000023c: JUMPDEST 0000023d: PUSH2 0x0244 00000240: PUSH2 0x0b3d 00000243: JUMP 00000244: JUMPDEST 00000245: PUSH1 0x40 00000247: DUP1 00000248: MLOAD 00000249: PUSH1 0x20 0000024b: DUP1 0000024c: DUP3 0000024d: MSTORE 0000024e: DUP4 0000024f: MLOAD 00000250: DUP2 00000251: DUP4 00000252: ADD 00000253: MSTORE 00000254: DUP4 00000255: MLOAD 00000256: SWAP2 00000257: SWAP3 00000258: DUP4 00000259: SWAP3 0000025a: SWAP1 0000025b: DUP4 0000025c: ADD 0000025d: SWAP2 0000025e: DUP6 0000025f: ADD 00000260: SWAP1 00000261: DUP1 00000262: DUP4 00000263: DUP4 00000264: PUSH1 0x00 00000266: JUMPDEST 00000267: DUP4 00000268: DUP2 00000269: LT 0000026a: ISZERO 0000026b: PUSH2 0x027e 0000026e: JUMPI 0000026f: DUP2 00000270: DUP2 00000271: ADD 00000272: MLOAD 00000273: DUP4 00000274: DUP3 00000275: ADD 00000276: MSTORE 00000277: PUSH1 0x20 00000279: ADD 0000027a: PUSH2 0x0266 0000027d: JUMP 0000027e: JUMPDEST 0000027f: POP 00000280: POP 00000281: POP 00000282: POP 00000283: SWAP1 00000284: POP 00000285: SWAP1 00000286: DUP2 00000287: ADD 00000288: SWAP1 00000289: PUSH1 0x1f 0000028b: AND 0000028c: DUP1 0000028d: ISZERO 0000028e: PUSH2 0x02ab 00000291: JUMPI 00000292: DUP1 00000293: DUP3 00000294: SUB 00000295: DUP1 00000296: MLOAD 00000297: PUSH1 0x01 00000299: DUP4 0000029a: PUSH1 0x20 0000029c: SUB 0000029d: PUSH2 0x0100 000002a0: EXP 000002a1: SUB 000002a2: NOT 000002a3: AND 000002a4: DUP2 000002a5: MSTORE 000002a6: PUSH1 0x20 000002a8: ADD 000002a9: SWAP2 000002aa: POP 000002ab: JUMPDEST 000002ac: POP 000002ad: SWAP3 000002ae: POP 000002af: POP 000002b0: POP 000002b1: PUSH1 0x40 000002b3: MLOAD 000002b4: DUP1 000002b5: SWAP2 000002b6: SUB 000002b7: SWAP1 000002b8: RETURN 000002b9: JUMPDEST 000002ba: PUSH2 0x02c1 000002bd: PUSH2 0x0b6c 000002c0: JUMP 000002c1: JUMPDEST 000002c2: PUSH1 0x40 000002c4: DUP1 000002c5: MLOAD 000002c6: PUSH1 0x01 000002c8: PUSH1 0x01 000002ca: PUSH1 0x70 000002cc: SHL 000002cd: SUB 000002ce: SWAP5 000002cf: DUP6 000002d0: AND 000002d1: DUP2 000002d2: MSTORE 000002d3: SWAP3 000002d4: SWAP1 000002d5: SWAP4 000002d6: AND 000002d7: PUSH1 0x20 000002d9: DUP4 000002da: ADD 000002db: MSTORE 000002dc: PUSH4 0xffffffff 000002e1: AND 000002e2: DUP2 000002e3: DUP4 000002e4: ADD 000002e5: MSTORE 000002e6: SWAP1 000002e7: MLOAD 000002e8: SWAP1 000002e9: DUP2 000002ea: SWAP1 000002eb: SUB 000002ec: PUSH1 0x60 000002ee: ADD 000002ef: SWAP1 000002f0: RETURN 000002f1: JUMPDEST 000002f2: PUSH2 0x031d 000002f5: PUSH1 0x04 000002f7: DUP1 000002f8: CALLDATASIZE 000002f9: SUB 000002fa: PUSH1 0x40 000002fc: DUP2 000002fd: LT 000002fe: ISZERO 000002ff: PUSH2 0x0307 00000302: JUMPI 00000303: PUSH1 0x00 00000305: DUP1 00000306: REVERT 00000307: JUMPDEST 00000308: POP 00000309: PUSH1 0x01 0000030b: PUSH1 0x01 0000030d: PUSH1 0xa0 0000030f: SHL 00000310: SUB 00000311: DUP2 00000312: CALLDATALOAD 00000313: AND 00000314: SWAP1 00000315: PUSH1 0x20 00000317: ADD 00000318: CALLDATALOAD 00000319: PUSH2 0x0b96 0000031c: JUMP 0000031d: JUMPDEST 0000031e: PUSH1 0x40 00000320: DUP1 00000321: MLOAD 00000322: SWAP2 00000323: ISZERO 00000324: ISZERO 00000325: DUP3 00000326: MSTORE 00000327: MLOAD 00000328: SWAP1 00000329: DUP2 0000032a: SWAP1 0000032b: SUB 0000032c: PUSH1 0x20 0000032e: ADD 0000032f: SWAP1 00000330: RETURN 00000331: JUMPDEST 00000332: PUSH2 0x0339 00000335: PUSH2 0x0bad 00000338: JUMP 00000339: JUMPDEST 0000033a: PUSH1 0x40 0000033c: DUP1 0000033d: MLOAD 0000033e: PUSH1 0x01 00000340: PUSH1 0x01 00000342: PUSH1 0xa0 00000344: SHL 00000345: SUB 00000346: SWAP1 00000347: SWAP3 00000348: AND 00000349: DUP3 0000034a: MSTORE 0000034b: MLOAD 0000034c: SWAP1 0000034d: DUP2 0000034e: SWAP1 0000034f: SUB 00000350: PUSH1 0x20 00000352: ADD 00000353: SWAP1 00000354: RETURN 00000355: JUMPDEST 00000356: PUSH2 0x035d 00000359: PUSH2 0x0bbc 0000035c: JUMP 0000035d: JUMPDEST 0000035e: PUSH1 0x40 00000360: DUP1 00000361: MLOAD 00000362: SWAP2 00000363: DUP3 00000364: MSTORE 00000365: MLOAD 00000366: SWAP1 00000367: DUP2 00000368: SWAP1 00000369: SUB 0000036a: PUSH1 0x20 0000036c: ADD 0000036d: SWAP1 0000036e: RETURN 0000036f: JUMPDEST 00000370: PUSH2 0x031d 00000373: PUSH1 0x04 00000375: DUP1 00000376: CALLDATASIZE 00000377: SUB 00000378: PUSH1 0x60 0000037a: DUP2 0000037b: LT 0000037c: ISZERO 0000037d: PUSH2 0x0385 00000380: JUMPI 00000381: PUSH1 0x00 00000383: DUP1 00000384: REVERT 00000385: JUMPDEST 00000386: POP 00000387: PUSH1 0x01 00000389: PUSH1 0x01 0000038b: PUSH1 0xa0 0000038d: SHL 0000038e: SUB 0000038f: DUP2 00000390: CALLDATALOAD 00000391: DUP2 00000392: AND 00000393: SWAP2 00000394: PUSH1 0x20 00000396: DUP2 00000397: ADD 00000398: CALLDATALOAD 00000399: SWAP1 0000039a: SWAP2 0000039b: AND 0000039c: SWAP1 0000039d: PUSH1 0x40 0000039f: ADD 000003a0: CALLDATALOAD 000003a1: PUSH2 0x0bc2 000003a4: JUMP 000003a5: JUMPDEST 000003a6: PUSH2 0x035d 000003a9: PUSH2 0x0c56 000003ac: JUMP 000003ad: JUMPDEST 000003ae: PUSH2 0x03b5 000003b1: PUSH2 0x0c7a 000003b4: JUMP 000003b5: JUMPDEST 000003b6: PUSH1 0x40 000003b8: DUP1 000003b9: MLOAD 000003ba: PUSH1 0xff 000003bc: SWAP1 000003bd: SWAP3 000003be: AND 000003bf: DUP3 000003c0: MSTORE 000003c1: MLOAD 000003c2: SWAP1 000003c3: DUP2 000003c4: SWAP1 000003c5: SUB 000003c6: PUSH1 0x20 000003c8: ADD 000003c9: SWAP1 000003ca: RETURN 000003cb: JUMPDEST 000003cc: PUSH2 0x035d 000003cf: PUSH2 0x0c7f 000003d2: JUMP 000003d3: JUMPDEST 000003d4: PUSH2 0x023a 000003d7: PUSH1 0x04 000003d9: DUP1 000003da: CALLDATASIZE 000003db: SUB 000003dc: PUSH1 0x40 000003de: DUP2 000003df: LT 000003e0: ISZERO 000003e1: PUSH2 0x03e9 000003e4: JUMPI 000003e5: PUSH1 0x00 000003e7: DUP1 000003e8: REVERT 000003e9: JUMPDEST 000003ea: POP 000003eb: PUSH1 0x01 000003ed: PUSH1 0x01 000003ef: PUSH1 0xa0 000003f1: SHL 000003f2: SUB 000003f3: DUP2 000003f4: CALLDATALOAD 000003f5: DUP2 000003f6: AND 000003f7: SWAP2 000003f8: PUSH1 0x20 000003fa: ADD 000003fb: CALLDATALOAD 000003fc: AND 000003fd: PUSH2 0x0c85 00000400: JUMP 00000401: JUMPDEST 00000402: PUSH2 0x035d 00000405: PUSH2 0x0d09 00000408: JUMP 00000409: JUMPDEST 0000040a: PUSH2 0x035d 0000040d: PUSH2 0x0d0f 00000410: JUMP 00000411: JUMPDEST 00000412: PUSH2 0x035d 00000415: PUSH1 0x04 00000417: DUP1 00000418: CALLDATASIZE 00000419: SUB 0000041a: PUSH1 0x20 0000041c: DUP2 0000041d: LT 0000041e: ISZERO 0000041f: PUSH2 0x0427 00000422: JUMPI 00000423: PUSH1 0x00 00000425: DUP1 00000426: REVERT 00000427: JUMPDEST 00000428: POP 00000429: CALLDATALOAD 0000042a: PUSH1 0x01 0000042c: PUSH1 0x01 0000042e: PUSH1 0xa0 00000430: SHL 00000431: SUB 00000432: AND 00000433: PUSH2 0x0d15 00000436: JUMP 00000437: JUMPDEST 00000438: PUSH2 0x035d 0000043b: PUSH1 0x04 0000043d: DUP1 0000043e: CALLDATASIZE 0000043f: SUB 00000440: PUSH1 0x20 00000442: DUP2 00000443: LT 00000444: ISZERO 00000445: PUSH2 0x044d 00000448: JUMPI 00000449: PUSH1 0x00 0000044b: DUP1 0000044c: REVERT 0000044d: JUMPDEST 0000044e: POP 0000044f: CALLDATALOAD 00000450: PUSH1 0x01 00000452: PUSH1 0x01 00000454: PUSH1 0xa0 00000456: SHL 00000457: SUB 00000458: AND 00000459: PUSH2 0x1191 0000045c: JUMP 0000045d: JUMPDEST 0000045e: PUSH2 0x035d 00000461: PUSH2 0x11a3 00000464: JUMP 00000465: JUMPDEST 00000466: PUSH2 0x035d 00000469: PUSH1 0x04 0000046b: DUP1 0000046c: CALLDATASIZE 0000046d: SUB 0000046e: PUSH1 0x20 00000470: DUP2 00000471: LT 00000472: ISZERO 00000473: PUSH2 0x047b 00000476: JUMPI 00000477: PUSH1 0x00 00000479: DUP1 0000047a: REVERT 0000047b: JUMPDEST 0000047c: POP 0000047d: CALLDATALOAD 0000047e: PUSH1 0x01 00000480: PUSH1 0x01 00000482: PUSH1 0xa0 00000484: SHL 00000485: SUB 00000486: AND 00000487: PUSH2 0x11a9 0000048a: JUMP 0000048b: JUMPDEST 0000048c: PUSH2 0x04b1 0000048f: PUSH1 0x04 00000491: DUP1 00000492: CALLDATASIZE 00000493: SUB 00000494: PUSH1 0x20 00000496: DUP2 00000497: LT 00000498: ISZERO 00000499: PUSH2 0x04a1 0000049c: JUMPI 0000049d: PUSH1 0x00 0000049f: DUP1 000004a0: REVERT 000004a1: JUMPDEST 000004a2: POP 000004a3: CALLDATALOAD 000004a4: PUSH1 0x01 000004a6: PUSH1 0x01 000004a8: PUSH1 0xa0 000004aa: SHL 000004ab: SUB 000004ac: AND 000004ad: PUSH2 0x11bb 000004b0: JUMP 000004b1: JUMPDEST 000004b2: PUSH1 0x40 000004b4: DUP1 000004b5: MLOAD 000004b6: SWAP3 000004b7: DUP4 000004b8: MSTORE 000004b9: PUSH1 0x20 000004bb: DUP4 000004bc: ADD 000004bd: SWAP2 000004be: SWAP1 000004bf: SWAP2 000004c0: MSTORE 000004c1: DUP1 000004c2: MLOAD 000004c3: SWAP2 000004c4: DUP3 000004c5: SWAP1 000004c6: SUB 000004c7: ADD 000004c8: SWAP1 000004c9: RETURN 000004ca: JUMPDEST 000004cb: PUSH2 0x0244 000004ce: PUSH2 0x15ea 000004d1: JUMP 000004d2: JUMPDEST 000004d3: PUSH2 0x031d 000004d6: PUSH1 0x04 000004d8: DUP1 000004d9: CALLDATASIZE 000004da: SUB 000004db: PUSH1 0x40 000004dd: DUP2 000004de: LT 000004df: ISZERO 000004e0: PUSH2 0x04e8 000004e3: JUMPI 000004e4: PUSH1 0x00 000004e6: DUP1 000004e7: REVERT 000004e8: JUMPDEST 000004e9: POP 000004ea: PUSH1 0x01 000004ec: PUSH1 0x01 000004ee: PUSH1 0xa0 000004f0: SHL 000004f1: SUB 000004f2: DUP2 000004f3: CALLDATALOAD 000004f4: AND 000004f5: SWAP1 000004f6: PUSH1 0x20 000004f8: ADD 000004f9: CALLDATALOAD 000004fa: PUSH2 0x160c 000004fd: JUMP 000004fe: JUMPDEST 000004ff: PUSH2 0x035d 00000502: PUSH2 0x1619 00000505: JUMP 00000506: JUMPDEST 00000507: PUSH2 0x023a 0000050a: PUSH1 0x04 0000050c: DUP1 0000050d: CALLDATASIZE 0000050e: SUB 0000050f: PUSH1 0x20 00000511: DUP2 00000512: LT 00000513: ISZERO 00000514: PUSH2 0x051c 00000517: JUMPI 00000518: PUSH1 0x00 0000051a: DUP1 0000051b: REVERT 0000051c: JUMPDEST 0000051d: POP 0000051e: CALLDATALOAD 0000051f: PUSH1 0x01 00000521: PUSH1 0x01 00000523: PUSH1 0xa0 00000525: SHL 00000526: SUB 00000527: AND 00000528: PUSH2 0x161f 0000052b: JUMP 0000052c: JUMPDEST 0000052d: PUSH2 0x0339 00000530: PUSH2 0x1791 00000533: JUMP 00000534: JUMPDEST 00000535: PUSH2 0x0339 00000538: PUSH2 0x17a0 0000053b: JUMP 0000053c: JUMPDEST 0000053d: PUSH2 0x023a 00000540: PUSH1 0x04 00000542: DUP1 00000543: CALLDATASIZE 00000544: SUB 00000545: PUSH1 0xe0 00000547: DUP2 00000548: LT 00000549: ISZERO 0000054a: PUSH2 0x0552 0000054d: JUMPI 0000054e: PUSH1 0x00 00000550: DUP1 00000551: REVERT 00000552: JUMPDEST 00000553: POP 00000554: PUSH1 0x01 00000556: PUSH1 0x01 00000558: PUSH1 0xa0 0000055a: SHL 0000055b: SUB 0000055c: DUP2 0000055d: CALLDATALOAD 0000055e: DUP2 0000055f: AND 00000560: SWAP2 00000561: PUSH1 0x20 00000563: DUP2 00000564: ADD 00000565: CALLDATALOAD 00000566: SWAP1 00000567: SWAP2 00000568: AND 00000569: SWAP1 0000056a: PUSH1 0x40 0000056c: DUP2 0000056d: ADD 0000056e: CALLDATALOAD 0000056f: SWAP1 00000570: PUSH1 0x60 00000572: DUP2 00000573: ADD 00000574: CALLDATALOAD 00000575: SWAP1 00000576: PUSH1 0xff 00000578: PUSH1 0x80 0000057a: DUP3 0000057b: ADD 0000057c: CALLDATALOAD 0000057d: AND 0000057e: SWAP1 0000057f: PUSH1 0xa0 00000581: DUP2 00000582: ADD 00000583: CALLDATALOAD 00000584: SWAP1 00000585: PUSH1 0xc0 00000587: ADD 00000588: CALLDATALOAD 00000589: PUSH2 0x17af 0000058c: JUMP 0000058d: JUMPDEST 0000058e: PUSH2 0x035d 00000591: PUSH1 0x04 00000593: DUP1 00000594: CALLDATASIZE 00000595: SUB 00000596: PUSH1 0x40 00000598: DUP2 00000599: LT 0000059a: ISZERO 0000059b: PUSH2 0x05a3 0000059e: JUMPI 0000059f: PUSH1 0x00 000005a1: DUP1 000005a2: REVERT 000005a3: JUMPDEST 000005a4: POP 000005a5: PUSH1 0x01 000005a7: PUSH1 0x01 000005a9: PUSH1 0xa0 000005ab: SHL 000005ac: SUB 000005ad: DUP2 000005ae: CALLDATALOAD 000005af: DUP2 000005b0: AND 000005b1: SWAP2 000005b2: PUSH1 0x20 000005b4: ADD 000005b5: CALLDATALOAD 000005b6: AND 000005b7: PUSH2 0x19b1 000005ba: JUMP 000005bb: JUMPDEST 000005bc: PUSH2 0x023a 000005bf: PUSH2 0x19ce 000005c2: JUMP 000005c3: JUMPDEST 000005c4: PUSH1 0x0c 000005c6: SLOAD 000005c7: PUSH1 0x01 000005c9: EQ 000005ca: PUSH2 0x060e 000005cd: JUMPI 000005ce: PUSH1 0x40 000005d0: DUP1 000005d1: MLOAD 000005d2: PUSH3 0x461bcd 000005d6: PUSH1 0xe5 000005d8: SHL 000005d9: DUP2 000005da: MSTORE 000005db: PUSH1 0x20 000005dd: PUSH1 0x04 000005df: DUP3 000005e0: ADD 000005e1: MSTORE 000005e2: PUSH1 0x11 000005e4: PUSH1 0x24 000005e6: DUP3 000005e7: ADD 000005e8: MSTORE 000005e9: PUSH17 0x155b9a5cddd85c158c8e881313d0d2d151 000005fb: PUSH1 0x7a 000005fd: SHL 000005fe: PUSH1 0x44 00000600: DUP3 00000601: ADD 00000602: MSTORE 00000603: SWAP1 00000604: MLOAD 00000605: SWAP1 00000606: DUP2 00000607: SWAP1 00000608: SUB 00000609: PUSH1 0x64 0000060b: ADD 0000060c: SWAP1 0000060d: REVERT 0000060e: JUMPDEST 0000060f: PUSH1 0x00 00000611: PUSH1 0x0c 00000613: SSTORE 00000614: DUP5 00000615: ISZERO 00000616: ISZERO 00000617: DUP1 00000618: PUSH2 0x0621 0000061b: JUMPI 0000061c: POP 0000061d: PUSH1 0x00 0000061f: DUP5 00000620: GT 00000621: JUMPDEST 00000622: PUSH2 0x065c 00000625: JUMPI 00000626: PUSH1 0x40 00000628: MLOAD 00000629: PUSH3 0x461bcd 0000062d: PUSH1 0xe5 0000062f: SHL 00000630: DUP2 00000631: MSTORE 00000632: PUSH1 0x04 00000634: ADD 00000635: DUP1 00000636: DUP1 00000637: PUSH1 0x20 00000639: ADD 0000063a: DUP3 0000063b: DUP2 0000063c: SUB 0000063d: DUP3 0000063e: MSTORE 0000063f: PUSH1 0x25 00000641: DUP2 00000642: MSTORE 00000643: PUSH1 0x20 00000645: ADD 00000646: DUP1 00000647: PUSH2 0x268f 0000064a: PUSH1 0x25 0000064c: SWAP2 0000064d: CODECOPY 0000064e: PUSH1 0x40 00000650: ADD 00000651: SWAP2 00000652: POP 00000653: POP 00000654: PUSH1 0x40 00000656: MLOAD 00000657: DUP1 00000658: SWAP2 00000659: SUB 0000065a: SWAP1 0000065b: REVERT 0000065c: JUMPDEST 0000065d: PUSH1 0x00 0000065f: DUP1 00000660: PUSH2 0x0667 00000663: PUSH2 0x0b6c 00000666: JUMP 00000667: JUMPDEST 00000668: POP 00000669: SWAP2 0000066a: POP 0000066b: SWAP2 0000066c: POP 0000066d: DUP2 0000066e: PUSH1 0x01 00000670: PUSH1 0x01 00000672: PUSH1 0x70 00000674: SHL 00000675: SUB 00000676: AND 00000677: DUP8 00000678: LT 00000679: DUP1 0000067a: ISZERO 0000067b: PUSH2 0x068c 0000067e: JUMPI 0000067f: POP 00000680: DUP1 00000681: PUSH1 0x01 00000683: PUSH1 0x01 00000685: PUSH1 0x70 00000687: SHL 00000688: SUB 00000689: AND 0000068a: DUP7 0000068b: LT 0000068c: JUMPDEST 0000068d: PUSH2 0x06c7 00000690: JUMPI 00000691: PUSH1 0x40 00000693: MLOAD 00000694: PUSH3 0x461bcd 00000698: PUSH1 0xe5 0000069a: SHL 0000069b: DUP2 0000069c: MSTORE 0000069d: PUSH1 0x04 0000069f: ADD 000006a0: DUP1 000006a1: DUP1 000006a2: PUSH1 0x20 000006a4: ADD 000006a5: DUP3 000006a6: DUP2 000006a7: SUB 000006a8: DUP3 000006a9: MSTORE 000006aa: PUSH1 0x21 000006ac: DUP2 000006ad: MSTORE 000006ae: PUSH1 0x20 000006b0: ADD 000006b1: DUP1 000006b2: PUSH2 0x26d8 000006b5: PUSH1 0x21 000006b7: SWAP2 000006b8: CODECOPY 000006b9: PUSH1 0x40 000006bb: ADD 000006bc: SWAP2 000006bd: POP 000006be: POP 000006bf: PUSH1 0x40 000006c1: MLOAD 000006c2: DUP1 000006c3: SWAP2 000006c4: SUB 000006c5: SWAP1 000006c6: REVERT 000006c7: JUMPDEST 000006c8: PUSH1 0x06 000006ca: SLOAD 000006cb: PUSH1 0x07 000006cd: SLOAD 000006ce: PUSH1 0x00 000006d0: SWAP2 000006d1: DUP3 000006d2: SWAP2 000006d3: PUSH1 0x01 000006d5: PUSH1 0x01 000006d7: PUSH1 0xa0 000006d9: SHL 000006da: SUB 000006db: SWAP2 000006dc: DUP3 000006dd: AND 000006de: SWAP2 000006df: SWAP1 000006e0: DUP2 000006e1: AND 000006e2: SWAP1 000006e3: DUP10 000006e4: AND 000006e5: DUP3 000006e6: EQ 000006e7: DUP1 000006e8: ISZERO 000006e9: SWAP1 000006ea: PUSH2 0x0705 000006ed: JUMPI 000006ee: POP 000006ef: DUP1 000006f0: PUSH1 0x01 000006f2: PUSH1 0x01 000006f4: PUSH1 0xa0 000006f6: SHL 000006f7: SUB 000006f8: AND 000006f9: DUP10 000006fa: PUSH1 0x01 000006fc: PUSH1 0x01 000006fe: PUSH1 0xa0 00000700: SHL 00000701: SUB 00000702: AND 00000703: EQ 00000704: ISZERO 00000705: JUMPDEST 00000706: PUSH2 0x074e 00000709: JUMPI 0000070a: PUSH1 0x40 0000070c: DUP1 0000070d: MLOAD 0000070e: PUSH3 0x461bcd 00000712: PUSH1 0xe5 00000714: SHL 00000715: DUP2 00000716: MSTORE 00000717: PUSH1 0x20 00000719: PUSH1 0x04 0000071b: DUP3 0000071c: ADD 0000071d: MSTORE 0000071e: PUSH1 0x15 00000720: PUSH1 0x24 00000722: DUP3 00000723: ADD 00000724: MSTORE 00000725: PUSH21 0x556e697377617056323a20494e56414c49445f544f 0000073b: PUSH1 0x58 0000073d: SHL 0000073e: PUSH1 0x44 00000740: DUP3 00000741: ADD 00000742: MSTORE 00000743: SWAP1 00000744: MLOAD 00000745: SWAP1 00000746: DUP2 00000747: SWAP1 00000748: SUB 00000749: PUSH1 0x64 0000074b: ADD 0000074c: SWAP1 0000074d: REVERT 0000074e: JUMPDEST 0000074f: DUP11 00000750: ISZERO 00000751: PUSH2 0x075f 00000754: JUMPI 00000755: PUSH2 0x075f 00000758: DUP3 00000759: DUP11 0000075a: DUP14 0000075b: PUSH2 0x1b30 0000075e: JUMP 0000075f: JUMPDEST 00000760: DUP10 00000761: ISZERO 00000762: PUSH2 0x0770 00000765: JUMPI 00000766: PUSH2 0x0770 00000769: DUP2 0000076a: DUP11 0000076b: DUP13 0000076c: PUSH2 0x1b30 0000076f: JUMP 00000770: JUMPDEST 00000771: DUP7 00000772: ISZERO 00000773: PUSH2 0x0822 00000776: JUMPI 00000777: DUP9 00000778: PUSH1 0x01 0000077a: PUSH1 0x01 0000077c: PUSH1 0xa0 0000077e: SHL 0000077f: SUB 00000780: AND 00000781: PUSH4 0x10d1e85c 00000786: CALLER 00000787: DUP14 00000788: DUP14 00000789: DUP13 0000078a: DUP13 0000078b: PUSH1 0x40 0000078d: MLOAD 0000078e: DUP7 0000078f: PUSH4 0xffffffff 00000794: AND 00000795: PUSH1 0xe0 00000797: SHL 00000798: DUP2 00000799: MSTORE 0000079a: PUSH1 0x04 0000079c: ADD 0000079d: DUP1 0000079e: DUP7 0000079f: PUSH1 0x01 000007a1: PUSH1 0x01 000007a3: PUSH1 0xa0 000007a5: SHL 000007a6: SUB 000007a7: AND 000007a8: DUP2 000007a9: MSTORE 000007aa: PUSH1 0x20 000007ac: ADD 000007ad: DUP6 000007ae: DUP2 000007af: MSTORE 000007b0: PUSH1 0x20 000007b2: ADD 000007b3: DUP5 000007b4: DUP2 000007b5: MSTORE 000007b6: PUSH1 0x20 000007b8: ADD 000007b9: DUP1 000007ba: PUSH1 0x20 000007bc: ADD 000007bd: DUP3 000007be: DUP2 000007bf: SUB 000007c0: DUP3 000007c1: MSTORE 000007c2: DUP5 000007c3: DUP5 000007c4: DUP3 000007c5: DUP2 000007c6: DUP2 000007c7: MSTORE 000007c8: PUSH1 0x20 000007ca: ADD 000007cb: SWAP3 000007cc: POP 000007cd: DUP1 000007ce: DUP3 000007cf: DUP5 000007d0: CALLDATACOPY 000007d1: PUSH1 0x00 000007d3: DUP2 000007d4: DUP5 000007d5: ADD 000007d6: MSTORE 000007d7: PUSH1 0x1f 000007d9: NOT 000007da: PUSH1 0x1f 000007dc: DUP3 000007dd: ADD 000007de: AND 000007df: SWAP1 000007e0: POP 000007e1: DUP1 000007e2: DUP4 000007e3: ADD 000007e4: SWAP3 000007e5: POP 000007e6: POP 000007e7: POP 000007e8: SWAP7 000007e9: POP 000007ea: POP 000007eb: POP 000007ec: POP 000007ed: POP 000007ee: POP 000007ef: POP 000007f0: PUSH1 0x00 000007f2: PUSH1 0x40 000007f4: MLOAD 000007f5: DUP1 000007f6: DUP4 000007f7: SUB 000007f8: DUP2 000007f9: PUSH1 0x00 000007fb: DUP8 000007fc: DUP1 000007fd: EXTCODESIZE 000007fe: ISZERO 000007ff: DUP1 00000800: ISZERO 00000801: PUSH2 0x0809 00000804: JUMPI 00000805: PUSH1 0x00 00000807: DUP1 00000808: REVERT 00000809: JUMPDEST 0000080a: POP 0000080b: GAS 0000080c: CALL 0000080d: ISZERO 0000080e: DUP1 0000080f: ISZERO 00000810: PUSH2 0x081d 00000813: JUMPI 00000814: RETURNDATASIZE 00000815: PUSH1 0x00 00000817: DUP1 00000818: RETURNDATACOPY 00000819: RETURNDATASIZE 0000081a: PUSH1 0x00 0000081c: REVERT 0000081d: JUMPDEST 0000081e: POP 0000081f: POP 00000820: POP 00000821: POP 00000822: JUMPDEST 00000823: PUSH1 0x40 00000825: DUP1 00000826: MLOAD 00000827: PUSH4 0x70a08231 0000082c: PUSH1 0xe0 0000082e: SHL 0000082f: DUP2 00000830: MSTORE 00000831: ADDRESS 00000832: PUSH1 0x04 00000834: DUP3 00000835: ADD 00000836: MSTORE 00000837: SWAP1 00000838: MLOAD 00000839: PUSH1 0x01 0000083b: PUSH1 0x01 0000083d: PUSH1 0xa0 0000083f: SHL 00000840: SUB 00000841: DUP5 00000842: AND 00000843: SWAP2 00000844: PUSH4 0x70a08231 00000849: SWAP2 0000084a: PUSH1 0x24 0000084c: DUP1 0000084d: DUP4 0000084e: ADD 0000084f: SWAP3 00000850: PUSH1 0x20 00000852: SWAP3 00000853: SWAP2 00000854: SWAP1 00000855: DUP3 00000856: SWAP1 00000857: SUB 00000858: ADD 00000859: DUP2 0000085a: DUP7 0000085b: DUP1 0000085c: EXTCODESIZE 0000085d: ISZERO 0000085e: DUP1 0000085f: ISZERO 00000860: PUSH2 0x0868 00000863: JUMPI 00000864: PUSH1 0x00 00000866: DUP1 00000867: REVERT 00000868: JUMPDEST 00000869: POP 0000086a: GAS 0000086b: STATICCALL 0000086c: ISZERO 0000086d: DUP1 0000086e: ISZERO 0000086f: PUSH2 0x087c 00000872: JUMPI 00000873: RETURNDATASIZE 00000874: PUSH1 0x00 00000876: DUP1 00000877: RETURNDATACOPY 00000878: RETURNDATASIZE 00000879: PUSH1 0x00 0000087b: REVERT 0000087c: JUMPDEST 0000087d: POP 0000087e: POP 0000087f: POP 00000880: POP 00000881: PUSH1 0x40 00000883: MLOAD 00000884: RETURNDATASIZE 00000885: PUSH1 0x20 00000887: DUP2 00000888: LT 00000889: ISZERO 0000088a: PUSH2 0x0892 0000088d: JUMPI 0000088e: PUSH1 0x00 00000890: DUP1 00000891: REVERT 00000892: JUMPDEST 00000893: POP 00000894: MLOAD 00000895: PUSH1 0x40 00000897: DUP1 00000898: MLOAD 00000899: PUSH4 0x70a08231 0000089e: PUSH1 0xe0 000008a0: SHL 000008a1: DUP2 000008a2: MSTORE 000008a3: ADDRESS 000008a4: PUSH1 0x04 000008a6: DUP3 000008a7: ADD 000008a8: MSTORE 000008a9: SWAP1 000008aa: MLOAD 000008ab: SWAP2 000008ac: SWAP6 000008ad: POP 000008ae: PUSH1 0x01 000008b0: PUSH1 0x01 000008b2: PUSH1 0xa0 000008b4: SHL 000008b5: SUB 000008b6: DUP4 000008b7: AND 000008b8: SWAP2 000008b9: PUSH4 0x70a08231 000008be: SWAP2 000008bf: PUSH1 0x24 000008c1: DUP1 000008c2: DUP3 000008c3: ADD 000008c4: SWAP3 000008c5: PUSH1 0x20 000008c7: SWAP3 000008c8: SWAP1 000008c9: SWAP2 000008ca: SWAP1 000008cb: DUP3 000008cc: SWAP1 000008cd: SUB 000008ce: ADD 000008cf: DUP2 000008d0: DUP7 000008d1: DUP1 000008d2: EXTCODESIZE 000008d3: ISZERO 000008d4: DUP1 000008d5: ISZERO 000008d6: PUSH2 0x08de 000008d9: JUMPI 000008da: PUSH1 0x00 000008dc: DUP1 000008dd: REVERT 000008de: JUMPDEST 000008df: POP 000008e0: GAS 000008e1: STATICCALL 000008e2: ISZERO 000008e3: DUP1 000008e4: ISZERO 000008e5: PUSH2 0x08f2 000008e8: JUMPI 000008e9: RETURNDATASIZE 000008ea: PUSH1 0x00 000008ec: DUP1 000008ed: RETURNDATACOPY 000008ee: RETURNDATASIZE 000008ef: PUSH1 0x00 000008f1: REVERT 000008f2: JUMPDEST 000008f3: POP 000008f4: POP 000008f5: POP 000008f6: POP 000008f7: PUSH1 0x40 000008f9: MLOAD 000008fa: RETURNDATASIZE 000008fb: PUSH1 0x20 000008fd: DUP2 000008fe: LT 000008ff: ISZERO 00000900: PUSH2 0x0908 00000903: JUMPI 00000904: PUSH1 0x00 00000906: DUP1 00000907: REVERT 00000908: JUMPDEST 00000909: POP 0000090a: MLOAD 0000090b: SWAP3 0000090c: POP 0000090d: PUSH1 0x00 0000090f: SWAP2 00000910: POP 00000911: POP 00000912: PUSH1 0x01 00000914: PUSH1 0x01 00000916: PUSH1 0x70 00000918: SHL 00000919: SUB 0000091a: DUP6 0000091b: AND 0000091c: DUP11 0000091d: SWAP1 0000091e: SUB 0000091f: DUP4 00000920: GT 00000921: PUSH2 0x092b 00000924: JUMPI 00000925: PUSH1 0x00 00000927: PUSH2 0x093a 0000092a: JUMP 0000092b: JUMPDEST 0000092c: DUP10 0000092d: DUP6 0000092e: PUSH1 0x01 00000930: PUSH1 0x01 00000932: PUSH1 0x70 00000934: SHL 00000935: SUB 00000936: AND 00000937: SUB 00000938: DUP4 00000939: SUB 0000093a: JUMPDEST 0000093b: SWAP1 0000093c: POP 0000093d: PUSH1 0x00 0000093f: DUP10 00000940: DUP6 00000941: PUSH1 0x01 00000943: PUSH1 0x01 00000945: PUSH1 0x70 00000947: SHL 00000948: SUB 00000949: AND 0000094a: SUB 0000094b: DUP4 0000094c: GT 0000094d: PUSH2 0x0957 00000950: JUMPI 00000951: PUSH1 0x00 00000953: PUSH2 0x0966 00000956: JUMP 00000957: JUMPDEST 00000958: DUP10 00000959: DUP6 0000095a: PUSH1 0x01 0000095c: PUSH1 0x01 0000095e: PUSH1 0x70 00000960: SHL 00000961: SUB 00000962: AND 00000963: SUB 00000964: DUP4 00000965: SUB 00000966: JUMPDEST 00000967: SWAP1 00000968: POP 00000969: PUSH1 0x00 0000096b: DUP3 0000096c: GT 0000096d: DUP1 0000096e: PUSH2 0x0977 00000971: JUMPI 00000972: POP 00000973: PUSH1 0x00 00000975: DUP2 00000976: GT 00000977: JUMPDEST 00000978: PUSH2 0x09b2 0000097b: JUMPI 0000097c: PUSH1 0x40 0000097e: MLOAD 0000097f: PUSH3 0x461bcd 00000983: PUSH1 0xe5 00000985: SHL 00000986: DUP2 00000987: MSTORE 00000988: PUSH1 0x04 0000098a: ADD 0000098b: DUP1 0000098c: DUP1 0000098d: PUSH1 0x20 0000098f: ADD 00000990: DUP3 00000991: DUP2 00000992: SUB 00000993: DUP3 00000994: MSTORE 00000995: PUSH1 0x24 00000997: DUP2 00000998: MSTORE 00000999: PUSH1 0x20 0000099b: ADD 0000099c: DUP1 0000099d: PUSH2 0x26b4 000009a0: PUSH1 0x24 000009a2: SWAP2 000009a3: CODECOPY 000009a4: PUSH1 0x40 000009a6: ADD 000009a7: SWAP2 000009a8: POP 000009a9: POP 000009aa: PUSH1 0x40 000009ac: MLOAD 000009ad: DUP1 000009ae: SWAP2 000009af: SUB 000009b0: SWAP1 000009b1: REVERT 000009b2: JUMPDEST 000009b3: PUSH1 0x05 000009b5: SLOAD 000009b6: PUSH1 0x40 000009b8: DUP1 000009b9: MLOAD 000009ba: PUSH4 0x54cf2aeb 000009bf: PUSH1 0xe0 000009c1: SHL 000009c2: DUP2 000009c3: MSTORE 000009c4: SWAP1 000009c5: MLOAD 000009c6: PUSH1 0x00 000009c8: SWAP3 000009c9: PUSH1 0x01 000009cb: PUSH1 0x01 000009cd: PUSH1 0xa0 000009cf: SHL 000009d0: SUB 000009d1: AND 000009d2: SWAP2 000009d3: PUSH4 0x54cf2aeb 000009d8: SWAP2 000009d9: PUSH1 0x04 000009db: DUP1 000009dc: DUP4 000009dd: ADD 000009de: SWAP3 000009df: PUSH1 0x20 000009e1: SWAP3 000009e2: SWAP2 000009e3: SWAP1 000009e4: DUP3 000009e5: SWAP1 000009e6: SUB 000009e7: ADD 000009e8: DUP2 000009e9: DUP7 000009ea: DUP1 000009eb: EXTCODESIZE 000009ec: ISZERO 000009ed: DUP1 000009ee: ISZERO 000009ef: PUSH2 0x09f7 000009f2: JUMPI 000009f3: PUSH1 0x00 000009f5: DUP1 000009f6: REVERT 000009f7: JUMPDEST 000009f8: POP 000009f9: GAS 000009fa: STATICCALL 000009fb: ISZERO 000009fc: DUP1 000009fd: ISZERO 000009fe: PUSH2 0x0a0b 00000a01: JUMPI 00000a02: RETURNDATASIZE 00000a03: PUSH1 0x00 00000a05: DUP1 00000a06: RETURNDATACOPY 00000a07: RETURNDATASIZE 00000a08: PUSH1 0x00 00000a0a: REVERT 00000a0b: JUMPDEST 00000a0c: POP 00000a0d: POP 00000a0e: POP 00000a0f: POP 00000a10: PUSH1 0x40 00000a12: MLOAD 00000a13: RETURNDATASIZE 00000a14: PUSH1 0x20 00000a16: DUP2 00000a17: LT 00000a18: ISZERO 00000a19: PUSH2 0x0a21 00000a1c: JUMPI 00000a1d: PUSH1 0x00 00000a1f: DUP1 00000a20: REVERT 00000a21: JUMPDEST 00000a22: POP 00000a23: MLOAD 00000a24: SWAP1 00000a25: POP 00000a26: PUSH1 0x00 00000a28: PUSH2 0x0a46 00000a2b: PUSH2 0x0a34 00000a2e: DUP6 00000a2f: DUP5 00000a30: PUSH2 0x1cca 00000a33: JUMP 00000a34: JUMPDEST 00000a35: PUSH2 0x0a40 00000a38: DUP9 00000a39: PUSH2 0x03e8 00000a3c: PUSH2 0x1cca 00000a3f: JUMP 00000a40: JUMPDEST 00000a41: SWAP1 00000a42: PUSH2 0x1d2a 00000a45: JUMP 00000a46: JUMPDEST 00000a47: SWAP1 00000a48: POP 00000a49: PUSH1 0x00 00000a4b: PUSH2 0x0a57 00000a4e: PUSH2 0x0a34 00000a51: DUP6 00000a52: DUP6 00000a53: PUSH2 0x1cca 00000a56: JUMP 00000a57: JUMPDEST 00000a58: SWAP1 00000a59: POP 00000a5a: PUSH2 0x0a7c 00000a5d: PUSH3 0x0f4240 00000a61: PUSH2 0x0a76 00000a64: PUSH1 0x01 00000a66: PUSH1 0x01 00000a68: PUSH1 0x70 00000a6a: SHL 00000a6b: SUB 00000a6c: DUP13 00000a6d: DUP2 00000a6e: AND 00000a6f: SWAP1 00000a70: DUP13 00000a71: AND 00000a72: PUSH2 0x1cca 00000a75: JUMP 00000a76: JUMPDEST 00000a77: SWAP1 00000a78: PUSH2 0x1cca 00000a7b: JUMP 00000a7c: JUMPDEST 00000a7d: PUSH2 0x0a86 00000a80: DUP4 00000a81: DUP4 00000a82: PUSH2 0x1cca 00000a85: JUMP 00000a86: JUMPDEST 00000a87: LT 00000a88: ISZERO 00000a89: PUSH2 0x0ac8 00000a8c: JUMPI 00000a8d: PUSH1 0x40 00000a8f: DUP1 00000a90: MLOAD 00000a91: PUSH3 0x461bcd 00000a95: PUSH1 0xe5 00000a97: SHL 00000a98: DUP2 00000a99: MSTORE 00000a9a: PUSH1 0x20 00000a9c: PUSH1 0x04 00000a9e: DUP3 00000a9f: ADD 00000aa0: MSTORE 00000aa1: PUSH1 0x0c 00000aa3: PUSH1 0x24 00000aa5: DUP3 00000aa6: ADD 00000aa7: MSTORE 00000aa8: PUSH12 0x556e697377617056323a204b 00000ab5: PUSH1 0xa0 00000ab7: SHL 00000ab8: PUSH1 0x44 00000aba: DUP3 00000abb: ADD 00000abc: MSTORE 00000abd: SWAP1 00000abe: MLOAD 00000abf: SWAP1 00000ac0: DUP2 00000ac1: SWAP1 00000ac2: SUB 00000ac3: PUSH1 0x64 00000ac5: ADD 00000ac6: SWAP1 00000ac7: REVERT 00000ac8: JUMPDEST 00000ac9: POP 00000aca: POP 00000acb: POP 00000acc: PUSH2 0x0ad7 00000acf: DUP5 00000ad0: DUP5 00000ad1: DUP9 00000ad2: DUP9 00000ad3: PUSH2 0x1d6c 00000ad6: JUMP 00000ad7: JUMPDEST 00000ad8: PUSH1 0x40 00000ada: DUP1 00000adb: MLOAD 00000adc: DUP4 00000add: DUP2 00000ade: MSTORE 00000adf: PUSH1 0x20 00000ae1: DUP2 00000ae2: ADD 00000ae3: DUP4 00000ae4: SWAP1 00000ae5: MSTORE 00000ae6: DUP1 00000ae7: DUP3 00000ae8: ADD 00000ae9: DUP14 00000aea: SWAP1 00000aeb: MSTORE 00000aec: PUSH1 0x60 00000aee: DUP2 00000aef: ADD 00000af0: DUP13 00000af1: SWAP1 00000af2: MSTORE 00000af3: SWAP1 00000af4: MLOAD 00000af5: PUSH1 0x01 00000af7: PUSH1 0x01 00000af9: PUSH1 0xa0 00000afb: SHL 00000afc: SUB 00000afd: DUP12 00000afe: AND 00000aff: SWAP2 00000b00: CALLER 00000b01: SWAP2 00000b02: PUSH32 0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822 00000b23: SWAP2 00000b24: DUP2 00000b25: SWAP1 00000b26: SUB 00000b27: PUSH1 0x80 00000b29: ADD 00000b2a: SWAP1 00000b2b: LOG3 00000b2c: POP 00000b2d: POP 00000b2e: PUSH1 0x01 00000b30: PUSH1 0x0c 00000b32: SSTORE 00000b33: POP 00000b34: POP 00000b35: POP 00000b36: POP 00000b37: POP 00000b38: POP 00000b39: POP 00000b3a: POP 00000b3b: POP 00000b3c: JUMP 00000b3d: JUMPDEST 00000b3e: PUSH1 0x40 00000b40: MLOAD 00000b41: DUP1 00000b42: PUSH1 0x40 00000b44: ADD 00000b45: PUSH1 0x40 00000b47: MSTORE 00000b48: DUP1 00000b49: PUSH1 0x13 00000b4b: DUP2 00000b4c: MSTORE 00000b4d: PUSH1 0x20 00000b4f: ADD 00000b50: PUSH19 0x4c756153776170204c5020546f6b656e205631 00000b64: PUSH1 0x68 00000b66: SHL 00000b67: DUP2 00000b68: MSTORE 00000b69: POP 00000b6a: DUP2 00000b6b: JUMP 00000b6c: JUMPDEST 00000b6d: PUSH1 0x08 00000b6f: SLOAD 00000b70: PUSH1 0x01 00000b72: PUSH1 0x01 00000b74: PUSH1 0x70 00000b76: SHL 00000b77: SUB 00000b78: DUP1 00000b79: DUP3 00000b7a: AND 00000b7b: SWAP3 00000b7c: PUSH1 0x01 00000b7e: PUSH1 0x70 00000b80: SHL 00000b81: DUP4 00000b82: DIV 00000b83: SWAP1 00000b84: SWAP2 00000b85: AND 00000b86: SWAP2 00000b87: PUSH1 0x01 00000b89: PUSH1 0xe0 00000b8b: SHL 00000b8c: SWAP1 00000b8d: DIV 00000b8e: PUSH4 0xffffffff 00000b93: AND 00000b94: SWAP1 00000b95: JUMP 00000b96: JUMPDEST 00000b97: PUSH1 0x00 00000b99: PUSH2 0x0ba3 00000b9c: CALLER 00000b9d: DUP5 00000b9e: DUP5 00000b9f: PUSH2 0x1f2b 00000ba2: JUMP 00000ba3: JUMPDEST 00000ba4: POP 00000ba5: PUSH1 0x01 00000ba7: JUMPDEST 00000ba8: SWAP3 00000ba9: SWAP2 00000baa: POP 00000bab: POP 00000bac: JUMP 00000bad: JUMPDEST 00000bae: PUSH1 0x06 00000bb0: SLOAD 00000bb1: PUSH1 0x01 00000bb3: PUSH1 0x01 00000bb5: PUSH1 0xa0 00000bb7: SHL 00000bb8: SUB 00000bb9: AND 00000bba: DUP2 00000bbb: JUMP 00000bbc: JUMPDEST 00000bbd: PUSH1 0x00 00000bbf: SLOAD 00000bc0: DUP2 00000bc1: JUMP 00000bc2: JUMPDEST 00000bc3: PUSH1 0x01 00000bc5: PUSH1 0x01 00000bc7: PUSH1 0xa0 00000bc9: SHL 00000bca: SUB 00000bcb: DUP4 00000bcc: AND 00000bcd: PUSH1 0x00 00000bcf: SWAP1 00000bd0: DUP2 00000bd1: MSTORE 00000bd2: PUSH1 0x02 00000bd4: PUSH1 0x20 00000bd6: SWAP1 00000bd7: DUP2 00000bd8: MSTORE 00000bd9: PUSH1 0x40 00000bdb: DUP1 00000bdc: DUP4 00000bdd: KECCAK256 00000bde: CALLER 00000bdf: DUP5 00000be0: MSTORE 00000be1: SWAP1 00000be2: SWAP2 00000be3: MSTORE 00000be4: DUP2 00000be5: KECCAK256 00000be6: SLOAD 00000be7: PUSH1 0x00 00000be9: NOT 00000bea: EQ 00000beb: PUSH2 0x0c41 00000bee: JUMPI 00000bef: PUSH1 0x01 00000bf1: PUSH1 0x01 00000bf3: PUSH1 0xa0 00000bf5: SHL 00000bf6: SUB 00000bf7: DUP5 00000bf8: AND 00000bf9: PUSH1 0x00 00000bfb: SWAP1 00000bfc: DUP2 00000bfd: MSTORE 00000bfe: PUSH1 0x02 00000c00: PUSH1 0x20 00000c02: SWAP1 00000c03: DUP2 00000c04: MSTORE 00000c05: PUSH1 0x40 00000c07: DUP1 00000c08: DUP4 00000c09: KECCAK256 00000c0a: CALLER 00000c0b: DUP5 00000c0c: MSTORE 00000c0d: SWAP1 00000c0e: SWAP2 00000c0f: MSTORE 00000c10: SWAP1 00000c11: KECCAK256 00000c12: SLOAD 00000c13: PUSH2 0x0c1c 00000c16: SWAP1 00000c17: DUP4 00000c18: PUSH2 0x1d2a 00000c1b: JUMP 00000c1c: JUMPDEST 00000c1d: PUSH1 0x01 00000c1f: PUSH1 0x01 00000c21: PUSH1 0xa0 00000c23: SHL 00000c24: SUB 00000c25: DUP6 00000c26: AND 00000c27: PUSH1 0x00 00000c29: SWAP1 00000c2a: DUP2 00000c2b: MSTORE 00000c2c: PUSH1 0x02 00000c2e: PUSH1 0x20 00000c30: SWAP1 00000c31: DUP2 00000c32: MSTORE 00000c33: PUSH1 0x40 00000c35: DUP1 00000c36: DUP4 00000c37: KECCAK256 00000c38: CALLER 00000c39: DUP5 00000c3a: MSTORE 00000c3b: SWAP1 00000c3c: SWAP2 00000c3d: MSTORE 00000c3e: SWAP1 00000c3f: KECCAK256 00000c40: SSTORE 00000c41: JUMPDEST 00000c42: PUSH2 0x0c4c 00000c45: DUP5 00000c46: DUP5 00000c47: DUP5 00000c48: PUSH2 0x1f8d 00000c4b: JUMP 00000c4c: JUMPDEST 00000c4d: POP 00000c4e: PUSH1 0x01 00000c50: SWAP4 00000c51: SWAP3 00000c52: POP 00000c53: POP 00000c54: POP 00000c55: JUMP 00000c56: JUMPDEST 00000c57: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 00000c78: DUP2 00000c79: JUMP 00000c7a: JUMPDEST 00000c7b: PUSH1 0x12 00000c7d: DUP2 00000c7e: JUMP 00000c7f: JUMPDEST 00000c80: PUSH1 0x03 00000c82: SLOAD 00000c83: DUP2 00000c84: JUMP 00000c85: JUMPDEST 00000c86: PUSH1 0x05 00000c88: SLOAD 00000c89: PUSH1 0x01 00000c8b: PUSH1 0x01 00000c8d: PUSH1 0xa0 00000c8f: SHL 00000c90: SUB 00000c91: AND 00000c92: CALLER 00000c93: EQ 00000c94: PUSH2 0x0cdb 00000c97: JUMPI 00000c98: PUSH1 0x40 00000c9a: DUP1 00000c9b: MLOAD 00000c9c: PUSH3 0x461bcd 00000ca0: PUSH1 0xe5 00000ca2: SHL 00000ca3: DUP2 00000ca4: MSTORE 00000ca5: PUSH1 0x20 00000ca7: PUSH1 0x04 00000ca9: DUP3 00000caa: ADD 00000cab: MSTORE 00000cac: PUSH1 0x14 00000cae: PUSH1 0x24 00000cb0: DUP3 00000cb1: ADD 00000cb2: MSTORE 00000cb3: PUSH20 0x2ab734b9bbb0b82b191d102327a92124a22222a7 00000cc8: PUSH1 0x61 00000cca: SHL 00000ccb: PUSH1 0x44 00000ccd: DUP3 00000cce: ADD 00000ccf: MSTORE 00000cd0: SWAP1 00000cd1: MLOAD 00000cd2: SWAP1 00000cd3: DUP2 00000cd4: SWAP1 00000cd5: SUB 00000cd6: PUSH1 0x64 00000cd8: ADD 00000cd9: SWAP1 00000cda: REVERT 00000cdb: JUMPDEST 00000cdc: PUSH1 0x06 00000cde: DUP1 00000cdf: SLOAD 00000ce0: PUSH1 0x01 00000ce2: PUSH1 0x01 00000ce4: PUSH1 0xa0 00000ce6: SHL 00000ce7: SUB 00000ce8: SWAP4 00000ce9: DUP5 00000cea: AND 00000ceb: PUSH1 0x01 00000ced: PUSH1 0x01 00000cef: PUSH1 0xa0 00000cf1: SHL 00000cf2: SUB 00000cf3: NOT 00000cf4: SWAP2 00000cf5: DUP3 00000cf6: AND 00000cf7: OR 00000cf8: SWAP1 00000cf9: SWAP2 00000cfa: SSTORE 00000cfb: PUSH1 0x07 00000cfd: DUP1 00000cfe: SLOAD 00000cff: SWAP3 00000d00: SWAP1 00000d01: SWAP4 00000d02: AND 00000d03: SWAP2 00000d04: AND 00000d05: OR 00000d06: SWAP1 00000d07: SSTORE 00000d08: JUMP 00000d09: JUMPDEST 00000d0a: PUSH1 0x09 00000d0c: SLOAD 00000d0d: DUP2 00000d0e: JUMP 00000d0f: JUMPDEST 00000d10: PUSH1 0x0a 00000d12: SLOAD 00000d13: DUP2 00000d14: JUMP 00000d15: JUMPDEST 00000d16: PUSH1 0x00 00000d18: PUSH1 0x0c 00000d1a: SLOAD 00000d1b: PUSH1 0x01 00000d1d: EQ 00000d1e: PUSH2 0x0d62 00000d21: JUMPI 00000d22: PUSH1 0x40 00000d24: DUP1 00000d25: MLOAD 00000d26: PUSH3 0x461bcd 00000d2a: PUSH1 0xe5 00000d2c: SHL 00000d2d: DUP2 00000d2e: MSTORE 00000d2f: PUSH1 0x20 00000d31: PUSH1 0x04 00000d33: DUP3 00000d34: ADD 00000d35: MSTORE 00000d36: PUSH1 0x11 00000d38: PUSH1 0x24 00000d3a: DUP3 00000d3b: ADD 00000d3c: MSTORE 00000d3d: PUSH17 0x155b9a5cddd85c158c8e881313d0d2d151 00000d4f: PUSH1 0x7a 00000d51: SHL 00000d52: PUSH1 0x44 00000d54: DUP3 00000d55: ADD 00000d56: MSTORE 00000d57: SWAP1 00000d58: MLOAD 00000d59: SWAP1 00000d5a: DUP2 00000d5b: SWAP1 00000d5c: SUB 00000d5d: PUSH1 0x64 00000d5f: ADD 00000d60: SWAP1 00000d61: REVERT 00000d62: JUMPDEST 00000d63: PUSH1 0x00 00000d65: PUSH1 0x0c 00000d67: DUP2 00000d68: SWAP1 00000d69: SSTORE 00000d6a: DUP1 00000d6b: PUSH2 0x0d72 00000d6e: PUSH2 0x0b6c 00000d71: JUMP 00000d72: JUMPDEST 00000d73: POP 00000d74: PUSH1 0x06 00000d76: SLOAD 00000d77: PUSH1 0x40 00000d79: DUP1 00000d7a: MLOAD 00000d7b: PUSH4 0x70a08231 00000d80: PUSH1 0xe0 00000d82: SHL 00000d83: DUP2 00000d84: MSTORE 00000d85: ADDRESS 00000d86: PUSH1 0x04 00000d88: DUP3 00000d89: ADD 00000d8a: MSTORE 00000d8b: SWAP1 00000d8c: MLOAD 00000d8d: SWAP4 00000d8e: SWAP6 00000d8f: POP 00000d90: SWAP2 00000d91: SWAP4 00000d92: POP 00000d93: PUSH1 0x00 00000d95: SWAP3 00000d96: PUSH1 0x01 00000d98: PUSH1 0x01 00000d9a: PUSH1 0xa0 00000d9c: SHL 00000d9d: SUB 00000d9e: SWAP1 00000d9f: SWAP2 00000da0: AND 00000da1: SWAP2 00000da2: PUSH4 0x70a08231 00000da7: SWAP2 00000da8: PUSH1 0x24 00000daa: DUP1 00000dab: DUP4 00000dac: ADD 00000dad: SWAP3 00000dae: PUSH1 0x20 00000db0: SWAP3 00000db1: SWAP2 00000db2: SWAP1 00000db3: DUP3 00000db4: SWAP1 00000db5: SUB 00000db6: ADD 00000db7: DUP2 00000db8: DUP7 00000db9: DUP1 00000dba: EXTCODESIZE 00000dbb: ISZERO 00000dbc: DUP1 00000dbd: ISZERO 00000dbe: PUSH2 0x0dc6 00000dc1: JUMPI 00000dc2: PUSH1 0x00 00000dc4: DUP1 00000dc5: REVERT 00000dc6: JUMPDEST 00000dc7: POP 00000dc8: GAS 00000dc9: STATICCALL 00000dca: ISZERO 00000dcb: DUP1 00000dcc: ISZERO 00000dcd: PUSH2 0x0dda 00000dd0: JUMPI 00000dd1: RETURNDATASIZE 00000dd2: PUSH1 0x00 00000dd4: DUP1 00000dd5: RETURNDATACOPY 00000dd6: RETURNDATASIZE 00000dd7: PUSH1 0x00 00000dd9: REVERT 00000dda: JUMPDEST 00000ddb: POP 00000ddc: POP 00000ddd: POP 00000dde: POP 00000ddf: PUSH1 0x40 00000de1: MLOAD 00000de2: RETURNDATASIZE 00000de3: PUSH1 0x20 00000de5: DUP2 00000de6: LT 00000de7: ISZERO 00000de8: PUSH2 0x0df0 00000deb: JUMPI 00000dec: PUSH1 0x00 00000dee: DUP1 00000def: REVERT 00000df0: JUMPDEST 00000df1: POP 00000df2: MLOAD 00000df3: PUSH1 0x07 00000df5: SLOAD 00000df6: PUSH1 0x40 00000df8: DUP1 00000df9: MLOAD 00000dfa: PUSH4 0x70a08231 00000dff: PUSH1 0xe0 00000e01: SHL 00000e02: DUP2 00000e03: MSTORE 00000e04: ADDRESS 00000e05: PUSH1 0x04 00000e07: DUP3 00000e08: ADD 00000e09: MSTORE 00000e0a: SWAP1 00000e0b: MLOAD 00000e0c: SWAP3 00000e0d: SWAP4 00000e0e: POP 00000e0f: PUSH1 0x00 00000e11: SWAP3 00000e12: PUSH1 0x01 00000e14: PUSH1 0x01 00000e16: PUSH1 0xa0 00000e18: SHL 00000e19: SUB 00000e1a: SWAP1 00000e1b: SWAP3 00000e1c: AND 00000e1d: SWAP2 00000e1e: PUSH4 0x70a08231 00000e23: SWAP2 00000e24: PUSH1 0x24 00000e26: DUP1 00000e27: DUP3 00000e28: ADD 00000e29: SWAP3 00000e2a: PUSH1 0x20 00000e2c: SWAP3 00000e2d: SWAP1 00000e2e: SWAP2 00000e2f: SWAP1 00000e30: DUP3 00000e31: SWAP1 00000e32: SUB 00000e33: ADD 00000e34: DUP2 00000e35: DUP7 00000e36: DUP1 00000e37: EXTCODESIZE 00000e38: ISZERO 00000e39: DUP1 00000e3a: ISZERO 00000e3b: PUSH2 0x0e43 00000e3e: JUMPI 00000e3f: PUSH1 0x00 00000e41: DUP1 00000e42: REVERT 00000e43: JUMPDEST 00000e44: POP 00000e45: GAS 00000e46: STATICCALL 00000e47: ISZERO 00000e48: DUP1 00000e49: ISZERO 00000e4a: PUSH2 0x0e57 00000e4d: JUMPI 00000e4e: RETURNDATASIZE 00000e4f: PUSH1 0x00 00000e51: DUP1 00000e52: RETURNDATACOPY 00000e53: RETURNDATASIZE 00000e54: PUSH1 0x00 00000e56: REVERT 00000e57: JUMPDEST 00000e58: POP 00000e59: POP 00000e5a: POP 00000e5b: POP 00000e5c: PUSH1 0x40 00000e5e: MLOAD 00000e5f: RETURNDATASIZE 00000e60: PUSH1 0x20 00000e62: DUP2 00000e63: LT 00000e64: ISZERO 00000e65: PUSH2 0x0e6d 00000e68: JUMPI 00000e69: PUSH1 0x00 00000e6b: DUP1 00000e6c: REVERT 00000e6d: JUMPDEST 00000e6e: POP 00000e6f: MLOAD 00000e70: SWAP1 00000e71: POP 00000e72: PUSH1 0x00 00000e74: PUSH2 0x0e86 00000e77: DUP4 00000e78: PUSH1 0x01 00000e7a: PUSH1 0x01 00000e7c: PUSH1 0x70 00000e7e: SHL 00000e7f: SUB 00000e80: DUP8 00000e81: AND 00000e82: PUSH2 0x1d2a 00000e85: JUMP 00000e86: JUMPDEST 00000e87: SWAP1 00000e88: POP 00000e89: PUSH1 0x00 00000e8b: PUSH2 0x0e9d 00000e8e: DUP4 00000e8f: PUSH1 0x01 00000e91: PUSH1 0x01 00000e93: PUSH1 0x70 00000e95: SHL 00000e96: SUB 00000e97: DUP8 00000e98: AND 00000e99: PUSH2 0x1d2a 00000e9c: JUMP 00000e9d: JUMPDEST 00000e9e: SWAP1 00000e9f: POP 00000ea0: PUSH1 0x00 00000ea2: PUSH2 0x0eab 00000ea5: DUP8 00000ea6: DUP8 00000ea7: PUSH2 0x203b 00000eaa: JUMP 00000eab: JUMPDEST 00000eac: PUSH1 0x00 00000eae: SLOAD 00000eaf: SWAP1 00000eb0: SWAP2 00000eb1: POP 00000eb2: DUP1 00000eb3: PUSH2 0x1082 00000eb6: JUMPI 00000eb7: PUSH1 0x05 00000eb9: SLOAD 00000eba: PUSH1 0x40 00000ebc: DUP1 00000ebd: MLOAD 00000ebe: PUSH4 0x7cd07e47 00000ec3: PUSH1 0xe0 00000ec5: SHL 00000ec6: DUP2 00000ec7: MSTORE 00000ec8: SWAP1 00000ec9: MLOAD 00000eca: PUSH1 0x00 00000ecc: SWAP3 00000ecd: PUSH1 0x01 00000ecf: PUSH1 0x01 00000ed1: PUSH1 0xa0 00000ed3: SHL 00000ed4: SUB 00000ed5: AND 00000ed6: SWAP2 00000ed7: PUSH4 0x7cd07e47 00000edc: SWAP2 00000edd: PUSH1 0x04 00000edf: DUP1 00000ee0: DUP4 00000ee1: ADD 00000ee2: SWAP3 00000ee3: PUSH1 0x20 00000ee5: SWAP3 00000ee6: SWAP2 00000ee7: SWAP1 00000ee8: DUP3 00000ee9: SWAP1 00000eea: SUB 00000eeb: ADD 00000eec: DUP2 00000eed: DUP7 00000eee: DUP1 00000eef: EXTCODESIZE 00000ef0: ISZERO 00000ef1: DUP1 00000ef2: ISZERO 00000ef3: PUSH2 0x0efb 00000ef6: JUMPI 00000ef7: PUSH1 0x00 00000ef9: DUP1 00000efa: REVERT 00000efb: JUMPDEST 00000efc: POP 00000efd: GAS 00000efe: STATICCALL 00000eff: ISZERO 00000f00: DUP1 00000f01: ISZERO 00000f02: PUSH2 0x0f0f 00000f05: JUMPI 00000f06: RETURNDATASIZE 00000f07: PUSH1 0x00 00000f09: DUP1 00000f0a: RETURNDATACOPY 00000f0b: RETURNDATASIZE 00000f0c: PUSH1 0x00 00000f0e: REVERT 00000f0f: JUMPDEST 00000f10: POP 00000f11: POP 00000f12: POP 00000f13: POP 00000f14: PUSH1 0x40 00000f16: MLOAD 00000f17: RETURNDATASIZE 00000f18: PUSH1 0x20 00000f1a: DUP2 00000f1b: LT 00000f1c: ISZERO 00000f1d: PUSH2 0x0f25 00000f20: JUMPI 00000f21: PUSH1 0x00 00000f23: DUP1 00000f24: REVERT 00000f25: JUMPDEST 00000f26: POP 00000f27: MLOAD 00000f28: SWAP1 00000f29: POP 00000f2a: CALLER 00000f2b: PUSH1 0x01 00000f2d: PUSH1 0x01 00000f2f: PUSH1 0xa0 00000f31: SHL 00000f32: SUB 00000f33: DUP3 00000f34: AND 00000f35: EQ 00000f36: ISZERO 00000f37: PUSH2 0x1000 00000f3a: JUMPI 00000f3b: DUP1 00000f3c: PUSH1 0x01 00000f3e: PUSH1 0x01 00000f40: PUSH1 0xa0 00000f42: SHL 00000f43: SUB 00000f44: AND 00000f45: PUSH4 0x40dc0e37 00000f4a: PUSH1 0x40 00000f4c: MLOAD 00000f4d: DUP2 00000f4e: PUSH4 0xffffffff 00000f53: AND 00000f54: PUSH1 0xe0 00000f56: SHL 00000f57: DUP2 00000f58: MSTORE 00000f59: PUSH1 0x04 00000f5b: ADD 00000f5c: PUSH1 0x20 00000f5e: PUSH1 0x40 00000f60: MLOAD 00000f61: DUP1 00000f62: DUP4 00000f63: SUB 00000f64: DUP2 00000f65: DUP7 00000f66: DUP1 00000f67: EXTCODESIZE 00000f68: ISZERO 00000f69: DUP1 00000f6a: ISZERO 00000f6b: PUSH2 0x0f73 00000f6e: JUMPI 00000f6f: PUSH1 0x00 00000f71: DUP1 00000f72: REVERT 00000f73: JUMPDEST 00000f74: POP 00000f75: GAS 00000f76: STATICCALL 00000f77: ISZERO 00000f78: DUP1 00000f79: ISZERO 00000f7a: PUSH2 0x0f87 00000f7d: JUMPI 00000f7e: RETURNDATASIZE 00000f7f: PUSH1 0x00 00000f81: DUP1 00000f82: RETURNDATACOPY 00000f83: RETURNDATASIZE 00000f84: PUSH1 0x00 00000f86: REVERT 00000f87: JUMPDEST 00000f88: POP 00000f89: POP 00000f8a: POP 00000f8b: POP 00000f8c: PUSH1 0x40 00000f8e: MLOAD 00000f8f: RETURNDATASIZE 00000f90: PUSH1 0x20 00000f92: DUP2 00000f93: LT 00000f94: ISZERO 00000f95: PUSH2 0x0f9d 00000f98: JUMPI 00000f99: PUSH1 0x00 00000f9b: DUP1 00000f9c: REVERT 00000f9d: JUMPDEST 00000f9e: POP 00000f9f: MLOAD 00000fa0: SWAP10 00000fa1: POP 00000fa2: DUP10 00000fa3: ISZERO 00000fa4: DUP1 00000fa5: ISZERO 00000fa6: SWAP1 00000fa7: PUSH2 0x0fb2 00000faa: JUMPI 00000fab: POP 00000fac: PUSH1 0x00 00000fae: NOT 00000faf: DUP11 00000fb0: EQ 00000fb1: ISZERO 00000fb2: JUMPDEST 00000fb3: PUSH2 0x0ffb 00000fb6: JUMPI 00000fb7: PUSH1 0x40 00000fb9: DUP1 00000fba: MLOAD 00000fbb: PUSH3 0x461bcd 00000fbf: PUSH1 0xe5 00000fc1: SHL 00000fc2: DUP2 00000fc3: MSTORE 00000fc4: PUSH1 0x20 00000fc6: PUSH1 0x04 00000fc8: DUP3 00000fc9: ADD 00000fca: MSTORE 00000fcb: PUSH1 0x15 00000fcd: PUSH1 0x24 00000fcf: DUP3 00000fd0: ADD 00000fd1: MSTORE 00000fd2: PUSH21 0x4261642064657369726564206c6971756964697479 00000fe8: PUSH1 0x58 00000fea: SHL 00000feb: PUSH1 0x44 00000fed: DUP3 00000fee: ADD 00000fef: MSTORE 00000ff0: SWAP1 00000ff1: MLOAD 00000ff2: SWAP1 00000ff3: DUP2 00000ff4: SWAP1 00000ff5: SUB 00000ff6: PUSH1 0x64 00000ff8: ADD 00000ff9: SWAP1 00000ffa: REVERT 00000ffb: JUMPDEST 00000ffc: PUSH2 0x107c 00000fff: JUMP 00001000: JUMPDEST 00001001: PUSH1 0x01 00001003: PUSH1 0x01 00001005: PUSH1 0xa0 00001007: SHL 00001008: SUB 00001009: DUP2 0000100a: AND 0000100b: ISZERO 0000100c: PUSH2 0x1055 0000100f: JUMPI 00001010: PUSH1 0x40 00001012: DUP1 00001013: MLOAD 00001014: PUSH3 0x461bcd 00001018: PUSH1 0xe5 0000101a: SHL 0000101b: DUP2 0000101c: MSTORE 0000101d: PUSH1 0x20 0000101f: PUSH1 0x04 00001021: DUP3 00001022: ADD 00001023: MSTORE 00001024: PUSH1 0x16 00001026: PUSH1 0x24 00001028: DUP3 00001029: ADD 0000102a: MSTORE 0000102b: PUSH22 0x26bab9ba103737ba103430bb329036b4b3b930ba37b9 00001042: PUSH1 0x51 00001044: SHL 00001045: PUSH1 0x44 00001047: DUP3 00001048: ADD 00001049: MSTORE 0000104a: SWAP1 0000104b: MLOAD 0000104c: SWAP1 0000104d: DUP2 0000104e: SWAP1 0000104f: SUB 00001050: PUSH1 0x64 00001052: ADD 00001053: SWAP1 00001054: REVERT 00001055: JUMPDEST 00001056: PUSH2 0x106d 00001059: PUSH2 0x03e8 0000105c: PUSH2 0x0a40 0000105f: PUSH2 0x1068 00001062: DUP9 00001063: DUP9 00001064: PUSH2 0x1cca 00001067: JUMP 00001068: JUMPDEST 00001069: PUSH2 0x21f9 0000106c: JUMP 0000106d: JUMPDEST 0000106e: SWAP10 0000106f: POP 00001070: PUSH2 0x107c 00001073: PUSH1 0x00 00001075: PUSH2 0x03e8 00001078: PUSH2 0x224b 0000107b: JUMP 0000107c: JUMPDEST 0000107d: POP 0000107e: PUSH2 0x10c5 00001081: JUMP 00001082: JUMPDEST 00001083: PUSH2 0x10c2 00001086: PUSH1 0x01 00001088: PUSH1 0x01 0000108a: PUSH1 0x70 0000108c: SHL 0000108d: SUB 0000108e: DUP10 0000108f: AND 00001090: PUSH2 0x1099 00001093: DUP7 00001094: DUP5 00001095: PUSH2 0x1cca 00001098: JUMP 00001099: JUMPDEST 0000109a: DUP2 0000109b: PUSH2 0x10a0 0000109e: JUMPI 0000109f: INVALID 000010a0: JUMPDEST 000010a1: DIV 000010a2: PUSH1 0x01 000010a4: PUSH1 0x01 000010a6: PUSH1 0x70 000010a8: SHL 000010a9: SUB 000010aa: DUP10 000010ab: AND 000010ac: PUSH2 0x10b5 000010af: DUP7 000010b0: DUP6 000010b1: PUSH2 0x1cca 000010b4: JUMP 000010b5: JUMPDEST 000010b6: DUP2 000010b7: PUSH2 0x10bc 000010ba: JUMPI 000010bb: INVALID 000010bc: JUMPDEST 000010bd: DIV 000010be: PUSH2 0x22d5 000010c1: JUMP 000010c2: JUMPDEST 000010c3: SWAP9 000010c4: POP 000010c5: JUMPDEST 000010c6: PUSH1 0x00 000010c8: DUP10 000010c9: GT 000010ca: PUSH2 0x1104 000010cd: JUMPI 000010ce: PUSH1 0x40 000010d0: MLOAD 000010d1: PUSH3 0x461bcd 000010d5: PUSH1 0xe5 000010d7: SHL 000010d8: DUP2 000010d9: MSTORE 000010da: PUSH1 0x04 000010dc: ADD 000010dd: DUP1 000010de: DUP1 000010df: PUSH1 0x20 000010e1: ADD 000010e2: DUP3 000010e3: DUP2 000010e4: SUB 000010e5: DUP3 000010e6: MSTORE 000010e7: PUSH1 0x28 000010e9: DUP2 000010ea: MSTORE 000010eb: PUSH1 0x20 000010ed: ADD 000010ee: DUP1 000010ef: PUSH2 0x2721 000010f2: PUSH1 0x28 000010f4: SWAP2 000010f5: CODECOPY 000010f6: PUSH1 0x40 000010f8: ADD 000010f9: SWAP2 000010fa: POP 000010fb: POP 000010fc: PUSH1 0x40 000010fe: MLOAD 000010ff: DUP1 00001100: SWAP2 00001101: SUB 00001102: SWAP1 00001103: REVERT 00001104: JUMPDEST 00001105: PUSH2 0x110e 00001108: DUP11 00001109: DUP11 0000110a: PUSH2 0x224b 0000110d: JUMP 0000110e: JUMPDEST 0000110f: PUSH2 0x111a 00001112: DUP7 00001113: DUP7 00001114: DUP11 00001115: DUP11 00001116: PUSH2 0x1d6c 00001119: JUMP 0000111a: JUMPDEST 0000111b: DUP2 0000111c: ISZERO 0000111d: PUSH2 0x1144 00001120: JUMPI 00001121: PUSH1 0x08 00001123: SLOAD 00001124: PUSH2 0x1140 00001127: SWAP1 00001128: PUSH1 0x01 0000112a: PUSH1 0x01 0000112c: PUSH1 0x70 0000112e: SHL 0000112f: SUB 00001130: DUP1 00001131: DUP3 00001132: AND 00001133: SWAP2 00001134: PUSH1 0x01 00001136: PUSH1 0x70 00001138: SHL 00001139: SWAP1 0000113a: DIV 0000113b: AND 0000113c: PUSH2 0x1cca 0000113f: JUMP 00001140: JUMPDEST 00001141: PUSH1 0x0b 00001143: SSTORE 00001144: JUMPDEST 00001145: PUSH1 0x40 00001147: DUP1 00001148: MLOAD 00001149: DUP6 0000114a: DUP2 0000114b: MSTORE 0000114c: PUSH1 0x20 0000114e: DUP2 0000114f: ADD 00001150: DUP6 00001151: SWAP1 00001152: MSTORE 00001153: DUP2 00001154: MLOAD 00001155: CALLER 00001156: SWAP3 00001157: PUSH32 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f 00001178: SWAP3 00001179: DUP3 0000117a: SWAP1 0000117b: SUB 0000117c: ADD 0000117d: SWAP1 0000117e: LOG2 0000117f: POP 00001180: POP 00001181: PUSH1 0x01 00001183: PUSH1 0x0c 00001185: SSTORE 00001186: POP 00001187: SWAP5 00001188: SWAP7 00001189: SWAP6 0000118a: POP 0000118b: POP 0000118c: POP 0000118d: POP 0000118e: POP 0000118f: POP 00001190: JUMP 00001191: JUMPDEST 00001192: PUSH1 0x01 00001194: PUSH1 0x20 00001196: MSTORE 00001197: PUSH1 0x00 00001199: SWAP1 0000119a: DUP2 0000119b: MSTORE 0000119c: PUSH1 0x40 0000119e: SWAP1 0000119f: KECCAK256 000011a0: SLOAD 000011a1: DUP2 000011a2: JUMP 000011a3: JUMPDEST 000011a4: PUSH1 0x0b 000011a6: SLOAD 000011a7: DUP2 000011a8: JUMP 000011a9: JUMPDEST 000011aa: PUSH1 0x04 000011ac: PUSH1 0x20 000011ae: MSTORE 000011af: PUSH1 0x00 000011b1: SWAP1 000011b2: DUP2 000011b3: MSTORE 000011b4: PUSH1 0x40 000011b6: SWAP1 000011b7: KECCAK256 000011b8: SLOAD 000011b9: DUP2 000011ba: JUMP 000011bb: JUMPDEST 000011bc: PUSH1 0x00 000011be: DUP1 000011bf: PUSH1 0x0c 000011c1: SLOAD 000011c2: PUSH1 0x01 000011c4: EQ 000011c5: PUSH2 0x1209 000011c8: JUMPI 000011c9: PUSH1 0x40 000011cb: DUP1 000011cc: MLOAD 000011cd: PUSH3 0x461bcd 000011d1: PUSH1 0xe5 000011d3: SHL 000011d4: DUP2 000011d5: MSTORE 000011d6: PUSH1 0x20 000011d8: PUSH1 0x04 000011da: DUP3 000011db: ADD 000011dc: MSTORE 000011dd: PUSH1 0x11 000011df: PUSH1 0x24 000011e1: DUP3 000011e2: ADD 000011e3: MSTORE 000011e4: PUSH17 0x155b9a5cddd85c158c8e881313d0d2d151 000011f6: PUSH1 0x7a 000011f8: SHL 000011f9: PUSH1 0x44 000011fb: DUP3 000011fc: ADD 000011fd: MSTORE 000011fe: SWAP1 000011ff: MLOAD 00001200: SWAP1 00001201: DUP2 00001202: SWAP1 00001203: SUB 00001204: PUSH1 0x64 00001206: ADD 00001207: SWAP1 00001208: REVERT 00001209: JUMPDEST 0000120a: PUSH1 0x00 0000120c: PUSH1 0x0c 0000120e: DUP2 0000120f: SWAP1 00001210: SSTORE 00001211: DUP1 00001212: PUSH2 0x1219 00001215: PUSH2 0x0b6c 00001218: JUMP 00001219: JUMPDEST 0000121a: POP 0000121b: PUSH1 0x06 0000121d: SLOAD 0000121e: PUSH1 0x07 00001220: SLOAD 00001221: PUSH1 0x40 00001223: DUP1 00001224: MLOAD 00001225: PUSH4 0x70a08231 0000122a: PUSH1 0xe0 0000122c: SHL 0000122d: DUP2 0000122e: MSTORE 0000122f: ADDRESS 00001230: PUSH1 0x04 00001232: DUP3 00001233: ADD 00001234: MSTORE 00001235: SWAP1 00001236: MLOAD 00001237: SWAP5 00001238: SWAP7 00001239: POP 0000123a: SWAP3 0000123b: SWAP5 0000123c: POP 0000123d: PUSH1 0x01 0000123f: PUSH1 0x01 00001241: PUSH1 0xa0 00001243: SHL 00001244: SUB 00001245: SWAP2 00001246: DUP3 00001247: AND 00001248: SWAP4 00001249: SWAP2 0000124a: AND 0000124b: SWAP2 0000124c: PUSH1 0x00 0000124e: SWAP2 0000124f: DUP5 00001250: SWAP2 00001251: PUSH4 0x70a08231 00001256: SWAP2 00001257: PUSH1 0x24 00001259: DUP1 0000125a: DUP4 0000125b: ADD 0000125c: SWAP3 0000125d: PUSH1 0x20 0000125f: SWAP3 00001260: SWAP2 00001261: SWAP1 00001262: DUP3 00001263: SWAP1 00001264: SUB 00001265: ADD 00001266: DUP2 00001267: DUP7 00001268: DUP1 00001269: EXTCODESIZE 0000126a: ISZERO 0000126b: DUP1 0000126c: ISZERO 0000126d: PUSH2 0x1275 00001270: JUMPI 00001271: PUSH1 0x00 00001273: DUP1 00001274: REVERT 00001275: JUMPDEST 00001276: POP 00001277: GAS 00001278: STATICCALL 00001279: ISZERO 0000127a: DUP1 0000127b: ISZERO 0000127c: PUSH2 0x1289 0000127f: JUMPI 00001280: RETURNDATASIZE 00001281: PUSH1 0x00 00001283: DUP1 00001284: RETURNDATACOPY 00001285: RETURNDATASIZE 00001286: PUSH1 0x00 00001288: REVERT 00001289: JUMPDEST 0000128a: POP 0000128b: POP 0000128c: POP 0000128d: POP 0000128e: PUSH1 0x40 00001290: MLOAD 00001291: RETURNDATASIZE 00001292: PUSH1 0x20 00001294: DUP2 00001295: LT 00001296: ISZERO 00001297: PUSH2 0x129f 0000129a: JUMPI 0000129b: PUSH1 0x00 0000129d: DUP1 0000129e: REVERT 0000129f: JUMPDEST 000012a0: POP 000012a1: MLOAD 000012a2: PUSH1 0x40 000012a4: DUP1 000012a5: MLOAD 000012a6: PUSH4 0x70a08231 000012ab: PUSH1 0xe0 000012ad: SHL 000012ae: DUP2 000012af: MSTORE 000012b0: ADDRESS 000012b1: PUSH1 0x04 000012b3: DUP3 000012b4: ADD 000012b5: MSTORE 000012b6: SWAP1 000012b7: MLOAD 000012b8: SWAP2 000012b9: SWAP3 000012ba: POP 000012bb: PUSH1 0x00 000012bd: SWAP2 000012be: PUSH1 0x01 000012c0: PUSH1 0x01 000012c2: PUSH1 0xa0 000012c4: SHL 000012c5: SUB 000012c6: DUP6 000012c7: AND 000012c8: SWAP2 000012c9: PUSH4 0x70a08231 000012ce: SWAP2 000012cf: PUSH1 0x24 000012d1: DUP1 000012d2: DUP4 000012d3: ADD 000012d4: SWAP3 000012d5: PUSH1 0x20 000012d7: SWAP3 000012d8: SWAP2 000012d9: SWAP1 000012da: DUP3 000012db: SWAP1 000012dc: SUB 000012dd: ADD 000012de: DUP2 000012df: DUP7 000012e0: DUP1 000012e1: EXTCODESIZE 000012e2: ISZERO 000012e3: DUP1 000012e4: ISZERO 000012e5: PUSH2 0x12ed 000012e8: JUMPI 000012e9: PUSH1 0x00 000012eb: DUP1 000012ec: REVERT 000012ed: JUMPDEST 000012ee: POP 000012ef: GAS 000012f0: STATICCALL 000012f1: ISZERO 000012f2: DUP1 000012f3: ISZERO 000012f4: PUSH2 0x1301 000012f7: JUMPI 000012f8: RETURNDATASIZE 000012f9: PUSH1 0x00 000012fb: DUP1 000012fc: RETURNDATACOPY 000012fd: RETURNDATASIZE 000012fe: PUSH1 0x00 00001300: REVERT 00001301: JUMPDEST 00001302: POP 00001303: POP 00001304: POP 00001305: POP 00001306: PUSH1 0x40 00001308: MLOAD 00001309: RETURNDATASIZE 0000130a: PUSH1 0x20 0000130c: DUP2 0000130d: LT 0000130e: ISZERO 0000130f: PUSH2 0x1317 00001312: JUMPI 00001313: PUSH1 0x00 00001315: DUP1 00001316: REVERT 00001317: JUMPDEST 00001318: POP 00001319: MLOAD 0000131a: ADDRESS 0000131b: PUSH1 0x00 0000131d: SWAP1 0000131e: DUP2 0000131f: MSTORE 00001320: PUSH1 0x01 00001322: PUSH1 0x20 00001324: SWAP1 00001325: DUP2 00001326: MSTORE 00001327: PUSH1 0x40 00001329: DUP1 0000132a: DUP4 0000132b: KECCAK256 0000132c: SLOAD 0000132d: PUSH1 0x05 0000132f: SLOAD 00001330: DUP3 00001331: MLOAD 00001332: PUSH4 0x7cd07e47 00001337: PUSH1 0xe0 00001339: SHL 0000133a: DUP2 0000133b: MSTORE 0000133c: SWAP3 0000133d: MLOAD 0000133e: SWAP6 0000133f: SWAP7 00001340: POP 00001341: SWAP1 00001342: SWAP5 00001343: PUSH1 0x01 00001345: PUSH1 0x01 00001347: PUSH1 0xa0 00001349: SHL 0000134a: SUB 0000134b: SWAP1 0000134c: SWAP2 0000134d: AND 0000134e: SWAP3 0000134f: PUSH4 0x7cd07e47 00001354: SWAP3 00001355: PUSH1 0x04 00001357: DUP1 00001358: DUP3 00001359: ADD 0000135a: SWAP4 0000135b: SWAP2 0000135c: DUP3 0000135d: SWAP1 0000135e: SUB 0000135f: ADD 00001360: DUP2 00001361: DUP7 00001362: DUP1 00001363: EXTCODESIZE 00001364: ISZERO 00001365: DUP1 00001366: ISZERO 00001367: PUSH2 0x136f 0000136a: JUMPI 0000136b: PUSH1 0x00 0000136d: DUP1 0000136e: REVERT 0000136f: JUMPDEST 00001370: POP 00001371: GAS 00001372: STATICCALL 00001373: ISZERO 00001374: DUP1 00001375: ISZERO 00001376: PUSH2 0x1383 00001379: JUMPI 0000137a: RETURNDATASIZE 0000137b: PUSH1 0x00 0000137d: DUP1 0000137e: RETURNDATACOPY 0000137f: RETURNDATASIZE 00001380: PUSH1 0x00 00001382: REVERT 00001383: JUMPDEST 00001384: POP 00001385: POP 00001386: POP 00001387: POP 00001388: PUSH1 0x40 0000138a: MLOAD 0000138b: RETURNDATASIZE 0000138c: PUSH1 0x20 0000138e: DUP2 0000138f: LT 00001390: ISZERO 00001391: PUSH2 0x1399 00001394: JUMPI 00001395: PUSH1 0x00 00001397: DUP1 00001398: REVERT 00001399: JUMPDEST 0000139a: POP 0000139b: MLOAD 0000139c: SWAP1 0000139d: POP 0000139e: CALLER 0000139f: PUSH1 0x01 000013a1: PUSH1 0x01 000013a3: PUSH1 0xa0 000013a5: SHL 000013a6: SUB 000013a7: DUP3 000013a8: AND 000013a9: EQ 000013aa: PUSH2 0x13b9 000013ad: JUMPI 000013ae: PUSH2 0x13b6 000013b1: DUP3 000013b2: PUSH2 0x22eb 000013b5: JUMP 000013b6: JUMPDEST 000013b7: SWAP2 000013b8: POP 000013b9: JUMPDEST 000013ba: PUSH1 0x00 000013bc: PUSH2 0x13c5 000013bf: DUP10 000013c0: DUP10 000013c1: PUSH2 0x203b 000013c4: JUMP 000013c5: JUMPDEST 000013c6: PUSH1 0x00 000013c8: SLOAD 000013c9: SWAP1 000013ca: SWAP2 000013cb: POP 000013cc: DUP1 000013cd: PUSH2 0x13d6 000013d0: DUP6 000013d1: DUP9 000013d2: PUSH2 0x1cca 000013d5: JUMP 000013d6: JUMPDEST 000013d7: DUP2 000013d8: PUSH2 0x13dd 000013db: JUMPI 000013dc: INVALID 000013dd: JUMPDEST 000013de: DIV 000013df: SWAP12 000013e0: POP 000013e1: DUP1 000013e2: PUSH2 0x13eb 000013e5: DUP6 000013e6: DUP8 000013e7: PUSH2 0x1cca 000013ea: JUMP 000013eb: JUMPDEST 000013ec: DUP2 000013ed: PUSH2 0x13f2 000013f0: JUMPI 000013f1: INVALID 000013f2: JUMPDEST 000013f3: DIV 000013f4: SWAP11 000013f5: POP 000013f6: PUSH1 0x00 000013f8: DUP13 000013f9: GT 000013fa: DUP1 000013fb: ISZERO 000013fc: PUSH2 0x1405 000013ff: JUMPI 00001400: POP 00001401: PUSH1 0x00 00001403: DUP12 00001404: GT 00001405: JUMPDEST 00001406: PUSH2 0x1440 00001409: JUMPI 0000140a: PUSH1 0x40 0000140c: MLOAD 0000140d: PUSH3 0x461bcd 00001411: PUSH1 0xe5 00001413: SHL 00001414: DUP2 00001415: MSTORE 00001416: PUSH1 0x04 00001418: ADD 00001419: DUP1 0000141a: DUP1 0000141b: PUSH1 0x20 0000141d: ADD 0000141e: DUP3 0000141f: DUP2 00001420: SUB 00001421: DUP3 00001422: MSTORE 00001423: PUSH1 0x28 00001425: DUP2 00001426: MSTORE 00001427: PUSH1 0x20 00001429: ADD 0000142a: DUP1 0000142b: PUSH2 0x26f9 0000142e: PUSH1 0x28 00001430: SWAP2 00001431: CODECOPY 00001432: PUSH1 0x40 00001434: ADD 00001435: SWAP2 00001436: POP 00001437: POP 00001438: PUSH1 0x40 0000143a: MLOAD 0000143b: DUP1 0000143c: SWAP2 0000143d: SUB 0000143e: SWAP1 0000143f: REVERT 00001440: JUMPDEST 00001441: PUSH2 0x144a 00001444: ADDRESS 00001445: DUP6 00001446: PUSH2 0x2432 00001449: JUMP 0000144a: JUMPDEST 0000144b: PUSH2 0x1455 0000144e: DUP9 0000144f: DUP15 00001450: DUP15 00001451: PUSH2 0x1b30 00001454: JUMP 00001455: JUMPDEST 00001456: PUSH2 0x1460 00001459: DUP8 0000145a: DUP15 0000145b: DUP14 0000145c: PUSH2 0x1b30 0000145f: JUMP 00001460: JUMPDEST 00001461: PUSH1 0x40 00001463: DUP1 00001464: MLOAD 00001465: PUSH4 0x70a08231 0000146a: PUSH1 0xe0 0000146c: SHL 0000146d: DUP2 0000146e: MSTORE 0000146f: ADDRESS 00001470: PUSH1 0x04 00001472: DUP3 00001473: ADD 00001474: MSTORE 00001475: SWAP1 00001476: MLOAD 00001477: PUSH1 0x01 00001479: PUSH1 0x01 0000147b: PUSH1 0xa0 0000147d: SHL 0000147e: SUB 0000147f: DUP11 00001480: AND 00001481: SWAP2 00001482: PUSH4 0x70a08231 00001487: SWAP2 00001488: PUSH1 0x24 0000148a: DUP1 0000148b: DUP4 0000148c: ADD 0000148d: SWAP3 0000148e: PUSH1 0x20 00001490: SWAP3 00001491: SWAP2 00001492: SWAP1 00001493: DUP3 00001494: SWAP1 00001495: SUB 00001496: ADD 00001497: DUP2 00001498: DUP7 00001499: DUP1 0000149a: EXTCODESIZE 0000149b: ISZERO 0000149c: DUP1 0000149d: ISZERO 0000149e: PUSH2 0x14a6 000014a1: JUMPI 000014a2: PUSH1 0x00 000014a4: DUP1 000014a5: REVERT 000014a6: JUMPDEST 000014a7: POP 000014a8: GAS 000014a9: STATICCALL 000014aa: ISZERO 000014ab: DUP1 000014ac: ISZERO 000014ad: PUSH2 0x14ba 000014b0: JUMPI 000014b1: RETURNDATASIZE 000014b2: PUSH1 0x00 000014b4: DUP1 000014b5: RETURNDATACOPY 000014b6: RETURNDATASIZE 000014b7: PUSH1 0x00 000014b9: REVERT 000014ba: JUMPDEST 000014bb: POP 000014bc: POP 000014bd: POP 000014be: POP 000014bf: PUSH1 0x40 000014c1: MLOAD 000014c2: RETURNDATASIZE 000014c3: PUSH1 0x20 000014c5: DUP2 000014c6: LT 000014c7: ISZERO 000014c8: PUSH2 0x14d0 000014cb: JUMPI 000014cc: PUSH1 0x00 000014ce: DUP1 000014cf: REVERT 000014d0: JUMPDEST 000014d1: POP 000014d2: MLOAD 000014d3: PUSH1 0x40 000014d5: DUP1 000014d6: MLOAD 000014d7: PUSH4 0x70a08231 000014dc: PUSH1 0xe0 000014de: SHL 000014df: DUP2 000014e0: MSTORE 000014e1: ADDRESS 000014e2: PUSH1 0x04 000014e4: DUP3 000014e5: ADD 000014e6: MSTORE 000014e7: SWAP1 000014e8: MLOAD 000014e9: SWAP2 000014ea: SWAP8 000014eb: POP 000014ec: PUSH1 0x01 000014ee: PUSH1 0x01 000014f0: PUSH1 0xa0 000014f2: SHL 000014f3: SUB 000014f4: DUP10 000014f5: AND 000014f6: SWAP2 000014f7: PUSH4 0x70a08231 000014fc: SWAP2 000014fd: PUSH1 0x24 000014ff: DUP1 00001500: DUP3 00001501: ADD 00001502: SWAP3 00001503: PUSH1 0x20 00001505: SWAP3 00001506: SWAP1 00001507: SWAP2 00001508: SWAP1 00001509: DUP3 0000150a: SWAP1 0000150b: SUB 0000150c: ADD 0000150d: DUP2 0000150e: DUP7 0000150f: DUP1 00001510: EXTCODESIZE 00001511: ISZERO 00001512: DUP1 00001513: ISZERO 00001514: PUSH2 0x151c 00001517: JUMPI 00001518: PUSH1 0x00 0000151a: DUP1 0000151b: REVERT 0000151c: JUMPDEST 0000151d: POP 0000151e: GAS 0000151f: STATICCALL 00001520: ISZERO 00001521: DUP1 00001522: ISZERO 00001523: PUSH2 0x1530 00001526: JUMPI 00001527: RETURNDATASIZE 00001528: PUSH1 0x00 0000152a: DUP1 0000152b: RETURNDATACOPY 0000152c: RETURNDATASIZE 0000152d: PUSH1 0x00 0000152f: REVERT 00001530: JUMPDEST 00001531: POP 00001532: POP 00001533: POP 00001534: POP 00001535: PUSH1 0x40 00001537: MLOAD 00001538: RETURNDATASIZE 00001539: PUSH1 0x20 0000153b: DUP2 0000153c: LT 0000153d: ISZERO 0000153e: PUSH2 0x1546 00001541: JUMPI 00001542: PUSH1 0x00 00001544: DUP1 00001545: REVERT 00001546: JUMPDEST 00001547: POP 00001548: MLOAD 00001549: SWAP5 0000154a: POP 0000154b: PUSH2 0x1556 0000154e: DUP7 0000154f: DUP7 00001550: DUP13 00001551: DUP13 00001552: PUSH2 0x1d6c 00001555: JUMP 00001556: JUMPDEST 00001557: DUP2 00001558: ISZERO 00001559: PUSH2 0x1580 0000155c: JUMPI 0000155d: PUSH1 0x08 0000155f: SLOAD 00001560: PUSH2 0x157c 00001563: SWAP1 00001564: PUSH1 0x01 00001566: PUSH1 0x01 00001568: PUSH1 0x70 0000156a: SHL 0000156b: SUB 0000156c: DUP1 0000156d: DUP3 0000156e: AND 0000156f: SWAP2 00001570: PUSH1 0x01 00001572: PUSH1 0x70 00001574: SHL 00001575: SWAP1 00001576: DIV 00001577: AND 00001578: PUSH2 0x1cca 0000157b: JUMP 0000157c: JUMPDEST 0000157d: PUSH1 0x0b 0000157f: SSTORE 00001580: JUMPDEST 00001581: DUP13 00001582: PUSH1 0x01 00001584: PUSH1 0x01 00001586: PUSH1 0xa0 00001588: SHL 00001589: SUB 0000158a: AND 0000158b: CALLER 0000158c: PUSH1 0x01 0000158e: PUSH1 0x01 00001590: PUSH1 0xa0 00001592: SHL 00001593: SUB 00001594: AND 00001595: PUSH32 0xdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496 000015b6: DUP15 000015b7: DUP15 000015b8: PUSH1 0x40 000015ba: MLOAD 000015bb: DUP1 000015bc: DUP4 000015bd: DUP2 000015be: MSTORE 000015bf: PUSH1 0x20 000015c1: ADD 000015c2: DUP3 000015c3: DUP2 000015c4: MSTORE 000015c5: PUSH1 0x20 000015c7: ADD 000015c8: SWAP3 000015c9: POP 000015ca: POP 000015cb: POP 000015cc: PUSH1 0x40 000015ce: MLOAD 000015cf: DUP1 000015d0: SWAP2 000015d1: SUB 000015d2: SWAP1 000015d3: LOG3 000015d4: POP 000015d5: POP 000015d6: POP 000015d7: POP 000015d8: POP 000015d9: POP 000015da: POP 000015db: POP 000015dc: POP 000015dd: POP 000015de: PUSH1 0x01 000015e0: PUSH1 0x0c 000015e2: DUP2 000015e3: SWAP1 000015e4: SSTORE 000015e5: POP 000015e6: SWAP2 000015e7: POP 000015e8: SWAP2 000015e9: JUMP 000015ea: JUMPDEST 000015eb: PUSH1 0x40 000015ed: MLOAD 000015ee: DUP1 000015ef: PUSH1 0x40 000015f1: ADD 000015f2: PUSH1 0x40 000015f4: MSTORE 000015f5: DUP1 000015f6: PUSH1 0x06 000015f8: DUP2 000015f9: MSTORE 000015fa: PUSH1 0x20 000015fc: ADD 000015fd: PUSH6 0x4c55412d5631 00001604: PUSH1 0xd0 00001606: SHL 00001607: DUP2 00001608: MSTORE 00001609: POP 0000160a: DUP2 0000160b: JUMP 0000160c: JUMPDEST 0000160d: PUSH1 0x00 0000160f: PUSH2 0x0ba3 00001612: CALLER 00001613: DUP5 00001614: DUP5 00001615: PUSH2 0x1f8d 00001618: JUMP 00001619: JUMPDEST 0000161a: PUSH2 0x03e8 0000161d: DUP2 0000161e: JUMP 0000161f: JUMPDEST 00001620: PUSH1 0x0c 00001622: SLOAD 00001623: PUSH1 0x01 00001625: EQ 00001626: PUSH2 0x166a 00001629: JUMPI 0000162a: PUSH1 0x40 0000162c: DUP1 0000162d: MLOAD 0000162e: PUSH3 0x461bcd 00001632: PUSH1 0xe5 00001634: SHL 00001635: DUP2 00001636: MSTORE 00001637: PUSH1 0x20 00001639: PUSH1 0x04 0000163b: DUP3 0000163c: ADD 0000163d: MSTORE 0000163e: PUSH1 0x11 00001640: PUSH1 0x24 00001642: DUP3 00001643: ADD 00001644: MSTORE 00001645: PUSH17 0x155b9a5cddd85c158c8e881313d0d2d151 00001657: PUSH1 0x7a 00001659: SHL 0000165a: PUSH1 0x44 0000165c: DUP3 0000165d: ADD 0000165e: MSTORE 0000165f: SWAP1 00001660: MLOAD 00001661: SWAP1 00001662: DUP2 00001663: SWAP1 00001664: SUB 00001665: PUSH1 0x64 00001667: ADD 00001668: SWAP1 00001669: REVERT 0000166a: JUMPDEST 0000166b: PUSH1 0x00 0000166d: PUSH1 0x0c 0000166f: SSTORE 00001670: PUSH1 0x06 00001672: SLOAD 00001673: PUSH1 0x07 00001675: SLOAD 00001676: PUSH1 0x08 00001678: SLOAD 00001679: PUSH1 0x40 0000167b: DUP1 0000167c: MLOAD 0000167d: PUSH4 0x70a08231 00001682: PUSH1 0xe0 00001684: SHL 00001685: DUP2 00001686: MSTORE 00001687: ADDRESS 00001688: PUSH1 0x04 0000168a: DUP3 0000168b: ADD 0000168c: MSTORE 0000168d: SWAP1 0000168e: MLOAD 0000168f: PUSH1 0x01 00001691: PUSH1 0x01 00001693: PUSH1 0xa0 00001695: SHL 00001696: SUB 00001697: SWAP5 00001698: DUP6 00001699: AND 0000169a: SWAP5 0000169b: SWAP1 0000169c: SWAP4 0000169d: AND 0000169e: SWAP3 0000169f: PUSH2 0x1713 000016a2: SWAP3 000016a3: DUP6 000016a4: SWAP3 000016a5: DUP8 000016a6: SWAP3 000016a7: PUSH2 0x170e 000016aa: SWAP3 000016ab: PUSH1 0x01 000016ad: PUSH1 0x01 000016af: PUSH1 0x70 000016b1: SHL 000016b2: SUB 000016b3: AND 000016b4: SWAP2 000016b5: DUP6 000016b6: SWAP2 000016b7: PUSH4 0x70a08231 000016bc: SWAP2 000016bd: PUSH1 0x24 000016bf: DUP1 000016c0: DUP3 000016c1: ADD 000016c2: SWAP3 000016c3: PUSH1 0x20 000016c5: SWAP3 000016c6: SWAP1 000016c7: SWAP2 000016c8: SWAP1 000016c9: DUP3 000016ca: SWAP1 000016cb: SUB 000016cc: ADD 000016cd: DUP2 000016ce: DUP7 000016cf: DUP1 000016d0: EXTCODESIZE 000016d1: ISZERO 000016d2: DUP1 000016d3: ISZERO 000016d4: PUSH2 0x16dc 000016d7: JUMPI 000016d8: PUSH1 0x00 000016da: DUP1 000016db: REVERT 000016dc: JUMPDEST 000016dd: POP 000016de: GAS 000016df: STATICCALL 000016e0: ISZERO 000016e1: DUP1 000016e2: ISZERO 000016e3: PUSH2 0x16f0 000016e6: JUMPI 000016e7: RETURNDATASIZE 000016e8: PUSH1 0x00 000016ea: DUP1 000016eb: RETURNDATACOPY 000016ec: RETURNDATASIZE 000016ed: PUSH1 0x00 000016ef: REVERT 000016f0: JUMPDEST 000016f1: POP 000016f2: POP 000016f3: POP 000016f4: POP 000016f5: PUSH1 0x40 000016f7: MLOAD 000016f8: RETURNDATASIZE 000016f9: PUSH1 0x20 000016fb: DUP2 000016fc: LT 000016fd: ISZERO 000016fe: PUSH2 0x1706 00001701: JUMPI 00001702: PUSH1 0x00 00001704: DUP1 00001705: REVERT 00001706: JUMPDEST 00001707: POP 00001708: MLOAD 00001709: SWAP1 0000170a: PUSH2 0x1d2a 0000170d: JUMP 0000170e: JUMPDEST 0000170f: PUSH2 0x1b30 00001712: JUMP 00001713: JUMPDEST 00001714: PUSH2 0x1787 00001717: DUP2 00001718: DUP5 00001719: PUSH2 0x170e 0000171c: PUSH1 0x08 0000171e: PUSH1 0x0e 00001720: SWAP1 00001721: SLOAD 00001722: SWAP1 00001723: PUSH2 0x0100 00001726: EXP 00001727: SWAP1 00001728: DIV 00001729: PUSH1 0x01 0000172b: PUSH1 0x01 0000172d: PUSH1 0x70 0000172f: SHL 00001730: SUB 00001731: AND 00001732: PUSH1 0x01 00001734: PUSH1 0x01 00001736: PUSH1 0x70 00001738: SHL 00001739: SUB 0000173a: AND 0000173b: DUP6 0000173c: PUSH1 0x01 0000173e: PUSH1 0x01 00001740: PUSH1 0xa0 00001742: SHL 00001743: SUB 00001744: AND 00001745: PUSH4 0x70a08231 0000174a: ADDRESS 0000174b: PUSH1 0x40 0000174d: MLOAD 0000174e: DUP3 0000174f: PUSH4 0xffffffff 00001754: AND 00001755: PUSH1 0xe0 00001757: SHL 00001758: DUP2 00001759: MSTORE 0000175a: PUSH1 0x04 0000175c: ADD 0000175d: DUP1 0000175e: DUP3 0000175f: PUSH1 0x01 00001761: PUSH1 0x01 00001763: PUSH1 0xa0 00001765: SHL 00001766: SUB 00001767: AND 00001768: DUP2 00001769: MSTORE 0000176a: PUSH1 0x20 0000176c: ADD 0000176d: SWAP2 0000176e: POP 0000176f: POP 00001770: PUSH1 0x20 00001772: PUSH1 0x40 00001774: MLOAD 00001775: DUP1 00001776: DUP4 00001777: SUB 00001778: DUP2 00001779: DUP7 0000177a: DUP1 0000177b: EXTCODESIZE 0000177c: ISZERO 0000177d: DUP1 0000177e: ISZERO 0000177f: PUSH2 0x16dc 00001782: JUMPI 00001783: PUSH1 0x00 00001785: DUP1 00001786: REVERT 00001787: JUMPDEST 00001788: POP 00001789: POP 0000178a: PUSH1 0x01 0000178c: PUSH1 0x0c 0000178e: SSTORE 0000178f: POP 00001790: JUMP 00001791: JUMPDEST 00001792: PUSH1 0x05 00001794: SLOAD 00001795: PUSH1 0x01 00001797: PUSH1 0x01 00001799: PUSH1 0xa0 0000179b: SHL 0000179c: SUB 0000179d: AND 0000179e: DUP2 0000179f: JUMP 000017a0: JUMPDEST 000017a1: PUSH1 0x07 000017a3: SLOAD 000017a4: PUSH1 0x01 000017a6: PUSH1 0x01 000017a8: PUSH1 0xa0 000017aa: SHL 000017ab: SUB 000017ac: AND 000017ad: DUP2 000017ae: JUMP 000017af: JUMPDEST 000017b0: TIMESTAMP 000017b1: DUP5 000017b2: LT 000017b3: ISZERO 000017b4: PUSH2 0x17f9 000017b7: JUMPI 000017b8: PUSH1 0x40 000017ba: DUP1 000017bb: MLOAD 000017bc: PUSH3 0x461bcd 000017c0: PUSH1 0xe5 000017c2: SHL 000017c3: DUP2 000017c4: MSTORE 000017c5: PUSH1 0x20 000017c7: PUSH1 0x04 000017c9: DUP3 000017ca: ADD 000017cb: MSTORE 000017cc: PUSH1 0x12 000017ce: PUSH1 0x24 000017d0: DUP3 000017d1: ADD 000017d2: MSTORE 000017d3: PUSH18 0x155b9a5cddd85c158c8e8811561412549151 000017e6: PUSH1 0x72 000017e8: SHL 000017e9: PUSH1 0x44 000017eb: DUP3 000017ec: ADD 000017ed: MSTORE 000017ee: SWAP1 000017ef: MLOAD 000017f0: SWAP1 000017f1: DUP2 000017f2: SWAP1 000017f3: SUB 000017f4: PUSH1 0x64 000017f6: ADD 000017f7: SWAP1 000017f8: REVERT 000017f9: JUMPDEST 000017fa: PUSH1 0x03 000017fc: SLOAD 000017fd: PUSH1 0x01 000017ff: PUSH1 0x01 00001801: PUSH1 0xa0 00001803: SHL 00001804: SUB 00001805: DUP1 00001806: DUP10 00001807: AND 00001808: PUSH1 0x00 0000180a: DUP2 0000180b: DUP2 0000180c: MSTORE 0000180d: PUSH1 0x04 0000180f: PUSH1 0x20 00001811: SWAP1 00001812: DUP2 00001813: MSTORE 00001814: PUSH1 0x40 00001816: DUP1 00001817: DUP4 00001818: KECCAK256 00001819: DUP1 0000181a: SLOAD 0000181b: PUSH1 0x01 0000181d: DUP1 0000181e: DUP3 0000181f: ADD 00001820: SWAP1 00001821: SWAP3 00001822: SSTORE 00001823: DUP3 00001824: MLOAD 00001825: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 00001846: DUP2 00001847: DUP7 00001848: ADD 00001849: MSTORE 0000184a: DUP1 0000184b: DUP5 0000184c: ADD 0000184d: SWAP7 0000184e: SWAP1 0000184f: SWAP7 00001850: MSTORE 00001851: SWAP6 00001852: DUP14 00001853: AND 00001854: PUSH1 0x60 00001856: DUP7 00001857: ADD 00001858: MSTORE 00001859: PUSH1 0x80 0000185b: DUP6 0000185c: ADD 0000185d: DUP13 0000185e: SWAP1 0000185f: MSTORE 00001860: PUSH1 0xa0 00001862: DUP6 00001863: ADD 00001864: SWAP6 00001865: SWAP1 00001866: SWAP6 00001867: MSTORE 00001868: PUSH1 0xc0 0000186a: DUP1 0000186b: DUP6 0000186c: ADD 0000186d: DUP12 0000186e: SWAP1 0000186f: MSTORE 00001870: DUP2 00001871: MLOAD 00001872: DUP1 00001873: DUP7 00001874: SUB 00001875: SWAP1 00001876: SWAP2 00001877: ADD 00001878: DUP2 00001879: MSTORE 0000187a: PUSH1 0xe0 0000187c: DUP6 0000187d: ADD 0000187e: DUP3 0000187f: MSTORE 00001880: DUP1 00001881: MLOAD 00001882: SWAP1 00001883: DUP4 00001884: ADD 00001885: KECCAK256 00001886: PUSH2 0x1901 00001889: PUSH1 0xf0 0000188b: SHL 0000188c: PUSH2 0x0100 0000188f: DUP7 00001890: ADD 00001891: MSTORE 00001892: PUSH2 0x0102 00001895: DUP6 00001896: ADD 00001897: SWAP7 00001898: SWAP1 00001899: SWAP7 0000189a: MSTORE 0000189b: PUSH2 0x0122 0000189e: DUP1 0000189f: DUP6 000018a0: ADD 000018a1: SWAP7 000018a2: SWAP1 000018a3: SWAP7 000018a4: MSTORE 000018a5: DUP1 000018a6: MLOAD 000018a7: DUP1 000018a8: DUP6 000018a9: SUB 000018aa: SWAP1 000018ab: SWAP7 000018ac: ADD 000018ad: DUP7 000018ae: MSTORE 000018af: PUSH2 0x0142 000018b2: DUP5 000018b3: ADD 000018b4: DUP1 000018b5: DUP3 000018b6: MSTORE 000018b7: DUP7 000018b8: MLOAD 000018b9: SWAP7 000018ba: DUP4 000018bb: ADD 000018bc: SWAP7 000018bd: SWAP1 000018be: SWAP7 000018bf: KECCAK256 000018c0: SWAP6 000018c1: DUP4 000018c2: SWAP1 000018c3: MSTORE 000018c4: PUSH2 0x0162 000018c7: DUP5 000018c8: ADD 000018c9: DUP1 000018ca: DUP3 000018cb: MSTORE 000018cc: DUP7 000018cd: SWAP1 000018ce: MSTORE 000018cf: PUSH1 0xff 000018d1: DUP10 000018d2: AND 000018d3: PUSH2 0x0182 000018d6: DUP6 000018d7: ADD 000018d8: MSTORE 000018d9: PUSH2 0x01a2 000018dc: DUP5 000018dd: ADD 000018de: DUP9 000018df: SWAP1 000018e0: MSTORE 000018e1: PUSH2 0x01c2 000018e4: DUP5 000018e5: ADD 000018e6: DUP8 000018e7: SWAP1 000018e8: MSTORE 000018e9: MLOAD 000018ea: SWAP2 000018eb: SWAP4 000018ec: SWAP3 000018ed: PUSH2 0x01e2 000018f0: DUP1 000018f1: DUP3 000018f2: ADD 000018f3: SWAP4 000018f4: PUSH1 0x1f 000018f6: NOT 000018f7: DUP2 000018f8: ADD 000018f9: SWAP3 000018fa: DUP2 000018fb: SWAP1 000018fc: SUB 000018fd: SWAP1 000018fe: SWAP2 000018ff: ADD 00001900: SWAP1 00001901: DUP6 00001902: GAS 00001903: STATICCALL 00001904: ISZERO 00001905: DUP1 00001906: ISZERO 00001907: PUSH2 0x1914 0000190a: JUMPI 0000190b: RETURNDATASIZE 0000190c: PUSH1 0x00 0000190e: DUP1 0000190f: RETURNDATACOPY 00001910: RETURNDATASIZE 00001911: PUSH1 0x00 00001913: REVERT 00001914: JUMPDEST 00001915: POP 00001916: POP 00001917: PUSH1 0x40 00001919: MLOAD 0000191a: PUSH1 0x1f 0000191c: NOT 0000191d: ADD 0000191e: MLOAD 0000191f: SWAP2 00001920: POP 00001921: POP 00001922: PUSH1 0x01 00001924: PUSH1 0x01 00001926: PUSH1 0xa0 00001928: SHL 00001929: SUB 0000192a: DUP2 0000192b: AND 0000192c: ISZERO 0000192d: DUP1 0000192e: ISZERO 0000192f: SWAP1 00001930: PUSH2 0x194a 00001933: JUMPI 00001934: POP 00001935: DUP9 00001936: PUSH1 0x01 00001938: PUSH1 0x01 0000193a: PUSH1 0xa0 0000193c: SHL 0000193d: SUB 0000193e: AND 0000193f: DUP2 00001940: PUSH1 0x01 00001942: PUSH1 0x01 00001944: PUSH1 0xa0 00001946: SHL 00001947: SUB 00001948: AND 00001949: EQ 0000194a: JUMPDEST 0000194b: PUSH2 0x199b 0000194e: JUMPI 0000194f: PUSH1 0x40 00001951: DUP1 00001952: MLOAD 00001953: PUSH3 0x461bcd 00001957: PUSH1 0xe5 00001959: SHL 0000195a: DUP2 0000195b: MSTORE 0000195c: PUSH1 0x20 0000195e: PUSH1 0x04 00001960: DUP3 00001961: ADD 00001962: MSTORE 00001963: PUSH1 0x1c 00001965: PUSH1 0x24 00001967: DUP3 00001968: ADD 00001969: MSTORE 0000196a: PUSH32 0x556e697377617056323a20494e56414c49445f5349474e415455524500000000 0000198b: PUSH1 0x44 0000198d: DUP3 0000198e: ADD 0000198f: MSTORE 00001990: SWAP1 00001991: MLOAD 00001992: SWAP1 00001993: DUP2 00001994: SWAP1 00001995: SUB 00001996: PUSH1 0x64 00001998: ADD 00001999: SWAP1 0000199a: REVERT 0000199b: JUMPDEST 0000199c: PUSH2 0x19a6 0000199f: DUP10 000019a0: DUP10 000019a1: DUP10 000019a2: PUSH2 0x1f2b 000019a5: JUMP 000019a6: JUMPDEST 000019a7: POP 000019a8: POP 000019a9: POP 000019aa: POP 000019ab: POP 000019ac: POP 000019ad: POP 000019ae: POP 000019af: POP 000019b0: JUMP 000019b1: JUMPDEST 000019b2: PUSH1 0x02 000019b4: PUSH1 0x20 000019b6: SWAP1 000019b7: DUP2 000019b8: MSTORE 000019b9: PUSH1 0x00 000019bb: SWAP3 000019bc: DUP4 000019bd: MSTORE 000019be: PUSH1 0x40 000019c0: DUP1 000019c1: DUP5 000019c2: KECCAK256 000019c3: SWAP1 000019c4: SWAP2 000019c5: MSTORE 000019c6: SWAP1 000019c7: DUP3 000019c8: MSTORE 000019c9: SWAP1 000019ca: KECCAK256 000019cb: SLOAD 000019cc: DUP2 000019cd: JUMP 000019ce: JUMPDEST 000019cf: PUSH1 0x0c 000019d1: SLOAD 000019d2: PUSH1 0x01 000019d4: EQ 000019d5: PUSH2 0x1a19 000019d8: JUMPI 000019d9: PUSH1 0x40 000019db: DUP1 000019dc: MLOAD 000019dd: PUSH3 0x461bcd 000019e1: PUSH1 0xe5 000019e3: SHL 000019e4: DUP2 000019e5: MSTORE 000019e6: PUSH1 0x20 000019e8: PUSH1 0x04 000019ea: DUP3 000019eb: ADD 000019ec: MSTORE 000019ed: PUSH1 0x11 000019ef: PUSH1 0x24 000019f1: DUP3 000019f2: ADD 000019f3: MSTORE 000019f4: PUSH17 0x155b9a5cddd85c158c8e881313d0d2d151 00001a06: PUSH1 0x7a 00001a08: SHL 00001a09: PUSH1 0x44 00001a0b: DUP3 00001a0c: ADD 00001a0d: MSTORE 00001a0e: SWAP1 00001a0f: MLOAD 00001a10: SWAP1 00001a11: DUP2 00001a12: SWAP1 00001a13: SUB 00001a14: PUSH1 0x64 00001a16: ADD 00001a17: SWAP1 00001a18: REVERT 00001a19: JUMPDEST 00001a1a: PUSH1 0x00 00001a1c: PUSH1 0x0c 00001a1e: SSTORE 00001a1f: PUSH1 0x06 00001a21: SLOAD 00001a22: PUSH1 0x40 00001a24: DUP1 00001a25: MLOAD 00001a26: PUSH4 0x70a08231 00001a2b: PUSH1 0xe0 00001a2d: SHL 00001a2e: DUP2 00001a2f: MSTORE 00001a30: ADDRESS 00001a31: PUSH1 0x04 00001a33: DUP3 00001a34: ADD 00001a35: MSTORE 00001a36: SWAP1 00001a37: MLOAD 00001a38: PUSH2 0x1b29 00001a3b: SWAP3 00001a3c: PUSH1 0x01 00001a3e: PUSH1 0x01 00001a40: PUSH1 0xa0 00001a42: SHL 00001a43: SUB 00001a44: AND 00001a45: SWAP2 00001a46: PUSH4 0x70a08231 00001a4b: SWAP2 00001a4c: PUSH1 0x24 00001a4e: DUP1 00001a4f: DUP4 00001a50: ADD 00001a51: SWAP3 00001a52: PUSH1 0x20 00001a54: SWAP3 00001a55: SWAP2 00001a56: SWAP1 00001a57: DUP3 00001a58: SWAP1 00001a59: SUB 00001a5a: ADD 00001a5b: DUP2 00001a5c: DUP7 00001a5d: DUP1 00001a5e: EXTCODESIZE 00001a5f: ISZERO 00001a60: DUP1 00001a61: ISZERO 00001a62: PUSH2 0x1a6a 00001a65: JUMPI 00001a66: PUSH1 0x00 00001a68: DUP1 00001a69: REVERT 00001a6a: JUMPDEST 00001a6b: POP 00001a6c: GAS 00001a6d: STATICCALL 00001a6e: ISZERO 00001a6f: DUP1 00001a70: ISZERO 00001a71: PUSH2 0x1a7e 00001a74: JUMPI 00001a75: RETURNDATASIZE 00001a76: PUSH1 0x00 00001a78: DUP1 00001a79: RETURNDATACOPY 00001a7a: RETURNDATASIZE 00001a7b: PUSH1 0x00 00001a7d: REVERT 00001a7e: JUMPDEST 00001a7f: POP 00001a80: POP 00001a81: POP 00001a82: POP 00001a83: PUSH1 0x40 00001a85: MLOAD 00001a86: RETURNDATASIZE 00001a87: PUSH1 0x20 00001a89: DUP2 00001a8a: LT 00001a8b: ISZERO 00001a8c: PUSH2 0x1a94 00001a8f: JUMPI 00001a90: PUSH1 0x00 00001a92: DUP1 00001a93: REVERT 00001a94: JUMPDEST 00001a95: POP 00001a96: MLOAD 00001a97: PUSH1 0x07 00001a99: SLOAD 00001a9a: PUSH1 0x40 00001a9c: DUP1 00001a9d: MLOAD 00001a9e: PUSH4 0x70a08231 00001aa3: PUSH1 0xe0 00001aa5: SHL 00001aa6: DUP2 00001aa7: MSTORE 00001aa8: ADDRESS 00001aa9: PUSH1 0x04 00001aab: DUP3 00001aac: ADD 00001aad: MSTORE 00001aae: SWAP1 00001aaf: MLOAD 00001ab0: PUSH1 0x01 00001ab2: PUSH1 0x01 00001ab4: PUSH1 0xa0 00001ab6: SHL 00001ab7: SUB 00001ab8: SWAP1 00001ab9: SWAP3 00001aba: AND 00001abb: SWAP2 00001abc: PUSH4 0x70a08231 00001ac1: SWAP2 00001ac2: PUSH1 0x24 00001ac4: DUP1 00001ac5: DUP3 00001ac6: ADD 00001ac7: SWAP3 00001ac8: PUSH1 0x20 00001aca: SWAP3 00001acb: SWAP1 00001acc: SWAP2 00001acd: SWAP1 00001ace: DUP3 00001acf: SWAP1 00001ad0: SUB 00001ad1: ADD 00001ad2: DUP2 00001ad3: DUP7 00001ad4: DUP1 00001ad5: EXTCODESIZE 00001ad6: ISZERO 00001ad7: DUP1 00001ad8: ISZERO 00001ad9: PUSH2 0x1ae1 00001adc: JUMPI 00001add: PUSH1 0x00 00001adf: DUP1 00001ae0: REVERT 00001ae1: JUMPDEST 00001ae2: POP 00001ae3: GAS 00001ae4: STATICCALL 00001ae5: ISZERO 00001ae6: DUP1 00001ae7: ISZERO 00001ae8: PUSH2 0x1af5 00001aeb: JUMPI 00001aec: RETURNDATASIZE 00001aed: PUSH1 0x00 00001aef: DUP1 00001af0: RETURNDATACOPY 00001af1: RETURNDATASIZE 00001af2: PUSH1 0x00 00001af4: REVERT 00001af5: JUMPDEST 00001af6: POP 00001af7: POP 00001af8: POP 00001af9: POP 00001afa: PUSH1 0x40 00001afc: MLOAD 00001afd: RETURNDATASIZE 00001afe: PUSH1 0x20 00001b00: DUP2 00001b01: LT 00001b02: ISZERO 00001b03: PUSH2 0x1b0b 00001b06: JUMPI 00001b07: PUSH1 0x00 00001b09: DUP1 00001b0a: REVERT 00001b0b: JUMPDEST 00001b0c: POP 00001b0d: MLOAD 00001b0e: PUSH1 0x08 00001b10: SLOAD 00001b11: PUSH1 0x01 00001b13: PUSH1 0x01 00001b15: PUSH1 0x70 00001b17: SHL 00001b18: SUB 00001b19: DUP1 00001b1a: DUP3 00001b1b: AND 00001b1c: SWAP2 00001b1d: PUSH1 0x01 00001b1f: PUSH1 0x70 00001b21: SHL 00001b22: SWAP1 00001b23: DIV 00001b24: AND 00001b25: PUSH2 0x1d6c 00001b28: JUMP 00001b29: JUMPDEST 00001b2a: PUSH1 0x01 00001b2c: PUSH1 0x0c 00001b2e: SSTORE 00001b2f: JUMP 00001b30: JUMPDEST 00001b31: PUSH1 0x40 00001b33: DUP1 00001b34: MLOAD 00001b35: DUP1 00001b36: DUP3 00001b37: ADD 00001b38: DUP3 00001b39: MSTORE 00001b3a: PUSH1 0x19 00001b3c: DUP2 00001b3d: MSTORE 00001b3e: PUSH32 0x7472616e7366657228616464726573732c75696e743235362900000000000000 00001b5f: PUSH1 0x20 00001b61: SWAP2 00001b62: DUP3 00001b63: ADD 00001b64: MSTORE 00001b65: DUP2 00001b66: MLOAD 00001b67: PUSH1 0x01 00001b69: PUSH1 0x01 00001b6b: PUSH1 0xa0 00001b6d: SHL 00001b6e: SUB 00001b6f: DUP6 00001b70: DUP2 00001b71: AND 00001b72: PUSH1 0x24 00001b74: DUP4 00001b75: ADD 00001b76: MSTORE 00001b77: PUSH1 0x44 00001b79: DUP1 00001b7a: DUP4 00001b7b: ADD 00001b7c: DUP7 00001b7d: SWAP1 00001b7e: MSTORE 00001b7f: DUP5 00001b80: MLOAD 00001b81: DUP1 00001b82: DUP5 00001b83: SUB 00001b84: SWAP1 00001b85: SWAP2 00001b86: ADD 00001b87: DUP2 00001b88: MSTORE 00001b89: PUSH1 0x64 00001b8b: SWAP1 00001b8c: SWAP3 00001b8d: ADD 00001b8e: DUP5 00001b8f: MSTORE 00001b90: SWAP2 00001b91: DUP2 00001b92: ADD 00001b93: DUP1 00001b94: MLOAD 00001b95: PUSH1 0x01 00001b97: PUSH1 0x01 00001b99: PUSH1 0xe0 00001b9b: SHL 00001b9c: SUB 00001b9d: AND 00001b9e: PUSH4 0xa9059cbb 00001ba3: PUSH1 0xe0 00001ba5: SHL 00001ba6: OR 00001ba7: DUP2 00001ba8: MSTORE 00001ba9: SWAP3 00001baa: MLOAD 00001bab: DUP2 00001bac: MLOAD 00001bad: PUSH1 0x00 00001baf: SWAP5 00001bb0: PUSH1 0x60 00001bb2: SWAP5 00001bb3: DUP10 00001bb4: AND 00001bb5: SWAP4 00001bb6: SWAP3 00001bb7: SWAP2 00001bb8: DUP3 00001bb9: SWAP2 00001bba: SWAP1 00001bbb: DUP1 00001bbc: DUP4 00001bbd: DUP4 00001bbe: JUMPDEST 00001bbf: PUSH1 0x20 00001bc1: DUP4 00001bc2: LT 00001bc3: PUSH2 0x1bdd 00001bc6: JUMPI 00001bc7: DUP1 00001bc8: MLOAD 00001bc9: DUP3 00001bca: MSTORE 00001bcb: PUSH1 0x1f 00001bcd: NOT 00001bce: SWAP1 00001bcf: SWAP3 00001bd0: ADD 00001bd1: SWAP2 00001bd2: PUSH1 0x20 00001bd4: SWAP2 00001bd5: DUP3 00001bd6: ADD 00001bd7: SWAP2 00001bd8: ADD 00001bd9: PUSH2 0x1bbe 00001bdc: JUMP 00001bdd: JUMPDEST 00001bde: PUSH1 0x01 00001be0: DUP4 00001be1: PUSH1 0x20 00001be3: SUB 00001be4: PUSH2 0x0100 00001be7: EXP 00001be8: SUB 00001be9: DUP1 00001bea: NOT 00001beb: DUP3 00001bec: MLOAD 00001bed: AND 00001bee: DUP2 00001bef: DUP5 00001bf0: MLOAD 00001bf1: AND 00001bf2: DUP1 00001bf3: DUP3 00001bf4: OR 00001bf5: DUP6 00001bf6: MSTORE 00001bf7: POP 00001bf8: POP 00001bf9: POP 00001bfa: POP 00001bfb: POP 00001bfc: POP 00001bfd: SWAP1 00001bfe: POP 00001bff: ADD 00001c00: SWAP2 00001c01: POP 00001c02: POP 00001c03: PUSH1 0x00 00001c05: PUSH1 0x40 00001c07: MLOAD 00001c08: DUP1 00001c09: DUP4 00001c0a: SUB 00001c0b: DUP2 00001c0c: PUSH1 0x00 00001c0e: DUP7 00001c0f: GAS 00001c10: CALL 00001c11: SWAP2 00001c12: POP 00001c13: POP 00001c14: RETURNDATASIZE 00001c15: DUP1 00001c16: PUSH1 0x00 00001c18: DUP2 00001c19: EQ 00001c1a: PUSH2 0x1c3f 00001c1d: JUMPI 00001c1e: PUSH1 0x40 00001c20: MLOAD 00001c21: SWAP2 00001c22: POP 00001c23: PUSH1 0x1f 00001c25: NOT 00001c26: PUSH1 0x3f 00001c28: RETURNDATASIZE 00001c29: ADD 00001c2a: AND 00001c2b: DUP3 00001c2c: ADD 00001c2d: PUSH1 0x40 00001c2f: MSTORE 00001c30: RETURNDATASIZE 00001c31: DUP3 00001c32: MSTORE 00001c33: RETURNDATASIZE 00001c34: PUSH1 0x00 00001c36: PUSH1 0x20 00001c38: DUP5 00001c39: ADD 00001c3a: RETURNDATACOPY 00001c3b: PUSH2 0x1c44 00001c3e: JUMP 00001c3f: JUMPDEST 00001c40: PUSH1 0x60 00001c42: SWAP2 00001c43: POP 00001c44: JUMPDEST 00001c45: POP 00001c46: SWAP2 00001c47: POP 00001c48: SWAP2 00001c49: POP 00001c4a: DUP2 00001c4b: DUP1 00001c4c: ISZERO 00001c4d: PUSH2 0x1c72 00001c50: JUMPI 00001c51: POP 00001c52: DUP1 00001c53: MLOAD 00001c54: ISZERO 00001c55: DUP1 00001c56: PUSH2 0x1c72 00001c59: JUMPI 00001c5a: POP 00001c5b: DUP1 00001c5c: DUP1 00001c5d: PUSH1 0x20 00001c5f: ADD 00001c60: SWAP1 00001c61: MLOAD 00001c62: PUSH1 0x20 00001c64: DUP2 00001c65: LT 00001c66: ISZERO 00001c67: PUSH2 0x1c6f 00001c6a: JUMPI 00001c6b: PUSH1 0x00 00001c6d: DUP1 00001c6e: REVERT 00001c6f: JUMPDEST 00001c70: POP 00001c71: MLOAD 00001c72: JUMPDEST 00001c73: PUSH2 0x1cc3 00001c76: JUMPI 00001c77: PUSH1 0x40 00001c79: DUP1 00001c7a: MLOAD 00001c7b: PUSH3 0x461bcd 00001c7f: PUSH1 0xe5 00001c81: SHL 00001c82: DUP2 00001c83: MSTORE 00001c84: PUSH1 0x20 00001c86: PUSH1 0x04 00001c88: DUP3 00001c89: ADD 00001c8a: MSTORE 00001c8b: PUSH1 0x1a 00001c8d: PUSH1 0x24 00001c8f: DUP3 00001c90: ADD 00001c91: MSTORE 00001c92: PUSH32 0x556e697377617056323a205452414e534645525f4641494c4544000000000000 00001cb3: PUSH1 0x44 00001cb5: DUP3 00001cb6: ADD 00001cb7: MSTORE 00001cb8: SWAP1 00001cb9: MLOAD 00001cba: SWAP1 00001cbb: DUP2 00001cbc: SWAP1 00001cbd: SUB 00001cbe: PUSH1 0x64 00001cc0: ADD 00001cc1: SWAP1 00001cc2: REVERT 00001cc3: JUMPDEST 00001cc4: POP 00001cc5: POP 00001cc6: POP 00001cc7: POP 00001cc8: POP 00001cc9: JUMP 00001cca: JUMPDEST 00001ccb: PUSH1 0x00 00001ccd: DUP3 00001cce: PUSH2 0x1cd9 00001cd1: JUMPI 00001cd2: POP 00001cd3: PUSH1 0x00 00001cd5: PUSH2 0x0ba7 00001cd8: JUMP 00001cd9: JUMPDEST 00001cda: DUP3 00001cdb: DUP3 00001cdc: MUL 00001cdd: DUP3 00001cde: DUP5 00001cdf: DUP3 00001ce0: DUP2 00001ce1: PUSH2 0x1ce6 00001ce4: JUMPI 00001ce5: INVALID 00001ce6: JUMPDEST 00001ce7: DIV 00001ce8: EQ 00001ce9: PUSH2 0x1d23 00001cec: JUMPI 00001ced: PUSH1 0x40 00001cef: MLOAD 00001cf0: PUSH3 0x461bcd 00001cf4: PUSH1 0xe5 00001cf6: SHL 00001cf7: DUP2 00001cf8: MSTORE 00001cf9: PUSH1 0x04 00001cfb: ADD 00001cfc: DUP1 00001cfd: DUP1 00001cfe: PUSH1 0x20 00001d00: ADD 00001d01: DUP3 00001d02: DUP2 00001d03: SUB 00001d04: DUP3 00001d05: MSTORE 00001d06: PUSH1 0x21 00001d08: DUP2 00001d09: MSTORE 00001d0a: PUSH1 0x20 00001d0c: ADD 00001d0d: DUP1 00001d0e: PUSH2 0x2749 00001d11: PUSH1 0x21 00001d13: SWAP2 00001d14: CODECOPY 00001d15: PUSH1 0x40 00001d17: ADD 00001d18: SWAP2 00001d19: POP 00001d1a: POP 00001d1b: PUSH1 0x40 00001d1d: MLOAD 00001d1e: DUP1 00001d1f: SWAP2 00001d20: SUB 00001d21: SWAP1 00001d22: REVERT 00001d23: JUMPDEST 00001d24: SWAP4 00001d25: SWAP3 00001d26: POP 00001d27: POP 00001d28: POP 00001d29: JUMP 00001d2a: JUMPDEST 00001d2b: PUSH1 0x00 00001d2d: PUSH2 0x1d23 00001d30: DUP4 00001d31: DUP4 00001d32: PUSH1 0x40 00001d34: MLOAD 00001d35: DUP1 00001d36: PUSH1 0x40 00001d38: ADD 00001d39: PUSH1 0x40 00001d3b: MSTORE 00001d3c: DUP1 00001d3d: PUSH1 0x1e 00001d3f: DUP2 00001d40: MSTORE 00001d41: PUSH1 0x20 00001d43: ADD 00001d44: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 00001d65: DUP2 00001d66: MSTORE 00001d67: POP 00001d68: PUSH2 0x24c4 00001d6b: JUMP 00001d6c: JUMPDEST 00001d6d: PUSH1 0x01 00001d6f: PUSH1 0x01 00001d71: PUSH1 0x70 00001d73: SHL 00001d74: SUB 00001d75: DUP5 00001d76: GT 00001d77: DUP1 00001d78: ISZERO 00001d79: SWAP1 00001d7a: PUSH2 0x1d8a 00001d7d: JUMPI 00001d7e: POP 00001d7f: PUSH1 0x01 00001d81: PUSH1 0x01 00001d83: PUSH1 0x70 00001d85: SHL 00001d86: SUB 00001d87: DUP4 00001d88: GT 00001d89: ISZERO 00001d8a: JUMPDEST 00001d8b: PUSH2 0x1dd1 00001d8e: JUMPI 00001d8f: PUSH1 0x40 00001d91: DUP1 00001d92: MLOAD 00001d93: PUSH3 0x461bcd 00001d97: PUSH1 0xe5 00001d99: SHL 00001d9a: DUP2 00001d9b: MSTORE 00001d9c: PUSH1 0x20 00001d9e: PUSH1 0x04 00001da0: DUP3 00001da1: ADD 00001da2: MSTORE 00001da3: PUSH1 0x13 00001da5: PUSH1 0x24 00001da7: DUP3 00001da8: ADD 00001da9: MSTORE 00001daa: PUSH19 0x556e697377617056323a204f564552464c4f57 00001dbe: PUSH1 0x68 00001dc0: SHL 00001dc1: PUSH1 0x44 00001dc3: DUP3 00001dc4: ADD 00001dc5: MSTORE 00001dc6: SWAP1 00001dc7: MLOAD 00001dc8: SWAP1 00001dc9: DUP2 00001dca: SWAP1 00001dcb: SUB 00001dcc: PUSH1 0x64 00001dce: ADD 00001dcf: SWAP1 00001dd0: REVERT 00001dd1: JUMPDEST 00001dd2: PUSH1 0x08 00001dd4: SLOAD 00001dd5: PUSH4 0xffffffff 00001dda: TIMESTAMP 00001ddb: DUP2 00001ddc: AND 00001ddd: SWAP2 00001dde: PUSH1 0x01 00001de0: PUSH1 0xe0 00001de2: SHL 00001de3: SWAP1 00001de4: DIV 00001de5: DUP2 00001de6: AND 00001de7: DUP3 00001de8: SUB 00001de9: SWAP1 00001dea: DUP2 00001deb: AND 00001dec: ISZERO 00001ded: DUP1 00001dee: ISZERO 00001def: SWAP1 00001df0: PUSH2 0x1e01 00001df3: JUMPI 00001df4: POP 00001df5: PUSH1 0x01 00001df7: PUSH1 0x01 00001df9: PUSH1 0x70 00001dfb: SHL 00001dfc: SUB 00001dfd: DUP5 00001dfe: AND 00001dff: ISZERO 00001e00: ISZERO 00001e01: JUMPDEST 00001e02: DUP1 00001e03: ISZERO 00001e04: PUSH2 0x1e15 00001e07: JUMPI 00001e08: POP 00001e09: PUSH1 0x01 00001e0b: PUSH1 0x01 00001e0d: PUSH1 0x70 00001e0f: SHL 00001e10: SUB 00001e11: DUP4 00001e12: AND 00001e13: ISZERO 00001e14: ISZERO 00001e15: JUMPDEST 00001e16: ISZERO 00001e17: PUSH2 0x1e80 00001e1a: JUMPI 00001e1b: DUP1 00001e1c: PUSH4 0xffffffff 00001e21: AND 00001e22: PUSH2 0x1e3d 00001e25: DUP6 00001e26: PUSH2 0x1e2e 00001e29: DUP7 00001e2a: PUSH2 0x255b 00001e2d: JUMP 00001e2e: JUMPDEST 00001e2f: PUSH1 0x01 00001e31: PUSH1 0x01 00001e33: PUSH1 0xe0 00001e35: SHL 00001e36: SUB 00001e37: AND 00001e38: SWAP1 00001e39: PUSH2 0x256d 00001e3c: JUMP 00001e3d: JUMPDEST 00001e3e: PUSH1 0x09 00001e40: DUP1 00001e41: SLOAD 00001e42: PUSH1 0x01 00001e44: PUSH1 0x01 00001e46: PUSH1 0xe0 00001e48: SHL 00001e49: SUB 00001e4a: SWAP3 00001e4b: SWAP1 00001e4c: SWAP3 00001e4d: AND 00001e4e: SWAP3 00001e4f: SWAP1 00001e50: SWAP3 00001e51: MUL 00001e52: ADD 00001e53: SWAP1 00001e54: SSTORE 00001e55: PUSH4 0xffffffff 00001e5a: DUP2 00001e5b: AND 00001e5c: PUSH2 0x1e68 00001e5f: DUP5 00001e60: PUSH2 0x1e2e 00001e63: DUP8 00001e64: PUSH2 0x255b 00001e67: JUMP 00001e68: JUMPDEST 00001e69: PUSH1 0x0a 00001e6b: DUP1 00001e6c: SLOAD 00001e6d: PUSH1 0x01 00001e6f: PUSH1 0x01 00001e71: PUSH1 0xe0 00001e73: SHL 00001e74: SUB 00001e75: SWAP3 00001e76: SWAP1 00001e77: SWAP3 00001e78: AND 00001e79: SWAP3 00001e7a: SWAP1 00001e7b: SWAP3 00001e7c: MUL 00001e7d: ADD 00001e7e: SWAP1 00001e7f: SSTORE 00001e80: JUMPDEST 00001e81: PUSH1 0x08 00001e83: DUP1 00001e84: SLOAD 00001e85: PUSH14 0xffffffffffffffffffffffffffff 00001e94: NOT 00001e95: AND 00001e96: PUSH1 0x01 00001e98: PUSH1 0x01 00001e9a: PUSH1 0x70 00001e9c: SHL 00001e9d: SUB 00001e9e: DUP9 00001e9f: DUP2 00001ea0: AND 00001ea1: SWAP2 00001ea2: SWAP1 00001ea3: SWAP2 00001ea4: OR 00001ea5: PUSH14 0xffffffffffffffffffffffffffff 00001eb4: PUSH1 0x70 00001eb6: SHL 00001eb7: NOT 00001eb8: AND 00001eb9: PUSH1 0x01 00001ebb: PUSH1 0x70 00001ebd: SHL 00001ebe: DUP9 00001ebf: DUP4 00001ec0: AND 00001ec1: DUP2 00001ec2: MUL 00001ec3: SWAP2 00001ec4: SWAP1 00001ec5: SWAP2 00001ec6: OR 00001ec7: PUSH1 0x01 00001ec9: PUSH1 0x01 00001ecb: PUSH1 0xe0 00001ecd: SHL 00001ece: SUB 00001ecf: AND 00001ed0: PUSH1 0x01 00001ed2: PUSH1 0xe0 00001ed4: SHL 00001ed5: PUSH4 0xffffffff 00001eda: DUP8 00001edb: AND 00001edc: MUL 00001edd: OR 00001ede: SWAP3 00001edf: DUP4 00001ee0: SWAP1 00001ee1: SSTORE 00001ee2: PUSH1 0x40 00001ee4: DUP1 00001ee5: MLOAD 00001ee6: DUP5 00001ee7: DUP5 00001ee8: AND 00001ee9: DUP2 00001eea: MSTORE 00001eeb: SWAP2 00001eec: SWAP1 00001eed: SWAP4 00001eee: DIV 00001eef: SWAP1 00001ef0: SWAP2 00001ef1: AND 00001ef2: PUSH1 0x20 00001ef4: DUP3 00001ef5: ADD 00001ef6: MSTORE 00001ef7: DUP2 00001ef8: MLOAD 00001ef9: PUSH32 0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1 00001f1a: SWAP3 00001f1b: SWAP2 00001f1c: DUP2 00001f1d: SWAP1 00001f1e: SUB 00001f1f: SWAP1 00001f20: SWAP2 00001f21: ADD 00001f22: SWAP1 00001f23: LOG1 00001f24: POP 00001f25: POP 00001f26: POP 00001f27: POP 00001f28: POP 00001f29: POP 00001f2a: JUMP 00001f2b: JUMPDEST 00001f2c: PUSH1 0x01 00001f2e: PUSH1 0x01 00001f30: PUSH1 0xa0 00001f32: SHL 00001f33: SUB 00001f34: DUP1 00001f35: DUP5 00001f36: AND 00001f37: PUSH1 0x00 00001f39: DUP2 00001f3a: DUP2 00001f3b: MSTORE 00001f3c: PUSH1 0x02 00001f3e: PUSH1 0x20 00001f40: SWAP1 00001f41: DUP2 00001f42: MSTORE 00001f43: PUSH1 0x40 00001f45: DUP1 00001f46: DUP4 00001f47: KECCAK256 00001f48: SWAP5 00001f49: DUP8 00001f4a: AND 00001f4b: DUP1 00001f4c: DUP5 00001f4d: MSTORE 00001f4e: SWAP5 00001f4f: DUP3 00001f50: MSTORE 00001f51: SWAP2 00001f52: DUP3 00001f53: SWAP1 00001f54: KECCAK256 00001f55: DUP6 00001f56: SWAP1 00001f57: SSTORE 00001f58: DUP2 00001f59: MLOAD 00001f5a: DUP6 00001f5b: DUP2 00001f5c: MSTORE 00001f5d: SWAP2 00001f5e: MLOAD 00001f5f: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00001f80: SWAP3 00001f81: DUP2 00001f82: SWAP1 00001f83: SUB 00001f84: SWAP1 00001f85: SWAP2 00001f86: ADD 00001f87: SWAP1 00001f88: LOG3 00001f89: POP 00001f8a: POP 00001f8b: POP 00001f8c: JUMP 00001f8d: JUMPDEST 00001f8e: PUSH1 0x01 00001f90: PUSH1 0x01 00001f92: PUSH1 0xa0 00001f94: SHL 00001f95: SUB 00001f96: DUP4 00001f97: AND 00001f98: PUSH1 0x00 00001f9a: SWAP1 00001f9b: DUP2 00001f9c: MSTORE 00001f9d: PUSH1 0x01 00001f9f: PUSH1 0x20 00001fa1: MSTORE 00001fa2: PUSH1 0x40 00001fa4: SWAP1 00001fa5: KECCAK256 00001fa6: SLOAD 00001fa7: PUSH2 0x1fb0 00001faa: SWAP1 00001fab: DUP3 00001fac: PUSH2 0x1d2a 00001faf: JUMP 00001fb0: JUMPDEST 00001fb1: PUSH1 0x01 00001fb3: PUSH1 0x01 00001fb5: PUSH1 0xa0 00001fb7: SHL 00001fb8: SUB 00001fb9: DUP1 00001fba: DUP6 00001fbb: AND 00001fbc: PUSH1 0x00 00001fbe: SWAP1 00001fbf: DUP2 00001fc0: MSTORE 00001fc1: PUSH1 0x01 00001fc3: PUSH1 0x20 00001fc5: MSTORE 00001fc6: PUSH1 0x40 00001fc8: DUP1 00001fc9: DUP3 00001fca: KECCAK256 00001fcb: SWAP4 00001fcc: SWAP1 00001fcd: SWAP4 00001fce: SSTORE 00001fcf: SWAP1 00001fd0: DUP5 00001fd1: AND 00001fd2: DUP2 00001fd3: MSTORE 00001fd4: KECCAK256 00001fd5: SLOAD 00001fd6: PUSH2 0x1fdf 00001fd9: SWAP1 00001fda: DUP3 00001fdb: PUSH2 0x2592 00001fde: JUMP 00001fdf: JUMPDEST 00001fe0: PUSH1 0x01 00001fe2: PUSH1 0x01 00001fe4: PUSH1 0xa0 00001fe6: SHL 00001fe7: SUB 00001fe8: DUP1 00001fe9: DUP5 00001fea: AND 00001feb: PUSH1 0x00 00001fed: DUP2 00001fee: DUP2 00001fef: MSTORE 00001ff0: PUSH1 0x01 00001ff2: PUSH1 0x20 00001ff4: SWAP1 00001ff5: DUP2 00001ff6: MSTORE 00001ff7: PUSH1 0x40 00001ff9: SWAP2 00001ffa: DUP3 00001ffb: SWAP1 00001ffc: KECCAK256 00001ffd: SWAP5 00001ffe: SWAP1 00001fff: SWAP5 00002000: SSTORE 00002001: DUP1 00002002: MLOAD 00002003: DUP6 00002004: DUP2 00002005: MSTORE 00002006: SWAP1 00002007: MLOAD 00002008: SWAP2 00002009: SWAP4 0000200a: SWAP3 0000200b: DUP8 0000200c: AND 0000200d: SWAP3 0000200e: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 0000202f: SWAP3 00002030: SWAP2 00002031: DUP3 00002032: SWAP1 00002033: SUB 00002034: ADD 00002035: SWAP1 00002036: LOG3 00002037: POP 00002038: POP 00002039: POP 0000203a: JUMP 0000203b: JUMPDEST 0000203c: PUSH1 0x00 0000203e: DUP1 0000203f: PUSH1 0x05 00002041: PUSH1 0x00 00002043: SWAP1 00002044: SLOAD 00002045: SWAP1 00002046: PUSH2 0x0100 00002049: EXP 0000204a: SWAP1 0000204b: DIV 0000204c: PUSH1 0x01 0000204e: PUSH1 0x01 00002050: PUSH1 0xa0 00002052: SHL 00002053: SUB 00002054: AND 00002055: PUSH1 0x01 00002057: PUSH1 0x01 00002059: PUSH1 0xa0 0000205b: SHL 0000205c: SUB 0000205d: AND 0000205e: PUSH4 0x017e7e58 00002063: PUSH1 0x40 00002065: MLOAD 00002066: DUP2 00002067: PUSH4 0xffffffff 0000206c: AND 0000206d: PUSH1 0xe0 0000206f: SHL 00002070: DUP2 00002071: MSTORE 00002072: PUSH1 0x04 00002074: ADD 00002075: PUSH1 0x20 00002077: PUSH1 0x40 00002079: MLOAD 0000207a: DUP1 0000207b: DUP4 0000207c: SUB 0000207d: DUP2 0000207e: DUP7 0000207f: DUP1 00002080: EXTCODESIZE 00002081: ISZERO 00002082: DUP1 00002083: ISZERO 00002084: PUSH2 0x208c 00002087: JUMPI 00002088: PUSH1 0x00 0000208a: DUP1 0000208b: REVERT 0000208c: JUMPDEST 0000208d: POP 0000208e: GAS 0000208f: STATICCALL 00002090: ISZERO 00002091: DUP1 00002092: ISZERO 00002093: PUSH2 0x20a0 00002096: JUMPI 00002097: RETURNDATASIZE 00002098: PUSH1 0x00 0000209a: DUP1 0000209b: RETURNDATACOPY 0000209c: RETURNDATASIZE 0000209d: PUSH1 0x00 0000209f: REVERT 000020a0: JUMPDEST 000020a1: POP 000020a2: POP 000020a3: POP 000020a4: POP 000020a5: PUSH1 0x40 000020a7: MLOAD 000020a8: RETURNDATASIZE 000020a9: PUSH1 0x20 000020ab: DUP2 000020ac: LT 000020ad: ISZERO 000020ae: PUSH2 0x20b6 000020b1: JUMPI 000020b2: PUSH1 0x00 000020b4: DUP1 000020b5: REVERT 000020b6: JUMPDEST 000020b7: POP 000020b8: MLOAD 000020b9: PUSH1 0x05 000020bb: SLOAD 000020bc: PUSH1 0x40 000020be: DUP1 000020bf: MLOAD 000020c0: PUSH4 0x54cf2aeb 000020c5: PUSH1 0xe0 000020c7: SHL 000020c8: DUP2 000020c9: MSTORE 000020ca: SWAP1 000020cb: MLOAD 000020cc: SWAP3 000020cd: SWAP4 000020ce: POP 000020cf: PUSH1 0x00 000020d1: SWAP3 000020d2: PUSH1 0x01 000020d4: PUSH1 0x01 000020d6: PUSH1 0xa0 000020d8: SHL 000020d9: SUB 000020da: SWAP1 000020db: SWAP3 000020dc: AND 000020dd: SWAP2 000020de: PUSH4 0x54cf2aeb 000020e3: SWAP2 000020e4: PUSH1 0x04 000020e6: DUP1 000020e7: DUP3 000020e8: ADD 000020e9: SWAP3 000020ea: PUSH1 0x20 000020ec: SWAP3 000020ed: SWAP1 000020ee: SWAP2 000020ef: SWAP1 000020f0: DUP3 000020f1: SWAP1 000020f2: SUB 000020f3: ADD 000020f4: DUP2 000020f5: DUP7 000020f6: DUP1 000020f7: EXTCODESIZE 000020f8: ISZERO 000020f9: DUP1 000020fa: ISZERO 000020fb: PUSH2 0x2103 000020fe: JUMPI 000020ff: PUSH1 0x00 00002101: DUP1 00002102: REVERT 00002103: JUMPDEST 00002104: POP 00002105: GAS 00002106: STATICCALL 00002107: ISZERO 00002108: DUP1 00002109: ISZERO 0000210a: PUSH2 0x2117 0000210d: JUMPI 0000210e: RETURNDATASIZE 0000210f: PUSH1 0x00 00002111: DUP1 00002112: RETURNDATACOPY 00002113: RETURNDATASIZE 00002114: PUSH1 0x00 00002116: REVERT 00002117: JUMPDEST 00002118: POP 00002119: POP 0000211a: POP 0000211b: POP 0000211c: PUSH1 0x40 0000211e: MLOAD 0000211f: RETURNDATASIZE 00002120: PUSH1 0x20 00002122: DUP2 00002123: LT 00002124: ISZERO 00002125: PUSH2 0x212d 00002128: JUMPI 00002129: PUSH1 0x00 0000212b: DUP1 0000212c: REVERT 0000212d: JUMPDEST 0000212e: POP 0000212f: MLOAD 00002130: PUSH1 0x0b 00002132: SLOAD 00002133: PUSH1 0x01 00002135: PUSH1 0x01 00002137: PUSH1 0xa0 00002139: SHL 0000213a: SUB 0000213b: DUP5 0000213c: AND 0000213d: ISZERO 0000213e: DUP1 0000213f: ISZERO 00002140: SWAP6 00002141: POP 00002142: SWAP2 00002143: SWAP3 00002144: POP 00002145: SWAP1 00002146: PUSH2 0x21e4 00002149: JUMPI 0000214a: DUP1 0000214b: ISZERO 0000214c: PUSH2 0x21df 0000214f: JUMPI 00002150: PUSH1 0x00 00002152: PUSH2 0x216a 00002155: PUSH2 0x1068 00002158: PUSH1 0x01 0000215a: PUSH1 0x01 0000215c: PUSH1 0x70 0000215e: SHL 0000215f: SUB 00002160: DUP10 00002161: DUP2 00002162: AND 00002163: SWAP1 00002164: DUP10 00002165: AND 00002166: PUSH2 0x1cca 00002169: JUMP 0000216a: JUMPDEST 0000216b: SWAP1 0000216c: POP 0000216d: PUSH1 0x00 0000216f: PUSH2 0x2177 00002172: DUP4 00002173: PUSH2 0x21f9 00002176: JUMP 00002177: JUMPDEST 00002178: SWAP1 00002179: POP 0000217a: DUP1 0000217b: DUP3 0000217c: GT 0000217d: ISZERO 0000217e: PUSH2 0x21dc 00002181: JUMPI 00002182: PUSH1 0x00 00002184: PUSH2 0x2199 00002187: PUSH2 0x2190 0000218a: DUP5 0000218b: DUP5 0000218c: PUSH2 0x1d2a 0000218f: JUMP 00002190: JUMPDEST 00002191: PUSH1 0x00 00002193: SLOAD 00002194: SWAP1 00002195: PUSH2 0x1cca 00002198: JUMP 00002199: JUMPDEST 0000219a: SWAP1 0000219b: POP 0000219c: PUSH1 0x00 0000219e: PUSH2 0x21b8 000021a1: DUP4 000021a2: PUSH2 0x21b2 000021a5: DUP7 000021a6: PUSH1 0x00 000021a8: NOT 000021a9: PUSH1 0x02 000021ab: DUP12 000021ac: MUL 000021ad: ADD 000021ae: PUSH2 0x1cca 000021b1: JUMP 000021b2: JUMPDEST 000021b3: SWAP1 000021b4: PUSH2 0x2592 000021b7: JUMP 000021b8: JUMPDEST 000021b9: SWAP1 000021ba: POP 000021bb: PUSH1 0x00 000021bd: DUP2 000021be: DUP4 000021bf: DUP2 000021c0: PUSH2 0x21c5 000021c3: JUMPI 000021c4: INVALID 000021c5: JUMPDEST 000021c6: DIV 000021c7: SWAP1 000021c8: POP 000021c9: DUP1 000021ca: ISZERO 000021cb: PUSH2 0x21d8 000021ce: JUMPI 000021cf: PUSH2 0x21d8 000021d2: DUP9 000021d3: DUP3 000021d4: PUSH2 0x224b 000021d7: JUMP 000021d8: JUMPDEST 000021d9: POP 000021da: POP 000021db: POP 000021dc: JUMPDEST 000021dd: POP 000021de: POP 000021df: JUMPDEST 000021e0: PUSH2 0x21f0 000021e3: JUMP 000021e4: JUMPDEST 000021e5: DUP1 000021e6: ISZERO 000021e7: PUSH2 0x21f0 000021ea: JUMPI 000021eb: PUSH1 0x00 000021ed: PUSH1 0x0b 000021ef: SSTORE 000021f0: JUMPDEST 000021f1: POP 000021f2: POP 000021f3: POP 000021f4: SWAP3 000021f5: SWAP2 000021f6: POP 000021f7: POP 000021f8: JUMP 000021f9: JUMPDEST 000021fa: PUSH1 0x00 000021fc: PUSH1 0x03 000021fe: DUP3 000021ff: GT 00002200: ISZERO 00002201: PUSH2 0x223c 00002204: JUMPI 00002205: POP 00002206: DUP1 00002207: PUSH1 0x01 00002209: PUSH1 0x02 0000220b: DUP3 0000220c: DIV 0000220d: ADD 0000220e: JUMPDEST 0000220f: DUP2 00002210: DUP2 00002211: LT 00002212: ISZERO 00002213: PUSH2 0x2236 00002216: JUMPI 00002217: DUP1 00002218: SWAP2 00002219: POP 0000221a: PUSH1 0x02 0000221c: DUP2 0000221d: DUP3 0000221e: DUP6 0000221f: DUP2 00002220: PUSH2 0x2225 00002223: JUMPI 00002224: INVALID 00002225: JUMPDEST 00002226: DIV 00002227: ADD 00002228: DUP2 00002229: PUSH2 0x222e 0000222c: JUMPI 0000222d: INVALID 0000222e: JUMPDEST 0000222f: DIV 00002230: SWAP1 00002231: POP 00002232: PUSH2 0x220e 00002235: JUMP 00002236: JUMPDEST 00002237: POP 00002238: PUSH2 0x2246 0000223b: JUMP 0000223c: JUMPDEST 0000223d: DUP2 0000223e: ISZERO 0000223f: PUSH2 0x2246 00002242: JUMPI 00002243: POP 00002244: PUSH1 0x01 00002246: JUMPDEST 00002247: SWAP2 00002248: SWAP1 00002249: POP 0000224a: JUMP 0000224b: JUMPDEST 0000224c: PUSH1 0x00 0000224e: SLOAD 0000224f: PUSH2 0x2258 00002252: SWAP1 00002253: DUP3 00002254: PUSH2 0x2592 00002257: JUMP 00002258: JUMPDEST 00002259: PUSH1 0x00 0000225b: SWAP1 0000225c: DUP2 0000225d: SSTORE 0000225e: PUSH1 0x01 00002260: PUSH1 0x01 00002262: PUSH1 0xa0 00002264: SHL 00002265: SUB 00002266: DUP4 00002267: AND 00002268: DUP2 00002269: MSTORE 0000226a: PUSH1 0x01 0000226c: PUSH1 0x20 0000226e: MSTORE 0000226f: PUSH1 0x40 00002271: SWAP1 00002272: KECCAK256 00002273: SLOAD 00002274: PUSH2 0x227d 00002277: SWAP1 00002278: DUP3 00002279: PUSH2 0x2592 0000227c: JUMP 0000227d: JUMPDEST 0000227e: PUSH1 0x01 00002280: PUSH1 0x01 00002282: PUSH1 0xa0 00002284: SHL 00002285: SUB 00002286: DUP4 00002287: AND 00002288: PUSH1 0x00 0000228a: DUP2 0000228b: DUP2 0000228c: MSTORE 0000228d: PUSH1 0x01 0000228f: PUSH1 0x20 00002291: SWAP1 00002292: DUP2 00002293: MSTORE 00002294: PUSH1 0x40 00002296: DUP1 00002297: DUP4 00002298: KECCAK256 00002299: SWAP5 0000229a: SWAP1 0000229b: SWAP5 0000229c: SSTORE 0000229d: DUP4 0000229e: MLOAD 0000229f: DUP6 000022a0: DUP2 000022a1: MSTORE 000022a2: SWAP4 000022a3: MLOAD 000022a4: SWAP3 000022a5: SWAP4 000022a6: SWAP2 000022a7: SWAP3 000022a8: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000022c9: SWAP3 000022ca: DUP2 000022cb: SWAP1 000022cc: SUB 000022cd: SWAP1 000022ce: SWAP2 000022cf: ADD 000022d0: SWAP1 000022d1: LOG3 000022d2: POP 000022d3: POP 000022d4: JUMP 000022d5: JUMPDEST 000022d6: PUSH1 0x00 000022d8: DUP2 000022d9: DUP4 000022da: LT 000022db: PUSH2 0x22e4 000022de: JUMPI 000022df: DUP2 000022e0: PUSH2 0x1d23 000022e3: JUMP 000022e4: JUMPDEST 000022e5: POP 000022e6: SWAP1 000022e7: SWAP2 000022e8: SWAP1 000022e9: POP 000022ea: JUMP 000022eb: JUMPDEST 000022ec: PUSH1 0x00 000022ee: DUP1 000022ef: PUSH1 0x05 000022f1: PUSH1 0x00 000022f3: SWAP1 000022f4: SLOAD 000022f5: SWAP1 000022f6: PUSH2 0x0100 000022f9: EXP 000022fa: SWAP1 000022fb: DIV 000022fc: PUSH1 0x01 000022fe: PUSH1 0x01 00002300: PUSH1 0xa0 00002302: SHL 00002303: SUB 00002304: AND 00002305: PUSH1 0x01 00002307: PUSH1 0x01 00002309: PUSH1 0xa0 0000230b: SHL 0000230c: SUB 0000230d: AND 0000230e: PUSH4 0xe4dae387 00002313: PUSH1 0x40 00002315: MLOAD 00002316: DUP2 00002317: PUSH4 0xffffffff 0000231c: AND 0000231d: PUSH1 0xe0 0000231f: SHL 00002320: DUP2 00002321: MSTORE 00002322: PUSH1 0x04 00002324: ADD 00002325: PUSH1 0x20 00002327: PUSH1 0x40 00002329: MLOAD 0000232a: DUP1 0000232b: DUP4 0000232c: SUB 0000232d: DUP2 0000232e: DUP7 0000232f: DUP1 00002330: EXTCODESIZE 00002331: ISZERO 00002332: DUP1 00002333: ISZERO 00002334: PUSH2 0x233c 00002337: JUMPI 00002338: PUSH1 0x00 0000233a: DUP1 0000233b: REVERT 0000233c: JUMPDEST 0000233d: POP 0000233e: GAS 0000233f: STATICCALL 00002340: ISZERO 00002341: DUP1 00002342: ISZERO 00002343: PUSH2 0x2350 00002346: JUMPI 00002347: RETURNDATASIZE 00002348: PUSH1 0x00 0000234a: DUP1 0000234b: RETURNDATACOPY 0000234c: RETURNDATASIZE 0000234d: PUSH1 0x00 0000234f: REVERT 00002350: JUMPDEST 00002351: POP 00002352: POP 00002353: POP 00002354: POP 00002355: PUSH1 0x40 00002357: MLOAD 00002358: RETURNDATASIZE 00002359: PUSH1 0x20 0000235b: DUP2 0000235c: LT 0000235d: ISZERO 0000235e: PUSH2 0x2366 00002361: JUMPI 00002362: PUSH1 0x00 00002364: DUP1 00002365: REVERT 00002366: JUMPDEST 00002367: POP 00002368: MLOAD 00002369: PUSH1 0x05 0000236b: SLOAD 0000236c: PUSH1 0x40 0000236e: DUP1 0000236f: MLOAD 00002370: PUSH4 0x1d283f4f 00002375: PUSH1 0xe3 00002377: SHL 00002378: DUP2 00002379: MSTORE 0000237a: SWAP1 0000237b: MLOAD 0000237c: SWAP3 0000237d: SWAP4 0000237e: POP 0000237f: PUSH1 0x00 00002381: SWAP3 00002382: PUSH1 0x01 00002384: PUSH1 0x01 00002386: PUSH1 0xa0 00002388: SHL 00002389: SUB 0000238a: SWAP1 0000238b: SWAP3 0000238c: AND 0000238d: SWAP2 0000238e: PUSH4 0xe941fa78 00002393: SWAP2 00002394: PUSH1 0x04 00002396: DUP1 00002397: DUP3 00002398: ADD 00002399: SWAP3 0000239a: PUSH1 0x20 0000239c: SWAP3 0000239d: SWAP1 0000239e: SWAP2 0000239f: SWAP1 000023a0: DUP3 000023a1: SWAP1 000023a2: SUB 000023a3: ADD 000023a4: DUP2 000023a5: DUP7 000023a6: DUP1 000023a7: EXTCODESIZE 000023a8: ISZERO 000023a9: DUP1 000023aa: ISZERO 000023ab: PUSH2 0x23b3 000023ae: JUMPI 000023af: PUSH1 0x00 000023b1: DUP1 000023b2: REVERT 000023b3: JUMPDEST 000023b4: POP 000023b5: GAS 000023b6: STATICCALL 000023b7: ISZERO 000023b8: DUP1 000023b9: ISZERO 000023ba: PUSH2 0x23c7 000023bd: JUMPI 000023be: RETURNDATASIZE 000023bf: PUSH1 0x00 000023c1: DUP1 000023c2: RETURNDATACOPY 000023c3: RETURNDATASIZE 000023c4: PUSH1 0x00 000023c6: REVERT 000023c7: JUMPDEST 000023c8: POP 000023c9: POP 000023ca: POP 000023cb: POP 000023cc: PUSH1 0x40 000023ce: MLOAD 000023cf: RETURNDATASIZE 000023d0: PUSH1 0x20 000023d2: DUP2 000023d3: LT 000023d4: ISZERO 000023d5: PUSH2 0x23dd 000023d8: JUMPI 000023d9: PUSH1 0x00 000023db: DUP1 000023dc: REVERT 000023dd: JUMPDEST 000023de: POP 000023df: MLOAD 000023e0: SWAP1 000023e1: POP 000023e2: PUSH1 0x01 000023e4: PUSH1 0x01 000023e6: PUSH1 0xa0 000023e8: SHL 000023e9: SUB 000023ea: DUP3 000023eb: AND 000023ec: ISZERO 000023ed: PUSH2 0x2427 000023f0: JUMPI 000023f1: PUSH1 0x00 000023f3: PUSH2 0x2408 000023f6: PUSH2 0x03e8 000023f9: PUSH2 0x2402 000023fc: DUP8 000023fd: DUP6 000023fe: PUSH2 0x1cca 00002401: JUMP 00002402: JUMPDEST 00002403: SWAP1 00002404: PUSH2 0x25ec 00002407: JUMP 00002408: JUMPDEST 00002409: SWAP1 0000240a: POP 0000240b: PUSH2 0x2415 0000240e: ADDRESS 0000240f: DUP5 00002410: DUP4 00002411: PUSH2 0x1b30 00002414: JUMP 00002415: JUMPDEST 00002416: PUSH2 0x241f 00002419: DUP6 0000241a: DUP3 0000241b: PUSH2 0x1d2a 0000241e: JUMP 0000241f: JUMPDEST 00002420: SWAP4 00002421: POP 00002422: POP 00002423: PUSH2 0x242b 00002426: JUMP 00002427: JUMPDEST 00002428: DUP4 00002429: SWAP3 0000242a: POP 0000242b: JUMPDEST 0000242c: POP 0000242d: POP 0000242e: SWAP2 0000242f: SWAP1 00002430: POP 00002431: JUMP 00002432: JUMPDEST 00002433: PUSH1 0x01 00002435: PUSH1 0x01 00002437: PUSH1 0xa0 00002439: SHL 0000243a: SUB 0000243b: DUP3 0000243c: AND 0000243d: PUSH1 0x00 0000243f: SWAP1 00002440: DUP2 00002441: MSTORE 00002442: PUSH1 0x01 00002444: PUSH1 0x20 00002446: MSTORE 00002447: PUSH1 0x40 00002449: SWAP1 0000244a: KECCAK256 0000244b: SLOAD 0000244c: PUSH2 0x2455 0000244f: SWAP1 00002450: DUP3 00002451: PUSH2 0x1d2a 00002454: JUMP 00002455: JUMPDEST 00002456: PUSH1 0x01 00002458: PUSH1 0x01 0000245a: PUSH1 0xa0 0000245c: SHL 0000245d: SUB 0000245e: DUP4 0000245f: AND 00002460: PUSH1 0x00 00002462: SWAP1 00002463: DUP2 00002464: MSTORE 00002465: PUSH1 0x01 00002467: PUSH1 0x20 00002469: MSTORE 0000246a: PUSH1 0x40 0000246c: DUP2 0000246d: KECCAK256 0000246e: SWAP2 0000246f: SWAP1 00002470: SWAP2 00002471: SSTORE 00002472: SLOAD 00002473: PUSH2 0x247c 00002476: SWAP1 00002477: DUP3 00002478: PUSH2 0x1d2a 0000247b: JUMP 0000247c: JUMPDEST 0000247d: PUSH1 0x00 0000247f: SWAP1 00002480: DUP2 00002481: SSTORE 00002482: PUSH1 0x40 00002484: DUP1 00002485: MLOAD 00002486: DUP4 00002487: DUP2 00002488: MSTORE 00002489: SWAP1 0000248a: MLOAD 0000248b: PUSH1 0x01 0000248d: PUSH1 0x01 0000248f: PUSH1 0xa0 00002491: SHL 00002492: SUB 00002493: DUP6 00002494: AND 00002495: SWAP2 00002496: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000024b7: SWAP2 000024b8: SWAP1 000024b9: DUP2 000024ba: SWAP1 000024bb: SUB 000024bc: PUSH1 0x20 000024be: ADD 000024bf: SWAP1 000024c0: LOG3 000024c1: POP 000024c2: POP 000024c3: JUMP 000024c4: JUMPDEST 000024c5: PUSH1 0x00 000024c7: DUP2 000024c8: DUP5 000024c9: DUP5 000024ca: GT 000024cb: ISZERO 000024cc: PUSH2 0x2553 000024cf: JUMPI 000024d0: PUSH1 0x40 000024d2: MLOAD 000024d3: PUSH3 0x461bcd 000024d7: PUSH1 0xe5 000024d9: SHL 000024da: DUP2 000024db: MSTORE 000024dc: PUSH1 0x04 000024de: ADD 000024df: DUP1 000024e0: DUP1 000024e1: PUSH1 0x20 000024e3: ADD 000024e4: DUP3 000024e5: DUP2 000024e6: SUB 000024e7: DUP3 000024e8: MSTORE 000024e9: DUP4 000024ea: DUP2 000024eb: DUP2 000024ec: MLOAD 000024ed: DUP2 000024ee: MSTORE 000024ef: PUSH1 0x20 000024f1: ADD 000024f2: SWAP2 000024f3: POP 000024f4: DUP1 000024f5: MLOAD 000024f6: SWAP1 000024f7: PUSH1 0x20 000024f9: ADD 000024fa: SWAP1 000024fb: DUP1 000024fc: DUP4 000024fd: DUP4 000024fe: PUSH1 0x00 00002500: JUMPDEST 00002501: DUP4 00002502: DUP2 00002503: LT 00002504: ISZERO 00002505: PUSH2 0x2518 00002508: JUMPI 00002509: DUP2 0000250a: DUP2 0000250b: ADD 0000250c: MLOAD 0000250d: DUP4 0000250e: DUP3 0000250f: ADD 00002510: MSTORE 00002511: PUSH1 0x20 00002513: ADD 00002514: PUSH2 0x2500 00002517: JUMP 00002518: JUMPDEST 00002519: POP 0000251a: POP 0000251b: POP 0000251c: POP 0000251d: SWAP1 0000251e: POP 0000251f: SWAP1 00002520: DUP2 00002521: ADD 00002522: SWAP1 00002523: PUSH1 0x1f 00002525: AND 00002526: DUP1 00002527: ISZERO 00002528: PUSH2 0x2545 0000252b: JUMPI 0000252c: DUP1 0000252d: DUP3 0000252e: SUB 0000252f: DUP1 00002530: MLOAD 00002531: PUSH1 0x01 00002533: DUP4 00002534: PUSH1 0x20 00002536: SUB 00002537: PUSH2 0x0100 0000253a: EXP 0000253b: SUB 0000253c: NOT 0000253d: AND 0000253e: DUP2 0000253f: MSTORE 00002540: PUSH1 0x20 00002542: ADD 00002543: SWAP2 00002544: POP 00002545: JUMPDEST 00002546: POP 00002547: SWAP3 00002548: POP 00002549: POP 0000254a: POP 0000254b: PUSH1 0x40 0000254d: MLOAD 0000254e: DUP1 0000254f: SWAP2 00002550: SUB 00002551: SWAP1 00002552: REVERT 00002553: JUMPDEST 00002554: POP 00002555: POP 00002556: POP 00002557: SWAP1 00002558: SUB 00002559: SWAP1 0000255a: JUMP 0000255b: JUMPDEST 0000255c: PUSH1 0x01 0000255e: PUSH1 0x01 00002560: PUSH1 0x70 00002562: SHL 00002563: SUB 00002564: AND 00002565: PUSH1 0x01 00002567: PUSH1 0x70 00002569: SHL 0000256a: MUL 0000256b: SWAP1 0000256c: JUMP 0000256d: JUMPDEST 0000256e: PUSH1 0x00 00002570: PUSH1 0x01 00002572: PUSH1 0x01 00002574: PUSH1 0x70 00002576: SHL 00002577: SUB 00002578: DUP3 00002579: AND 0000257a: PUSH1 0x01 0000257c: PUSH1 0x01 0000257e: PUSH1 0xe0 00002580: SHL 00002581: SUB 00002582: DUP5 00002583: AND 00002584: DUP2 00002585: PUSH2 0x258a 00002588: JUMPI 00002589: INVALID 0000258a: JUMPDEST 0000258b: DIV 0000258c: SWAP4 0000258d: SWAP3 0000258e: POP 0000258f: POP 00002590: POP 00002591: JUMP 00002592: JUMPDEST 00002593: PUSH1 0x00 00002595: DUP3 00002596: DUP3 00002597: ADD 00002598: DUP4 00002599: DUP2 0000259a: LT 0000259b: ISZERO 0000259c: PUSH2 0x1d23 0000259f: JUMPI 000025a0: PUSH1 0x40 000025a2: DUP1 000025a3: MLOAD 000025a4: PUSH3 0x461bcd 000025a8: PUSH1 0xe5 000025aa: SHL 000025ab: DUP2 000025ac: MSTORE 000025ad: PUSH1 0x20 000025af: PUSH1 0x04 000025b1: DUP3 000025b2: ADD 000025b3: MSTORE 000025b4: PUSH1 0x1b 000025b6: PUSH1 0x24 000025b8: DUP3 000025b9: ADD 000025ba: MSTORE 000025bb: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000 000025dc: PUSH1 0x44 000025de: DUP3 000025df: ADD 000025e0: MSTORE 000025e1: SWAP1 000025e2: MLOAD 000025e3: SWAP1 000025e4: DUP2 000025e5: SWAP1 000025e6: SUB 000025e7: PUSH1 0x64 000025e9: ADD 000025ea: SWAP1 000025eb: REVERT 000025ec: JUMPDEST 000025ed: PUSH1 0x00 000025ef: PUSH2 0x1d23 000025f2: DUP4 000025f3: DUP4 000025f4: PUSH1 0x40 000025f6: MLOAD 000025f7: DUP1 000025f8: PUSH1 0x40 000025fa: ADD 000025fb: PUSH1 0x40 000025fd: MSTORE 000025fe: DUP1 000025ff: PUSH1 0x1a 00002601: DUP2 00002602: MSTORE 00002603: PUSH1 0x20 00002605: ADD 00002606: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000 00002627: DUP2 00002628: MSTORE 00002629: POP 0000262a: PUSH1 0x00 0000262c: DUP2 0000262d: DUP4 0000262e: PUSH2 0x2678 00002631: JUMPI 00002632: PUSH1 0x40 00002634: MLOAD 00002635: PUSH3 0x461bcd 00002639: PUSH1 0xe5 0000263b: SHL 0000263c: DUP2 0000263d: MSTORE 0000263e: PUSH1 0x20 00002640: PUSH1 0x04 00002642: DUP3 00002643: ADD 00002644: DUP2 00002645: DUP2 00002646: MSTORE 00002647: DUP4 00002648: MLOAD 00002649: PUSH1 0x24 0000264b: DUP5 0000264c: ADD 0000264d: MSTORE 0000264e: DUP4 0000264f: MLOAD 00002650: SWAP1 00002651: SWAP3 00002652: DUP4 00002653: SWAP3 00002654: PUSH1 0x44 00002656: SWAP1 00002657: SWAP2 00002658: ADD 00002659: SWAP2 0000265a: SWAP1 0000265b: DUP6 0000265c: ADD 0000265d: SWAP1 0000265e: DUP1 0000265f: DUP4 00002660: DUP4 00002661: PUSH1 0x00 00002663: DUP4 00002664: ISZERO 00002665: PUSH2 0x2518 00002668: JUMPI 00002669: DUP2 0000266a: DUP2 0000266b: ADD 0000266c: MLOAD 0000266d: DUP4 0000266e: DUP3 0000266f: ADD 00002670: MSTORE 00002671: PUSH1 0x20 00002673: ADD 00002674: PUSH2 0x2500 00002677: JUMP 00002678: JUMPDEST 00002679: POP 0000267a: PUSH1 0x00 0000267c: DUP4 0000267d: DUP6 0000267e: DUP2 0000267f: PUSH2 0x2684 00002682: JUMPI 00002683: INVALID 00002684: JUMPDEST 00002685: DIV 00002686: SWAP6 00002687: SWAP5 00002688: POP 00002689: POP 0000268a: POP 0000268b: POP 0000268c: POP 0000268d: JUMP 0000268e: INVALID 0000268f: SSTORE 00002690: PUSH15 0x697377617056323a20494e53554646 000026a0: BLOBHASH 000026a1: NUMBER 000026a2: BLOBHASH 000026a3: GASLIMIT 000026a4: UNKNOWN(0x4E) 000026a5: SLOAD 000026a6: PUSH0 000026a7: UNKNOWN(0x4F) 000026a8: SSTORE 000026a9: SLOAD 000026aa: POP 000026ab: SSTORE 000026ac: SLOAD 000026ad: PUSH0 000026ae: COINBASE 000026af: UNKNOWN(0x4D) 000026b0: UNKNOWN(0x4F) 000026b1: SSTORE 000026b2: UNKNOWN(0x4E) 000026b3: SLOAD 000026b4: SSTORE 000026b5: PUSH15 0x697377617056323a20494e53554646 000026c5: BLOBHASH 000026c6: NUMBER 000026c7: BLOBHASH 000026c8: GASLIMIT 000026c9: UNKNOWN(0x4E) 000026ca: SLOAD 000026cb: PUSH0 000026cc: BLOBHASH 000026cd: UNKNOWN(0x4E) 000026ce: POP 000026cf: SSTORE 000026d0: SLOAD 000026d1: PUSH0 000026d2: COINBASE 000026d3: UNKNOWN(0x4D) 000026d4: UNKNOWN(0x4F) 000026d5: SSTORE 000026d6: UNKNOWN(0x4E) 000026d7: SLOAD 000026d8: SSTORE 000026d9: PUSH15 0x697377617056323a20494e53554646 000026e9: BLOBHASH 000026ea: NUMBER 000026eb: BLOBHASH 000026ec: GASLIMIT 000026ed: UNKNOWN(0x4E) 000026ee: SLOAD 000026ef: PUSH0 000026f0: UNKNOWN(0x4C) 000026f1: BLOBHASH 000026f2: MLOAD 000026f3: SSTORE 000026f4: BLOBHASH 000026f5: DIFFICULTY 000026f6: BLOBHASH 000026f7: SLOAD 000026f8: MSIZE 000026f9: SSTORE 000026fa: PUSH15 0x697377617056323a20494e53554646 0000270a: BLOBHASH 0000270b: NUMBER 0000270c: BLOBHASH 0000270d: GASLIMIT 0000270e: UNKNOWN(0x4E) 0000270f: SLOAD 00002710: PUSH0 00002711: UNKNOWN(0x4C) 00002712: BLOBHASH 00002713: MLOAD 00002714: SSTORE 00002715: BLOBHASH 00002716: DIFFICULTY 00002717: BLOBHASH 00002718: SLOAD 00002719: MSIZE 0000271a: PUSH0 0000271b: TIMESTAMP 0000271c: SSTORE 0000271d: MSTORE 0000271e: UNKNOWN(0x4E) 0000271f: GASLIMIT 00002720: DIFFICULTY 00002721: SSTORE 00002722: PUSH15 0x697377617056323a20494e53554646 00002732: BLOBHASH 00002733: NUMBER 00002734: BLOBHASH 00002735: GASLIMIT 00002736: UNKNOWN(0x4E) 00002737: SLOAD 00002738: PUSH0 00002739: UNKNOWN(0x4C) 0000273a: BLOBHASH 0000273b: MLOAD 0000273c: SSTORE 0000273d: BLOBHASH 0000273e: DIFFICULTY 0000273f: BLOBHASH 00002740: SLOAD 00002741: MSIZE 00002742: PUSH0 00002743: UNKNOWN(0x4D) 00002744: BLOBHASH 00002745: UNKNOWN(0x4E) 00002746: SLOAD 00002747: GASLIMIT 00002748: DIFFICULTY 00002749: MSTORE8 0000274a: PUSH2 0x6665 0000274d: UNKNOWN(0x4D) 0000274e: PUSH2 0x7468 00002751: GASPRICE 00002752: KECCAK256 00002753: PUSH14 0x756c7469706c69636174696f6e20 00002762: PUSH16 0x766572666c6f77a26469706673582212 00002773: KECCAK256 00002774: LOG2 00002775: UNKNOWN(0xA5) 00002776: UNKNOWN(0xC1) 00002777: SHL 00002778: SAR 00002779: UNKNOWN(0xBD) 0000277a: UNKNOWN(0x4D) 0000277b: SWAP11 0000277c: PUSH25 0x213d2160032199fe8dc9e63bde6cad396ff3dbbba38a9f6473 00002796: PUSH16
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xfbb78c6cfd988680f57b6732065cffc43b4a361d66f9494257c51c31cd28a0c1
call_targets:
0xb3558f47fa914f7ec1da1a6f52ab41ee63e81301
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xfbb78c6cfd988680f57b6732065cffc43b4a361d66f9494257c51c31cd28a0c1",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb3558f47fa914f7ec1da1a6f52ab41ee63e81301"
],
"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": "0xd21220a7",
"selector": "0xd21220a7",
"calldata_variants": [
"0xd21220a7",
"0xd21220a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfff6cae9",
"selector": "0xfff6cae9",
"calldata_variants": [
"0xfff6cae9",
"0xfff6cae90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xba9a7a56",
"selector": "0xba9a7a56",
"calldata_variants": [
"0xba9a7a56",
"0xba9a7a560000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbc25cf77",
"selector": "0xbc25cf77",
"calldata_variants": [
"0xbc25cf77",
"0xbc25cf770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc45a0155",
"selector": "0xc45a0155",
"calldata_variants": [
"0xc45a0155",
"0xc45a01550000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7ecebe00",
"selector": "0x7ecebe00",
"calldata_variants": [
"0x7ecebe00",
"0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2060,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7184,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xfbb78c6cfd988680f57b6732065cffc43b4a361d66f9494257c51c31cd28a0c1
call_targets:
0xb3558f47fa914f7ec1da1a6f52ab41ee63e81301
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xfbb78c6cfd988680f57b6732065cffc43b4a361d66f9494257c51c31cd28a0c1",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb3558f47fa914f7ec1da1a6f52ab41ee63e81301"
],
"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": "0xd21220a7",
"selector": "0xd21220a7",
"calldata_variants": [
"0xd21220a7",
"0xd21220a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfff6cae9",
"selector": "0xfff6cae9",
"calldata_variants": [
"0xfff6cae9",
"0xfff6cae90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xba9a7a56",
"selector": "0xba9a7a56",
"calldata_variants": [
"0xba9a7a56",
"0xba9a7a560000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbc25cf77",
"selector": "0xbc25cf77",
"calldata_variants": [
"0xbc25cf77",
"0xbc25cf770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc45a0155",
"selector": "0xc45a0155",
"calldata_variants": [
"0xc45a0155",
"0xc45a01550000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7ecebe00",
"selector": "0x7ecebe00",
"calldata_variants": [
"0x7ecebe00",
"0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2060,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7184,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| medium | reentrancy | slither | Reentrancy in UniswapV2Pair.swap(uint256,uint256,address,bytes) (contracts/Contract.sol#599-631): | 75 | no | — |
viewevidence_json{
"impact": "Medium",
"detector": "reentrancy-no-eth",
"elements": [
{
"name": "swap",
"type": "function",
"source_mapping": {
"lines": [
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631
],
"start": 22429,
"length": 1922,
"ending_column": 19,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 69,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "swap(uint256,uint256,address,bytes)"
}
},
{
"name": "_safeTransfer(_token0,to,amount0Out)",
"type": "node",
"source_mapping": {
"lines": [
612
],
"start": 23084,
"length": 38,
"ending_column": 87,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 49,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "swap",
"type": "function",
"source_mapping": {
"lines": [
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631
],
"start": 22429,
"length": 1922,
"ending_column": 19,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 69,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "swap(uint256,uint256,address,bytes)"
}
}
}
},
{
"name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))",
"type": "node",
"source_mapping": {
"lines": [
457,
458,
459,
460
],
"start": 15509,
"length": 91,
"ending_column": 12,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 30,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "_safeTransfer",
"type": "function",
"source_mapping": {
"lines": [
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465
],
"start": 15429,
"length": 284,
"ending_column": 58,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 56,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_safeTransfer(address,address,uint256)"
}
}
}
},
{
"name": "_safeTransfer(_token1,to,amount1Out)",
"type": "node",
"source_mapping": {
"lines": [
613
],
"start": 23186,
"length": 38,
"ending_column": 87,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 49,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "swap",
"type": "function",
"source_mapping": {
"lines": [
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631
],
"start": 22429,
"length": 1922,
"ending_column": 19,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 69,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "swap(uint256,uint256,address,bytes)"
}
}
}
},
{
"name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))",
"type": "node",
"source_mapping": {
"lines": [
457,
458,
459,
460
],
"start": 15509,
"length": 91,
"ending_column": 12,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 30,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "_safeTransfer",
"type": "function",
"source_mapping": {
"lines": [
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465
],
"start": 15429,
"length": 284,
"ending_column": 58,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 56,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_safeTransfer(address,address,uint256)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "swap",
"type": "function",
"lines": [
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631
]
},
{
"file": "contracts/Contract.sol",
"name": "_safeTransfer(_token0,to,amount0Out)",
"type": "node",
"lines": [
612
]
},
{
"file": "contracts/Contract.sol",
"name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))",
"type": "node",
"lines": [
457,
458,
459,
460
]
},
{
"file": "contracts/Contract.sol",
"name": "_safeTransfer(_token1,to,amount1Out)",
"type": "node",
"lines": [
613
]
},
{
"file": "contracts/Contract.sol",
"name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))",
"type": "node",
"lines": [
457,
458,
459,
460
]
},
{
"file": "contracts/Contract.sol",
"name": "IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data)",
"type": "node",
"lines": [
614,
615
]
},
{
"file": "contracts/Contract.sol",
"name": "_update(balance0,balance1,_reserve0,_reserve1)",
"type": "node",
"lines": [
629,
630
]
},
{
"file": "contracts/Contract.sol",
"name": "blockTimestampLast = blockTimestamp",
"type": "node",
"lines": [
503
]
},
{
"file": "contracts/Contract.sol",
"name": "_update(balance0,balance1,_reserve0,_reserve1)",
"type": "node",
"lines": [
629,
630
]
},
{
"file": "contracts/Contract.sol",
"name": "reserve0 = uint112(balance0)",
"type": "node",
"lines": [
502
]
},
{
"file": "contracts/Contract.sol",
"name": "_update(balance0,balance1,_reserve0,_reserve1)",
"type": "node",
"lines": [
629,
630
]
},
{
"file": "contracts/Contract.sol",
"name": "reserve1 = uint112(balance1)",
"type": "node",
"lines": [
502,
503
]
}
],
"description": "Reentrancy in UniswapV2Pair.swap(uint256,uint256,address,bytes) (contracts/Contract.sol#599-631):\n\tExternal calls:\n\t- _safeTransfer(_token0,to,amount0Out) (contracts/Contract.sol#612)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460)\n\t- _safeTransfer(_token1,to,amount1Out) (contracts/Contract.sol#613)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460)\n\t- IUniswapV2Callee(to).uniswapV2Call(msg.sender,amount0Out,amount1Out,data) (contracts/Contract.sol#614-615)\n\tState variables written after the call(s):\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#629-630)\n\t\t- blockTimestampLast = blockTimestamp (contracts/Contract.sol#503)\n\tUniswapV2Pair.blockTimestampLast (contracts/Contract.sol#440-442) can be used in cross function reentrancies:\n\t- UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504)\n\t- UniswapV2Pair.getReserves() (contracts/Contract.sol#450-455)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#629-630)\n\t\t- reserve0 = uint112(balance0) (contracts/Contract.sol#502)\n\tUniswapV2Pair.reserve0 (contracts/Contract.sol#434) can be used in cross function reentrancies:\n\t- UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504)\n\t- UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598)\n\t- UniswapV2Pair.getReserves() (contracts/Contract.sol#450-455)\n\t- UniswapV2Pair.mint(address) (contracts/Contract.sol#538-568)\n\t- UniswapV2Pair.skim(address) (contracts/Contract.sol#631-636)\n\t- UniswapV2Pair.sync() (contracts/Contract.sol#636-640)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#629-630)\n\t\t- reserve1 = uint112(balance1) (contracts/Contract.sol#502-503)\n\tUniswapV2Pair.reserve1 (contracts/Contract.sol#438) can be used in cross function reentrancies:\n\t- UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504)\n\t- UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598)\n\t- UniswapV2Pair.getReserves() (contracts/Contract.sol#450-455)\n\t- UniswapV2Pair.mint(address) (contracts/Contract.sol#538-568)\n\t- UniswapV2Pair.skim(address) (contracts/Contract.sol#631-636)\n\t- UniswapV2Pair.sync() (contracts/Contract.sol#636-640)"
}
|
| medium | reentrancy | slither | Reentrancy in UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598): | 75 | no | — |
viewevidence_json{
"impact": "Medium",
"detector": "reentrancy-no-eth",
"elements": [
{
"name": "burn",
"type": "function",
"source_mapping": {
"lines": [
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598
],
"start": 20698,
"length": 1622,
"ending_column": 67,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 12,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "burn(address)"
}
},
{
"name": "liquidity = _chargeWithdrawFee(liquidity)",
"type": "node",
"source_mapping": {
"lines": [
582,
583
],
"start": 21325,
"length": 41,
"ending_column": 8,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 51,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "burn",
"type": "function",
"source_mapping": {
"lines": [
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598
],
"start": 20698,
"length": 1622,
"ending_column": 67,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 12,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "burn(address)"
}
}
}
},
{
"name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))",
"type": "node",
"source_mapping": {
"lines": [
457,
458,
459,
460
],
"start": 15509,
"length": 91,
"ending_column": 12,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 30,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "_safeTransfer",
"type": "function",
"source_mapping": {
"lines": [
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465
],
"start": 15429,
"length": 284,
"ending_column": 58,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 56,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_safeTransfer(address,address,uint256)"
}
}
}
},
{
"name": "feeOn = _mintFee(_reserve0,_reserve1)",
"type": "node",
"source_mapping": {
"lines": [
583
],
"start": 21387,
"length": 43,
"ending_column": 72,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 29,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"variable_name": "balanceOf",
"underlying_type": "variables_written"
},
"type_specific_fields": {
"parent": {
"name": "burn",
"type": "function",
"source_mapping": {
"lines": [
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598
],
"start": 20698,
"length": 1622,
"ending_column": 67,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 12,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "burn(address)"
}
}
}
},
{
"name": "balanceOf[to] = balanceOf[to].add(value)",
"type": "node",
"source_mapping": {
"lines": [
272,
273
],
"start": 9411,
"length": 40,
"ending_column": 3,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 4,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"variable_name": "balanceOf",
"underlying_type": "variables_written"
},
"type_specific_fields": {
"parent": {
"name": "_mint",
"type": "function",
"source_mapping": {
"lines": [
271,
272,
273,
274
],
"start": 9307,
"length": 197,
"ending_column": 16,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 14,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2ERC20",
"type": "contract",
"source_mapping": {
"lines": [
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327
],
"start": 8051,
"length": 3321,
"ending_column": 26,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 14,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_mint(address,uint256)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "burn",
"type": "function",
"lines": [
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598
]
},
{
"file": "contracts/Contract.sol",
"name": "liquidity = _chargeWithdrawFee(liquidity)",
"type": "node",
"lines": [
582,
583
]
},
{
"file": "contracts/Contract.sol",
"name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))",
"type": "node",
"lines": [
457,
458,
459,
460
]
},
{
"file": "contracts/Contract.sol",
"name": "feeOn = _mintFee(_reserve0,_reserve1)",
"type": "node",
"lines": [
583
]
},
{
"file": "contracts/Contract.sol",
"name": "balanceOf[to] = balanceOf[to].add(value)",
"type": "node",
"lines": [
272,
273
]
},
{
"file": "contracts/Contract.sol",
"name": "_burn(address(this),liquidity)",
"type": "node",
"lines": [
590,
591
]
},
{
"file": "contracts/Contract.sol",
"name": "balanceOf[from] = balanceOf[from].sub(value)",
"type": "node",
"lines": [
277,
278,
279,
280
]
}
],
"description": "Reentrancy in UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598):\n\tExternal calls:\n\t- liquidity = _chargeWithdrawFee(liquidity) (contracts/Contract.sol#582-583)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460)\n\tState variables written after the call(s):\n\t- feeOn = _mintFee(_reserve0,_reserve1) (contracts/Contract.sol#583)\n\t\t- balanceOf[to] = balanceOf[to].add(value) (contracts/Contract.sol#272-273)\n\tUniswapV2ERC20.balanceOf (contracts/Contract.sol#243-247) can be used in cross function reentrancies:\n\t- UniswapV2ERC20._burn(address,uint256) (contracts/Contract.sol#274-282)\n\t- UniswapV2ERC20._mint(address,uint256) (contracts/Contract.sol#271-274)\n\t- UniswapV2ERC20._transfer(address,address,uint256) (contracts/Contract.sol#287-293)\n\t- UniswapV2ERC20.balanceOf (contracts/Contract.sol#243-247)\n\t- UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598)\n\t- _burn(address(this),liquidity) (contracts/Contract.sol#590-591)\n\t\t- balanceOf[from] = balanceOf[from].sub(value) (contracts/Contract.sol#277-280)\n\tUniswapV2ERC20.balanceOf (contracts/Contract.sol#243-247) can be used in cross function reentrancies:\n\t- UniswapV2ERC20._burn(address,uint256) (contracts/Contract.sol#274-282)\n\t- UniswapV2ERC20._mint(address,uint256) (contracts/Contract.sol#271-274)\n\t- UniswapV2ERC20._transfer(address,address,uint256) (contracts/Contract.sol#287-293)\n\t- UniswapV2ERC20.balanceOf (contracts/Contract.sol#243-247)\n\t- UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598)"
}
|
| medium | reentrancy | slither | Reentrancy in UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598): | 75 | no | — |
viewevidence_json{
"impact": "Medium",
"detector": "reentrancy-no-eth",
"elements": [
{
"name": "burn",
"type": "function",
"source_mapping": {
"lines": [
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598
],
"start": 20698,
"length": 1622,
"ending_column": 67,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 12,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "burn(address)"
}
},
{
"name": "liquidity = _chargeWithdrawFee(liquidity)",
"type": "node",
"source_mapping": {
"lines": [
582,
583
],
"start": 21325,
"length": 41,
"ending_column": 8,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 51,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "burn",
"type": "function",
"source_mapping": {
"lines": [
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598
],
"start": 20698,
"length": 1622,
"ending_column": 67,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 12,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "burn(address)"
}
}
}
},
{
"name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))",
"type": "node",
"source_mapping": {
"lines": [
457,
458,
459,
460
],
"start": 15509,
"length": 91,
"ending_column": 12,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 30,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "_safeTransfer",
"type": "function",
"source_mapping": {
"lines": [
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465
],
"start": 15429,
"length": 284,
"ending_column": 58,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 56,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_safeTransfer(address,address,uint256)"
}
}
}
},
{
"name": "_safeTransfer(_token0,to,amount0)",
"type": "node",
"source_mapping": {
"lines": [
591,
592
],
"start": 21901,
"length": 35,
"ending_column": 33,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 37,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "burn",
"type": "function",
"source_mapping": {
"lines": [
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598
],
"start": 20698,
"length": 1622,
"ending_column": 67,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 12,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "burn(address)"
}
}
}
},
{
"name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))",
"type": "node",
"source_mapping": {
"lines": [
457,
458,
459,
460
],
"start": 15509,
"length": 91,
"ending_column": 12,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 30,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "_safeTransfer",
"type": "function",
"source_mapping": {
"lines": [
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465
],
"start": 15429,
"length": 284,
"ending_column": 58,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 56,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "UniswapV2Pair",
"type": "contract",
"source_mapping": {
"lines": [
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640
],
"start": 14218,
"length": 10712,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 60,
"filename_absolute": "/tmp/slither-tpxeop_y/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_safeTransfer(address,address,uint256)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "burn",
"type": "function",
"lines": [
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598
]
},
{
"file": "contracts/Contract.sol",
"name": "liquidity = _chargeWithdrawFee(liquidity)",
"type": "node",
"lines": [
582,
583
]
},
{
"file": "contracts/Contract.sol",
"name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))",
"type": "node",
"lines": [
457,
458,
459,
460
]
},
{
"file": "contracts/Contract.sol",
"name": "_safeTransfer(_token0,to,amount0)",
"type": "node",
"lines": [
591,
592
]
},
{
"file": "contracts/Contract.sol",
"name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))",
"type": "node",
"lines": [
457,
458,
459,
460
]
},
{
"file": "contracts/Contract.sol",
"name": "_safeTransfer(_token1,to,amount1)",
"type": "node",
"lines": [
592,
593,
594,
595
]
},
{
"file": "contracts/Contract.sol",
"name": "(success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value))",
"type": "node",
"lines": [
457,
458,
459,
460
]
},
{
"file": "contracts/Contract.sol",
"name": "_update(balance0,balance1,_reserve0,_reserve1)",
"type": "node",
"lines": [
596,
597
]
},
{
"file": "contracts/Contract.sol",
"name": "blockTimestampLast = blockTimestamp",
"type": "node",
"lines": [
503
]
},
{
"file": "contracts/Contract.sol",
"name": "kLast = uint256(reserve0).mul(reserve1)",
"type": "node",
"lines": [
597
]
},
{
"file": "contracts/Contract.sol",
"name": "_update(balance0,balance1,_reserve0,_reserve1)",
"type": "node",
"lines": [
596,
597
]
},
{
"file": "contracts/Contract.sol",
"name": "reserve0 = uint112(balance0)",
"type": "node",
"lines": [
502
]
},
{
"file": "contracts/Contract.sol",
"name": "_update(balance0,balance1,_reserve0,_reserve1)",
"type": "node",
"lines": [
596,
597
]
},
{
"file": "contracts/Contract.sol",
"name": "reserve1 = uint112(balance1)",
"type": "node",
"lines": [
502,
503
]
}
],
"description": "Reentrancy in UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598):\n\tExternal calls:\n\t- liquidity = _chargeWithdrawFee(liquidity) (contracts/Contract.sol#582-583)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460)\n\t- _safeTransfer(_token0,to,amount0) (contracts/Contract.sol#591-592)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460)\n\t- _safeTransfer(_token1,to,amount1) (contracts/Contract.sol#592-595)\n\t\t- (success,data) = token.call(abi.encodeWithSelector(SELECTOR,to,value)) (contracts/Contract.sol#457-460)\n\tState variables written after the call(s):\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#596-597)\n\t\t- blockTimestampLast = blockTimestamp (contracts/Contract.sol#503)\n\tUniswapV2Pair.blockTimestampLast (contracts/Contract.sol#440-442) can be used in cross function reentrancies:\n\t- UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504)\n\t- UniswapV2Pair.getReserves() (contracts/Contract.sol#450-455)\n\t- kLast = uint256(reserve0).mul(reserve1) (contracts/Contract.sol#597)\n\tUniswapV2Pair.kLast (contracts/Contract.sol#445) can be used in cross function reentrancies:\n\t- UniswapV2Pair._mintFee(uint112,uint112) (contracts/Contract.sol#505-523)\n\t- UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598)\n\t- UniswapV2Pair.kLast (contracts/Contract.sol#445)\n\t- UniswapV2Pair.mint(address) (contracts/Contract.sol#538-568)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#596-597)\n\t\t- reserve0 = uint112(balance0) (contracts/Contract.sol#502)\n\tUniswapV2Pair.reserve0 (contracts/Contract.sol#434) can be used in cross function reentrancies:\n\t- UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504)\n\t- UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598)\n\t- UniswapV2Pair.getReserves() (contracts/Contract.sol#450-455)\n\t- UniswapV2Pair.mint(address) (contracts/Contract.sol#538-568)\n\t- UniswapV2Pair.skim(address) (contracts/Contract.sol#631-636)\n\t- UniswapV2Pair.sync() (contracts/Contract.sol#636-640)\n\t- _update(balance0,balance1,_reserve0,_reserve1) (contracts/Contract.sol#596-597)\n\t\t- reserve1 = uint112(balance1) (contracts/Contract.sol#502-503)\n\tUniswapV2Pair.reserve1 (contracts/Contract.sol#438) can be used in cross function reentrancies:\n\t- UniswapV2Pair._update(uint256,uint256,uint112,uint112) (contracts/Contract.sol#484-504)\n\t- UniswapV2Pair.burn(address) (contracts/Contract.sol#569-598)\n\t- UniswapV2Pair.getReserves() (contracts/Contract.sol#450-455)\n\t- UniswapV2Pair.mint(address) (contracts/Contract.sol#538-568)\n\t- UniswapV2Pair.skim(address) (contracts/Contract.sol#631-636)\n\t- UniswapV2Pair.sync() (contracts/Contract.sol#636-640)"
}
|
| 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": 22
}
|
| 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": 21
}
|